diff --git a/smart-admin-api/sa-admin/src/main/resources/prod/spy.properties b/smart-admin-api/sa-admin/src/main/resources/prod/spy.properties deleted file mode 100644 index 9877f620..00000000 --- a/smart-admin-api/sa-admin/src/main/resources/prod/spy.properties +++ /dev/null @@ -1,18 +0,0 @@ -#相关的包 -modulelist=com.baomidou.mybatisplus.extension.p6spy.MybatisPlusLogFactory,com.p6spy.engine.outage.P6OutageFactory -# 日志格式 -logMessageFormat=com.baomidou.mybatisplus.extension.p6spy.P6SpyLogger -#日志输出到控制台 -appender=com.p6spy.engine.spy.appender.StdoutLogger -# 设置 p6spy driver 代理 -deregisterdrivers=true -# 取消JDBC URL前缀 -useprefix=true -# 配置记录 Log 例外,可去掉的结果集有error,info,batch,debug,statement,commit,rollback,result,resultset. -excludecategories=info,debug,result,commit,resultset -# 日期格式 -dateformat=yyyy-MM-dd HH:mm:ss -# 开启慢sql -outagedetection=true -# 慢SQL记录标准(单位秒) -outagedetectioninterval=2 \ No newline at end of file diff --git a/smart-admin-api/sa-admin/src/main/resources/test/spy.properties b/smart-admin-api/sa-admin/src/main/resources/test/spy.properties deleted file mode 100644 index 9877f620..00000000 --- a/smart-admin-api/sa-admin/src/main/resources/test/spy.properties +++ /dev/null @@ -1,18 +0,0 @@ -#相关的包 -modulelist=com.baomidou.mybatisplus.extension.p6spy.MybatisPlusLogFactory,com.p6spy.engine.outage.P6OutageFactory -# 日志格式 -logMessageFormat=com.baomidou.mybatisplus.extension.p6spy.P6SpyLogger -#日志输出到控制台 -appender=com.p6spy.engine.spy.appender.StdoutLogger -# 设置 p6spy driver 代理 -deregisterdrivers=true -# 取消JDBC URL前缀 -useprefix=true -# 配置记录 Log 例外,可去掉的结果集有error,info,batch,debug,statement,commit,rollback,result,resultset. -excludecategories=info,debug,result,commit,resultset -# 日期格式 -dateformat=yyyy-MM-dd HH:mm:ss -# 开启慢sql -outagedetection=true -# 慢SQL记录标准(单位秒) -outagedetectioninterval=2 \ No newline at end of file diff --git a/smart-admin-web/typescript-ant-design-vue3/.env.production b/smart-admin-web/typescript-ant-design-vue3/.env.production deleted file mode 100644 index 2c249e8c..00000000 --- a/smart-admin-web/typescript-ant-design-vue3/.env.production +++ /dev/null @@ -1,8 +0,0 @@ - -VITE_APP_API_URL = 'http://127.0.0.1:1024' - -VITE_APP_PROJECT_TITLE = 'SmartAdmin' - -VITE_APP_PROFILE = 'prod' - -VITE_APP_MODE = 'production' \ No newline at end of file diff --git a/smart-admin-web/typescript-ant-design-vue3/src/assets/images/login/login-bg.jpg b/smart-admin-web/typescript-ant-design-vue3/src/assets/images/login/login-bg.jpg deleted file mode 100644 index 64b6240b..00000000 Binary files a/smart-admin-web/typescript-ant-design-vue3/src/assets/images/login/login-bg.jpg and /dev/null differ diff --git a/smart_admin_v1/smart-admin-h5/.browserslistrc b/smart_admin_v1/smart-admin-h5/.browserslistrc new file mode 100644 index 00000000..d6471a38 --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/.browserslistrc @@ -0,0 +1,2 @@ +> 1% +last 2 versions diff --git a/smart_admin_v1/smart-admin-h5/.editorconfig b/smart_admin_v1/smart-admin-h5/.editorconfig new file mode 100644 index 00000000..4881e66d --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/.editorconfig @@ -0,0 +1,15 @@ +root = true + +[*] +# 字符 +charset = utf-8 +# 空格 +indent_style = space +# 2个空格缩进 +indent_size = 2 +# 换行符 +end_of_line = lf +# 文件的最后插入一个空行 +insert_final_newline = true +# 删除行尾的空格 +trim_trailing_whitespace = true diff --git a/smart_admin_v1/smart-admin-h5/.env.development b/smart_admin_v1/smart-admin-h5/.env.development new file mode 100644 index 00000000..b698907c --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/.env.development @@ -0,0 +1,3 @@ +NODE_ENV = development +VUE_APP_ENV = dev +VUE_APP_URL = http://127.0.0.1:10086/smart-admin-api diff --git a/smart_admin_v1/smart-admin-h5/.env.local b/smart_admin_v1/smart-admin-h5/.env.local new file mode 100644 index 00000000..6d07d04c --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/.env.local @@ -0,0 +1,3 @@ +NODE_ENV = development +VUE_APP_ENV = local +VUE_APP_URL = http://127.0.0.1:10086/smart-admin-api diff --git a/smart_admin_v1/smart-admin-h5/.env.pre b/smart_admin_v1/smart-admin-h5/.env.pre new file mode 100644 index 00000000..80c46b0e --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/.env.pre @@ -0,0 +1,3 @@ +NODE_ENV = production +VUE_APP_ENV = pre +VUE_APP_URL = http://smartadmin.1024lab.net/smart-admin-api diff --git a/smart_admin_v1/smart-admin-h5/.env.prod b/smart_admin_v1/smart-admin-h5/.env.prod new file mode 100644 index 00000000..0e1616d4 --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/.env.prod @@ -0,0 +1,3 @@ +NODE_ENV = production +VUE_APP_ENV = prod +VUE_APP_URL = http://smartadmin.1024lab.net/smart-admin-api diff --git a/smart_admin_v1/smart-admin-h5/.env.sit b/smart_admin_v1/smart-admin-h5/.env.sit new file mode 100644 index 00000000..411bc968 --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/.env.sit @@ -0,0 +1,3 @@ +NODE_ENV = production +VUE_APP_ENV = sit +VUE_APP_URL = http://smartadmin.1024lab.net/smart-admin-api diff --git a/smart_admin_v1/smart-admin-h5/.eslintignore b/smart_admin_v1/smart-admin-h5/.eslintignore new file mode 100644 index 00000000..7c435adc --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/.eslintignore @@ -0,0 +1,7 @@ + +# 忽略项目中某些文件的提交代码规范 + +build/*.js +src/assets +public +dist diff --git a/smart_admin_v1/smart-admin-h5/.eslintrc.js b/smart_admin_v1/smart-admin-h5/.eslintrc.js new file mode 100644 index 00000000..27350869 --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/.eslintrc.js @@ -0,0 +1,232 @@ +module.exports = { + root: true, + env: { + node: true + }, + extends: [ + 'plugin:vue/essential', + 'eslint:recommended' + ], + parserOptions: { + parser: 'babel-eslint' + }, + rules: { + // 具体请看 https://github.com/vuejs/eslint-plugin-vue/blob/master/docs/rules/max-attributes-per-line.md + 'vue/max-attributes-per-line': [ + 2, + { + singleline: 10, + multiline: { + max: 1, + allowFirstLine: false + } + } + ], + // 在单行元素的内容前后需要换行符 + 'vue/singleline-html-element-content-newline': 'off', + // 在多行元素的内容之前和之后需要换行符 + 'vue/multiline-html-element-content-newline': 'off', + // JS/JSX中的组件名应该 大写驼峰 命名法 + 'vue/name-property-casing': ['error', 'PascalCase'], + // 给v-for设置键值,与key结合使用,可以高效的更新虚拟DOM + "vue/require-v-for-key": 1, + 'vue/no-v-html': 'off', + // 在对象中强制使用getter/setter + 'accessor-pairs': 2, + // 在箭头函数之前/之后需要空格 + 'arrow-spacing': [ + 2, + { + before: true, + after: true + } + ], + // 在打开块之后和关闭块之前,禁止或强制执行块内部的空格 + 'block-spacing': [2, 'always'], + // 需要大括号样式 + 'brace-style': [ + 2, + '1tbs', + { + allowSingleLine: true + } + ], + // 需要驼峰命名 + camelcase: [ + 0, + { + properties: 'always' + } + ], + // 要求或禁止使用尾随逗号;最后一个属性是不需要逗号 + 'comma-dangle': [2, 'never'], + // 强制逗号旁边的间距: 左右一个空格 + 'comma-spacing': [ + 2, + { + before: false, + after: true + } + ], + // 逗号风格 + 'comma-style': [2, 'last'], + // 构建方法中使用super方法 + 'constructor-super': 2, + curly: [2, 'multi-line'], + // 在dot之前和之后强制换行 + 'dot-location': [2, 'property'], + // 在文件末尾要求或禁止换行 + 'eol-last': 2, + // 是否使用全等 + eqeqeq: ['error', 'always', { null: 'ignore' }], + // 在生成器函数中强制执行*周围的间距 + 'generator-star-spacing': [2, { + 'before': true, + 'after': true + }], + // 强制执行回调错误处理 + 'handle-callback-err': [1, '^(err|error)$'], + // 强制执行一致的缩进 + 'indent': [2, 2, { + 'SwitchCase': 1 + }], + // 强制在JSX文件中一致使用单引号 + 'jsx-quotes': [2, 'prefer-single'], + // 在对象属性中强制键和值之间的一致间距 + 'key-spacing': [2, { + 'beforeColon': false, + 'afterColon': true + }], + // 关键字前后强制执行一致的间距 + 'keyword-spacing': [2, { + 'before': true, + 'after': true + }], + // 要求构造函数名称以大写字母开头 + 'new-cap': [2, { + 'newIsCap': true, + 'capIsNew': false + }], + 'new-parens': 2, // 调用不带参数的函数时需要括号 + 'no-array-constructor': 2, // 禁止阵列构建器 + 'no-caller': 2, // 禁止使用来电者/被叫者 + 'no-console': 'off', // 不允许使用控制台 + 'no-class-assign': 2, // 禁止修改类声明的变量 + 'no-cond-assign': 2, // 在条件语句中禁止赋值运算符 + 'no-const-assign': 2, // 禁止修改使用const声明的变量 + 'no-control-regex': 0, // 禁止正则表达式中的控制字符 + 'no-delete-var': 2, // 禁止删除变量 + 'no-dupe-args': 2, // 在函数定义中禁止重复参数 + 'no-dupe-class-members': 2, // 禁止在类成员中重复名称 + 'no-dupe-keys': 2, // 禁止对象重复声明属性 + 'no-duplicate-case': 2, // 规则禁止重复案例标签 + 'no-empty-character-class': 2, // 禁止在正则表达式中使用空字符类 + 'no-empty-pattern': 2, // 不允许空的解构模式 + 'no-eval': 2, // 禁止使用eval() + 'no-ex-assign': 2, // 禁止在catch子句中重新分配异常 + 'no-extend-native': 2, // 禁止扩展原生对象 + 'no-extra-bind': 2, // 禁止不必要的功能绑定 + 'no-extra-boolean-cast': 2, // 禁止不必要的布尔类型转换 + 'no-extra-parens': [2, 'functions'], // 禁止不必要的括号 + 'no-fallthrough': 2, // 禁止太多陈述描述 + 'no-floating-decimal': 2, // 禁止浮动小数 + 'no-func-assign': 2, // 禁止重新分配函数声明 + 'no-implied-eval': 2, + 'no-inner-declarations': [2, 'functions'], // 禁止嵌套块中的变量或函数声明 + 'no-invalid-regexp': 2, // 禁止在RegExp中使用无效的正则表达式字符串 + 'no-irregular-whitespace': 2, // 不允许不规则的空白 + 'no-iterator': 2, // 禁止迭代器 + 'no-label-var': 2, // 禁止变量名称的标签 + 'no-labels': [2, { + 'allowLoop': false, + 'allowSwitch': false + }], + 'no-lone-blocks': 2, // 禁止不必要的嵌套块 + 'no-mixed-spaces-and-tabs': 2, // 禁止使用混合空格和制表符进行缩进 + 'no-multi-spaces': 2, // 禁止多个空格 + 'no-multi-str': 2, // 禁止多行字符串 + 'no-multiple-empty-lines': [2, { // 禁止多个空行 + 'max': 1 + }], + 'no-native-reassign': 2, + 'no-negated-in-lhs': 2, + 'no-new-object': 2, + 'no-new-require': 2, + 'no-new-symbol': 2, + 'no-new-wrappers': 2, + 'no-obj-calls': 2, + 'no-octal': 2, + 'no-octal-escape': 2, + 'no-path-concat': 2, + 'no-proto': 2, + 'no-redeclare': 2, + 'no-regex-spaces': 2, + 'no-return-assign': [2, 'except-parens'], + 'no-self-assign': 2, + 'no-self-compare': 2, + 'no-sequences': 2, + 'no-shadow-restricted-names': 2, + 'no-spaced-func': 2, + 'no-sparse-arrays': 2, + 'no-this-before-super': 2, + 'no-throw-literal': 2, + 'no-trailing-spaces': 2, + 'no-undef': 0, + 'no-undef-init': 2, + 'no-unexpected-multiline': 2, + 'no-unmodified-loop-condition': 2, // 禁止未修改的循环条件 + 'no-unneeded-ternary': [2, { // 当存在更简单的替代方案时,不允许三元运算符 + 'defaultAssignment': false + }], + 'no-unreachable': 2, // 返回,抛出,继续和中断语句后禁止无法访问的代码 + 'no-unsafe-finally': 2, // 禁止finally块中的控制流语句 + 'no-unused-vars': [2, { // 禁止使用未声明的变量 + 'vars': 'all', + 'args': 'none' + }], + 'no-useless-call': 2, // 禁止不必要的call()和apply()方法 + 'no-useless-computed-key': 2, // 禁止在对象上使用不必要的计算属性键 + 'no-useless-constructor': 2, // 禁止不必要的构造方法 + 'no-useless-escape': 0, // 禁止不必要的转义用法 + 'no-whitespace-before-property': 2, // 在属性之前禁止空格 + 'no-with': 2, + 'one-var': [2, { + 'initialized': 'never' + }], + 'operator-linebreak': [2, 'after', { // 为维护强制执行一致的换行方式 + 'overrides': { + '?': 'before', + ':': 'before' + } + }], + 'padded-blocks': [2, 'never'], // 在块内要求或禁止填充 + 'quotes': [2, 'single', { + 'avoidEscape': true, + 'allowTemplateLiterals': true + }], + semi: ["error", "always"], + 'space-before-blocks': [2, 'always'], // 不要存在多余的块空间 + 'space-before-function-paren': [2, 'never'], + 'space-in-parens': [2, 'never'], + 'space-infix-ops': 2, + 'space-unary-ops': [2, { + 'words': true, + 'nonwords': false + }], + 'spaced-comment': [2, 'always', { + 'markers': ['global', 'globals', 'eslint', 'eslint-disable', '*package', '!', ','] + }], + 'template-curly-spacing': [2, 'never'], + 'use-isnan': 2, + 'valid-typeof': 2, + 'wrap-iife': [2, 'any'], + 'yield-star-spacing': [2, 'both'], + 'yoda': [2, 'never'], + 'prefer-const': 1, + 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0, + 'object-curly-spacing': [2, 'always', { + objectsInObjects: false + }], + 'array-bracket-spacing': [2, 'never'] + } +} diff --git a/smart_admin_v1/smart-admin-h5/.gitignore b/smart_admin_v1/smart-admin-h5/.gitignore new file mode 100644 index 00000000..24d694ca --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/.gitignore @@ -0,0 +1,22 @@ +node_modules +/dist + +# Log files +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Editor directories and files +.DS_Store +.idea +.vscode +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? + +package-lock.json +yarn.lock + +build/env.js diff --git a/smart_admin_v1/smart-admin-h5/.postcssrc.js b/smart_admin_v1/smart-admin-h5/.postcssrc.js new file mode 100644 index 00000000..e2783a57 --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/.postcssrc.js @@ -0,0 +1,11 @@ +module.exports = { + plugins: { + autoprefixer: { + overrideBrowserslist: ['Android 4.1', 'iOS 7.1', 'Chrome > 31', 'ff > 31', 'ie >= 8'] + }, + 'postcss-pxtorem': { + rootValue: 37.5, + propList: ['*'], + } + } +} diff --git a/smart_admin_v1/smart-admin-h5/.prettierrc.js b/smart_admin_v1/smart-admin-h5/.prettierrc.js new file mode 100644 index 00000000..c19422ec --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/.prettierrc.js @@ -0,0 +1,31 @@ +module.exports = { + // 缩进字节数 + tabWidth: 2, + // 使用单引号代替双引号 + singleQuote: true, + // 在对象或数组最后一个元素后面是否加逗号(在ES5中加尾逗号) + trailingComma: 'none', + // 句尾添加分号 + semi: true, + // 默认值。因为使用了一些折行敏感型的渲染器(如GitHub comment)而按照markdown文本样式进行折行 + proseWrap: 'always', + // (x) => {} 箭头函数参数只有一个时是否要有小括号。avoid:省略括号 + arrowParens: 'avoid', + // 在对象,数组括号与文字之间加空格 "{ foo: bar }" + bracketSpacing: true, + // 在jsx中把'>' 是否单独放一行 + jsxBracketSameLine: false, + // 缩进不使用tab,使用空格 + useTabs: false, + // 不让prettier使用eslint的代码格式进行校验 + eslintIntegration: true, + overrides: [ + { + files: '.prettierrc', + options: { + parser: 'json' + } + } + ], + endOfLine: 'auto' +} diff --git a/smart_admin_v1/smart-admin-h5/.sentryclirc b/smart_admin_v1/smart-admin-h5/.sentryclirc new file mode 100644 index 00000000..b6f61dbd --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/.sentryclirc @@ -0,0 +1,7 @@ +[defaults] +url = https://sentry.1024lab.net/ +org = 1024lab-sentry +project = smart-admin-h5 + +[auth] +token = 8dflijsldjkasdo3u49230948pkjdasoia8023jl3k4jr29o81029i40534p545ke diff --git a/smart_admin_v1/smart-admin-h5/README.md b/smart_admin_v1/smart-admin-h5/README.md new file mode 100644 index 00000000..c5f8fa10 --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/README.md @@ -0,0 +1,4 @@ +# SmartAdmin-H5 + +#### 介绍 +SmartAdmin-H5 是SmartAdmin 平台的移动端web项目 diff --git a/smart_admin_v1/smart-admin-h5/babel.config.js b/smart_admin_v1/smart-admin-h5/babel.config.js new file mode 100644 index 00000000..58b18fe8 --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/babel.config.js @@ -0,0 +1,16 @@ + +module.exports = { + presets: [['@vue/cli-plugin-babel/preset', {useBuiltIns: 'usage', corejs: 3}]], + plugins:[ + // vant-ui 按需引入,详情:https://github.com/ElementUI/babel-plugin-component + // [ + // 'import', + // { + // libraryName: 'vant', + // libraryDirectory: 'es', + // style: true + // }, + // 'vant' + // ] + ] +}; diff --git a/smart_admin_v1/smart-admin-h5/package.json b/smart_admin_v1/smart-admin-h5/package.json new file mode 100644 index 00000000..cd09ecb3 --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/package.json @@ -0,0 +1,58 @@ +{ + "name": "smart-admin-h5", + "version": "1.0.0", + "description": "基于vue和vant的h5模板", + "author": "zhuoluodada@qq.com", + "private": true, + "scripts": { + "local": "vue-cli-service serve --open --mode local", + "dev": "vue-cli-service serve --open", + "build": "vue-cli-service build", + "build:sit": "vue-cli-service build --mode sit", + "build:pre": "vue-cli-service build --mode pre", + "build:prod": "vue-cli-service build --mode prod", + "stage": "vue-cli-service build --mode staging", + "lint": "vue-cli-service lint" + }, + "dependencies": { + "@sentry/browser": "^5.13.2", + "@sentry/integrations": "^5.13.2", + "axios": "^0.19.2", + "core-js": "^3.6.5", + "fastclick": "^1.0.6", + "js-cookie": "^2.2.1", + "lib-flexible": "^0.3.2", + "lodash": "^4.17.20", + "moment": "^2.29.0", + "nprogress": "^0.2.0", + "regenerator-runtime": "^0.13.5", + "vant": "^2.11.1", + "vue": "^2.6.12", + "vue-enum": "^1.0.5", + "vue-loading-overlay": "^3.4.2", + "vue-router": "^3.4.0", + "vuex": "^3.6.0" + }, + "devDependencies": { + "@sentry/webpack-plugin": "^1.11.1", + "@vue/cli-plugin-babel": "~4.5.0", + "@vue/cli-plugin-eslint": "~4.5.0", + "@vue/cli-plugin-router": "~4.5.0", + "@vue/cli-plugin-vuex": "~4.5.0", + "@vue/cli-service": "~4.5.0", + "babel-eslint": "^10.1.0", + "babel-plugin-import": "^1.13.0", + "babel-plugin-transform-remove-console": "^6.9.4", + "compression-webpack-plugin": "^3.1.0", + "eslint": "^6.7.2", + "eslint-plugin-vue": "^6.2.2", + "node-sass": "^4.14.1", + "postcss-pxtorem": "^5.1.1", + "sass": "^1.3.0", + "sass-loader": "^9.0.3", + "script-ext-html-webpack-plugin": "^2.1.5", + "uglifyjs-webpack-plugin": "^2.2.0", + "vue-template-compiler": "^2.6.12", + "webpack-bundle-analyzer": "^4.2.0" + } +} diff --git a/smart-admin-web/javascript-ant-design-vue3/public/favicon.ico b/smart_admin_v1/smart-admin-h5/public/favicon.ico similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/public/favicon.ico rename to smart_admin_v1/smart-admin-h5/public/favicon.ico diff --git a/smart_admin_v1/smart-admin-h5/public/index.html b/smart_admin_v1/smart-admin-h5/public/index.html new file mode 100644 index 00000000..5f5a1f86 --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/public/index.html @@ -0,0 +1,47 @@ + + + + + + + + + + <% if (process.env.NODE_ENV === 'production') { %> + <% for(var css of htmlWebpackPlugin.options.cdn.css) { %> + + + <% } %> <% for(var js of htmlWebpackPlugin.options.cdn.js) { %> + + + <% } %> <% } %> + + + + <% if (process.env.NODE_ENV === 'development') { %> + + <% } %> + + + + + + <%= htmlWebpackPlugin.options.title %> + + + + + +
+ + + diff --git a/smart_admin_v1/smart-admin-h5/src/App.vue b/smart_admin_v1/smart-admin-h5/src/App.vue new file mode 100644 index 00000000..f3b5bda4 --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/App.vue @@ -0,0 +1,16 @@ + + + + diff --git a/smart_admin_v1/smart-admin-h5/src/api/employee.js b/smart_admin_v1/smart-admin-h5/src/api/employee.js new file mode 100644 index 00000000..76f30459 --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/api/employee.js @@ -0,0 +1,43 @@ +import { postAxios, getAxios } from '@/lib/http'; +export const employeeApi = { + // 员工管理查询 + getEmployeeList: (data) => { + return postAxios('admin/employee/query', data); + }, + // 添加员工 + addEmployee: (data) => { + return postAxios('admin/employee/add', data); + }, + // 更新员工信息 + updateEmployee: (data) => { + return postAxios('admin/employee/update', data); + }, + // 禁用启用单个员工 + updateStatus: (employeeId, status) => { + return getAxios('admin/employee/updateStatus/' + employeeId + '/' + status); + }, + // 批量禁用 + updateStatusBatch: (data) => { + return postAxios('admin/employee/batchUpdateStatus', data); + }, + // 单个员工角色授权 + updateRoles: (data) => { + return postAxios('admin/employee/updateRoles', data); + }, + // 修改密码 + updatePwd: (data) => { + return postAxios('admin/employee/updatePwd', data); + }, + // 重置密码 + resetPassword: (employeeId) => { + return getAxios('admin/employee/resetPasswd/' + employeeId); + }, + // 通过部门id获取当前部门的人员&没有部门的人 + getListEmployeeByDeptId: (departmentId) => { + return getAxios('admin/employee/listEmployeeByDeptId/' + departmentId); + }, + // 删除员工 + deleteEmployee: (employeeId) => { + return postAxios('admin/employee/delete/' + employeeId); + } +}; diff --git a/smart_admin_v1/smart-admin-h5/src/api/file.js b/smart_admin_v1/smart-admin-h5/src/api/file.js new file mode 100644 index 00000000..2bc1a85a --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/api/file.js @@ -0,0 +1,14 @@ +import { postAxios, getAxios } from '@/lib/http'; +import config from '@/config'; +import Cookies from '@/lib/cookie'; +const baseUrl = config.baseUrl.apiUrl; + +export const fileApi = { + // 文件上传 + fileUpload: (folder, data) => { + const url = baseUrl + '/common/file/upload/' + folder + '?x-access-token=' + Cookies.getToken(); + return postAxios(url, data, { + headers: { 'Content-Type': 'multipart/form-data' } + }); + } +}; diff --git a/smart_admin_v1/smart-admin-h5/src/api/login.js b/smart_admin_v1/smart-admin-h5/src/api/login.js new file mode 100644 index 00000000..aad9ae16 --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/api/login.js @@ -0,0 +1,10 @@ +import { getAxios, postAxios } from '@/lib/http'; + +export const loginApi = { + login: (data) => { + return postAxios('/session/login', data); + }, + logout: (token) => { + return getAxios(`/session/logOut?x-access-token=${token}`); + } +}; diff --git a/smart_admin_v1/smart-admin-h5/src/api/system-config.js b/smart_admin_v1/smart-admin-h5/src/api/system-config.js new file mode 100644 index 00000000..a9384d21 --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/api/system-config.js @@ -0,0 +1,31 @@ +// 系统参数API +import { + postAxios, + getAxios +} from '@/lib/http'; +export const systemConfigApi = { + // 查询系统参数列表 + getSystemConfigList: (data) => { + return postAxios('/admin/systemConfig/getListPage', data); + }, + // 添加系统参数 + addSystemConfig: (data) => { + return postAxios('/admin/systemConfig/add', data); + }, + // 更新单条系统参数 + updateSystemConfig: (data) => { + return postAxios('/admin/systemConfig/update', data); + }, + // 通过key获取对应的信息 + getConfigListByKey: (key) => { + return getAxios(`/admin/systemConfig/selectByKey?configKey=${key}`); + }, + // 根据分组查询所有系统配置 + getListByGroup: (group) => { + return getAxios(`/admin/systemConfig/getListByGroup?group=${group}`); + }, + // 获取系统版本信息 + getCodeVersion: () => { + return getAxios('/admin/codeVersion'); + } +}; diff --git a/smart_admin_v1/smart-admin-h5/src/api/user.js b/smart_admin_v1/smart-admin-h5/src/api/user.js new file mode 100644 index 00000000..7d2b2a83 --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/api/user.js @@ -0,0 +1,7 @@ +import { getAxios } from '@/lib/http'; + +export const userApi = { + getSession: () => { + return getAxios('/session/get'); + } +}; diff --git a/smart_admin_v1/smart-admin-h5/src/assets/css/index.scss b/smart_admin_v1/smart-admin-h5/src/assets/css/index.scss new file mode 100644 index 00000000..27597440 --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/assets/css/index.scss @@ -0,0 +1,5 @@ +$text-color: #323233; +$border-color: #ebedf0; +$active-color: #f2f3f5; +$background-color: #f7f8fa; +$background-color-light: #fafafa; diff --git a/smart_admin_v1/smart-admin-h5/src/assets/logo.png b/smart_admin_v1/smart-admin-h5/src/assets/logo.png new file mode 100644 index 00000000..f3d2503f Binary files /dev/null and b/smart_admin_v1/smart-admin-h5/src/assets/logo.png differ diff --git a/smart_admin_v1/smart-admin-h5/src/components/employee/department-employee-selector.vue b/smart_admin_v1/smart-admin-h5/src/components/employee/department-employee-selector.vue new file mode 100644 index 00000000..7889136a --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/components/employee/department-employee-selector.vue @@ -0,0 +1,121 @@ +/** +* @description:department-employee-selector +* @author: zhuoda +* @date: 2020/10/30 13:56 +*/ + + + + + + diff --git a/smart_admin_v1/smart-admin-h5/src/components/form/select-picker/SmartEnumSelectPicker.vue b/smart_admin_v1/smart-admin-h5/src/components/form/select-picker/SmartEnumSelectPicker.vue new file mode 100644 index 00000000..976211d1 --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/components/form/select-picker/SmartEnumSelectPicker.vue @@ -0,0 +1,61 @@ + + + + diff --git a/smart_admin_v1/smart-admin-h5/src/components/form/select-picker/SmartSelectPicker b/smart_admin_v1/smart-admin-h5/src/components/form/select-picker/SmartSelectPicker new file mode 100644 index 00000000..c15bf200 --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/components/form/select-picker/SmartSelectPicker @@ -0,0 +1,59 @@ + + + + + diff --git a/smart_admin_v1/smart-admin-h5/src/components/mixin/session-mixin.js b/smart_admin_v1/smart-admin-h5/src/components/mixin/session-mixin.js new file mode 100644 index 00000000..94026bb0 --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/components/mixin/session-mixin.js @@ -0,0 +1,25 @@ +import cookie from '@/lib/cookie'; +import { userApi } from 'api/user'; + +/** + * 此 mixin为登录以后的页面用的,因为所有的有效路由(排除登录、注册、404,500 这个几个特殊页面)都会走 App.vue里的router + * @author zhuoda + */ +export default { + created: function() { + const token = cookie.getToken(); + // 如果登录过,获取token + if (token && !this.$store.state.user.isHaveGotSessionInfo) { + (async() => { + try { + console.debug(' request session info '); + const res = await userApi.getSession(); + const loginInfo = res.data; + this.$store.commit('user/updateSession', loginInfo); + } catch (e) { + this.$smartSentry.captureException(e); + } + })(); + } + } +}; diff --git a/smart_admin_v1/smart-admin-h5/src/components/van-bar/BackNavBar.vue b/smart_admin_v1/smart-admin-h5/src/components/van-bar/BackNavBar.vue new file mode 100644 index 00000000..bca0b99e --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/components/van-bar/BackNavBar.vue @@ -0,0 +1,24 @@ + + + diff --git a/smart_admin_v1/smart-admin-h5/src/components/van-bar/RouterNavBar.vue b/smart_admin_v1/smart-admin-h5/src/components/van-bar/RouterNavBar.vue new file mode 100644 index 00000000..355a57d6 --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/components/van-bar/RouterNavBar.vue @@ -0,0 +1,27 @@ + + + diff --git a/smart_admin_v1/smart-admin-h5/src/config/index.js b/smart_admin_v1/smart-admin-h5/src/config/index.js new file mode 100644 index 00000000..dafb4212 --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/config/index.js @@ -0,0 +1,46 @@ +console.log('project api url : ', process.env.VUE_APP_URL); + +const isProductionEnv = ['production'].includes(process.env.NODE_ENV); + +module.exports = { + // 配置显示在浏览器标签的title + title: 'Smart-Admin-H5', + // token在Cookie中存储的天数,默认7天 + cookieExpires: 7, + /** + * @description api请求基础路径 + */ + baseUrl: { + apiUrl: process.env.VUE_APP_URL, + erpApiUrl: process.env.VUE_APP_ERP_URL, + webSocketUrl: process.env.VUE_APP_SOCKET_URL + }, + /** + * 打包后静态资源地址;如果是走cdn的话,可以配置如下: + * publicPath: isProd ? 'https://cdn.1024lab.net/static/smart-h5/' : '/' + */ + publicPath: isProductionEnv ? '/manage-h5/' : '/', + + // ==================== cdn 相关 begin ==================== + cdn: { + cdnResource: { + css: [], + js: [ + 'https://cdn.bootcss.com/vue/2.6.11/vue.min.js', + 'https://cdn.bootcss.com/vue-router/3.2.0/vue-router.min.js', + 'https://cdn.bootcdn.net/ajax/libs/vuex/3.5.1/vuex.min.js', + 'https://cdn.bootcss.com/axios/0.19.2/axios.min.js', + 'https://cdn.bootcdn.net/ajax/libs/lodash.js/4.17.20/lodash.min.js' + ] + }, + // 指定资源加载cdn + externals: { + vue: 'Vue', + 'vue-router': 'VueRouter', + vuex: 'Vuex', + axios: 'axios', + lodash: '_' + } + } + // ==================== cdn 相关 end ==================== +}; diff --git a/smart_admin_v1/smart-admin-h5/src/constants/area.js b/smart_admin_v1/smart-admin-h5/src/constants/area.js new file mode 100644 index 00000000..26e2ca99 --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/constants/area.js @@ -0,0 +1,4047 @@ +export default { + province_list: { + 110000: '北京市', + 120000: '天津市', + 130000: '河北省', + 140000: '山西省', + 150000: '内蒙古自治区', + 210000: '辽宁省', + 220000: '吉林省', + 230000: '黑龙江省', + 310000: '上海市', + 320000: '江苏省', + 330000: '浙江省', + 340000: '安徽省', + 350000: '福建省', + 360000: '江西省', + 370000: '山东省', + 410000: '河南省', + 420000: '湖北省', + 430000: '湖南省', + 440000: '广东省', + 450000: '广西壮族自治区', + 460000: '海南省', + 500000: '重庆市', + 510000: '四川省', + 520000: '贵州省', + 530000: '云南省', + 540000: '西藏自治区', + 610000: '陕西省', + 620000: '甘肃省', + 630000: '青海省', + 640000: '宁夏回族自治区', + 650000: '新疆维吾尔自治区', + 710000: '台湾省', + 810000: '香港特别行政区', + 820000: '澳门特别行政区', + 900000: '海外' + }, + city_list: { + 110100: '北京市', + 120100: '天津市', + 130100: '石家庄市', + 130200: '唐山市', + 130300: '秦皇岛市', + 130400: '邯郸市', + 130500: '邢台市', + 130600: '保定市', + 130700: '张家口市', + 130800: '承德市', + 130900: '沧州市', + 131000: '廊坊市', + 131100: '衡水市', + 140100: '太原市', + 140200: '大同市', + 140300: '阳泉市', + 140400: '长治市', + 140500: '晋城市', + 140600: '朔州市', + 140700: '晋中市', + 140800: '运城市', + 140900: '忻州市', + 141000: '临汾市', + 141100: '吕梁市', + 150100: '呼和浩特市', + 150200: '包头市', + 150300: '乌海市', + 150400: '赤峰市', + 150500: '通辽市', + 150600: '鄂尔多斯市', + 150700: '呼伦贝尔市', + 150800: '巴彦淖尔市', + 150900: '乌兰察布市', + 152200: '兴安盟', + 152500: '锡林郭勒盟', + 152900: '阿拉善盟', + 210100: '沈阳市', + 210200: '大连市', + 210300: '鞍山市', + 210400: '抚顺市', + 210500: '本溪市', + 210600: '丹东市', + 210700: '锦州市', + 210800: '营口市', + 210900: '阜新市', + 211000: '辽阳市', + 211100: '盘锦市', + 211200: '铁岭市', + 211300: '朝阳市', + 211400: '葫芦岛市', + 220100: '长春市', + 220200: '吉林市', + 220300: '四平市', + 220400: '辽源市', + 220500: '通化市', + 220600: '白山市', + 220700: '松原市', + 220800: '白城市', + 222400: '延边朝鲜族自治州', + 230100: '哈尔滨市', + 230200: '齐齐哈尔市', + 230300: '鸡西市', + 230400: '鹤岗市', + 230500: '双鸭山市', + 230600: '大庆市', + 230700: '伊春市', + 230800: '佳木斯市', + 230900: '七台河市', + 231000: '牡丹江市', + 231100: '黑河市', + 231200: '绥化市', + 232700: '大兴安岭地区', + 310100: '上海市', + 320100: '南京市', + 320200: '无锡市', + 320300: '徐州市', + 320400: '常州市', + 320500: '苏州市', + 320600: '南通市', + 320700: '连云港市', + 320800: '淮安市', + 320900: '盐城市', + 321000: '扬州市', + 321100: '镇江市', + 321200: '泰州市', + 321300: '宿迁市', + 330100: '杭州市', + 330200: '宁波市', + 330300: '温州市', + 330400: '嘉兴市', + 330500: '湖州市', + 330600: '绍兴市', + 330700: '金华市', + 330800: '衢州市', + 330900: '舟山市', + 331000: '台州市', + 331100: '丽水市', + 340100: '合肥市', + 340200: '芜湖市', + 340300: '蚌埠市', + 340400: '淮南市', + 340500: '马鞍山市', + 340600: '淮北市', + 340700: '铜陵市', + 340800: '安庆市', + 341000: '黄山市', + 341100: '滁州市', + 341200: '阜阳市', + 341300: '宿州市', + 341500: '六安市', + 341600: '亳州市', + 341700: '池州市', + 341800: '宣城市', + 350100: '福州市', + 350200: '厦门市', + 350300: '莆田市', + 350400: '三明市', + 350500: '泉州市', + 350600: '漳州市', + 350700: '南平市', + 350800: '龙岩市', + 350900: '宁德市', + 360100: '南昌市', + 360200: '景德镇市', + 360300: '萍乡市', + 360400: '九江市', + 360500: '新余市', + 360600: '鹰潭市', + 360700: '赣州市', + 360800: '吉安市', + 360900: '宜春市', + 361000: '抚州市', + 361100: '上饶市', + 370100: '济南市', + 370200: '青岛市', + 370300: '淄博市', + 370400: '枣庄市', + 370500: '东营市', + 370600: '烟台市', + 370700: '潍坊市', + 370800: '济宁市', + 370900: '泰安市', + 371000: '威海市', + 371100: '日照市', + 371300: '临沂市', + 371400: '德州市', + 371500: '聊城市', + 371600: '滨州市', + 371700: '菏泽市', + 410100: '郑州市', + 410200: '开封市', + 410300: '洛阳市', + 410400: '平顶山市', + 410500: '安阳市', + 410600: '鹤壁市', + 410700: '新乡市', + 410800: '焦作市', + 410900: '濮阳市', + 411000: '许昌市', + 411100: '漯河市', + 411200: '三门峡市', + 411300: '南阳市', + 411400: '商丘市', + 411500: '信阳市', + 411600: '周口市', + 411700: '驻马店市', + 419000: '省直辖县', + 420100: '武汉市', + 420200: '黄石市', + 420300: '十堰市', + 420500: '宜昌市', + 420600: '襄阳市', + 420700: '鄂州市', + 420800: '荆门市', + 420900: '孝感市', + 421000: '荆州市', + 421100: '黄冈市', + 421200: '咸宁市', + 421300: '随州市', + 422800: '恩施土家族苗族自治州', + 429000: '省直辖县', + 430100: '长沙市', + 430200: '株洲市', + 430300: '湘潭市', + 430400: '衡阳市', + 430500: '邵阳市', + 430600: '岳阳市', + 430700: '常德市', + 430800: '张家界市', + 430900: '益阳市', + 431000: '郴州市', + 431100: '永州市', + 431200: '怀化市', + 431300: '娄底市', + 433100: '湘西土家族苗族自治州', + 440100: '广州市', + 440200: '韶关市', + 440300: '深圳市', + 440400: '珠海市', + 440500: '汕头市', + 440600: '佛山市', + 440700: '江门市', + 440800: '湛江市', + 440900: '茂名市', + 441200: '肇庆市', + 441300: '惠州市', + 441400: '梅州市', + 441500: '汕尾市', + 441600: '河源市', + 441700: '阳江市', + 441800: '清远市', + 441900: '东莞市', + 442000: '中山市', + 445100: '潮州市', + 445200: '揭阳市', + 445300: '云浮市', + 450100: '南宁市', + 450200: '柳州市', + 450300: '桂林市', + 450400: '梧州市', + 450500: '北海市', + 450600: '防城港市', + 450700: '钦州市', + 450800: '贵港市', + 450900: '玉林市', + 451000: '百色市', + 451100: '贺州市', + 451200: '河池市', + 451300: '来宾市', + 451400: '崇左市', + 460100: '海口市', + 460200: '三亚市', + 460300: '三沙市', + 460400: '儋州市', + 469000: '省直辖县', + 500100: '重庆市', + 500200: '县', + 510100: '成都市', + 510300: '自贡市', + 510400: '攀枝花市', + 510500: '泸州市', + 510600: '德阳市', + 510700: '绵阳市', + 510800: '广元市', + 510900: '遂宁市', + 511000: '内江市', + 511100: '乐山市', + 511300: '南充市', + 511400: '眉山市', + 511500: '宜宾市', + 511600: '广安市', + 511700: '达州市', + 511800: '雅安市', + 511900: '巴中市', + 512000: '资阳市', + 513200: '阿坝藏族羌族自治州', + 513300: '甘孜藏族自治州', + 513400: '凉山彝族自治州', + 520100: '贵阳市', + 520200: '六盘水市', + 520300: '遵义市', + 520400: '安顺市', + 520500: '毕节市', + 520600: '铜仁市', + 522300: '黔西南布依族苗族自治州', + 522600: '黔东南苗族侗族自治州', + 522700: '黔南布依族苗族自治州', + 530100: '昆明市', + 530300: '曲靖市', + 530400: '玉溪市', + 530500: '保山市', + 530600: '昭通市', + 530700: '丽江市', + 530800: '普洱市', + 530900: '临沧市', + 532300: '楚雄彝族自治州', + 532500: '红河哈尼族彝族自治州', + 532600: '文山壮族苗族自治州', + 532800: '西双版纳傣族自治州', + 532900: '大理白族自治州', + 533100: '德宏傣族景颇族自治州', + 533300: '怒江傈僳族自治州', + 533400: '迪庆藏族自治州', + 540100: '拉萨市', + 540200: '日喀则市', + 540300: '昌都市', + 540400: '林芝市', + 540500: '山南市', + 540600: '那曲市', + 542500: '阿里地区', + 610100: '西安市', + 610200: '铜川市', + 610300: '宝鸡市', + 610400: '咸阳市', + 610500: '渭南市', + 610600: '延安市', + 610700: '汉中市', + 610800: '榆林市', + 610900: '安康市', + 611000: '商洛市', + 620100: '兰州市', + 620200: '嘉峪关市', + 620300: '金昌市', + 620400: '白银市', + 620500: '天水市', + 620600: '武威市', + 620700: '张掖市', + 620800: '平凉市', + 620900: '酒泉市', + 621000: '庆阳市', + 621100: '定西市', + 621200: '陇南市', + 622900: '临夏回族自治州', + 623000: '甘南藏族自治州', + 630100: '西宁市', + 630200: '海东市', + 632200: '海北藏族自治州', + 632300: '黄南藏族自治州', + 632500: '海南藏族自治州', + 632600: '果洛藏族自治州', + 632700: '玉树藏族自治州', + 632800: '海西蒙古族藏族自治州', + 640100: '银川市', + 640200: '石嘴山市', + 640300: '吴忠市', + 640400: '固原市', + 640500: '中卫市', + 650100: '乌鲁木齐市', + 650200: '克拉玛依市', + 650400: '吐鲁番市', + 650500: '哈密市', + 652300: '昌吉回族自治州', + 652700: '博尔塔拉蒙古自治州', + 652800: '巴音郭楞蒙古自治州', + 652900: '阿克苏地区', + 653000: '克孜勒苏柯尔克孜自治州', + 653100: '喀什地区', + 653200: '和田地区', + 654000: '伊犁哈萨克自治州', + 654200: '塔城地区', + 654300: '阿勒泰地区', + 659000: '自治区直辖县级行政区划', + 710100: '台北市', + 710200: '高雄市', + 710300: '台南市', + 710400: '台中市', + 710500: '金门县', + 710600: '南投县', + 710700: '基隆市', + 710800: '新竹市', + 710900: '嘉义市', + 711100: '新北市', + 711200: '宜兰县', + 711300: '新竹县', + 711400: '桃园县', + 711500: '苗栗县', + 711700: '彰化县', + 711900: '嘉义县', + 712100: '云林县', + 712400: '屏东县', + 712500: '台东县', + 712600: '花莲县', + 712700: '澎湖县', + 712800: '连江县', + 810100: '香港岛', + 810200: '九龙', + 810300: '新界', + 820100: '澳门半岛', + 820200: '离岛', + 900400: '阿富汗', + 900800: '阿尔巴尼亚', + 901000: '南极洲', + 901200: '阿尔及利亚', + 901600: '美属萨摩亚', + 902000: '安道尔', + 902400: '安哥拉', + 902800: '安提瓜和巴布达', + 903100: '阿塞拜疆', + 903200: '阿根廷', + 903600: '澳大利亚', + 904000: '奥地利', + 904400: '巴哈马', + 904800: '巴林', + 905000: '孟加拉', + 905100: '亚美尼亚', + 905200: '巴巴多斯', + 905600: '比利时', + 906000: '百慕大', + 906400: '不丹', + 906800: '玻利维亚', + 907000: '波黑', + 907200: '博茨瓦纳', + 907400: '布韦岛', + 907600: '巴西', + 908400: '伯利兹', + 908600: '英属印度洋领地', + 909000: '所罗门群岛', + 909200: '英属维尔京群岛', + 909600: '文莱', + 910000: '保加利亚', + 910400: '缅甸', + 910800: '布隆迪', + 911200: '白俄罗斯', + 911600: '柬埔寨', + 912000: '喀麦隆', + 912400: '加拿大', + 913200: '佛得角', + 913600: '开曼群岛', + 914000: '中非', + 914400: '斯里兰卡', + 914800: '乍得', + 915200: '智利', + 916200: '圣诞岛', + 916600: '科科斯群岛', + 917000: '哥伦比亚', + 917400: '科摩罗', + 917500: '马约特', + 917800: '刚果(布)', + 918000: '刚果(金)', + 918400: '库克群岛', + 918800: '哥斯达黎加', + 919100: '克罗地亚', + 919200: '古巴', + 919600: '塞浦路斯', + 920300: '捷克', + 920400: '贝宁', + 920800: '丹麦', + 921200: '多米尼克', + 921400: '多米尼加', + 921800: '厄瓜多尔', + 922200: '萨尔瓦多', + 922600: '赤道几内亚', + 923100: '埃塞俄比亚', + 923200: '厄立特里亚', + 923300: '爱沙尼亚', + 923400: '法罗群岛', + 923800: '马尔维纳斯群岛( 福克兰)', + 923900: '南乔治亚岛和南桑威奇群岛', + 924200: '斐济群岛', + 924600: '芬兰', + 924800: '奥兰群岛', + 925000: '法国', + 925400: '法属圭亚那', + 925800: '法属波利尼西亚', + 926000: '法属南部领地', + 926200: '吉布提', + 926600: '加蓬', + 926800: '格鲁吉亚', + 927000: '冈比亚', + 927500: '巴勒斯坦', + 927600: '德国', + 928800: '加纳', + 929200: '直布罗陀', + 929600: '基里巴斯', + 930000: '希腊', + 930400: '格陵兰', + 930800: '格林纳达', + 931200: '瓜德罗普', + 931600: '关岛', + 932000: '危地马拉', + 932400: '几内亚', + 932800: '圭亚那', + 933200: '海地', + 933400: '赫德岛和麦克唐纳群岛', + 933600: '梵蒂冈', + 934000: '洪都拉斯', + 934800: '匈牙利', + 935200: '冰岛', + 935600: '印度', + 936000: '印尼', + 936400: '伊朗', + 936800: '伊拉克', + 937200: '爱尔兰', + 937600: '以色列', + 938000: '意大利', + 938400: '科特迪瓦', + 938800: '牙买加', + 939200: '日本', + 939800: '哈萨克斯坦', + 940000: '约旦', + 940400: '肯尼亚', + 940800: '朝鲜 北朝鲜', + 941000: '韩国', + 941400: '科威特', + 941700: '吉尔吉斯斯坦', + 941800: '老挝', + 942200: '黎巴嫩', + 942600: '莱索托', + 942800: '拉脱维亚', + 943000: '利比里亚', + 943400: '利比亚', + 943800: '列支敦士登', + 944000: '立陶宛', + 944200: '卢森堡', + 945000: '马达加斯加', + 945400: '马拉维', + 945800: '马来西亚', + 946200: '马尔代夫', + 946600: '马里', + 947000: '马耳他', + 947400: '马提尼克', + 947800: '毛里塔尼亚', + 948000: '毛里求斯', + 948400: '墨西哥', + 949200: '摩纳哥', + 949600: '蒙古国', + 949800: '摩尔多瓦', + 949900: '黑山', + 950000: '蒙塞拉特岛', + 950400: '摩洛哥', + 950800: '莫桑比克', + 951200: '阿曼', + 951600: '纳米比亚', + 952000: '瑙鲁', + 952400: '尼泊尔', + 952800: '荷兰', + 953300: '阿鲁巴', + 953500: '荷兰加勒比区', + 954000: '新喀里多尼亚', + 954800: '瓦努阿图', + 955400: '新西兰', + 955800: '尼加拉瓜', + 956200: '尼日尔', + 956600: '尼日利亚', + 957000: '纽埃', + 957400: '诺福克岛', + 957800: '挪威', + 958000: '北马里亚纳群岛', + 958100: '美国本土外小岛屿', + 958300: '密克罗尼西亚联邦', + 958400: '马绍尔群岛', + 958500: '帕劳', + 958600: '巴基斯坦', + 959100: '巴拿马', + 959800: '巴布亚新几内亚', + 960000: '巴拉圭', + 960400: '秘鲁', + 960800: '菲律宾', + 961200: '皮特凯恩群岛', + 961600: '波兰', + 962000: '葡萄牙', + 962400: '几内亚比绍', + 962600: '东帝汶', + 963000: '波多黎各', + 963400: '卡塔尔', + 963800: '留尼汪', + 964200: '罗马尼亚', + 964300: '俄罗斯', + 964600: '卢旺达', + 965200: '圣巴泰勒米岛', + 965400: '圣赫勒拿', + 965900: '圣基茨和尼维斯', + 966000: '安圭拉', + 966200: '圣卢西亚', + 966300: '法属圣马丁', + 966600: '圣皮埃尔和密克隆', + 967000: '圣文森特和格林纳丁斯', + 967400: '圣马力诺', + 967800: '圣多美和普林西比', + 968200: '沙特阿拉伯', + 968600: '塞内加尔', + 968800: '塞尔维亚', + 969000: '塞舌尔', + 969400: '塞拉利昂', + 970200: '新加坡', + 970300: '斯洛伐克', + 970400: '越南', + 970500: '斯洛文尼亚', + 970600: '索马里', + 971000: '南非', + 971600: '津巴布韦', + 972400: '西班牙', + 972800: '南苏丹', + 972900: '苏丹', + 973200: '西撒哈拉', + 974000: '苏里南', + 974400: '斯瓦尔巴群岛和 扬马延岛', + 974800: '斯威士兰', + 975200: '瑞典', + 975600: '瑞士', + 976000: '叙利亚', + 976200: '塔吉克斯坦', + 976400: '泰国', + 976800: '多哥', + 977200: '托克劳', + 977600: '汤加', + 978000: '特立尼达和多巴哥', + 978400: '阿联酋', + 978800: '突尼斯', + 979200: '土耳其', + 979500: '土库曼斯坦', + 979600: '特克斯和凯科斯群岛', + 979800: '图瓦卢', + 980000: '乌干达', + 980400: '乌克兰', + 980700: '马其顿', + 981800: '埃及', + 982600: '英国', + 983100: '根西岛', + 983200: '泽西岛', + 983300: '马恩岛', + 983400: '坦桑尼亚', + 984000: '美国', + 985000: '美属维尔京群岛', + 985400: '布基纳法索', + 985800: '乌拉圭', + 986000: '乌兹别克斯坦', + 986200: '委内瑞拉', + 987600: '瓦利斯和富图纳', + 988200: '萨摩亚', + 988700: '也门', + 989400: '赞比亚' + }, + county_list: { + 110101: '东城区', + 110102: '西城区', + 110105: '朝阳区', + 110106: '丰台区', + 110107: '石景山区', + 110108: '海淀区', + 110109: '门头沟区', + 110111: '房山区', + 110112: '通州区', + 110113: '顺义区', + 110114: '昌平区', + 110115: '大兴区', + 110116: '怀柔区', + 110117: '平谷区', + 110118: '密云区', + 110119: '延庆区', + 120101: '和平区', + 120102: '河东区', + 120103: '河西区', + 120104: '南开区', + 120105: '河北区', + 120106: '红桥区', + 120110: '东丽区', + 120111: '西青区', + 120112: '津南区', + 120113: '北辰区', + 120114: '武清区', + 120115: '宝坻区', + 120116: '滨海新区', + 120117: '宁河区', + 120118: '静海区', + 120119: '蓟州区', + 130102: '长安区', + 130104: '桥西区', + 130105: '新华区', + 130107: '井陉矿区', + 130108: '裕华区', + 130109: '藁城区', + 130110: '鹿泉区', + 130111: '栾城区', + 130121: '井陉县', + 130123: '正定县', + 130125: '行唐县', + 130126: '灵寿县', + 130127: '高邑县', + 130128: '深泽县', + 130129: '赞皇县', + 130130: '无极县', + 130131: '平山县', + 130132: '元氏县', + 130133: '赵县', + 130181: '辛集市', + 130183: '晋州市', + 130184: '新乐市', + 130202: '路南区', + 130203: '路北区', + 130204: '古冶区', + 130205: '开平区', + 130207: '丰南区', + 130208: '丰润区', + 130209: '曹妃甸区', + 130224: '滦南县', + 130225: '乐亭县', + 130227: '迁西县', + 130229: '玉田县', + 130281: '遵化市', + 130283: '迁安市', + 130284: '滦州市', + 130302: '海港区', + 130303: '山海关区', + 130304: '北戴河区', + 130306: '抚宁区', + 130321: '青龙满族自治县', + 130322: '昌黎县', + 130324: '卢龙县', + 130390: '经济技术开发区', + 130402: '邯山区', + 130403: '丛台区', + 130404: '复兴区', + 130406: '峰峰矿区', + 130407: '肥乡区', + 130408: '永年区', + 130423: '临漳县', + 130424: '成安县', + 130425: '大名县', + 130426: '涉县', + 130427: '磁县', + 130430: '邱县', + 130431: '鸡泽县', + 130432: '广平县', + 130433: '馆陶县', + 130434: '魏县', + 130435: '曲周县', + 130481: '武安市', + 130502: '桥东区', + 130503: '桥西区', + 130521: '邢台县', + 130522: '临城县', + 130523: '内丘县', + 130524: '柏乡县', + 130525: '隆尧县', + 130526: '任县', + 130527: '南和县', + 130528: '宁晋县', + 130529: '巨鹿县', + 130530: '新河县', + 130531: '广宗县', + 130532: '平乡县', + 130533: '威县', + 130534: '清河县', + 130535: '临西县', + 130581: '南宫市', + 130582: '沙河市', + 130602: '竞秀区', + 130606: '莲池区', + 130607: '满城区', + 130608: '清苑区', + 130609: '徐水区', + 130623: '涞水县', + 130624: '阜平县', + 130626: '定兴县', + 130627: '唐县', + 130628: '高阳县', + 130629: '容城县', + 130630: '涞源县', + 130631: '望都县', + 130632: '安新县', + 130633: '易县', + 130634: '曲阳县', + 130635: '蠡县', + 130636: '顺平县', + 130637: '博野县', + 130638: '雄县', + 130681: '涿州市', + 130682: '定州市', + 130683: '安国市', + 130684: '高碑店市', + 130702: '桥东区', + 130703: '桥西区', + 130705: '宣化区', + 130706: '下花园区', + 130708: '万全区', + 130709: '崇礼区', + 130722: '张北县', + 130723: '康保县', + 130724: '沽源县', + 130725: '尚义县', + 130726: '蔚县', + 130727: '阳原县', + 130728: '怀安县', + 130730: '怀来县', + 130731: '涿鹿县', + 130732: '赤城县', + 130802: '双桥区', + 130803: '双滦区', + 130804: '鹰手营子矿区', + 130821: '承德县', + 130822: '兴隆县', + 130824: '滦平县', + 130825: '隆化县', + 130826: '丰宁满族自治县', + 130827: '宽城满族自治县', + 130828: '围场满族蒙古族自治县', + 130881: '平泉市', + 130902: '新华区', + 130903: '运河区', + 130921: '沧县', + 130922: '青县', + 130923: '东光县', + 130924: '海兴县', + 130925: '盐山县', + 130926: '肃宁县', + 130927: '南皮县', + 130928: '吴桥县', + 130929: '献县', + 130930: '孟村回族自治县', + 130981: '泊头市', + 130982: '任丘市', + 130983: '黄骅市', + 130984: '河间市', + 131002: '安次区', + 131003: '广阳区', + 131022: '固安县', + 131023: '永清县', + 131024: '香河县', + 131025: '大城县', + 131026: '文安县', + 131028: '大厂回族自治县', + 131081: '霸州市', + 131082: '三河市', + 131090: '开发区', + 131102: '桃城区', + 131103: '冀州区', + 131121: '枣强县', + 131122: '武邑县', + 131123: '武强县', + 131124: '饶阳县', + 131125: '安平县', + 131126: '故城县', + 131127: '景县', + 131128: '阜城县', + 131182: '深州市', + 140105: '小店区', + 140106: '迎泽区', + 140107: '杏花岭区', + 140108: '尖草坪区', + 140109: '万柏林区', + 140110: '晋源区', + 140121: '清徐县', + 140122: '阳曲县', + 140123: '娄烦县', + 140181: '古交市', + 140212: '新荣区', + 140213: '平城区', + 140214: '云冈区', + 140215: '云州区', + 140221: '阳高县', + 140222: '天镇县', + 140223: '广灵县', + 140224: '灵丘县', + 140225: '浑源县', + 140226: '左云县', + 140302: '城区', + 140303: '矿区', + 140311: '郊区', + 140321: '平定县', + 140322: '盂县', + 140403: '潞州区', + 140404: '上党区', + 140405: '屯留区', + 140406: '潞城区', + 140423: '襄垣县', + 140425: '平顺县', + 140426: '黎城县', + 140427: '壶关县', + 140428: '长子县', + 140429: '武乡县', + 140430: '沁县', + 140431: '沁源县', + 140502: '城区', + 140521: '沁水县', + 140522: '阳城县', + 140524: '陵川县', + 140525: '泽州县', + 140581: '高平市', + 140602: '朔城区', + 140603: '平鲁区', + 140621: '山阴县', + 140622: '应县', + 140623: '右玉县', + 140681: '怀仁市', + 140702: '榆次区', + 140721: '榆社县', + 140722: '左权县', + 140723: '和顺县', + 140724: '昔阳县', + 140725: '寿阳县', + 140726: '太谷县', + 140727: '祁县', + 140728: '平遥县', + 140729: '灵石县', + 140781: '介休市', + 140802: '盐湖区', + 140821: '临猗县', + 140822: '万荣县', + 140823: '闻喜县', + 140824: '稷山县', + 140825: '新绛县', + 140826: '绛县', + 140827: '垣曲县', + 140828: '夏县', + 140829: '平陆县', + 140830: '芮城县', + 140881: '永济市', + 140882: '河津市', + 140902: '忻府区', + 140921: '定襄县', + 140922: '五台县', + 140923: '代县', + 140924: '繁峙县', + 140925: '宁武县', + 140926: '静乐县', + 140927: '神池县', + 140928: '五寨县', + 140929: '岢岚县', + 140930: '河曲县', + 140931: '保德县', + 140932: '偏关县', + 140981: '原平市', + 141002: '尧都区', + 141021: '曲沃县', + 141022: '翼城县', + 141023: '襄汾县', + 141024: '洪洞县', + 141025: '古县', + 141026: '安泽县', + 141027: '浮山县', + 141028: '吉县', + 141029: '乡宁县', + 141030: '大宁县', + 141031: '隰县', + 141032: '永和县', + 141033: '蒲县', + 141034: '汾西县', + 141081: '侯马市', + 141082: '霍州市', + 141102: '离石区', + 141121: '文水县', + 141122: '交城县', + 141123: '兴县', + 141124: '临县', + 141125: '柳林县', + 141126: '石楼县', + 141127: '岚县', + 141128: '方山县', + 141129: '中阳县', + 141130: '交口县', + 141181: '孝义市', + 141182: '汾阳市', + 150102: '新城区', + 150103: '回民区', + 150104: '玉泉区', + 150105: '赛罕区', + 150121: '土默特左旗', + 150122: '托克托县', + 150123: '和林格尔县', + 150124: '清水河县', + 150125: '武川县', + 150202: '东河区', + 150203: '昆都仑区', + 150204: '青山区', + 150205: '石拐区', + 150206: '白云鄂博矿区', + 150207: '九原区', + 150221: '土默特右旗', + 150222: '固阳县', + 150223: '达尔罕茂明安联合旗', + 150302: '海勃湾区', + 150303: '海南区', + 150304: '乌达区', + 150402: '红山区', + 150403: '元宝山区', + 150404: '松山区', + 150421: '阿鲁科尔沁旗', + 150422: '巴林左旗', + 150423: '巴林右旗', + 150424: '林西县', + 150425: '克什克腾旗', + 150426: '翁牛特旗', + 150428: '喀喇沁旗', + 150429: '宁城县', + 150430: '敖汉旗', + 150502: '科尔沁区', + 150521: '科尔沁左翼中旗', + 150522: '科尔沁左翼后旗', + 150523: '开鲁县', + 150524: '库伦旗', + 150525: '奈曼旗', + 150526: '扎鲁特旗', + 150581: '霍林郭勒市', + 150602: '东胜区', + 150603: '康巴什区', + 150621: '达拉特旗', + 150622: '准格尔旗', + 150623: '鄂托克前旗', + 150624: '鄂托克旗', + 150625: '杭锦旗', + 150626: '乌审旗', + 150627: '伊金霍洛旗', + 150702: '海拉尔区', + 150703: '扎赉诺尔区', + 150721: '阿荣旗', + 150722: '莫力达瓦达斡尔族自治旗', + 150723: '鄂伦春自治旗', + 150724: '鄂温克族自治旗', + 150725: '陈巴尔虎旗', + 150726: '新巴尔虎左旗', + 150727: '新巴尔虎右旗', + 150781: '满洲里市', + 150782: '牙克石市', + 150783: '扎兰屯市', + 150784: '额尔古纳市', + 150785: '根河市', + 150802: '临河区', + 150821: '五原县', + 150822: '磴口县', + 150823: '乌拉特前旗', + 150824: '乌拉特中旗', + 150825: '乌拉特后旗', + 150826: '杭锦后旗', + 150902: '集宁区', + 150921: '卓资县', + 150922: '化德县', + 150923: '商都县', + 150924: '兴和县', + 150925: '凉城县', + 150926: '察哈尔右翼前旗', + 150927: '察哈尔右翼中旗', + 150928: '察哈尔右翼后旗', + 150929: '四子王旗', + 150981: '丰镇市', + 152201: '乌兰浩特市', + 152202: '阿尔山市', + 152221: '科尔沁右翼前旗', + 152222: '科尔沁右翼中旗', + 152223: '扎赉特旗', + 152224: '突泉县', + 152501: '二连浩特市', + 152502: '锡林浩特市', + 152522: '阿巴嘎旗', + 152523: '苏尼特左旗', + 152524: '苏尼特右旗', + 152525: '东乌珠穆沁旗', + 152526: '西乌珠穆沁旗', + 152527: '太仆寺旗', + 152528: '镶黄旗', + 152529: '正镶白旗', + 152530: '正蓝旗', + 152531: '多伦县', + 152921: '阿拉善左旗', + 152922: '阿拉善右旗', + 152923: '额济纳旗', + 210102: '和平区', + 210103: '沈河区', + 210104: '大东区', + 210105: '皇姑区', + 210106: '铁西区', + 210111: '苏家屯区', + 210112: '浑南区', + 210113: '沈北新区', + 210114: '于洪区', + 210115: '辽中区', + 210123: '康平县', + 210124: '法库县', + 210181: '新民市', + 210190: '经济技术开发区', + 210202: '中山区', + 210203: '西岗区', + 210204: '沙河口区', + 210211: '甘井子区', + 210212: '旅顺口区', + 210213: '金州区', + 210214: '普兰店区', + 210224: '长海县', + 210281: '瓦房店市', + 210283: '庄河市', + 210302: '铁东区', + 210303: '铁西区', + 210304: '立山区', + 210311: '千山区', + 210321: '台安县', + 210323: '岫岩满族自治县', + 210381: '海城市', + 210390: '高新区', + 210402: '新抚区', + 210403: '东洲区', + 210404: '望花区', + 210411: '顺城区', + 210421: '抚顺县', + 210422: '新宾满族自治县', + 210423: '清原满族自治县', + 210502: '平山区', + 210503: '溪湖区', + 210504: '明山区', + 210505: '南芬区', + 210521: '本溪满族自治县', + 210522: '桓仁满族自治县', + 210602: '元宝区', + 210603: '振兴区', + 210604: '振安区', + 210624: '宽甸满族自治县', + 210681: '东港市', + 210682: '凤城市', + 210702: '古塔区', + 210703: '凌河区', + 210711: '太和区', + 210726: '黑山县', + 210727: '义县', + 210781: '凌海市', + 210782: '北镇市', + 210793: '经济技术开发区', + 210802: '站前区', + 210803: '西市区', + 210804: '鲅鱼圈区', + 210811: '老边区', + 210881: '盖州市', + 210882: '大石桥市', + 210902: '海州区', + 210903: '新邱区', + 210904: '太平区', + 210905: '清河门区', + 210911: '细河区', + 210921: '阜新蒙古族自治县', + 210922: '彰武县', + 211002: '白塔区', + 211003: '文圣区', + 211004: '宏伟区', + 211005: '弓长岭区', + 211011: '太子河区', + 211021: '辽阳县', + 211081: '灯塔市', + 211102: '双台子区', + 211103: '兴隆台区', + 211104: '大洼区', + 211122: '盘山县', + 211202: '银州区', + 211204: '清河区', + 211221: '铁岭县', + 211223: '西丰县', + 211224: '昌图县', + 211281: '调兵山市', + 211282: '开原市', + 211302: '双塔区', + 211303: '龙城区', + 211321: '朝阳县', + 211322: '建平县', + 211324: '喀喇沁左翼蒙古族自治县', + 211381: '北票市', + 211382: '凌源市', + 211402: '连山区', + 211403: '龙港区', + 211404: '南票区', + 211421: '绥中县', + 211422: '建昌县', + 211481: '兴城市', + 220102: '南关区', + 220103: '宽城区', + 220104: '朝阳区', + 220105: '二道区', + 220106: '绿园区', + 220112: '双阳区', + 220113: '九台区', + 220122: '农安县', + 220182: '榆树市', + 220183: '德惠市', + 220192: '经济技术开发区', + 220202: '昌邑区', + 220203: '龙潭区', + 220204: '船营区', + 220211: '丰满区', + 220221: '永吉县', + 220281: '蛟河市', + 220282: '桦甸市', + 220283: '舒兰市', + 220284: '磐石市', + 220302: '铁西区', + 220303: '铁东区', + 220322: '梨树县', + 220323: '伊通满族自治县', + 220381: '公主岭市', + 220382: '双辽市', + 220402: '龙山区', + 220403: '西安区', + 220421: '东丰县', + 220422: '东辽县', + 220502: '东昌区', + 220503: '二道江区', + 220521: '通化县', + 220523: '辉南县', + 220524: '柳河县', + 220581: '梅河口市', + 220582: '集安市', + 220602: '浑江区', + 220605: '江源区', + 220621: '抚松县', + 220622: '靖宇县', + 220623: '长白朝鲜族自治县', + 220681: '临江市', + 220702: '宁江区', + 220721: '前郭尔罗斯蒙古族自治县', + 220722: '长岭县', + 220723: '乾安县', + 220781: '扶余市', + 220802: '洮北区', + 220821: '镇赉县', + 220822: '通榆县', + 220881: '洮南市', + 220882: '大安市', + 222401: '延吉市', + 222402: '图们市', + 222403: '敦化市', + 222404: '珲春市', + 222405: '龙井市', + 222406: '和龙市', + 222424: '汪清县', + 222426: '安图县', + 230102: '道里区', + 230103: '南岗区', + 230104: '道外区', + 230108: '平房区', + 230109: '松北区', + 230110: '香坊区', + 230111: '呼兰区', + 230112: '阿城区', + 230113: '双城区', + 230123: '依兰县', + 230124: '方正县', + 230125: '宾县', + 230126: '巴彦县', + 230127: '木兰县', + 230128: '通河县', + 230129: '延寿县', + 230183: '尚志市', + 230184: '五常市', + 230202: '龙沙区', + 230203: '建华区', + 230204: '铁锋区', + 230205: '昂昂溪区', + 230206: '富拉尔基区', + 230207: '碾子山区', + 230208: '梅里斯达斡尔族区', + 230221: '龙江县', + 230223: '依安县', + 230224: '泰来县', + 230225: '甘南县', + 230227: '富裕县', + 230229: '克山县', + 230230: '克东县', + 230231: '拜泉县', + 230281: '讷河市', + 230302: '鸡冠区', + 230303: '恒山区', + 230304: '滴道区', + 230305: '梨树区', + 230306: '城子河区', + 230307: '麻山区', + 230321: '鸡东县', + 230381: '虎林市', + 230382: '密山市', + 230402: '向阳区', + 230403: '工农区', + 230404: '南山区', + 230405: '兴安区', + 230406: '东山区', + 230407: '兴山区', + 230421: '萝北县', + 230422: '绥滨县', + 230502: '尖山区', + 230503: '岭东区', + 230505: '四方台区', + 230506: '宝山区', + 230521: '集贤县', + 230522: '友谊县', + 230523: '宝清县', + 230524: '饶河县', + 230602: '萨尔图区', + 230603: '龙凤区', + 230604: '让胡路区', + 230605: '红岗区', + 230606: '大同区', + 230621: '肇州县', + 230622: '肇源县', + 230623: '林甸县', + 230624: '杜尔伯特蒙古族自治县', + 230702: '伊春区', + 230703: '南岔区', + 230704: '友好区', + 230705: '西林区', + 230706: '翠峦区', + 230707: '新青区', + 230708: '美溪区', + 230709: '金山屯区', + 230710: '五营区', + 230711: '乌马河区', + 230712: '汤旺河区', + 230713: '带岭区', + 230714: '乌伊岭区', + 230715: '红星区', + 230716: '上甘岭区', + 230722: '嘉荫县', + 230781: '铁力市', + 230803: '向阳区', + 230804: '前进区', + 230805: '东风区', + 230811: '郊区', + 230822: '桦南县', + 230826: '桦川县', + 230828: '汤原县', + 230881: '同江市', + 230882: '富锦市', + 230883: '抚远市', + 230902: '新兴区', + 230903: '桃山区', + 230904: '茄子河区', + 230921: '勃利县', + 231002: '东安区', + 231003: '阳明区', + 231004: '爱民区', + 231005: '西安区', + 231025: '林口县', + 231081: '绥芬河市', + 231083: '海林市', + 231084: '宁安市', + 231085: '穆棱市', + 231086: '东宁市', + 231102: '爱辉区', + 231121: '嫩江县', + 231123: '逊克县', + 231124: '孙吴县', + 231181: '北安市', + 231182: '五大连池市', + 231202: '北林区', + 231221: '望奎县', + 231222: '兰西县', + 231223: '青冈县', + 231224: '庆安县', + 231225: '明水县', + 231226: '绥棱县', + 231281: '安达市', + 231282: '肇东市', + 231283: '海伦市', + 232701: '漠河市', + 232721: '呼玛县', + 232722: '塔河县', + 232790: '松岭区', + 232791: '呼中区', + 232792: '加格达奇区', + 232793: '新林区', + 310101: '黄浦区', + 310104: '徐汇区', + 310105: '长宁区', + 310106: '静安区', + 310107: '普陀区', + 310109: '虹口区', + 310110: '杨浦区', + 310112: '闵行区', + 310113: '宝山区', + 310114: '嘉定区', + 310115: '浦东新区', + 310116: '金山区', + 310117: '松江区', + 310118: '青浦区', + 310120: '奉贤区', + 310151: '崇明区', + 320102: '玄武区', + 320104: '秦淮区', + 320105: '建邺区', + 320106: '鼓楼区', + 320111: '浦口区', + 320113: '栖霞区', + 320114: '雨花台区', + 320115: '江宁区', + 320116: '六合区', + 320117: '溧水区', + 320118: '高淳区', + 320205: '锡山区', + 320206: '惠山区', + 320211: '滨湖区', + 320213: '梁溪区', + 320214: '新吴区', + 320281: '江阴市', + 320282: '宜兴市', + 320302: '鼓楼区', + 320303: '云龙区', + 320305: '贾汪区', + 320311: '泉山区', + 320312: '铜山区', + 320321: '丰县', + 320322: '沛县', + 320324: '睢宁县', + 320381: '新沂市', + 320382: '邳州市', + 320391: '工业园区', + 320402: '天宁区', + 320404: '钟楼区', + 320411: '新北区', + 320412: '武进区', + 320413: '金坛区', + 320481: '溧阳市', + 320505: '虎丘区', + 320506: '吴中区', + 320507: '相城区', + 320508: '姑苏区', + 320509: '吴江区', + 320581: '常熟市', + 320582: '张家港市', + 320583: '昆山市', + 320585: '太仓市', + 320590: '工业园区', + 320591: '高新区', + 320602: '崇川区', + 320611: '港闸区', + 320612: '通州区', + 320623: '如东县', + 320681: '启东市', + 320682: '如皋市', + 320684: '海门市', + 320685: '海安市', + 320691: '高新区', + 320703: '连云区', + 320706: '海州区', + 320707: '赣榆区', + 320722: '东海县', + 320723: '灌云县', + 320724: '灌南县', + 320803: '淮安区', + 320804: '淮阴区', + 320812: '清江浦区', + 320813: '洪泽区', + 320826: '涟水县', + 320830: '盱眙县', + 320831: '金湖县', + 320890: '经济开发区', + 320902: '亭湖区', + 320903: '盐都区', + 320904: '大丰区', + 320921: '响水县', + 320922: '滨海县', + 320923: '阜宁县', + 320924: '射阳县', + 320925: '建湖县', + 320981: '东台市', + 321002: '广陵区', + 321003: '邗江区', + 321012: '江都区', + 321023: '宝应县', + 321081: '仪征市', + 321084: '高邮市', + 321090: '经济开发区', + 321102: '京口区', + 321111: '润州区', + 321112: '丹徒区', + 321181: '丹阳市', + 321182: '扬中市', + 321183: '句容市', + 321202: '海陵区', + 321203: '高港区', + 321204: '姜堰区', + 321281: '兴化市', + 321282: '靖江市', + 321283: '泰兴市', + 321302: '宿城区', + 321311: '宿豫区', + 321322: '沭阳县', + 321323: '泗阳县', + 321324: '泗洪县', + 330102: '上城区', + 330103: '下城区', + 330104: '江干区', + 330105: '拱墅区', + 330106: '西湖区', + 330108: '滨江区', + 330109: '萧山区', + 330110: '余杭区', + 330111: '富阳区', + 330112: '临安区', + 330122: '桐庐县', + 330127: '淳安县', + 330182: '建德市', + 330203: '海曙区', + 330205: '江北区', + 330206: '北仑区', + 330211: '镇海区', + 330212: '鄞州区', + 330213: '奉化区', + 330225: '象山县', + 330226: '宁海县', + 330281: '余姚市', + 330282: '慈溪市', + 330302: '鹿城区', + 330303: '龙湾区', + 330304: '瓯海区', + 330305: '洞头区', + 330324: '永嘉县', + 330326: '平阳县', + 330327: '苍南县', + 330328: '文成县', + 330329: '泰顺县', + 330381: '瑞安市', + 330382: '乐清市', + 330402: '南湖区', + 330411: '秀洲区', + 330421: '嘉善县', + 330424: '海盐县', + 330481: '海宁市', + 330482: '平湖市', + 330483: '桐乡市', + 330502: '吴兴区', + 330503: '南浔区', + 330521: '德清县', + 330522: '长兴县', + 330523: '安吉县', + 330602: '越城区', + 330603: '柯桥区', + 330604: '上虞区', + 330624: '新昌县', + 330681: '诸暨市', + 330683: '嵊州市', + 330702: '婺城区', + 330703: '金东区', + 330723: '武义县', + 330726: '浦江县', + 330727: '磐安县', + 330781: '兰溪市', + 330782: '义乌市', + 330783: '东阳市', + 330784: '永康市', + 330802: '柯城区', + 330803: '衢江区', + 330822: '常山县', + 330824: '开化县', + 330825: '龙游县', + 330881: '江山市', + 330902: '定海区', + 330903: '普陀区', + 330921: '岱山县', + 330922: '嵊泗县', + 331002: '椒江区', + 331003: '黄岩区', + 331004: '路桥区', + 331022: '三门县', + 331023: '天台县', + 331024: '仙居县', + 331081: '温岭市', + 331082: '临海市', + 331083: '玉环市', + 331102: '莲都区', + 331121: '青田县', + 331122: '缙云县', + 331123: '遂昌县', + 331124: '松阳县', + 331125: '云和县', + 331126: '庆元县', + 331127: '景宁畲族自治县', + 331181: '龙泉市', + 340102: '瑶海区', + 340103: '庐阳区', + 340104: '蜀山区', + 340111: '包河区', + 340121: '长丰县', + 340122: '肥东县', + 340123: '肥西县', + 340124: '庐江县', + 340181: '巢湖市', + 340190: '高新技术开发区', + 340191: '经济技术开发区', + 340202: '镜湖区', + 340203: '弋江区', + 340207: '鸠江区', + 340208: '三山区', + 340221: '芜湖县', + 340222: '繁昌县', + 340223: '南陵县', + 340225: '无为县', + 340302: '龙子湖区', + 340303: '蚌山区', + 340304: '禹会区', + 340311: '淮上区', + 340321: '怀远县', + 340322: '五河县', + 340323: '固镇县', + 340402: '大通区', + 340403: '田家庵区', + 340404: '谢家集区', + 340405: '八公山区', + 340406: '潘集区', + 340421: '凤台县', + 340422: '寿县', + 340503: '花山区', + 340504: '雨山区', + 340506: '博望区', + 340521: '当涂县', + 340522: '含山县', + 340523: '和县', + 340602: '杜集区', + 340603: '相山区', + 340604: '烈山区', + 340621: '濉溪县', + 340705: '铜官区', + 340706: '义安区', + 340711: '郊区', + 340722: '枞阳县', + 340802: '迎江区', + 340803: '大观区', + 340811: '宜秀区', + 340822: '怀宁县', + 340824: '潜山县', + 340825: '太湖县', + 340826: '宿松县', + 340827: '望江县', + 340828: '岳西县', + 340881: '桐城市', + 341002: '屯溪区', + 341003: '黄山区', + 341004: '徽州区', + 341021: '歙县', + 341022: '休宁县', + 341023: '黟县', + 341024: '祁门县', + 341102: '琅琊区', + 341103: '南谯区', + 341122: '来安县', + 341124: '全椒县', + 341125: '定远县', + 341126: '凤阳县', + 341181: '天长市', + 341182: '明光市', + 341202: '颍州区', + 341203: '颍东区', + 341204: '颍泉区', + 341221: '临泉县', + 341222: '太和县', + 341225: '阜南县', + 341226: '颍上县', + 341282: '界首市', + 341302: '埇桥区', + 341321: '砀山县', + 341322: '萧县', + 341323: '灵璧县', + 341324: '泗县', + 341390: '经济开发区', + 341502: '金安区', + 341503: '裕安区', + 341504: '叶集区', + 341522: '霍邱县', + 341523: '舒城县', + 341524: '金寨县', + 341525: '霍山县', + 341602: '谯城区', + 341621: '涡阳县', + 341622: '蒙城县', + 341623: '利辛县', + 341702: '贵池区', + 341721: '东至县', + 341722: '石台县', + 341723: '青阳县', + 341802: '宣州区', + 341821: '郎溪县', + 341822: '广德县', + 341823: '泾县', + 341824: '绩溪县', + 341825: '旌德县', + 341881: '宁国市', + 350102: '鼓楼区', + 350103: '台江区', + 350104: '仓山区', + 350105: '马尾区', + 350111: '晋安区', + 350112: '长乐区', + 350121: '闽侯县', + 350122: '连江县', + 350123: '罗源县', + 350124: '闽清县', + 350125: '永泰县', + 350128: '平潭县', + 350181: '福清市', + 350203: '思明区', + 350205: '海沧区', + 350206: '湖里区', + 350211: '集美区', + 350212: '同安区', + 350213: '翔安区', + 350302: '城厢区', + 350303: '涵江区', + 350304: '荔城区', + 350305: '秀屿区', + 350322: '仙游县', + 350402: '梅列区', + 350403: '三元区', + 350421: '明溪县', + 350423: '清流县', + 350424: '宁化县', + 350425: '大田县', + 350426: '尤溪县', + 350427: '沙县', + 350428: '将乐县', + 350429: '泰宁县', + 350430: '建宁县', + 350481: '永安市', + 350502: '鲤城区', + 350503: '丰泽区', + 350504: '洛江区', + 350505: '泉港区', + 350521: '惠安县', + 350524: '安溪县', + 350525: '永春县', + 350526: '德化县', + 350527: '金门县', + 350581: '石狮市', + 350582: '晋江市', + 350583: '南安市', + 350602: '芗城区', + 350603: '龙文区', + 350622: '云霄县', + 350623: '漳浦县', + 350624: '诏安县', + 350625: '长泰县', + 350626: '东山县', + 350627: '南靖县', + 350628: '平和县', + 350629: '华安县', + 350681: '龙海市', + 350702: '延平区', + 350703: '建阳区', + 350721: '顺昌县', + 350722: '浦城县', + 350723: '光泽县', + 350724: '松溪县', + 350725: '政和县', + 350781: '邵武市', + 350782: '武夷山市', + 350783: '建瓯市', + 350802: '新罗区', + 350803: '永定区', + 350821: '长汀县', + 350823: '上杭县', + 350824: '武平县', + 350825: '连城县', + 350881: '漳平市', + 350902: '蕉城区', + 350921: '霞浦县', + 350922: '古田县', + 350923: '屏南县', + 350924: '寿宁县', + 350925: '周宁县', + 350926: '柘荣县', + 350981: '福安市', + 350982: '福鼎市', + 360102: '东湖区', + 360103: '西湖区', + 360104: '青云谱区', + 360105: '湾里区', + 360111: '青山湖区', + 360112: '新建区', + 360121: '南昌县', + 360123: '安义县', + 360124: '进贤县', + 360190: '经济技术开发区', + 360192: '高新区', + 360202: '昌江区', + 360203: '珠山区', + 360222: '浮梁县', + 360281: '乐平市', + 360302: '安源区', + 360313: '湘东区', + 360321: '莲花县', + 360322: '上栗县', + 360323: '芦溪县', + 360402: '濂溪区', + 360403: '浔阳区', + 360404: '柴桑区', + 360423: '武宁县', + 360424: '修水县', + 360425: '永修县', + 360426: '德安县', + 360428: '都昌县', + 360429: '湖口县', + 360430: '彭泽县', + 360481: '瑞昌市', + 360482: '共青城市', + 360483: '庐山市', + 360490: '经济技术开发区', + 360502: '渝水区', + 360521: '分宜县', + 360602: '月湖区', + 360603: '余江区', + 360681: '贵溪市', + 360702: '章贡区', + 360703: '南康区', + 360704: '赣县区', + 360722: '信丰县', + 360723: '大余县', + 360724: '上犹县', + 360725: '崇义县', + 360726: '安远县', + 360727: '龙南县', + 360728: '定南县', + 360729: '全南县', + 360730: '宁都县', + 360731: '于都县', + 360732: '兴国县', + 360733: '会昌县', + 360734: '寻乌县', + 360735: '石城县', + 360781: '瑞金市', + 360802: '吉州区', + 360803: '青原区', + 360821: '吉安县', + 360822: '吉水县', + 360823: '峡江县', + 360824: '新干县', + 360825: '永丰县', + 360826: '泰和县', + 360827: '遂川县', + 360828: '万安县', + 360829: '安福县', + 360830: '永新县', + 360881: '井冈山市', + 360902: '袁州区', + 360921: '奉新县', + 360922: '万载县', + 360923: '上高县', + 360924: '宜丰县', + 360925: '靖安县', + 360926: '铜鼓县', + 360981: '丰城市', + 360982: '樟树市', + 360983: '高安市', + 361002: '临川区', + 361003: '东乡区', + 361021: '南城县', + 361022: '黎川县', + 361023: '南丰县', + 361024: '崇仁县', + 361025: '乐安县', + 361026: '宜黄县', + 361027: '金溪县', + 361028: '资溪县', + 361030: '广昌县', + 361102: '信州区', + 361103: '广丰区', + 361121: '上饶县', + 361123: '玉山县', + 361124: '铅山县', + 361125: '横峰县', + 361126: '弋阳县', + 361127: '余干县', + 361128: '鄱阳县', + 361129: '万年县', + 361130: '婺源县', + 361181: '德兴市', + 370102: '历下区', + 370103: '市中区', + 370104: '槐荫区', + 370105: '天桥区', + 370112: '历城区', + 370113: '长清区', + 370114: '章丘区', + 370115: '济阳区', + 370116: '莱芜区', + 370117: '钢城区', + 370124: '平阴县', + 370126: '商河县', + 370190: '高新区', + 370202: '市南区', + 370203: '市北区', + 370211: '黄岛区', + 370212: '崂山区', + 370213: '李沧区', + 370214: '城阳区', + 370215: '即墨区', + 370281: '胶州市', + 370283: '平度市', + 370285: '莱西市', + 370290: '开发区', + 370302: '淄川区', + 370303: '张店区', + 370304: '博山区', + 370305: '临淄区', + 370306: '周村区', + 370321: '桓台县', + 370322: '高青县', + 370323: '沂源县', + 370402: '市中区', + 370403: '薛城区', + 370404: '峄城区', + 370405: '台儿庄区', + 370406: '山亭区', + 370481: '滕州市', + 370502: '东营区', + 370503: '河口区', + 370505: '垦利区', + 370522: '利津县', + 370523: '广饶县', + 370602: '芝罘区', + 370611: '福山区', + 370612: '牟平区', + 370613: '莱山区', + 370634: '长岛县', + 370681: '龙口市', + 370682: '莱阳市', + 370683: '莱州市', + 370684: '蓬莱市', + 370685: '招远市', + 370686: '栖霞市', + 370687: '海阳市', + 370690: '开发区', + 370702: '潍城区', + 370703: '寒亭区', + 370704: '坊子区', + 370705: '奎文区', + 370724: '临朐县', + 370725: '昌乐县', + 370781: '青州市', + 370782: '诸城市', + 370783: '寿光市', + 370784: '安丘市', + 370785: '高密市', + 370786: '昌邑市', + 370790: '开发区', + 370791: '高新区', + 370811: '任城区', + 370812: '兖州区', + 370826: '微山县', + 370827: '鱼台县', + 370828: '金乡县', + 370829: '嘉祥县', + 370830: '汶上县', + 370831: '泗水县', + 370832: '梁山县', + 370881: '曲阜市', + 370883: '邹城市', + 370890: '高新区', + 370902: '泰山区', + 370911: '岱岳区', + 370921: '宁阳县', + 370923: '东平县', + 370982: '新泰市', + 370983: '肥城市', + 371002: '环翠区', + 371003: '文登区', + 371082: '荣成市', + 371083: '乳山市', + 371091: '经济技术开发区', + 371102: '东港区', + 371103: '岚山区', + 371121: '五莲县', + 371122: '莒县', + 371302: '兰山区', + 371311: '罗庄区', + 371312: '河东区', + 371321: '沂南县', + 371322: '郯城县', + 371323: '沂水县', + 371324: '兰陵县', + 371325: '费县', + 371326: '平邑县', + 371327: '莒南县', + 371328: '蒙阴县', + 371329: '临沭县', + 371402: '德城区', + 371403: '陵城区', + 371422: '宁津县', + 371423: '庆云县', + 371424: '临邑县', + 371425: '齐河县', + 371426: '平原县', + 371427: '夏津县', + 371428: '武城县', + 371481: '乐陵市', + 371482: '禹城市', + 371502: '东昌府区', + 371521: '阳谷县', + 371522: '莘县', + 371523: '茌平县', + 371524: '东阿县', + 371525: '冠县', + 371526: '高唐县', + 371581: '临清市', + 371602: '滨城区', + 371603: '沾化区', + 371621: '惠民县', + 371622: '阳信县', + 371623: '无棣县', + 371625: '博兴县', + 371681: '邹平市', + 371702: '牡丹区', + 371703: '定陶区', + 371721: '曹县', + 371722: '单县', + 371723: '成武县', + 371724: '巨野县', + 371725: '郓城县', + 371726: '鄄城县', + 371728: '东明县', + 410102: '中原区', + 410103: '二七区', + 410104: '管城回族区', + 410105: '金水区', + 410106: '上街区', + 410108: '惠济区', + 410122: '中牟县', + 410181: '巩义市', + 410182: '荥阳市', + 410183: '新密市', + 410184: '新郑市', + 410185: '登封市', + 410190: '高新技术开发区', + 410191: '经济技术开发区', + 410202: '龙亭区', + 410203: '顺河回族区', + 410204: '鼓楼区', + 410205: '禹王台区', + 410212: '祥符区', + 410221: '杞县', + 410222: '通许县', + 410223: '尉氏县', + 410225: '兰考县', + 410302: '老城区', + 410303: '西工区', + 410304: '瀍河回族区', + 410305: '涧西区', + 410306: '吉利区', + 410311: '洛龙区', + 410322: '孟津县', + 410323: '新安县', + 410324: '栾川县', + 410325: '嵩县', + 410326: '汝阳县', + 410327: '宜阳县', + 410328: '洛宁县', + 410329: '伊川县', + 410381: '偃师市', + 410402: '新华区', + 410403: '卫东区', + 410404: '石龙区', + 410411: '湛河区', + 410421: '宝丰县', + 410422: '叶县', + 410423: '鲁山县', + 410425: '郏县', + 410481: '舞钢市', + 410482: '汝州市', + 410502: '文峰区', + 410503: '北关区', + 410505: '殷都区', + 410506: '龙安区', + 410522: '安阳县', + 410523: '汤阴县', + 410526: '滑县', + 410527: '内黄县', + 410581: '林州市', + 410590: '开发区', + 410602: '鹤山区', + 410603: '山城区', + 410611: '淇滨区', + 410621: '浚县', + 410622: '淇县', + 410702: '红旗区', + 410703: '卫滨区', + 410704: '凤泉区', + 410711: '牧野区', + 410721: '新乡县', + 410724: '获嘉县', + 410725: '原阳县', + 410726: '延津县', + 410727: '封丘县', + 410728: '长垣县', + 410781: '卫辉市', + 410782: '辉县市', + 410802: '解放区', + 410803: '中站区', + 410804: '马村区', + 410811: '山阳区', + 410821: '修武县', + 410822: '博爱县', + 410823: '武陟县', + 410825: '温县', + 410882: '沁阳市', + 410883: '孟州市', + 410902: '华龙区', + 410922: '清丰县', + 410923: '南乐县', + 410926: '范县', + 410927: '台前县', + 410928: '濮阳县', + 411002: '魏都区', + 411003: '建安区', + 411024: '鄢陵县', + 411025: '襄城县', + 411081: '禹州市', + 411082: '长葛市', + 411102: '源汇区', + 411103: '郾城区', + 411104: '召陵区', + 411121: '舞阳县', + 411122: '临颍县', + 411202: '湖滨区', + 411203: '陕州区', + 411221: '渑池县', + 411224: '卢氏县', + 411281: '义马市', + 411282: '灵宝市', + 411302: '宛城区', + 411303: '卧龙区', + 411321: '南召县', + 411322: '方城县', + 411323: '西峡县', + 411324: '镇平县', + 411325: '内乡县', + 411326: '淅川县', + 411327: '社旗县', + 411328: '唐河县', + 411329: '新野县', + 411330: '桐柏县', + 411381: '邓州市', + 411402: '梁园区', + 411403: '睢阳区', + 411421: '民权县', + 411422: '睢县', + 411423: '宁陵县', + 411424: '柘城县', + 411425: '虞城县', + 411426: '夏邑县', + 411481: '永城市', + 411502: '浉河区', + 411503: '平桥区', + 411521: '罗山县', + 411522: '光山县', + 411523: '新县', + 411524: '商城县', + 411525: '固始县', + 411526: '潢川县', + 411527: '淮滨县', + 411528: '息县', + 411602: '川汇区', + 411621: '扶沟县', + 411622: '西华县', + 411623: '商水县', + 411624: '沈丘县', + 411625: '郸城县', + 411626: '淮阳县', + 411627: '太康县', + 411628: '鹿邑县', + 411681: '项城市', + 411690: '经济开发区', + 411702: '驿城区', + 411721: '西平县', + 411722: '上蔡县', + 411723: '平舆县', + 411724: '正阳县', + 411725: '确山县', + 411726: '泌阳县', + 411727: '汝南县', + 411728: '遂平县', + 411729: '新蔡县', + 419001: '济源市', + 420102: '江岸区', + 420103: '江汉区', + 420104: '硚口区', + 420105: '汉阳区', + 420106: '武昌区', + 420107: '青山区', + 420111: '洪山区', + 420112: '东西湖区', + 420113: '汉南区', + 420114: '蔡甸区', + 420115: '江夏区', + 420116: '黄陂区', + 420117: '新洲区', + 420202: '黄石港区', + 420203: '西塞山区', + 420204: '下陆区', + 420205: '铁山区', + 420222: '阳新县', + 420281: '大冶市', + 420302: '茅箭区', + 420303: '张湾区', + 420304: '郧阳区', + 420322: '郧西县', + 420323: '竹山县', + 420324: '竹溪县', + 420325: '房县', + 420381: '丹江口市', + 420502: '西陵区', + 420503: '伍家岗区', + 420504: '点军区', + 420505: '猇亭区', + 420506: '夷陵区', + 420525: '远安县', + 420526: '兴山县', + 420527: '秭归县', + 420528: '长阳土家族自治县', + 420529: '五峰土家族自治县', + 420581: '宜都市', + 420582: '当阳市', + 420583: '枝江市', + 420590: '经济开发区', + 420602: '襄城区', + 420606: '樊城区', + 420607: '襄州区', + 420624: '南漳县', + 420625: '谷城县', + 420626: '保康县', + 420682: '老河口市', + 420683: '枣阳市', + 420684: '宜城市', + 420702: '梁子湖区', + 420703: '华容区', + 420704: '鄂城区', + 420802: '东宝区', + 420804: '掇刀区', + 420822: '沙洋县', + 420881: '钟祥市', + 420882: '京山市', + 420902: '孝南区', + 420921: '孝昌县', + 420922: '大悟县', + 420923: '云梦县', + 420981: '应城市', + 420982: '安陆市', + 420984: '汉川市', + 421002: '沙市区', + 421003: '荆州区', + 421022: '公安县', + 421023: '监利县', + 421024: '江陵县', + 421081: '石首市', + 421083: '洪湖市', + 421087: '松滋市', + 421102: '黄州区', + 421121: '团风县', + 421122: '红安县', + 421123: '罗田县', + 421124: '英山县', + 421125: '浠水县', + 421126: '蕲春县', + 421127: '黄梅县', + 421181: '麻城市', + 421182: '武穴市', + 421202: '咸安区', + 421221: '嘉鱼县', + 421222: '通城县', + 421223: '崇阳县', + 421224: '通山县', + 421281: '赤壁市', + 421303: '曾都区', + 421321: '随县', + 421381: '广水市', + 422801: '恩施市', + 422802: '利川市', + 422822: '建始县', + 422823: '巴东县', + 422825: '宣恩县', + 422826: '咸丰县', + 422827: '来凤县', + 422828: '鹤峰县', + 429004: '仙桃市', + 429005: '潜江市', + 429006: '天门市', + 429021: '神农架林区', + 430102: '芙蓉区', + 430103: '天心区', + 430104: '岳麓区', + 430105: '开福区', + 430111: '雨花区', + 430112: '望城区', + 430121: '长沙县', + 430181: '浏阳市', + 430182: '宁乡市', + 430202: '荷塘区', + 430203: '芦淞区', + 430204: '石峰区', + 430211: '天元区', + 430212: '渌口区', + 430223: '攸县', + 430224: '茶陵县', + 430225: '炎陵县', + 430281: '醴陵市', + 430302: '雨湖区', + 430304: '岳塘区', + 430321: '湘潭县', + 430381: '湘乡市', + 430382: '韶山市', + 430405: '珠晖区', + 430406: '雁峰区', + 430407: '石鼓区', + 430408: '蒸湘区', + 430412: '南岳区', + 430421: '衡阳县', + 430422: '衡南县', + 430423: '衡山县', + 430424: '衡东县', + 430426: '祁东县', + 430481: '耒阳市', + 430482: '常宁市', + 430502: '双清区', + 430503: '大祥区', + 430511: '北塔区', + 430521: '邵东县', + 430522: '新邵县', + 430523: '邵阳县', + 430524: '隆回县', + 430525: '洞口县', + 430527: '绥宁县', + 430528: '新宁县', + 430529: '城步苗族自治县', + 430581: '武冈市', + 430602: '岳阳楼区', + 430603: '云溪区', + 430611: '君山区', + 430621: '岳阳县', + 430623: '华容县', + 430624: '湘阴县', + 430626: '平江县', + 430681: '汨罗市', + 430682: '临湘市', + 430702: '武陵区', + 430703: '鼎城区', + 430721: '安乡县', + 430722: '汉寿县', + 430723: '澧县', + 430724: '临澧县', + 430725: '桃源县', + 430726: '石门县', + 430781: '津市市', + 430802: '永定区', + 430811: '武陵源区', + 430821: '慈利县', + 430822: '桑植县', + 430902: '资阳区', + 430903: '赫山区', + 430921: '南县', + 430922: '桃江县', + 430923: '安化县', + 430981: '沅江市', + 431002: '北湖区', + 431003: '苏仙区', + 431021: '桂阳县', + 431022: '宜章县', + 431023: '永兴县', + 431024: '嘉禾县', + 431025: '临武县', + 431026: '汝城县', + 431027: '桂东县', + 431028: '安仁县', + 431081: '资兴市', + 431102: '零陵区', + 431103: '冷水滩区', + 431121: '祁阳县', + 431122: '东安县', + 431123: '双牌县', + 431124: '道县', + 431125: '江永县', + 431126: '宁远县', + 431127: '蓝山县', + 431128: '新田县', + 431129: '江华瑶族自治县', + 431202: '鹤城区', + 431221: '中方县', + 431222: '沅陵县', + 431223: '辰溪县', + 431224: '溆浦县', + 431225: '会同县', + 431226: '麻阳苗族自治县', + 431227: '新晃侗族自治县', + 431228: '芷江侗族自治县', + 431229: '靖州苗族侗族自治县', + 431230: '通道侗族自治县', + 431281: '洪江市', + 431302: '娄星区', + 431321: '双峰县', + 431322: '新化县', + 431381: '冷水江市', + 431382: '涟源市', + 433101: '吉首市', + 433122: '泸溪县', + 433123: '凤凰县', + 433124: '花垣县', + 433125: '保靖县', + 433126: '古丈县', + 433127: '永顺县', + 433130: '龙山县', + 440103: '荔湾区', + 440104: '越秀区', + 440105: '海珠区', + 440106: '天河区', + 440111: '白云区', + 440112: '黄埔区', + 440113: '番禺区', + 440114: '花都区', + 440115: '南沙区', + 440117: '从化区', + 440118: '增城区', + 440203: '武江区', + 440204: '浈江区', + 440205: '曲江区', + 440222: '始兴县', + 440224: '仁化县', + 440229: '翁源县', + 440232: '乳源瑶族自治县', + 440233: '新丰县', + 440281: '乐昌市', + 440282: '南雄市', + 440303: '罗湖区', + 440304: '福田区', + 440305: '南山区', + 440306: '宝安区', + 440307: '龙岗区', + 440308: '盐田区', + 440309: '龙华区', + 440310: '坪山区', + 440311: '光明区', + 440402: '香洲区', + 440403: '斗门区', + 440404: '金湾区', + 440507: '龙湖区', + 440511: '金平区', + 440512: '濠江区', + 440513: '潮阳区', + 440514: '潮南区', + 440515: '澄海区', + 440523: '南澳县', + 440604: '禅城区', + 440605: '南海区', + 440606: '顺德区', + 440607: '三水区', + 440608: '高明区', + 440703: '蓬江区', + 440704: '江海区', + 440705: '新会区', + 440781: '台山市', + 440783: '开平市', + 440784: '鹤山市', + 440785: '恩平市', + 440802: '赤坎区', + 440803: '霞山区', + 440804: '坡头区', + 440811: '麻章区', + 440823: '遂溪县', + 440825: '徐闻县', + 440881: '廉江市', + 440882: '雷州市', + 440883: '吴川市', + 440890: '经济技术开发区', + 440902: '茂南区', + 440904: '电白区', + 440981: '高州市', + 440982: '化州市', + 440983: '信宜市', + 441202: '端州区', + 441203: '鼎湖区', + 441204: '高要区', + 441223: '广宁县', + 441224: '怀集县', + 441225: '封开县', + 441226: '德庆县', + 441284: '四会市', + 441302: '惠城区', + 441303: '惠阳区', + 441322: '博罗县', + 441323: '惠东县', + 441324: '龙门县', + 441402: '梅江区', + 441403: '梅县区', + 441422: '大埔县', + 441423: '丰顺县', + 441424: '五华县', + 441426: '平远县', + 441427: '蕉岭县', + 441481: '兴宁市', + 441502: '城区', + 441521: '海丰县', + 441523: '陆河县', + 441581: '陆丰市', + 441602: '源城区', + 441621: '紫金县', + 441622: '龙川县', + 441623: '连平县', + 441624: '和平县', + 441625: '东源县', + 441702: '江城区', + 441704: '阳东区', + 441721: '阳西县', + 441781: '阳春市', + 441802: '清城区', + 441803: '清新区', + 441821: '佛冈县', + 441823: '阳山县', + 441825: '连山壮族瑶族自治县', + 441826: '连南瑶族自治县', + 441881: '英德市', + 441882: '连州市', + 441901: '中堂镇', + 441903: '南城街道办事处', + 441904: '长安镇', + 441905: '东坑镇', + 441906: '樟木头镇', + 441907: '莞城街道办事处', + 441908: '石龙镇', + 441909: '桥头镇', + 441910: '万江街道办事处', + 441911: '麻涌镇', + 441912: '虎门镇', + 441913: '谢岗镇', + 441914: '石碣镇', + 441915: '茶山镇', + 441916: '东城街道办事处', + 441917: '洪梅镇', + 441918: '道滘镇', + 441919: '高埗镇', + 441920: '企石镇', + 441921: '凤岗镇', + 441922: '大岭山镇', + 441923: '松山湖管委会', + 441924: '清溪镇', + 441925: '望牛墩镇', + 441926: '厚街镇', + 441927: '常平镇', + 441928: '寮步镇', + 441929: '石排镇', + 441930: '横沥镇', + 441931: '塘厦镇', + 441932: '黄江镇', + 441933: '大朗镇', + 441934: '东莞港', + 441935: '东莞生态园', + 441990: '沙田镇', + 442001: '南头镇', + 442002: '神湾镇', + 442003: '东凤镇', + 442004: '五桂山街道办事处', + 442005: '黄圃镇', + 442006: '小榄镇', + 442007: '石岐区街道办事处', + 442008: '横栏镇', + 442009: '三角镇', + 442010: '三乡镇', + 442011: '港口镇', + 442012: '沙溪镇', + 442013: '板芙镇', + 442015: '东升镇', + 442016: '阜沙镇', + 442017: '民众镇', + 442018: '东区街道办事处', + 442019: '火炬开发区街道办事处', + 442020: '西区街道办事处', + 442021: '南区街道办事处', + 442022: '古镇镇', + 442023: '坦洲镇', + 442024: '大涌镇', + 442025: '南朗镇', + 445102: '湘桥区', + 445103: '潮安区', + 445122: '饶平县', + 445202: '榕城区', + 445203: '揭东区', + 445222: '揭西县', + 445224: '惠来县', + 445281: '普宁市', + 445302: '云城区', + 445303: '云安区', + 445321: '新兴县', + 445322: '郁南县', + 445381: '罗定市', + 450102: '兴宁区', + 450103: '青秀区', + 450105: '江南区', + 450107: '西乡塘区', + 450108: '良庆区', + 450109: '邕宁区', + 450110: '武鸣区', + 450123: '隆安县', + 450124: '马山县', + 450125: '上林县', + 450126: '宾阳县', + 450127: '横县', + 450202: '城中区', + 450203: '鱼峰区', + 450204: '柳南区', + 450205: '柳北区', + 450206: '柳江区', + 450222: '柳城县', + 450223: '鹿寨县', + 450224: '融安县', + 450225: '融水苗族自治县', + 450226: '三江侗族自治县', + 450302: '秀峰区', + 450303: '叠彩区', + 450304: '象山区', + 450305: '七星区', + 450311: '雁山区', + 450312: '临桂区', + 450321: '阳朔县', + 450323: '灵川县', + 450324: '全州县', + 450325: '兴安县', + 450326: '永福县', + 450327: '灌阳县', + 450328: '龙胜各族自治县', + 450329: '资源县', + 450330: '平乐县', + 450332: '恭城瑶族自治县', + 450381: '荔浦市', + 450403: '万秀区', + 450405: '长洲区', + 450406: '龙圩区', + 450421: '苍梧县', + 450422: '藤县', + 450423: '蒙山县', + 450481: '岑溪市', + 450502: '海城区', + 450503: '银海区', + 450512: '铁山港区', + 450521: '合浦县', + 450602: '港口区', + 450603: '防城区', + 450621: '上思县', + 450681: '东兴市', + 450702: '钦南区', + 450703: '钦北区', + 450721: '灵山县', + 450722: '浦北县', + 450802: '港北区', + 450803: '港南区', + 450804: '覃塘区', + 450821: '平南县', + 450881: '桂平市', + 450902: '玉州区', + 450903: '福绵区', + 450921: '容县', + 450922: '陆川县', + 450923: '博白县', + 450924: '兴业县', + 450981: '北流市', + 451002: '右江区', + 451021: '田阳县', + 451022: '田东县', + 451023: '平果县', + 451024: '德保县', + 451026: '那坡县', + 451027: '凌云县', + 451028: '乐业县', + 451029: '田林县', + 451030: '西林县', + 451031: '隆林各族自治县', + 451081: '靖西市', + 451102: '八步区', + 451103: '平桂区', + 451121: '昭平县', + 451122: '钟山县', + 451123: '富川瑶族自治县', + 451202: '金城江区', + 451203: '宜州区', + 451221: '南丹县', + 451222: '天峨县', + 451223: '凤山县', + 451224: '东兰县', + 451225: '罗城仫佬族自治县', + 451226: '环江毛南族自治县', + 451227: '巴马瑶族自治县', + 451228: '都安瑶族自治县', + 451229: '大化瑶族自治县', + 451302: '兴宾区', + 451321: '忻城县', + 451322: '象州县', + 451323: '武宣县', + 451324: '金秀瑶族自治县', + 451381: '合山市', + 451402: '江州区', + 451421: '扶绥县', + 451422: '宁明县', + 451423: '龙州县', + 451424: '大新县', + 451425: '天等县', + 451481: '凭祥市', + 460105: '秀英区', + 460106: '龙华区', + 460107: '琼山区', + 460108: '美兰区', + 460202: '海棠区', + 460203: '吉阳区', + 460204: '天涯区', + 460205: '崖州区', + 460321: '西沙群岛', + 460322: '南沙群岛', + 460323: '中沙群岛的岛礁及其海域', + 460401: '那大镇', + 460402: '和庆镇', + 460403: '南丰镇', + 460404: '大成镇', + 460405: '雅星镇', + 460406: '兰洋镇', + 460407: '光村镇', + 460408: '木棠镇', + 460409: '海头镇', + 460410: '峨蔓镇', + 460411: '王五镇', + 460412: '白马井镇', + 460413: '中和镇', + 460414: '排浦镇', + 460415: '东成镇', + 460416: '新州镇', + 460417: '洋浦经济开发区', + 460418: '华南热作学院', + 469001: '五指山市', + 469002: '琼海市', + 469005: '文昌市', + 469006: '万宁市', + 469007: '东方市', + 469021: '定安县', + 469022: '屯昌县', + 469023: '澄迈县', + 469024: '临高县', + 469025: '白沙黎族自治县', + 469026: '昌江黎族自治县', + 469027: '乐东黎族自治县', + 469028: '陵水黎族自治县', + 469029: '保亭黎族苗族自治县', + 469030: '琼中黎族苗族自治县', + 500101: '万州区', + 500102: '涪陵区', + 500103: '渝中区', + 500104: '大渡口区', + 500105: '江北区', + 500106: '沙坪坝区', + 500107: '九龙坡区', + 500108: '南岸区', + 500109: '北碚区', + 500110: '綦江区', + 500111: '大足区', + 500112: '渝北区', + 500113: '巴南区', + 500114: '黔江区', + 500115: '长寿区', + 500116: '江津区', + 500117: '合川区', + 500118: '永川区', + 500119: '南川区', + 500120: '璧山区', + 500151: '铜梁区', + 500152: '潼南区', + 500153: '荣昌区', + 500154: '开州区', + 500155: '梁平区', + 500156: '武隆区', + 500229: '城口县', + 500230: '丰都县', + 500231: '垫江县', + 500233: '忠县', + 500235: '云阳县', + 500236: '奉节县', + 500237: '巫山县', + 500238: '巫溪县', + 500240: '石柱土家族自治县', + 500241: '秀山土家族苗族自治县', + 500242: '酉阳土家族苗族自治县', + 500243: '彭水苗族土家族自治县', + 510104: '锦江区', + 510105: '青羊区', + 510106: '金牛区', + 510107: '武侯区', + 510108: '成华区', + 510112: '龙泉驿区', + 510113: '青白江区', + 510114: '新都区', + 510115: '温江区', + 510116: '双流区', + 510117: '郫都区', + 510121: '金堂县', + 510129: '大邑县', + 510131: '蒲江县', + 510132: '新津县', + 510181: '都江堰市', + 510182: '彭州市', + 510183: '邛崃市', + 510184: '崇州市', + 510185: '简阳市', + 510191: '高新区', + 510302: '自流井区', + 510303: '贡井区', + 510304: '大安区', + 510311: '沿滩区', + 510321: '荣县', + 510322: '富顺县', + 510402: '东区', + 510403: '西区', + 510411: '仁和区', + 510421: '米易县', + 510422: '盐边县', + 510502: '江阳区', + 510503: '纳溪区', + 510504: '龙马潭区', + 510521: '泸县', + 510522: '合江县', + 510524: '叙永县', + 510525: '古蔺县', + 510603: '旌阳区', + 510604: '罗江区', + 510623: '中江县', + 510681: '广汉市', + 510682: '什邡市', + 510683: '绵竹市', + 510703: '涪城区', + 510704: '游仙区', + 510705: '安州区', + 510722: '三台县', + 510723: '盐亭县', + 510725: '梓潼县', + 510726: '北川羌族自治县', + 510727: '平武县', + 510781: '江油市', + 510791: '高新区', + 510802: '利州区', + 510811: '昭化区', + 510812: '朝天区', + 510821: '旺苍县', + 510822: '青川县', + 510823: '剑阁县', + 510824: '苍溪县', + 510903: '船山区', + 510904: '安居区', + 510921: '蓬溪县', + 510922: '射洪县', + 510923: '大英县', + 511002: '市中区', + 511011: '东兴区', + 511024: '威远县', + 511025: '资中县', + 511083: '隆昌市', + 511102: '市中区', + 511111: '沙湾区', + 511112: '五通桥区', + 511113: '金口河区', + 511123: '犍为县', + 511124: '井研县', + 511126: '夹江县', + 511129: '沐川县', + 511132: '峨边彝族自治县', + 511133: '马边彝族自治县', + 511181: '峨眉山市', + 511302: '顺庆区', + 511303: '高坪区', + 511304: '嘉陵区', + 511321: '南部县', + 511322: '营山县', + 511323: '蓬安县', + 511324: '仪陇县', + 511325: '西充县', + 511381: '阆中市', + 511402: '东坡区', + 511403: '彭山区', + 511421: '仁寿县', + 511423: '洪雅县', + 511424: '丹棱县', + 511425: '青神县', + 511502: '翠屏区', + 511503: '南溪区', + 511504: '叙州区', + 511523: '江安县', + 511524: '长宁县', + 511525: '高县', + 511526: '珙县', + 511527: '筠连县', + 511528: '兴文县', + 511529: '屏山县', + 511602: '广安区', + 511603: '前锋区', + 511621: '岳池县', + 511622: '武胜县', + 511623: '邻水县', + 511681: '华蓥市', + 511702: '通川区', + 511703: '达川区', + 511722: '宣汉县', + 511723: '开江县', + 511724: '大竹县', + 511725: '渠县', + 511781: '万源市', + 511802: '雨城区', + 511803: '名山区', + 511822: '荥经县', + 511823: '汉源县', + 511824: '石棉县', + 511825: '天全县', + 511826: '芦山县', + 511827: '宝兴县', + 511902: '巴州区', + 511903: '恩阳区', + 511921: '通江县', + 511922: '南江县', + 511923: '平昌县', + 512002: '雁江区', + 512021: '安岳县', + 512022: '乐至县', + 513201: '马尔康市', + 513221: '汶川县', + 513222: '理县', + 513223: '茂县', + 513224: '松潘县', + 513225: '九寨沟县', + 513226: '金川县', + 513227: '小金县', + 513228: '黑水县', + 513230: '壤塘县', + 513231: '阿坝县', + 513232: '若尔盖县', + 513233: '红原县', + 513301: '康定市', + 513322: '泸定县', + 513323: '丹巴县', + 513324: '九龙县', + 513325: '雅江县', + 513326: '道孚县', + 513327: '炉霍县', + 513328: '甘孜县', + 513329: '新龙县', + 513330: '德格县', + 513331: '白玉县', + 513332: '石渠县', + 513333: '色达县', + 513334: '理塘县', + 513335: '巴塘县', + 513336: '乡城县', + 513337: '稻城县', + 513338: '得荣县', + 513401: '西昌市', + 513422: '木里藏族自治县', + 513423: '盐源县', + 513424: '德昌县', + 513425: '会理县', + 513426: '会东县', + 513427: '宁南县', + 513428: '普格县', + 513429: '布拖县', + 513430: '金阳县', + 513431: '昭觉县', + 513432: '喜德县', + 513433: '冕宁县', + 513434: '越西县', + 513435: '甘洛县', + 513436: '美姑县', + 513437: '雷波县', + 520102: '南明区', + 520103: '云岩区', + 520111: '花溪区', + 520112: '乌当区', + 520113: '白云区', + 520115: '观山湖区', + 520121: '开阳县', + 520122: '息烽县', + 520123: '修文县', + 520181: '清镇市', + 520201: '钟山区', + 520203: '六枝特区', + 520221: '水城县', + 520281: '盘州市', + 520302: '红花岗区', + 520303: '汇川区', + 520304: '播州区', + 520322: '桐梓县', + 520323: '绥阳县', + 520324: '正安县', + 520325: '道真仡佬族苗族自治县', + 520326: '务川仡佬族苗族自治县', + 520327: '凤冈县', + 520328: '湄潭县', + 520329: '余庆县', + 520330: '习水县', + 520381: '赤水市', + 520382: '仁怀市', + 520402: '西秀区', + 520403: '平坝区', + 520422: '普定县', + 520423: '镇宁布依族苗族自治县', + 520424: '关岭布依族苗族自治县', + 520425: '紫云苗族布依族自治县', + 520502: '七星关区', + 520521: '大方县', + 520522: '黔西县', + 520523: '金沙县', + 520524: '织金县', + 520525: '纳雍县', + 520526: '威宁彝族回族苗族自治县', + 520527: '赫章县', + 520602: '碧江区', + 520603: '万山区', + 520621: '江口县', + 520622: '玉屏侗族自治县', + 520623: '石阡县', + 520624: '思南县', + 520625: '印江土家族苗族自治县', + 520626: '德江县', + 520627: '沿河土家族自治县', + 520628: '松桃苗族自治县', + 522301: '兴义市', + 522302: '兴仁市', + 522323: '普安县', + 522324: '晴隆县', + 522325: '贞丰县', + 522326: '望谟县', + 522327: '册亨县', + 522328: '安龙县', + 522601: '凯里市', + 522622: '黄平县', + 522623: '施秉县', + 522624: '三穗县', + 522625: '镇远县', + 522626: '岑巩县', + 522627: '天柱县', + 522628: '锦屏县', + 522629: '剑河县', + 522630: '台江县', + 522631: '黎平县', + 522632: '榕江县', + 522633: '从江县', + 522634: '雷山县', + 522635: '麻江县', + 522636: '丹寨县', + 522701: '都匀市', + 522702: '福泉市', + 522722: '荔波县', + 522723: '贵定县', + 522725: '瓮安县', + 522726: '独山县', + 522727: '平塘县', + 522728: '罗甸县', + 522729: '长顺县', + 522730: '龙里县', + 522731: '惠水县', + 522732: '三都水族自治县', + 530102: '五华区', + 530103: '盘龙区', + 530111: '官渡区', + 530112: '西山区', + 530113: '东川区', + 530114: '呈贡区', + 530115: '晋宁区', + 530124: '富民县', + 530125: '宜良县', + 530126: '石林彝族自治县', + 530127: '嵩明县', + 530128: '禄劝彝族苗族自治县', + 530129: '寻甸回族彝族自治县', + 530181: '安宁市', + 530302: '麒麟区', + 530303: '沾益区', + 530304: '马龙区', + 530322: '陆良县', + 530323: '师宗县', + 530324: '罗平县', + 530325: '富源县', + 530326: '会泽县', + 530381: '宣威市', + 530402: '红塔区', + 530403: '江川区', + 530422: '澄江县', + 530423: '通海县', + 530424: '华宁县', + 530425: '易门县', + 530426: '峨山彝族自治县', + 530427: '新平彝族傣族自治县', + 530428: '元江哈尼族彝族傣族自治县', + 530502: '隆阳区', + 530521: '施甸县', + 530523: '龙陵县', + 530524: '昌宁县', + 530581: '腾冲市', + 530602: '昭阳区', + 530621: '鲁甸县', + 530622: '巧家县', + 530623: '盐津县', + 530624: '大关县', + 530625: '永善县', + 530626: '绥江县', + 530627: '镇雄县', + 530628: '彝良县', + 530629: '威信县', + 530681: '水富市', + 530702: '古城区', + 530721: '玉龙纳西族自治县', + 530722: '永胜县', + 530723: '华坪县', + 530724: '宁蒗彝族自治县', + 530802: '思茅区', + 530821: '宁洱哈尼族彝族自治县', + 530822: '墨江哈尼族自治县', + 530823: '景东彝族自治县', + 530824: '景谷傣族彝族自治县', + 530825: '镇沅彝族哈尼族拉祜族自治县', + 530826: '江城哈尼族彝族自治县', + 530827: '孟连傣族拉祜族佤族自治县', + 530828: '澜沧拉祜族自治县', + 530829: '西盟佤族自治县', + 530902: '临翔区', + 530921: '凤庆县', + 530922: '云县', + 530923: '永德县', + 530924: '镇康县', + 530925: '双江拉祜族佤族布朗族傣族自治县', + 530926: '耿马傣族佤族自治县', + 530927: '沧源佤族自治县', + 532301: '楚雄市', + 532322: '双柏县', + 532323: '牟定县', + 532324: '南华县', + 532325: '姚安县', + 532326: '大姚县', + 532327: '永仁县', + 532328: '元谋县', + 532329: '武定县', + 532331: '禄丰县', + 532501: '个旧市', + 532502: '开远市', + 532503: '蒙自市', + 532504: '弥勒市', + 532523: '屏边苗族自治县', + 532524: '建水县', + 532525: '石屏县', + 532527: '泸西县', + 532528: '元阳县', + 532529: '红河县', + 532530: '金平苗族瑶族傣族自治县', + 532531: '绿春县', + 532532: '河口瑶族自治县', + 532601: '文山市', + 532622: '砚山县', + 532623: '西畴县', + 532624: '麻栗坡县', + 532625: '马关县', + 532626: '丘北县', + 532627: '广南县', + 532628: '富宁县', + 532801: '景洪市', + 532822: '勐海县', + 532823: '勐腊县', + 532901: '大理市', + 532922: '漾濞彝族自治县', + 532923: '祥云县', + 532924: '宾川县', + 532925: '弥渡县', + 532926: '南涧彝族自治县', + 532927: '巍山彝族回族自治县', + 532928: '永平县', + 532929: '云龙县', + 532930: '洱源县', + 532931: '剑川县', + 532932: '鹤庆县', + 533102: '瑞丽市', + 533103: '芒市', + 533122: '梁河县', + 533123: '盈江县', + 533124: '陇川县', + 533301: '泸水市', + 533323: '福贡县', + 533324: '贡山独龙族怒族自治县', + 533325: '兰坪白族普米族自治县', + 533401: '香格里拉市', + 533422: '德钦县', + 533423: '维西傈僳族自治县', + 540102: '城关区', + 540103: '堆龙德庆区', + 540104: '达孜区', + 540121: '林周县', + 540122: '当雄县', + 540123: '尼木县', + 540124: '曲水县', + 540127: '墨竹工卡县', + 540202: '桑珠孜区', + 540221: '南木林县', + 540222: '江孜县', + 540223: '定日县', + 540224: '萨迦县', + 540225: '拉孜县', + 540226: '昂仁县', + 540227: '谢通门县', + 540228: '白朗县', + 540229: '仁布县', + 540230: '康马县', + 540231: '定结县', + 540232: '仲巴县', + 540233: '亚东县', + 540234: '吉隆县', + 540235: '聂拉木县', + 540236: '萨嘎县', + 540237: '岗巴县', + 540302: '卡若区', + 540321: '江达县', + 540322: '贡觉县', + 540323: '类乌齐县', + 540324: '丁青县', + 540325: '察雅县', + 540326: '八宿县', + 540327: '左贡县', + 540328: '芒康县', + 540329: '洛隆县', + 540330: '边坝县', + 540402: '巴宜区', + 540421: '工布江达县', + 540422: '米林县', + 540423: '墨脱县', + 540424: '波密县', + 540425: '察隅县', + 540426: '朗县', + 540502: '乃东区', + 540521: '扎囊县', + 540522: '贡嘎县', + 540523: '桑日县', + 540524: '琼结县', + 540525: '曲松县', + 540526: '措美县', + 540527: '洛扎县', + 540528: '加查县', + 540529: '隆子县', + 540530: '错那县', + 540531: '浪卡子县', + 540602: '色尼区', + 540621: '嘉黎县', + 540622: '比如县', + 540623: '聂荣县', + 540624: '安多县', + 540625: '申扎县', + 540626: '索县', + 540627: '班戈县', + 540628: '巴青县', + 540629: '尼玛县', + 540630: '双湖县', + 542521: '普兰县', + 542522: '札达县', + 542523: '噶尔县', + 542524: '日土县', + 542525: '革吉县', + 542526: '改则县', + 542527: '措勤县', + 610102: '新城区', + 610103: '碑林区', + 610104: '莲湖区', + 610111: '灞桥区', + 610112: '未央区', + 610113: '雁塔区', + 610114: '阎良区', + 610115: '临潼区', + 610116: '长安区', + 610117: '高陵区', + 610118: '鄠邑区', + 610122: '蓝田县', + 610124: '周至县', + 610202: '王益区', + 610203: '印台区', + 610204: '耀州区', + 610222: '宜君县', + 610302: '渭滨区', + 610303: '金台区', + 610304: '陈仓区', + 610322: '凤翔县', + 610323: '岐山县', + 610324: '扶风县', + 610326: '眉县', + 610327: '陇县', + 610328: '千阳县', + 610329: '麟游县', + 610330: '凤县', + 610331: '太白县', + 610402: '秦都区', + 610403: '杨陵区', + 610404: '渭城区', + 610422: '三原县', + 610423: '泾阳县', + 610424: '乾县', + 610425: '礼泉县', + 610426: '永寿县', + 610428: '长武县', + 610429: '旬邑县', + 610430: '淳化县', + 610431: '武功县', + 610481: '兴平市', + 610482: '彬州市', + 610502: '临渭区', + 610503: '华州区', + 610522: '潼关县', + 610523: '大荔县', + 610524: '合阳县', + 610525: '澄城县', + 610526: '蒲城县', + 610527: '白水县', + 610528: '富平县', + 610581: '韩城市', + 610582: '华阴市', + 610602: '宝塔区', + 610603: '安塞区', + 610621: '延长县', + 610622: '延川县', + 610623: '子长县', + 610625: '志丹县', + 610626: '吴起县', + 610627: '甘泉县', + 610628: '富县', + 610629: '洛川县', + 610630: '宜川县', + 610631: '黄龙县', + 610632: '黄陵县', + 610702: '汉台区', + 610703: '南郑区', + 610722: '城固县', + 610723: '洋县', + 610724: '西乡县', + 610725: '勉县', + 610726: '宁强县', + 610727: '略阳县', + 610728: '镇巴县', + 610729: '留坝县', + 610730: '佛坪县', + 610802: '榆阳区', + 610803: '横山区', + 610822: '府谷县', + 610824: '靖边县', + 610825: '定边县', + 610826: '绥德县', + 610827: '米脂县', + 610828: '佳县', + 610829: '吴堡县', + 610830: '清涧县', + 610831: '子洲县', + 610881: '神木市', + 610902: '汉滨区', + 610921: '汉阴县', + 610922: '石泉县', + 610923: '宁陕县', + 610924: '紫阳县', + 610925: '岚皋县', + 610926: '平利县', + 610927: '镇坪县', + 610928: '旬阳县', + 610929: '白河县', + 611002: '商州区', + 611021: '洛南县', + 611022: '丹凤县', + 611023: '商南县', + 611024: '山阳县', + 611025: '镇安县', + 611026: '柞水县', + 620102: '城关区', + 620103: '七里河区', + 620104: '西固区', + 620105: '安宁区', + 620111: '红古区', + 620121: '永登县', + 620122: '皋兰县', + 620123: '榆中县', + 620201: '市辖区', + 620290: '雄关区', + 620291: '长城区', + 620292: '镜铁区', + 620293: '新城镇', + 620294: '峪泉镇', + 620295: '文殊镇', + 620302: '金川区', + 620321: '永昌县', + 620402: '白银区', + 620403: '平川区', + 620421: '靖远县', + 620422: '会宁县', + 620423: '景泰县', + 620502: '秦州区', + 620503: '麦积区', + 620521: '清水县', + 620522: '秦安县', + 620523: '甘谷县', + 620524: '武山县', + 620525: '张家川回族自治县', + 620602: '凉州区', + 620621: '民勤县', + 620622: '古浪县', + 620623: '天祝藏族自治县', + 620702: '甘州区', + 620721: '肃南裕固族自治县', + 620722: '民乐县', + 620723: '临泽县', + 620724: '高台县', + 620725: '山丹县', + 620802: '崆峒区', + 620821: '泾川县', + 620822: '灵台县', + 620823: '崇信县', + 620825: '庄浪县', + 620826: '静宁县', + 620881: '华亭市', + 620902: '肃州区', + 620921: '金塔县', + 620922: '瓜州县', + 620923: '肃北蒙古族自治县', + 620924: '阿克塞哈萨克族自治县', + 620981: '玉门市', + 620982: '敦煌市', + 621002: '西峰区', + 621021: '庆城县', + 621022: '环县', + 621023: '华池县', + 621024: '合水县', + 621025: '正宁县', + 621026: '宁县', + 621027: '镇原县', + 621102: '安定区', + 621121: '通渭县', + 621122: '陇西县', + 621123: '渭源县', + 621124: '临洮县', + 621125: '漳县', + 621126: '岷县', + 621202: '武都区', + 621221: '成县', + 621222: '文县', + 621223: '宕昌县', + 621224: '康县', + 621225: '西和县', + 621226: '礼县', + 621227: '徽县', + 621228: '两当县', + 622901: '临夏市', + 622921: '临夏县', + 622922: '康乐县', + 622923: '永靖县', + 622924: '广河县', + 622925: '和政县', + 622926: '东乡族自治县', + 622927: '积石山保安族东乡族撒拉族自治县', + 623001: '合作市', + 623021: '临潭县', + 623022: '卓尼县', + 623023: '舟曲县', + 623024: '迭部县', + 623025: '玛曲县', + 623026: '碌曲县', + 623027: '夏河县', + 630102: '城东区', + 630103: '城中区', + 630104: '城西区', + 630105: '城北区', + 630121: '大通回族土族自治县', + 630122: '湟中县', + 630123: '湟源县', + 630202: '乐都区', + 630203: '平安区', + 630222: '民和回族土族自治县', + 630223: '互助土族自治县', + 630224: '化隆回族自治县', + 630225: '循化撒拉族自治县', + 632221: '门源回族自治县', + 632222: '祁连县', + 632223: '海晏县', + 632224: '刚察县', + 632321: '同仁县', + 632322: '尖扎县', + 632323: '泽库县', + 632324: '河南蒙古族自治县', + 632521: '共和县', + 632522: '同德县', + 632523: '贵德县', + 632524: '兴海县', + 632525: '贵南县', + 632621: '玛沁县', + 632622: '班玛县', + 632623: '甘德县', + 632624: '达日县', + 632625: '久治县', + 632626: '玛多县', + 632701: '玉树市', + 632722: '杂多县', + 632723: '称多县', + 632724: '治多县', + 632725: '囊谦县', + 632726: '曲麻莱县', + 632801: '格尔木市', + 632802: '德令哈市', + 632803: '茫崖市', + 632821: '乌兰县', + 632822: '都兰县', + 632823: '天峻县', + 640104: '兴庆区', + 640105: '西夏区', + 640106: '金凤区', + 640121: '永宁县', + 640122: '贺兰县', + 640181: '灵武市', + 640202: '大武口区', + 640205: '惠农区', + 640221: '平罗县', + 640302: '利通区', + 640303: '红寺堡区', + 640323: '盐池县', + 640324: '同心县', + 640381: '青铜峡市', + 640402: '原州区', + 640422: '西吉县', + 640423: '隆德县', + 640424: '泾源县', + 640425: '彭阳县', + 640502: '沙坡头区', + 640521: '中宁县', + 640522: '海原县', + 650102: '天山区', + 650103: '沙依巴克区', + 650104: '新市区', + 650105: '水磨沟区', + 650106: '头屯河区', + 650107: '达坂城区', + 650109: '米东区', + 650121: '乌鲁木齐县', + 650202: '独山子区', + 650203: '克拉玛依区', + 650204: '白碱滩区', + 650205: '乌尔禾区', + 650402: '高昌区', + 650421: '鄯善县', + 650422: '托克逊县', + 650502: '伊州区', + 650521: '巴里坤哈萨克自治县', + 650522: '伊吾县', + 652301: '昌吉市', + 652302: '阜康市', + 652323: '呼图壁县', + 652324: '玛纳斯县', + 652325: '奇台县', + 652327: '吉木萨尔县', + 652328: '木垒哈萨克自治县', + 652701: '博乐市', + 652702: '阿拉山口市', + 652722: '精河县', + 652723: '温泉县', + 652801: '库尔勒市', + 652822: '轮台县', + 652823: '尉犁县', + 652824: '若羌县', + 652825: '且末县', + 652826: '焉耆回族自治县', + 652827: '和静县', + 652828: '和硕县', + 652829: '博湖县', + 652901: '阿克苏市', + 652922: '温宿县', + 652923: '库车县', + 652924: '沙雅县', + 652925: '新和县', + 652926: '拜城县', + 652927: '乌什县', + 652928: '阿瓦提县', + 652929: '柯坪县', + 653001: '阿图什市', + 653022: '阿克陶县', + 653023: '阿合奇县', + 653024: '乌恰县', + 653101: '喀什市', + 653121: '疏附县', + 653122: '疏勒县', + 653123: '英吉沙县', + 653124: '泽普县', + 653125: '莎车县', + 653126: '叶城县', + 653127: '麦盖提县', + 653128: '岳普湖县', + 653129: '伽师县', + 653130: '巴楚县', + 653131: '塔什库尔干塔吉克自治县', + 653201: '和田市', + 653221: '和田县', + 653222: '墨玉县', + 653223: '皮山县', + 653224: '洛浦县', + 653225: '策勒县', + 653226: '于田县', + 653227: '民丰县', + 654002: '伊宁市', + 654003: '奎屯市', + 654004: '霍尔果斯市', + 654021: '伊宁县', + 654022: '察布查尔锡伯自治县', + 654023: '霍城县', + 654024: '巩留县', + 654025: '新源县', + 654026: '昭苏县', + 654027: '特克斯县', + 654028: '尼勒克县', + 654201: '塔城市', + 654202: '乌苏市', + 654221: '额敏县', + 654223: '沙湾县', + 654224: '托里县', + 654225: '裕民县', + 654226: '和布克赛尔蒙古自治县', + 654301: '阿勒泰市', + 654321: '布尔津县', + 654322: '富蕴县', + 654323: '福海县', + 654324: '哈巴河县', + 654325: '青河县', + 654326: '吉木乃县', + 659001: '石河子市', + 659002: '阿拉尔市', + 659003: '图木舒克市', + 659004: '五家渠市', + 659005: '北屯市', + 659006: '铁门关市', + 659007: '双河市', + 659008: '可克达拉市', + 659009: '昆玉市', + 710101: '中正区', + 710102: '大同区', + 710103: '中山区', + 710104: '松山区', + 710105: '大安区', + 710106: '万华区', + 710107: '信义区', + 710108: '士林区', + 710109: '北投区', + 710110: '内湖区', + 710111: '南港区', + 710112: '文山区', + 710199: '其它区', + 710201: '新兴区', + 710202: '前金区', + 710203: '芩雅区', + 710204: '盐埕区', + 710205: '鼓山区', + 710206: '旗津区', + 710207: '前镇区', + 710208: '三民区', + 710209: '左营区', + 710210: '楠梓区', + 710211: '小港区', + 710241: '苓雅区', + 710242: '仁武区', + 710243: '大社区', + 710244: '冈山区', + 710245: '路竹区', + 710246: '阿莲区', + 710247: '田寮区', + 710248: '燕巢区', + 710249: '桥头区', + 710250: '梓官区', + 710251: '弥陀区', + 710252: '永安区', + 710253: '湖内区', + 710254: '凤山区', + 710255: '大寮区', + 710256: '林园区', + 710257: '鸟松区', + 710258: '大树区', + 710259: '旗山区', + 710260: '美浓区', + 710261: '六龟区', + 710262: '内门区', + 710263: '杉林区', + 710264: '甲仙区', + 710265: '桃源区', + 710266: '那玛夏区', + 710267: '茂林区', + 710268: '茄萣区', + 710299: '其它区', + 710301: '中西区', + 710302: '东区', + 710303: '南区', + 710304: '北区', + 710305: '安平区', + 710306: '安南区', + 710339: '永康区', + 710340: '归仁区', + 710341: '新化区', + 710342: '左镇区', + 710343: '玉井区', + 710344: '楠西区', + 710345: '南化区', + 710346: '仁德区', + 710347: '关庙区', + 710348: '龙崎区', + 710349: '官田区', + 710350: '麻豆区', + 710351: '佳里区', + 710352: '西港区', + 710353: '七股区', + 710354: '将军区', + 710355: '学甲区', + 710356: '北门区', + 710357: '新营区', + 710358: '后壁区', + 710359: '白河区', + 710360: '东山区', + 710361: '六甲区', + 710362: '下营区', + 710363: '柳营区', + 710364: '盐水区', + 710365: '善化区', + 710366: '大内区', + 710367: '山上区', + 710368: '新市区', + 710369: '安定区', + 710399: '其它区', + 710401: '中区', + 710402: '东区', + 710403: '南区', + 710404: '西区', + 710405: '北区', + 710406: '北屯区', + 710407: '西屯区', + 710408: '南屯区', + 710431: '太平区', + 710432: '大里区', + 710433: '雾峰区', + 710434: '乌日区', + 710435: '丰原区', + 710436: '后里区', + 710437: '石冈区', + 710438: '东势区', + 710439: '和平区', + 710440: '新社区', + 710441: '潭子区', + 710442: '大雅区', + 710443: '神冈区', + 710444: '大肚区', + 710445: '沙鹿区', + 710446: '龙井区', + 710447: '梧栖区', + 710448: '清水区', + 710449: '大甲区', + 710450: '外埔区', + 710451: '大安区', + 710499: '其它区', + 710507: '金沙镇', + 710508: '金湖镇', + 710509: '金宁乡', + 710510: '金城镇', + 710511: '烈屿乡', + 710512: '乌坵乡', + 710614: '南投市', + 710615: '中寮乡', + 710616: '草屯镇', + 710617: '国姓乡', + 710618: '埔里镇', + 710619: '仁爱乡', + 710620: '名间乡', + 710621: '集集镇', + 710622: '水里乡', + 710623: '鱼池乡', + 710624: '信义乡', + 710625: '竹山镇', + 710626: '鹿谷乡', + 710701: '仁爱区', + 710702: '信义区', + 710703: '中正区', + 710704: '中山区', + 710705: '安乐区', + 710706: '暖暖区', + 710707: '七堵区', + 710799: '其它区', + 710801: '东区', + 710802: '北区', + 710803: '香山区', + 710899: '其它区', + 710901: '东区', + 710902: '西区', + 710999: '其它区', + 711130: '万里区', + 711132: '板桥区', + 711133: '汐止区', + 711134: '深坑区', + 711135: '石碇区', + 711136: '瑞芳区', + 711137: '平溪区', + 711138: '双溪区', + 711139: '贡寮区', + 711140: '新店区', + 711141: '坪林区', + 711142: '乌来区', + 711143: '永和区', + 711144: '中和区', + 711145: '土城区', + 711146: '三峡区', + 711147: '树林区', + 711148: '莺歌区', + 711149: '三重区', + 711150: '新庄区', + 711151: '泰山区', + 711152: '林口区', + 711153: '芦洲区', + 711154: '五股区', + 711155: '八里区', + 711156: '淡水区', + 711157: '三芝区', + 711158: '石门区', + 711287: '宜兰市', + 711288: '头城镇', + 711289: '礁溪乡', + 711290: '壮围乡', + 711291: '员山乡', + 711292: '罗东镇', + 711293: '三星乡', + 711294: '大同乡', + 711295: '五结乡', + 711296: '冬山乡', + 711297: '苏澳镇', + 711298: '南澳乡', + 711299: '钓鱼台', + 711387: '竹北市', + 711388: '湖口乡', + 711389: '新丰乡', + 711390: '新埔镇', + 711391: '关西镇', + 711392: '芎林乡', + 711393: '宝山乡', + 711394: '竹东镇', + 711395: '五峰乡', + 711396: '横山乡', + 711397: '尖石乡', + 711398: '北埔乡', + 711399: '峨眉乡', + 711414: '中坜区', + 711415: '平镇区', + 711417: '杨梅区', + 711418: '新屋区', + 711419: '观音区', + 711420: '桃园区', + 711421: '龟山区', + 711422: '八德区', + 711423: '大溪区', + 711425: '大园区', + 711426: '芦竹区', + 711487: '中坜市', + 711488: '平镇市', + 711489: '龙潭乡', + 711490: '杨梅市', + 711491: '新屋乡', + 711492: '观音乡', + 711493: '桃园市', + 711494: '龟山乡', + 711495: '八德市', + 711496: '大溪镇', + 711497: '复兴乡', + 711498: '大园乡', + 711499: '芦竹乡', + 711520: '头份市', + 711582: '竹南镇', + 711583: '头份镇', + 711584: '三湾乡', + 711585: '南庄乡', + 711586: '狮潭乡', + 711587: '后龙镇', + 711588: '通霄镇', + 711589: '苑里镇', + 711590: '苗栗市', + 711591: '造桥乡', + 711592: '头屋乡', + 711593: '公馆乡', + 711594: '大湖乡', + 711595: '泰安乡', + 711596: '铜锣乡', + 711597: '三义乡', + 711598: '西湖乡', + 711599: '卓兰镇', + 711736: '员林市', + 711774: '彰化市', + 711775: '芬园乡', + 711776: '花坛乡', + 711777: '秀水乡', + 711778: '鹿港镇', + 711779: '福兴乡', + 711780: '线西乡', + 711781: '和美镇', + 711782: '伸港乡', + 711783: '员林镇', + 711784: '社头乡', + 711785: '永靖乡', + 711786: '埔心乡', + 711787: '溪湖镇', + 711788: '大村乡', + 711789: '埔盐乡', + 711790: '田中镇', + 711791: '北斗镇', + 711792: '田尾乡', + 711793: '埤头乡', + 711794: '溪州乡', + 711795: '竹塘乡', + 711796: '二林镇', + 711797: '大城乡', + 711798: '芳苑乡', + 711799: '二水乡', + 711982: '番路乡', + 711983: '梅山乡', + 711984: '竹崎乡', + 711985: '阿里山乡', + 711986: '中埔乡', + 711987: '大埔乡', + 711988: '水上乡', + 711989: '鹿草乡', + 711990: '太保市', + 711991: '朴子市', + 711992: '东石乡', + 711993: '六脚乡', + 711994: '新港乡', + 711995: '民雄乡', + 711996: '大林镇', + 711997: '溪口乡', + 711998: '义竹乡', + 711999: '布袋镇', + 712180: '斗南镇', + 712181: '大埤乡', + 712182: '虎尾镇', + 712183: '土库镇', + 712184: '褒忠乡', + 712185: '东势乡', + 712186: '台西乡', + 712187: '仑背乡', + 712188: '麦寮乡', + 712189: '斗六市', + 712190: '林内乡', + 712191: '古坑乡', + 712192: '莿桐乡', + 712193: '西螺镇', + 712194: '二仑乡', + 712195: '北港镇', + 712196: '水林乡', + 712197: '口湖乡', + 712198: '四湖乡', + 712199: '元长乡', + 712451: '崁顶乡', + 712467: '屏东市', + 712468: '三地门乡', + 712469: '雾台乡', + 712470: '玛家乡', + 712471: '九如乡', + 712472: '里港乡', + 712473: '高树乡', + 712474: '盐埔乡', + 712475: '长治乡', + 712476: '麟洛乡', + 712477: '竹田乡', + 712478: '内埔乡', + 712479: '万丹乡', + 712480: '潮州镇', + 712481: '泰武乡', + 712482: '来义乡', + 712483: '万峦乡', + 712484: '莰顶乡', + 712485: '新埤乡', + 712486: '南州乡', + 712487: '林边乡', + 712488: '东港镇', + 712489: '琉球乡', + 712490: '佳冬乡', + 712491: '新园乡', + 712492: '枋寮乡', + 712493: '枋山乡', + 712494: '春日乡', + 712495: '狮子乡', + 712496: '车城乡', + 712497: '牡丹乡', + 712498: '恒春镇', + 712499: '满州乡', + 712584: '台东市', + 712585: '绿岛乡', + 712586: '兰屿乡', + 712587: '延平乡', + 712588: '卑南乡', + 712589: '鹿野乡', + 712590: '关山镇', + 712591: '海端乡', + 712592: '池上乡', + 712593: '东河乡', + 712594: '成功镇', + 712595: '长滨乡', + 712596: '金峰乡', + 712597: '大武乡', + 712598: '达仁乡', + 712599: '太麻里乡', + 712686: '花莲市', + 712687: '新城乡', + 712688: '太鲁阁', + 712689: '秀林乡', + 712690: '吉安乡', + 712691: '寿丰乡', + 712692: '凤林镇', + 712693: '光复乡', + 712694: '丰滨乡', + 712695: '瑞穗乡', + 712696: '万荣乡', + 712697: '玉里镇', + 712698: '卓溪乡', + 712699: '富里乡', + 712794: '马公市', + 712795: '西屿乡', + 712796: '望安乡', + 712797: '七美乡', + 712798: '白沙乡', + 712799: '湖西乡', + 712896: '南竿乡', + 712897: '北竿乡', + 712898: '东引乡', + 712899: '莒光乡', + 810101: '中西区', + 810102: '湾仔区', + 810103: '东区', + 810104: '南区', + 810201: '九龙城区', + 810202: '油尖旺区', + 810203: '深水埗区', + 810204: '黄大仙区', + 810205: '观塘区', + 810301: '北区', + 810302: '大埔区', + 810303: '沙田区', + 810304: '西贡区', + 810305: '元朗区', + 810306: '屯门区', + 810307: '荃湾区', + 810308: '葵青区', + 810309: '离岛区', + 820102: '花地玛堂区', + 820103: '花王堂区', + 820104: '望德堂区', + 820105: '大堂区', + 820106: '风顺堂区', + 820202: '嘉模堂区', + 820203: '路氹填海区', + 820204: '圣方济各堂区' + } +}; diff --git a/smart_admin_v1/smart-admin-h5/src/constants/erp/contact-company.js b/smart_admin_v1/smart-admin-h5/src/constants/erp/contact-company.js new file mode 100644 index 00000000..b3730d9b --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/constants/erp/contact-company.js @@ -0,0 +1,165 @@ +/** + * 往来单位性质 + * @type {{ENTERPRISE: {value: number, desc: string}, PERSONAL: {value: number, desc: string}}} + */ +export const CONTACT_COMPANY_NATURE_ENUM = + { + ENTERPRISE: { + value: 0, + desc: '企业' + }, + PERSONAL: { + value: 1, + desc: '个人' + } + }; +/** + * 往来机构类型 + * @type {{CUSTOMER: {value: number, desc: string}, SUPPLIER: {value: number, desc: string}}} + */ +export const + CONTACT_COMPANY_TYPE_ENUM = + { + CUSTOMER: { + value: 0, + desc: '客户' + }, + SUPPLIER: { + value: 1, + desc: '供应商' + }, + SCHOOL: { + value: 2, + desc: '分校' + }, + COOPERATIVE_ORG: { + value: 3, + desc: '合作机构' + } + }; + +/** + * 付款方式 + * @type {{BANK: {value: number, desc: string}, ZHI_FU_BAO: {value: number, desc: string}, WE_CHAT: {value: number, desc: string}}} + */ +export const + PAYMENT_TYPE_ENUM = + { + BANK: { + value: 0, + desc: '银行卡' + }, + WE_CHAT: { + value: 1, + desc: '微信' + }, + ZHI_FU_BAO: { + value: 2, + desc: '支付宝' + } + }; + +/** + * 往来机构余额类型 + * @type {{RECEIVE_BALANCE: {value: number, desc: string}, PAY_BALANCE: {value: number, desc: string}}} + */ +export const + CONTACT_COMPANY_BALANCE_TYPE = + { + PAY_BALANCE: { + value: 0, + desc: '应付款余额' + }, + RECEIVE_BALANCE: { + value: 1, + desc: '应收款余额' + } + }; + +/** + * 往来单位等级 + * @type {{CORE: {value: number, desc: string}, POTENTIAL: {value: number, desc: string}, BAD: {value: number, desc: string}, GENERAL: {value: number, desc: string}}} + */ +export const CONTACT_COMPANY_GRADE_ENUM = { + CORE: { + value: 1, + desc: '核心', + color: 'green' + }, + POTENTIAL: { + value: 2, + desc: '有潜力', + color: 'cyan' + }, + GENERAL: { + value: 3, + desc: '普通', + color: 'blue' + }, + BAD: { + value: 4, + desc: '较差', + color: 'purple' + } +}; + +/** + * 往来单位等级 + * @type {{OWNER: {value: number, desc: string}, SHARER: {value: number, desc: string}, COMMON: {value: number, desc: string}}} + */ +export const CONTACT_COMPANY_SHARE_TYPE_ENUM = { + OWNER: { + value: 0, + desc: '属于我的' + }, + SHARER: { + value: 1, + desc: '共享的' + }, + COMMON: { + value: 2, + desc: '公共的' + } +}; + +/** + * 往来单位标签 + * @type {{OWNER: {value: number, desc: string}, SHARER: {value: number, desc: string}, COMMON: {value: number, desc: string}}} + */ +export const CONTACT_COMPANY_TAG_ENUM = { + POTENTIAL: { + value: 0, + desc: '潜在', + color: 'green' + }, + INTENTION: { + value: 1, + desc: '意向', + color: 'cyan' + }, + NEGOTIATION: { + value: 2, + desc: '洽谈', + color: 'blue' + }, + DEAL: { + value: 3, + desc: '成交', + color: 'geekblue' + }, + LOSS: { + value: 4, + desc: '流失', + color: 'red' + } +}; + +export default { + CONTACT_COMPANY_NATURE_ENUM, + CONTACT_COMPANY_TYPE_ENUM, + PAYMENT_TYPE_ENUM, + CONTACT_COMPANY_BALANCE_TYPE, + CONTACT_COMPANY_GRADE_ENUM, + CONTACT_COMPANY_SHARE_TYPE_ENUM, + CONTACT_COMPANY_TAG_ENUM +}; diff --git a/smart_admin_v1/smart-admin-h5/src/constants/erp/index.js b/smart_admin_v1/smart-admin-h5/src/constants/erp/index.js new file mode 100644 index 00000000..b14cb861 --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/constants/erp/index.js @@ -0,0 +1,6 @@ +import contactCompany from './contact-company'; + +export default { + ...contactCompany +}; + diff --git a/smart_admin_v1/smart-admin-h5/src/constants/file.js b/smart_admin_v1/smart-admin-h5/src/constants/file.js new file mode 100644 index 00000000..cc72166b --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/constants/file.js @@ -0,0 +1,92 @@ +export const COMMON_FILE_FOLDER_TYPE_ENUM = { + DISPLAY_PIC: { + value: 1, + desc: '轮播展示图' + }, + RESOURCE_LECTURER: { + value: 2, + desc: '资源-讲师图片' + }, + RESOURCE_FILE: { + value: 3, + desc: '资源-文件资源' + }, + USER_AVATAR: { + value: 4, + desc: '用户头像' + }, + STOCK_BASIC: { + value: 5, + desc: '货物基本信息图片' + }, + PUBLICATION_QR_CODE: { + value: 6, + desc: '出版物二维码图片' + }, + RESOURCE_PAGE_QR_CODE: { + value: 7, + desc: '资源页面链接二维码图片' + }, + FINANCE_RECEIVE_QR_CODE: { + value: 8, + desc: '财务收款二维码' + }, + FINANCE_WX_PAY_CERT: { + value: 9, + desc: '财务-微信支付证书' + }, + GOODS: { + value: 10, + desc: '商品图片-公用文件夹' + }, + EXCEL_EXPORT: { + value: 11, + desc: 'excel导出-私有文件夹' + }, + FINANCE_WAIT_PAYMENT_PAYMENT_PROOF: { + value: 12, + desc: '财务待支付支付凭证' + }, + FEEDBACK: { + value: 99, + desc: '用户反馈图片' + }, + EDITOR: { + value: 100, + desc: '文本编辑器' + }, + EDITOR_IMG: { + value: 100, + desc: '文本编辑器' + }, + INTERNAL_INFORMATION: { + value: 14, + desc: '内部资料' + }, + CRM_USER: { + value: 111, + desc: 'CRM学员跟进附件' + }, + CRM_SCHOOL: { + value: 112, + desc: 'CRM分校跟进附件' + }, + // = =======erp 相关 begin============ + ERP_STOCK_IMG: { + value: 201, + desc: '货物图片' + }, + ERP_CONTACT_COMPANY_RECEIVE_IMAGE: { + value: 210, + desc: '往来单位收款二维码' + }, + ERP_CONTACT_COMPANY_ATTACHMENT: { + value: 211, + desc: '往来单位附件' + } + // = =======erp 相关 end ============ +}; + +export default { + COMMON_FILE_FOLDER_TYPE_ENUM +}; diff --git a/smart_admin_v1/smart-admin-h5/src/constants/index.js b/smart_admin_v1/smart-admin-h5/src/constants/index.js new file mode 100644 index 00000000..384b7029 --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/constants/index.js @@ -0,0 +1,7 @@ +import school from '@/constants/school'; +import erp from './erp'; + +export default { + ...school, + ...erp +}; diff --git a/smart_admin_v1/smart-admin-h5/src/constants/school.js b/smart_admin_v1/smart-admin-h5/src/constants/school.js new file mode 100644 index 00000000..aa69bd01 --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/constants/school.js @@ -0,0 +1,71 @@ +/** + * 分校标签 + */ +export const SCHOOL_TAG_ENUM = { + POTENTIAL: { + value: 0, + desc: '潜在' + }, + INTENTION: { + value: 1, + desc: '意向' + }, + NEGOTIATION: { + value: 2, + desc: '洽谈' + }, + DEAL: { + value: 3, + desc: '成交' + }, + LOSS: { + value: 4, + desc: '流失' + } +}; + +/** + * 分校等级 + */ +export const SCHOOL_GRADE_ENUM = { + CORE: { + value: 1, + desc: '核心' + }, + POTENTIAL: { + value: 2, + desc: '有潜力' + }, + GENERAL: { + value: 3, + desc: '普通' + }, + BAD: { + value: 4, + desc: '较差' + } +}; + +/** + * 共享类型 + */ +export const SCHOOL_SHARE_TYPE_ENUM = { + OWNER: { + value: 0, + desc: '属于我的' + }, + SHARER: { + value: 1, + desc: '共享的' + }, + COMMON: { + value: 2, + desc: '公共的' + } +}; + +export default { + SCHOOL_TAG_ENUM, + SCHOOL_GRADE_ENUM, + SCHOOL_SHARE_TYPE_ENUM +}; diff --git a/smart_admin_v1/smart-admin-h5/src/filters/filter.js b/smart_admin_v1/smart-admin-h5/src/filters/filter.js new file mode 100644 index 00000000..5bb102f2 --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/filters/filter.js @@ -0,0 +1,298 @@ +import Vue from 'vue'; + +function ellipsis(value, length) { + if (!value) return ''; + if (value.length > length) { + return value.slice(0, length) + '...'; + } + return value; +} + +/** + * 去除空格 type 1-所有空格 2-前后空格 3-前空格 4-后空格 + */ +function trim(value, trim) { + switch (trim) { + case 1: + return value.replace(/\s+/g, ''); + case 2: + return value.replace(/(^\s*)|(\s*$)/g, ''); + case 3: + return value.replace(/(^\s*)/g, ''); + case 4: + return value.replace(/(\s*$)/g, ''); + default: + return value; + } +} + +/** + * 任意格式日期处理 + 使用格式: + {{ '2018-09-14 01:05' | formatDate(yyyy-MM-dd hh:mm:ss) }} + {{ '2018-09-14 01:05' | formatDate(yyyy-MM-dd) }} + {{ '2018-09-14 01:05' | formatDate(MM/dd) }} 等 + + * @param value + * @param fmt + * @returns {*} + */ +function formatDate(value, fmt) { + var date = new Date(value); + var o = { + 'M+': date.getMonth() + 1, // 月份 + 'd+': date.getDate(), // 日 + 'h+': date.getHours(), // 小时 + 'm+': date.getMinutes(), // 分 + 's+': date.getSeconds(), // 秒 + 'w+': date.getDay(), // 星期 + 'q+': Math.floor((date.getMonth() + 3) / 3), // 季度 + 'S': date.getMilliseconds() // 毫秒 + }; + if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length)); + for (var k in o) { + if (k === 'w+') { + if (o[k] === 0) { + fmt = fmt.replace('w', '周日'); + } else if (o[k] === 1) { + fmt = fmt.replace('w', '周一'); + } else if (o[k] === 2) { + fmt = fmt.replace('w', '周二'); + } else if (o[k] === 3) { + fmt = fmt.replace('w', '周三'); + } else if (o[k] === 4) { + fmt = fmt.replace('w', '周四'); + } else if (o[k] === 5) { + fmt = fmt.replace('w', '周五'); + } else if (o[k] === 6) { + fmt = fmt.replace('w', '周六'); + } + } else if (new RegExp('(' + k + ')').test(fmt)) { + fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length))); + } + } + return fmt; +} + +/** + * 字母大小写切换 + type + 1:首字母大写 + 2:首页母小写 + 3:大小写转换 + 4:全部大写 + 5:全部小写 + * @param str + * @param type + * @returns {string|*} + */ +function changeCase(str, type) { + function ToggleCase(str) { + var itemText = ''; + str.split('').forEach( + function(item) { + if (/^([a-z]+)/.test(item)) { + itemText += item.toUpperCase(); + } else if (/^([A-Z]+)/.test(item)) { + itemText += item.toLowerCase(); + } else { + itemText += item; + } + }); + return itemText; + } + + switch (type) { + case 1: + return str.replace(/\b\w+\b/g, function(word) { + return word.substring(0, 1).toUpperCase() + word.substring(1).toLowerCase(); + }); + case 2: + return str.replace(/\b\w+\b/g, function(word) { + return word.substring(0, 1).toLowerCase() + word.substring(1).toUpperCase(); + }); + case 3: + return ToggleCase(str); + case 4: + return str.toUpperCase(); + case 5: + return str.toLowerCase(); + default: + return str; + } +} + +/** + * 字符串循环复制,count->次数 + */ +function repeatStr(str, count) { + var text = ''; + for (var i = 0; i < count; i++) { + text += str; + } + return text; +} + +/** + * 字符串替换 + */ +function replaceAll(str, AFindText, ARepText) { + const raRegExp = new RegExp(AFindText, 'g'); + return str.replace(raRegExp, ARepText); +} + +/** + * + * 字符替换*,隐藏手机号或者身份证号等 + replaceStr(字符串,字符格式, 替换方式,替换的字符(默认*)) + ecDo.replaceStr('18819322663',[3,5,3],0) + result:188*****663 + ecDo.replaceStr('asdasdasdaa',[3,5,3],1) + result:***asdas*** + ecDo.replaceStr('1asd88465asdwqe3',[5],0) + result:*****8465asdwqe3 + ecDo.replaceStr('1asd88465asdwqe3',[5],1,'+') + result:"1asd88465as+++++" + * + * @param str + * @param regArr + * @param type + * @param ARepText + * @returns {*} + */ +function replaceStr(str, regArr, type, ARepText) { + var regtext = ''; + var Reg = null; + var replaceText = ARepText || '*'; + // repeatStr是在上面定义过的(字符串循环复制),大家注意哦 + if (regArr.length === 3 && type === 0) { + regtext = '(\\w{' + regArr[0] + '})\\w{' + regArr[1] + '}(\\w{' + regArr[2] + '})'; + Reg = new RegExp(regtext); + var replaceCount = this.repeatStr(replaceText, regArr[1]); + return str.replace(Reg, '$1' + replaceCount + '$2'); + } else if (regArr.length === 3 && type === 1) { + regtext = '\\w{' + regArr[0] + '}(\\w{' + regArr[1] + '})\\w{' + regArr[2] + '}'; + Reg = new RegExp(regtext); + var replaceCount1 = this.repeatStr(replaceText, regArr[0]); + var replaceCount2 = this.repeatStr(replaceText, regArr[2]); + return str.replace(Reg, replaceCount1 + '$1' + replaceCount2); + } else if (regArr.length === 1 && type === 0) { + regtext = '(^\\w{' + regArr[0] + '})'; + Reg = new RegExp(regtext); + var replaceCount = this.repeatStr(replaceText, regArr[0]); + return str.replace(Reg, replaceCount); + } else if (regArr.length === 1 && type === 1) { + regtext = '(\\w{' + regArr[0] + '}$)'; + Reg = new RegExp(regtext); + var replaceCount = this.repeatStr(replaceText, regArr[0]); + return str.replace(Reg, replaceCount); + } +} + +/** + * 格式化处理字符串 + ecDo.formatText('1234asda567asd890') + result:"12,34a,sda,567,asd,890" + ecDo.formatText('1234asda567asd890',4,' ') + result:"1 234a sda5 67as d890" + ecDo.formatText('1234asda567asd890',4,'-') + result:"1-234a-sda5-67as-d890" + + * @param str + * @param size + * @param delimiter + * @returns {*} + */ +function formatText(str, size, delimiter) { + var _size = size || 3; + var _delimiter = delimiter || ','; + var regText = '\\B(?=(\\w{' + _size + '})+(?!\\w))'; + var reg = new RegExp(regText, 'g'); + return str.replace(reg, _delimiter); +} + +/** + * 现金额大写转换函数 + ecDo.upDigit(168752632) + result:"人民币壹亿陆仟捌佰柒拾伍万贰仟陆佰叁拾贰元整" + ecDo.upDigit(1682) + result:"人民币壹仟陆佰捌拾贰元整" + ecDo.upDigit(-1693) + result:"欠人民币壹仟陆佰玖拾叁元整" + * @param n + * @returns {string} + */ +function upDigit(n) { + var fraction = ['角', '分', '厘']; + var digit = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖']; + var unit = [ + ['元', '万', '亿'], + ['', '拾', '佰', '仟'] + ]; + var head = n < 0 ? '欠人民币' : '人民币'; + n = Math.abs(n); + var s = ''; + for (var i = 0; i < fraction.length; i++) { + s += (digit[Math.floor(n * 10 * Math.pow(10, i)) % 10] + fraction[i]).replace(/零./, ''); + } + s = s || '整'; + n = Math.floor(n); + for (var i = 0; i < unit[0].length && n > 0; i++) { + var p = ''; + for (var j = 0; j < unit[1].length && n > 0; j++) { + p = digit[n % 10] + unit[1][j] + p; + n = Math.floor(n / 10); + } + s = p.replace(/(零.)*零$/, '').replace(/^$/, '零') + unit[0][i] + s; + // s = p + unit[0][i] + s; + } + return head + s.replace(/(零.)*零元/, '元').replace(/(零.)+/g, '零').replace(/^整$/, '零元整'); +} + +// 保留2位小数 +function toFixed(val, acc) { + let num = parseFloat(val); + if (isNaN(num)) { + num = 0; + } + let accuracy = parseInt(acc); + if (isNaN(accuracy) || accuracy < 0 || accuracy > 10) { + accuracy = 2; + } + return num.toFixed(accuracy); +} + +// 转百分比 +function toPercent(val, acc) { + let num = parseFloat(val); + if (isNaN(num)) { + num = 0; + } + let accuracy = parseInt(acc); + if (isNaN(accuracy) || accuracy < 0 || accuracy > 10) { + accuracy = 2; + } + return (num * 100).toFixed(accuracy) + '%'; +} + +// ------------ enum begin ------------ +function getEnumDescByValue(value, enumName) { + return Vue.prototype.$enum.getDescByValue(enumName, value); +} + +// ------------ enum end ------------ + +export { + trim, + changeCase, + repeatStr, + replaceAll, + replaceStr, + formatText, + upDigit, + toFixed, + formatDate, + toPercent, + getEnumDescByValue, + ellipsis +}; diff --git a/smart_admin_v1/smart-admin-h5/src/filters/index.js b/smart_admin_v1/smart-admin-h5/src/filters/index.js new file mode 100644 index 00000000..484c0dc0 --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/filters/index.js @@ -0,0 +1,5 @@ +import Vue from 'vue' + +import * as filter from './filter' + +Object.keys(filter).forEach(key => Vue.filter(key, filter[key])) diff --git a/smart_admin_v1/smart-admin-h5/src/lib/cookie.js b/smart_admin_v1/smart-admin-h5/src/lib/cookie.js new file mode 100644 index 00000000..83386119 --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/lib/cookie.js @@ -0,0 +1,21 @@ +import Cookies from 'js-cookie'; +import config from '@/config'; +const { cookieExpires } = config; +export const TOKEN_KEY = 'token'; + +export default { + setToken: token => { + Cookies.set(TOKEN_KEY, token, { + // token在Cookie中存储的天数,默认1天 + expires: cookieExpires || 7 + }); + }, + getToken: () => { + const token = Cookies.get(TOKEN_KEY); + if (token) return token; + else return null; + }, + clearToken: () => { + Cookies.remove(TOKEN_KEY); + } +}; diff --git a/smart_admin_v1/smart-admin-h5/src/lib/erp-http.js b/smart_admin_v1/smart-admin-h5/src/lib/erp-http.js new file mode 100644 index 00000000..3f4766f8 --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/lib/erp-http.js @@ -0,0 +1,65 @@ +import Axios from 'axios'; +import config from '@/config'; +import cookie from '@/lib/cookie'; +import { Toast } from 'vant'; + +export const baseUrl = config.baseUrl.erpApiUrl; + +const axios = Axios.create({ + baseURL: baseUrl, + timeout: 30000, + headers: { + 'Content-Type': 'application/json; charset=utf-8' + } +}); + +// 添加请求拦截器 +axios.interceptors.request.use( + function(config) { + const token = cookie.getToken(); + if (token) { + config.headers['x-access-token'] = token; + } + return config; + }, + function(error) { + return Promise.reject(error); + } +); + +// 添加响应拦截器 +axios.interceptors.response.use( + res => { + const { data } = res; + if (data && data.code && data.code !== 1) { + if (data.code === 121) { + cookie.clearToken(); + localStorage.clear(); + window.location.href = window.location.pathname + '#/login'; + Toast.fail('未登录,或登录失效,请登录'); + return; + } else if (data.code === 502) { + window.location.href = window.location.pathname + '#/500'; + return; + } else { + Toast.fail(data.msg); + return Promise.reject(res); + } + } + return Promise.resolve(data); + }, + error => { + Toast.fail('服务内部错误'); + return Promise.reject(error); + } +); + +export const postAxios = (url, data, config) => { + return axios.post(url, data, config); +}; + +export const getAxios = (url, data) => { + return axios.get(url, { + params: data + }); +}; diff --git a/smart_admin_v1/smart-admin-h5/src/lib/http.js b/smart_admin_v1/smart-admin-h5/src/lib/http.js new file mode 100644 index 00000000..b4c86937 --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/lib/http.js @@ -0,0 +1,65 @@ +import Axios from 'axios'; +import config from '@/config'; +import cookie from '@/lib/cookie'; +import { Toast } from 'vant'; + +export const baseUrl = config.baseUrl.apiUrl; + +const axios = Axios.create({ + baseURL: baseUrl, + timeout: 30000, + headers: { + 'Content-Type': 'application/json; charset=utf-8' + } +}); + +// 添加请求拦截器 +axios.interceptors.request.use( + function(config) { + const token = cookie.getToken(); + if (token) { + config.headers['x-access-token'] = token; + } + return config; + }, + function(error) { + return Promise.reject(error); + } +); + +// 添加响应拦截器 +axios.interceptors.response.use( + res => { + const { data } = res; + if (data && data.code && data.code !== 1) { + if (data.code === 1001) { + cookie.clearToken(); + localStorage.clear(); + window.location.href = window.location.pathname + '#/login'; + Toast.fail('未登录,或登录失效,请登录'); + return; + } else if (data.code === 502) { + window.location.href = window.location.pathname + '#/500'; + return; + } else { + Toast.fail(data.msg); + return Promise.reject(res); + } + } + return Promise.resolve(data); + }, + error => { + Toast.fail('服务内部错误'); + return Promise.reject(error); + } +); + +export const postAxios = (url, data, config) => { + return axios.post(url, data, config); +}; + +export const getAxios = (url, data) => { + return axios.get(url, { + params: data + }); +}; diff --git a/smart_admin_v1/smart-admin-h5/src/lib/local.js b/smart_admin_v1/smart-admin-h5/src/lib/local.js new file mode 100644 index 00000000..c19d7e3d --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/lib/local.js @@ -0,0 +1,8 @@ +export const localSave = (key, value) => { + localStorage.setItem(key, value); +}; + +export const localRead = key => { + return localStorage.getItem(key) || ''; +}; + diff --git a/smart_admin_v1/smart-admin-h5/src/lib/menu-func.js b/smart_admin_v1/smart-admin-h5/src/lib/menu-func.js new file mode 100644 index 00000000..914d5379 --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/lib/menu-func.js @@ -0,0 +1,276 @@ +import { forEach, hasOneOf, objEqual } from '@/lib/util'; +import config from '@/config'; +import { localRead, localSave } from '@/lib/local'; +const { title, useI18n } = config; +export const hasChild = item => { + return item.children && item.children.length !== 0; +}; + +/** + * 通过权限过滤菜单 + * @param {Object} map 权限对象 + * @param {Array} menuList 菜单列表 + * @returns {Array} + */ +export const getShowMenu = (map = {}, menuList, access = false) => { + // 判断是否为超级管理员 + if (access) { + return menuList; + } + // 返回的菜单列表 + let result = []; + for (let menuItem of menuList) { + let routerObj = JSON.parse(JSON.stringify(menuItem)); + if ( + map.hasOwnProperty(menuItem.name) && + (menuItem.name !== 'home' && menuItem.name !== '_home') + ) { + // 判断该菜单权限下是否为数组,若为数组,则为功能点权限否则为子菜单 + if (getType(map[routerObj.name]) === 'array') { + let funcPrivilege = localRead('funcPrivilegeInfo') + ? JSON.parse(localRead('funcPrivilegeInfo')) + : {}; + localSave( + 'funcPrivilegeInfo', + JSON.stringify({ + ...funcPrivilege, + [routerObj.name]: map[routerObj.name] + }) + ); + } else if ( + getType(map[routerObj.name]) !== 'array' && + !routerObj.children + ) { + // 判断是否为二级菜单,若是则需要多枚举一层赋值 + let funcPrivilege = localRead('funcPrivilegeInfo') + ? JSON.parse(localRead('funcPrivilegeInfo')) + : {}; + localSave( + 'funcPrivilegeInfo', + JSON.stringify({ + ...funcPrivilege, + [routerObj.name]: map[routerObj.name][routerObj.name] + }) + ); + } else if ( + getType(map[routerObj.name]) !== 'array' && + routerObj.children + ) { + // 循环子菜单权限 + routerObj.children = getShowMenu( + map[routerObj.name], + routerObj.children + ); + } + result.push(routerObj); + } + } + return result; +}; +// 获取数据类型 +export const getType = obj => { + return {}.toString + .call(obj) + .match(/\s([a-zA-Z]+)/)[1] + .toLowerCase(); +}; + +/** + * @description 本地存储和获取标签导航列表 + */ +export const setTagNavListInLocalStorage = list => { + localStorage.tagNaveList = JSON.stringify(list); +}; +/** + * @returns {Array} 其中的每个元素只包含路由原信息中的name, path, meta三项 + */ +export const getTagNavListFromLocalStorage = () => { + const list = localStorage.tagNaveList; + return list ? JSON.parse(list) : []; +}; +export const getBreadCrumbList = (route, homeRoute) => { + let homeItem = { + ...homeRoute, + icon: homeRoute.meta.icon + }; + let routeMatched = route.matched; + if (routeMatched.some(item => item.name === homeRoute.name)) { + return [homeItem]; + } + let res = routeMatched + .filter(item => { + return item.meta === undefined || !item.meta.hideInBread; + }) + .map(item => { + let meta = { + ...item.meta + }; + if (meta.title && typeof meta.title === 'function') { + meta.__titleIsFunction__ = true; + meta.title = meta.title(route); + } + let obj = { + icon: (item.meta && item.meta.icon) || '', + name: item.name, + meta: meta + }; + return obj; + }); + res = res.filter(item => { + return !item.meta.hideInMenu; + }); + return [...res]; +}; +/** + * @param {Array} routers 路由列表数组 + * @description 用于找到路由列表中name为home的对象 + */ +export const getHomeRoute = (routers, homeName = 'Home') => { + let i = -1; + let len = routers.length; + let homeRoute = {}; + while (++i < len) { + let item = routers[i]; + if (item.children && item.children.length) { + let res = getHomeRoute(item.children, homeName); + if (res.name) return res; + } else { + if (item.name === homeName) homeRoute = item; + } + } + return homeRoute; +}; +/** + * @param {Array} list 标签列表 + * @param {String} name 当前关闭的标签的name + */ +export const getNextRoute = (list, route) => { + let res = {}; + if (list.length === 2) { + res = getHomeRoute(list); + } else { + const index = list.findIndex(item => routeEqual(item, route)); + if (index === list.length - 1) res = list[list.length - 2]; + else res = list[index + 1]; + } + return res; +}; + +/** + * 判断打开的标签列表里是否已存在这个新添加的路由对象 + */ +export const routeHasExist = (tagNavList, routeItem) => { + let len = tagNavList.length; + let res = false; + doCustomTimes(len, index => { + if (routeEqual(tagNavList[index], routeItem)) res = true; + }); + return res; +}; +/** + * @param {*} list 现有标签导航列表 + * @param {*} newRoute 新添加的路由原信息对象 + * @description 如果该newRoute已经存在则不再添加 + */ +export const getNewTagList = (list, newRoute) => { + const { name, path, meta, query } = newRoute; + let newList = [...list]; + let index = newList.findIndex(item => item.name === name); + if (index >= 0) { + newList[index] = { name, path, meta, query }; + } else newList.push({ name, path, meta, query }); + return newList; +}; +export const routeEqual = (route1, route2) => { + return route1.name === route2.name; +}; +export const getRouteTitleHandled = route => { + let router = { + ...route + }; + let meta = { + ...route.meta + }; + let title = ''; + if (meta.title) { + if (typeof meta.title === 'function') { + meta.__titleIsFunction__ = true; + title = meta.title(router); + } else title = meta.title; + } + meta.title = title; + router.meta = meta; + return router; +}; +/** + * @param {Number} times 回调函数需要执行的次数 + * @param {Function} callback 回调函数 + */ +export const doCustomTimes = (times, callback) => { + let i = -1; + while (++i < times) { + callback(i); + } +}; +export const showTitle = (item, vm) => { + let { title, __titleIsFunction__ } = item.meta; + if (!title) return; + if (useI18n) { + if (title.includes('{{') && title.includes('}}') && useI18n) { + title = title.replace(/({{[\s\S]+?}})/, (m, str) => + str.replace(/{{([\s\S]*)}}/, (m, _) => vm.$t(_.trim())) + ); + } else if (__titleIsFunction__) title = item.meta.title; + else title = vm.$t(item.name); + } else title = (item.meta && item.meta.title) || item.name; + return title; +}; +/** + * @description 根据当前跳转的路由设置显示在浏览器标签的title + * @param {Object} routeItem 路由对象 + * @param {Object} vm Vue实例 + */ +export const setTitle = (routeItem, vm) => { + const handledRoute = getRouteTitleHandled(routeItem); + const pageTitle = showTitle(handledRoute, vm); + const resTitle = pageTitle ? `${pageTitle} - ${title}` : title; + window.document.title = resTitle; +}; + +export const findNodeUpper = (ele, tag) => { + if (ele.parentNode) { + if (ele.parentNode.tagName === tag.toUpperCase()) { + return ele.parentNode; + } else { + return findNodeUpper(ele.parentNode, tag); + } + } +}; + +export const findNodeUpperByClasses = (ele, classes) => { + let parentNode = ele.parentNode; + if (parentNode) { + let classList = parentNode.classList; + if ( + classList && + classes.every(className => classList.contains(className)) + ) { + return parentNode; + } else { + return findNodeUpperByClasses(parentNode, classes); + } + } +}; + +export const findNodeDownward = (ele, tag) => { + const tagName = tag.toUpperCase(); + if (ele.childNodes.length) { + let i = -1; + let len = ele.childNodes.length; + while (++i < len) { + let child = ele.childNodes[i]; + if (child.tagName === tagName) return child; + else return findNodeDownward(child, tag); + } + } +}; diff --git a/smart_admin_v1/smart-admin-h5/src/lib/printPlugs.js b/smart_admin_v1/smart-admin-h5/src/lib/printPlugs.js new file mode 100644 index 00000000..9c4295dd --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/lib/printPlugs.js @@ -0,0 +1,133 @@ +// 打印类属性、方法定义 +/* eslint-disable */ +//第二个参数表明是否要关闭当前窗口 +const Print = function(dom, close, options) { + if (!(this instanceof Print)) return new Print(dom, close, options); + + this.options = this.extend( + { + noPrint: '.no-print' + }, + options + ); + + if (typeof dom === 'string') { + this.dom = document.querySelector(dom); + } else { + this.dom = dom; + } + + this.init(close); +}; +Print.prototype = { + init: function(close) { + var content = this.getStyle() + this.getHtml(); + this.writeIframe(content, close); + }, + extend: function(obj, obj2) { + for (var k in obj2) { + obj[k] = obj2[k]; + } + return obj; + }, + + getStyle: function() { + var str = '', + styles = document.querySelectorAll('style,link'); + for (var i = 0; i < styles.length; i++) { + str += styles[i].outerHTML; + } + str += + ''; + + return str; + }, + + getHtml: function() { + var inputs = document.querySelectorAll('input'); + var textareas = document.querySelectorAll('textarea'); + var selects = document.querySelectorAll('select'); + + for (var k in inputs) { + if (inputs[k].type == 'checkbox' || inputs[k].type == 'radio') { + if (inputs[k].checked == true) { + inputs[k].setAttribute('checked', 'checked'); + } else { + inputs[k].removeAttribute('checked'); + } + } else if (inputs[k].type == 'text') { + inputs[k].setAttribute('value', inputs[k].value); + } + } + + for (var k2 in textareas) { + if (textareas[k2].type == 'textarea') { + textareas[k2].innerHTML = textareas[k2].value; + } + } + + for (var k3 in selects) { + if (selects[k3].type == 'select-one') { + var child = selects[k3].children; + for (var i in child) { + if (child[i].tagName == 'OPTION') { + if (child[i].selected == true) { + child[i].setAttribute('selected', 'selected'); + } else { + child[i].removeAttribute('selected'); + } + } + } + } + } + return this.dom.outerHTML; + }, + + writeIframe: function(content, close) { + var w, + doc, + iframe = document.createElement('iframe'), + f = document.body.appendChild(iframe); + iframe.id = 'myIframe'; + iframe.style = 'position:absolute;'; + + w = f.contentWindow || f.contentDocument; + doc = f.contentDocument || f.contentWindow.document; + doc.open(); + doc.write(content); + doc.close(); + this.toPrint(w, close); + setTimeout(function() { + document.body.removeChild(iframe); + }, 500); + }, + + toPrint: function(frameWindow, close) { + try { + setTimeout(function() { + frameWindow.focus(); + try { + if (!frameWindow.document.execCommand('print', false, null)) { + frameWindow.print(); + } + } catch (e) { + frameWindow.print(); + } + frameWindow.close(); + if (close) { + window.close(); + } + }, 500); + } catch (err) { + console.log('err', err); + } + } +}; +const MyPlugin = {}; +MyPlugin.install = function(Vue, options) { + // 4. 添加实例方法 + Vue.prototype.$print = Print; +}; +export default MyPlugin; diff --git a/smart_admin_v1/smart-admin-h5/src/lib/render-dom.js b/smart_admin_v1/smart-admin-h5/src/lib/render-dom.js new file mode 100644 index 00000000..1cad207e --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/lib/render-dom.js @@ -0,0 +1,10 @@ +export default { + name: 'RenderDom', + functional: true, + props: { + render: Function + }, + render: (h, ctx) => { + return ctx.props.render(h); + } +}; diff --git a/smart_admin_v1/smart-admin-h5/src/lib/smart-sentry.js b/smart_admin_v1/smart-admin-h5/src/lib/smart-sentry.js new file mode 100644 index 00000000..2ccd8f0a --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/lib/smart-sentry.js @@ -0,0 +1,21 @@ +/* + * @Description: + * @Author: hanyu + * @Date: 2020-05-28 12:46:06 + * @LastEditTime: 2020-07-08 09:16:15 + * @LastEditors: hy + */ +// smart sentry +import * as Sentry from '@sentry/browser'; +export default { + /** + * sentry 主动上报 + * @param {error} error 错误信息 + */ + captureException: (error) => { + if (error.config && error.data && error && error.headers && error.request && error.status) { + return; + } + Sentry.captureException(error); + } +}; diff --git a/smart_admin_v1/smart-admin-h5/src/lib/util.js b/smart_admin_v1/smart-admin-h5/src/lib/util.js new file mode 100644 index 00000000..6a3845b0 --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/lib/util.js @@ -0,0 +1,515 @@ +import moment from 'moment'; +/** + * @param {String} url + * @description 从URL中解析参数 + */ +export const getParams = url => { + const keyValueArr = url.split('?')[1].split('&'); + let paramObj = {}; + keyValueArr.forEach(item => { + const keyValue = item.split('='); + paramObj[keyValue[0]] = keyValue[1]; + }); + return paramObj; +}; + +/** + * @param {Any} obj + * @description 获取数据类型 + */ +export const getType = obj => { + return {}.toString + .call(obj) + .match(/\s([a-zA-Z]+)/)[1] + .toLowerCase(); +}; +// 日期格式 +export const dateFormat = { + YMD: 'YMD', + YMDHM: 'YMDHM', + YMDHMS: 'YMDHMS' +}; +export const forEach = (arr, fn) => { + if (!arr.length || !fn) return; + let i = -1; + let len = arr.length; + while (++i < len) { + let item = arr[i]; + fn(item, i, arr); + } +}; + +/** + * @param {Array} arr1 + * @param {Array} arr2 + * @description 得到两个数组的交集, 两个数组的元素为数值或字符串 + */ +export const getIntersection = (arr1, arr2) => { + let len = Math.min(arr1.length, arr2.length); + let i = -1; + let res = []; + while (++i < len) { + const item = arr2[i]; + if (arr1.indexOf(item) > -1) res.push(item); + } + return res; +}; + +/** + * @param {Array} arr1 + * @param {Array} arr2 + * @description 得到两个数组的并集, 两个数组的元素为数值或字符串 + */ +export const getUnion = (arr1, arr2) => { + return Array.from(new Set([...arr1, ...arr2])); +}; + +/** + * @param {Array} target 目标数组 + * @param {Array} arr 需要查询的数组 + * @description 判断要查询的数组是否至少有一个元素包含在目标数组中 + */ +export const hasOneOf = (targetarr, arr) => { + return targetarr.some(_ => arr.indexOf(_) > -1); +}; + +/** + * @param {String|Number} value 要验证的字符串或数值 + * @param {*} validList 用来验证的列表 + */ +export function oneOf (value, validList) { + for (let i = 0; i < validList.length; i++) { + if (value === validList[i]) { + return true; + } + } + return false; +} + +/** + * @param {Number} timeStamp 判断时间戳格式是否是毫秒 + * @returns {Boolean} + */ +const isMillisecond = timeStamp => { + const timeStr = String(timeStamp); + return timeStr.length > 10; +}; + +/** + * @param {Number} timeStamp 传入的时间戳 + * @param {Number} currentTime 当前时间时间戳 + * @returns {Boolean} 传入的时间戳是否早于当前时间戳 + */ +const isEarly = (timeStamp, currentTime) => { + return timeStamp < currentTime; +}; + +/** + * @param {Number} num 数值 + * @returns {String} 处理后的字符串 + * @description 如果传入的数值小于10,即位数只有1位,则在前面补充0 + */ +const getHandledValue = num => { + return num < 10 ? '0' + num : num; +}; + +/** + * @param {Number} timeStamp 传入的时间戳 + * @param {Number} startType 要返回的时间字符串的格式类型,传入'year'则返回年开头的完整时间 + */ +const getDate = (timeStamp, startType) => { + const d = new Date(timeStamp * 1000); + const year = d.getFullYear(); + const month = getHandledValue(d.getMonth() + 1); + const date = getHandledValue(d.getDate()); + const hours = getHandledValue(d.getHours()); + const minutes = getHandledValue(d.getMinutes()); + const second = getHandledValue(d.getSeconds()); + let resStr = ''; + if (startType === 'year') { + resStr = + year + + '-' + + month + + '-' + + date + + ' ' + + hours + + ':' + + minutes + + ':' + + second; + } + else resStr = month + '-' + date + ' ' + hours + ':' + minutes; + return resStr; +}; + +/** + * @param {String|Number} timeStamp 时间戳 + * @returns {String} 相对时间字符串 + */ +export const getRelativeTime = timeStamp => { + // 判断当前传入的时间戳是秒格式还是毫秒 + const IS_MILLISECOND = isMillisecond(timeStamp); + // 如果是毫秒格式则转为秒格式 + if (IS_MILLISECOND) Math.floor((timeStamp /= 1000)); + // 传入的时间戳可以是数值或字符串类型,这里统一转为数值类型 + timeStamp = Number(timeStamp); + // 获取当前时间时间戳 + const currentTime = Math.floor(Date.parse(new Date()) / 1000); + // 判断传入时间戳是否早于当前时间戳 + const IS_EARLY = isEarly(timeStamp, currentTime); + // 获取两个时间戳差值 + let diff = currentTime - timeStamp; + // 如果IS_EARLY为false则差值取反 + if (!IS_EARLY) diff = -diff; + let resStr = ''; + const dirStr = IS_EARLY ? '前' : '后'; + // 少于等于59秒 + if (diff <= 59) resStr = diff + '秒' + dirStr; + // 多于59秒,少于等于59分钟59秒 + else if (diff > 59 && diff <= 3599) { resStr = Math.floor(diff / 60) + '分钟' + dirStr; } + // 多于59分钟59秒,少于等于23小时59分钟59秒 + else if (diff > 3599 && diff <= 86399) { resStr = Math.floor(diff / 3600) + '小时' + dirStr; } + // 多于23小时59分钟59秒,少于等于29天59分钟59秒 + else if (diff > 86399 && diff <= 2623859) { resStr = Math.floor(diff / 86400) + '天' + dirStr; } + // 多于29天59分钟59秒,少于364天23小时59分钟59秒,且传入的时间戳早于当前 + else if (diff > 2623859 && diff <= 31567859 && IS_EARLY) { resStr = getDate(timeStamp); } + else resStr = getDate(timeStamp, 'year'); + return resStr; +}; + +/** + * @returns {String} 当前浏览器名称 + */ +export const getExplorer = () => { + const ua = window.navigator.userAgent; + const isExplorer = exp => { + return ua.indexOf(exp) > -1; + }; + if (isExplorer('MSIE')) return 'IE'; + else if (isExplorer('Firefox')) return 'Firefox'; + else if (isExplorer('Chrome')) return 'Chrome'; + else if (isExplorer('Opera')) return 'Opera'; + else if (isExplorer('Safari')) return 'Safari'; +}; + +/** + * @description 绑定事件 on(element, event, handler) + */ +export const on = (function () { + if (document.addEventListener) { + return function (element, event, handler) { + if (element && event && handler) { + element.addEventListener(event, handler, false); + } + }; + } else { + return function (element, event, handler) { + if (element && event && handler) { + element.attachEvent('on' + event, handler); + } + }; + } +})(); + +/** + * @description 解绑事件 off(element, event, handler) + */ +export const off = (function () { + if (document.removeEventListener) { + return function (element, event, handler) { + if (element && event) { + element.removeEventListener(event, handler, false); + } + }; + } else { + return function (element, event, handler) { + if (element && event) { + element.detachEvent('on' + event, handler); + } + }; + } +})(); + +/** + * 判断一个对象是否存在key,如果传入第二个参数key,则是判断这个obj对象是否存在key这个属性 + * 如果没有传入key这个参数,则判断obj对象是否有键值对 + */ +export const hasKey = (obj, key) => { + if (key) return key in obj; + else { + let keysArr = Object.keys(obj); + return keysArr.length; + } +}; + +/** + * @param {*} obj1 对象 + * @param {*} obj2 对象 + * @description 判断两个对象是否相等,这两个对象的值只能是数字或字符串 + */ +export const objEqual = (obj1, obj2) => { + const keysArr1 = Object.keys(obj1); + const keysArr2 = Object.keys(obj2); + if (keysArr1.length !== keysArr2.length) return false; + else if (keysArr1.length === 0 && keysArr2.length === 0) return true; + /* eslint-disable-next-line */ else { return !keysArr1.some(key => obj1[key] != obj2[key]); } +}; + +// 相关工具类 +export const utils = { + /** + * @description table实现反选 + * @param {Object} vm Vue实例 + * @param {Array} tableSelectDate 选中的数据 + * @param {Array} allData 所有数据 + * @param {Array} key 数据中的唯一值 + */ + reverseSelect (vm, tableSelectDate, allData, key) { + let copyMess = JSON.parse(JSON.stringify(tableSelectDate)); + // 流程:先全部选中->再部分选中 + vm.handleSelectAll(false); + // 选中的idList + let idList = copyMess.map(item => item[key]); + console.log(idList); + for (let item of allData) { + if (idList.every(id => id !== item.id)) { + vm.$set(item, '_checked', true); + tableSelectDate.push(item); + } else { + vm.$set(item, '_checked', false); + } + } + }, + // 校验字符串是否相同 合同使用 + contrastString (originStr, changeStr) { + let origin = originStr + .replace(/\s*/g, '') + .replace(/"/g, '\'') + .replace(/ /g, '') + .replace(/disabled=\/'\/'/g, 'disabled'); + let change = changeStr + .replace(/\s*/g, '') + .replace(/"/g, '\'') + .replace(/ /g, '') + .replace(/disabled=\/'\/'/g, 'disabled'); + return origin === change; + }, + // 获取当前日期getDateStr(0)、前几天getDateStr(-10)、后几天getDateStr(20) + getDateStr (AddDayCount, format) { + let date = new Date(); + // 获取AddDayCount天后的日期 + date.setDate(date.getDate() + AddDayCount); + return this.getDate(date, format); + }, + getDate (date, format) { + let year = date.getFullYear(); + // day获取当前几号,不足10补0 + let day = date.getDate() > 9 ? date.getDate() : '0' + date.getDate(); + // month获取当前月份的日期,不足10补0 + let month = + date.getMonth() + 1 > 9 + ? date.getMonth() + 1 + : '0' + (date.getMonth() + 1); + // h获取当前小时,不足10补0 + let h = date.getHours() > 9 ? date.getHours() : '0' + date.getHours(); + // s获取当前分钟,不足10补0 + let m = date.getMinutes() > 9 ? date.getMinutes() : '0' + date.getMinutes(); + // s获取当前秒数,不足10补0 + let s = date.getSeconds() > 9 ? date.getSeconds() : '0' + date.getSeconds(); + let resultDate = ''; + if (format === dateFormat.YMD) { + resultDate = year + '-' + month + '-' + day; + } + if (format === dateFormat.YMDHM) { + resultDate = year + '-' + month + '-' + day + ' ' + h + ':' + m; + } + if (format === dateFormat.YMDHMS) { + resultDate = year + '-' + month + '-' + day + ' ' + h + ':' + m + ':' + s; + } + return resultDate; + }, + // 获取周一和周日日期,返回两种格式时间 + getDateWeek () { + let now = new Date(); + let nowTime = now.getTime(); + let day = now.getDay(); + let oneDayLong = 1000 * 60 * 60 * 24; + let MondayTime = nowTime - (day - 1) * oneDayLong; + let SundayTime = nowTime + (7 - day) * oneDayLong; + let monday = new Date(MondayTime); + let sunday = new Date(SundayTime); + return { + // first: this.getDateAll(monday), + // last: this.getDateAll(sunday), + firstDate: monday, + lastDate: sunday + }; + }, + // 获取月初与月末日期,返回两种时间格式 + getDateMonth () { + let dateFirter = new Date(); + let dateLast = new Date(); + dateFirter.setDate(1); + + let currentMonth = dateLast.getMonth(); + let nextMonth = ++currentMonth; + let nextMonthFirstDay = new Date(dateLast.getFullYear(), nextMonth, 1); + let oneDay = 1000 * 60 * 60 * 24; + dateLast = new Date(nextMonthFirstDay - oneDay); + + return { + // first: this.getDateAll(dateFirter), + // last: this.getDateAll(dateLast), + firstDate: dateFirter, + lastDate: dateLast + }; + }, + // 计算天数 + getDayBetweenDate (date) { + date = this.getDate(new Date(date), 'YMD'); + let startTime = Date.parse(new Date(date)); // IE支持“yyyy/MM/dd”格式 + let endTime = Date.parse(this.getDate(new Date(), 'YMD')); + let day = parseInt((endTime - startTime) / (1000 * 60 * 60 * 24)); + return day; + }, + getDateIntervalYear (firstDate, secondDate) { + if (!firstDate || !secondDate) { + return 0; + } + let first = new Date(firstDate); + let second = new Date(secondDate); + let firstYear = first.getFullYear(); + let secondYear = second.getFullYear(); + let intervalYear = secondYear - firstYear; + return intervalYear < 0 ? 0 : intervalYear; + }, + getDateIntervalYearFixed2 (firstDate, secondDate) { + if (!firstDate || !secondDate) { + return 0; + } + // 格式化时间 + let startDate = new Date(this.getDate(new Date(firstDate), 'YMD')); + let endDate = new Date(this.getDate(new Date(secondDate), 'YMD')); + // 得到毫秒值 + let startTime = Date.parse(startDate); + let endTime = Date.parse(endDate); + // 得到差了多少天 + let day = parseInt((endTime - startTime) / (1000 * 60 * 60 * 24)); + if (day <= 0) { + return 0; + } + // 得到差的多少年 保留两位小数 + let resultYear = parseFloat((day / (30 * 12)).toFixed(2)); + return resultYear; + }, + // 数字转化为中文大写 + // 代码如下所示: + convertCurrency (money) { + // 汉字的数字 + let cnNums = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖']; + // 基本单位 + let cnIntRadice = ['', '拾', '佰', '仟']; + // 对应整数部分扩展单位 + let cnIntUnits = ['', '万', '亿', '兆']; + // 对应小数部分单位 + let cnDecUnits = ['角', '分', '毫', '厘']; + // 整数金额时后面跟的字符 + let cnInteger = '整'; + // 整型完以后的单位 + let cnIntLast = '元'; + // 最大处理的数字 + let maxNum = 999999999999999.9999; + // 金额整数部分 + let integerNum; + // 金额小数部分 + let decimalNum; + // 输出的中文金额字符串 + let chineseStr = ''; + // 分离金额后用的数组,预定义 + let parts; + if (money === '') { + return ''; + } + money = parseFloat(money); + if (money >= maxNum) { + // 超出最大处理数字 + return ''; + } + if (money === 0) { + chineseStr = cnNums[0] + cnIntLast + cnInteger; + return chineseStr; + } + // 转换为字符串 + money = money.toString(); + if (money.indexOf('.') === -1) { + integerNum = money; + decimalNum = ''; + } else { + parts = money.split('.'); + integerNum = parts[0]; + decimalNum = parts[1].substr(0, 4); + } + // 获取整型部分转换 + if (parseInt(integerNum, 10) > 0) { + let zeroCount = 0; + let IntLen = integerNum.length; + for (let i = 0; i < IntLen; i++) { + let n = integerNum.substr(i, 1); + let p = IntLen - i - 1; + let q = p / 4; + let m = p % 4; + if (n === '0') { + zeroCount++; + } else { + if (zeroCount > 0) { + chineseStr += cnNums[0]; + } + // 归零 + zeroCount = 0; + chineseStr += cnNums[parseInt(n)] + cnIntRadice[m]; + } + if (m === 0 && zeroCount < 4) { + chineseStr += cnIntUnits[q]; + } + } + chineseStr += cnIntLast; + } + // 小数部分 + if (decimalNum !== '') { + let decLen = decimalNum.length; + for (let i = 0; i < decLen; i++) { + let n = decimalNum.substr(i, 1); + if (n !== '0') { + chineseStr += cnNums[Number(n)] + cnDecUnits[i]; + } + } + } + if (chineseStr === '') { + chineseStr += cnNums[0] + cnIntLast + cnInteger; + } else if (decimalNum === '') { + chineseStr += cnInteger; + } + return chineseStr; + } +}; + + +export const dateTimeRangeConvert = (timerange) => { + // timerange + let arr = []; + if (timerange[0] === '') { + arr.push(null); + } else { + arr.push(moment(timerange[0]).format("YYYY-MM-DD 00:00:00")); + } + + if (timerange[1] === '') { + arr.push(null); + } else { + arr.push(moment(timerange[1]).format("YYYY-MM-DD 23:59:59")); + } + return arr; +} + diff --git a/smart_admin_v1/smart-admin-h5/src/lib/watermark.js b/smart_admin_v1/smart-admin-h5/src/lib/watermark.js new file mode 100644 index 00000000..30747309 --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/lib/watermark.js @@ -0,0 +1,49 @@ +const watermark = {}; + +const setWatermark = (str) => { + const id = '1.23452384164.123412415'; + + if (document.getElementById(id) !== null) { + document.body.removeChild(document.getElementById(id)); + } + + const can = document.createElement('canvas'); + can.width = 150; + can.height = 120; + + const cans = can.getContext('2d'); + cans.rotate(-20 * Math.PI / 180); + cans.font = '15px Vedana'; + cans.fillStyle = 'rgba(0, 0, 0, 0.15)'; + cans.textAlign = 'left'; + cans.textBaseline = 'Middle'; + cans.fillText(str, can.width / 20, can.height); + + const div = document.createElement('div'); + div.id = id; + div.style.pointerEvents = 'none'; + div.style.top = '3px'; + div.style.left = '0px'; + div.style.position = 'fixed'; + div.style.zIndex = '100000'; + div.style.width = document.documentElement.clientWidth + 'px'; + div.style.height = document.documentElement.clientHeight + 'px'; + div.style.background = 'url(' + can.toDataURL('image/png') + ') left top repeat'; + document.body.appendChild(div); + return id; +}; + +// 该方法只允许调用一次 +watermark.set = (str) => { + let id = setWatermark(str); + setInterval(() => { + if (document.getElementById(id) === null) { + id = setWatermark(str); + } + }, 2000); + window.onresize = () => { + setWatermark(str); + }; +}; + +export default watermark; diff --git a/smart_admin_v1/smart-admin-h5/src/main.js b/smart_admin_v1/smart-admin-h5/src/main.js new file mode 100644 index 00000000..887c9198 --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/main.js @@ -0,0 +1,62 @@ +// vue 三大核心 +import Vue from 'vue'; +import router from '@/router'; +import store from '@/store'; + +// 更好的兼容性 +import 'core-js/stable'; +import 'regenerator-runtime/runtime'; +// 移动端适配 +import 'lib-flexible/flexible.js'; +import 'vant/lib/index.css'; +// 引入首个组件 +import App from './App.vue'; +// 引入自定义主题样式 +import './themes/index.scss'; +// 引入过滤器 +import './filters'; +// 引入配置信息 +import config from '@/config'; +// 引入自定义smart 插件 +import SmartPlugin from './plugins/smart'; +// Import component +import Loading from 'vue-loading-overlay'; +// Import stylesheet +import 'vue-loading-overlay/dist/vue-loading.css'; + +import Vant from 'vant'; +import 'vant/lib/index.css'; + +// sentry错误预警 +import SmartSentry from './plugins/smart-sentry'; + +import Enum from 'vue-enum'; + +import enumInfo from '@/constants'; + +import _ from 'lodash'; + +Vue.use(Vant); + +Vue.use(Loading); + +Vue.use(SmartPlugin); + +Vue.use(SmartSentry); + +Vue.prototype.$config = config; + +Vue.config.productionTip = false; + +Vue.use(Enum, { + enumInfo +}); + +window._ = _; + +new Vue({ + el: '#app', + router, + store, + render: h => h(App) +}); diff --git a/smart_admin_v1/smart-admin-h5/src/plugins/smart-sentry.js b/smart_admin_v1/smart-admin-h5/src/plugins/smart-sentry.js new file mode 100644 index 00000000..b4ad2b09 --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/plugins/smart-sentry.js @@ -0,0 +1,17 @@ +import * as Sentry from '@sentry/browser'; + +const SmartSentry = {}; + +SmartSentry.install = function(Vue, options) { + Vue.prototype.$smartSentry = { + captureException: (error) => { + console.error(error); + if (error.config && error.data && error && error.headers && error.request && error.status) { + return; + } + Sentry.captureException(error); + } + }; +}; + +export default SmartSentry; diff --git a/smart_admin_v1/smart-admin-h5/src/plugins/smart.js b/smart_admin_v1/smart-admin-h5/src/plugins/smart.js new file mode 100644 index 00000000..5567acca --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/plugins/smart.js @@ -0,0 +1,24 @@ +let loader = null; + +const SmartPlugin = {}; + +SmartPlugin.install = function(Vue, options) { + Vue.prototype.$smart = { + loading: (message) => { + if (loader) { + loader.hide(); + } + + loader = Vue.$loading.show({ + // Optional parameters + lockScroll: true, + color: '#1989fa' + }); + }, + loadingClear: () => { + loader.hide(); + } + }; +}; + +export default SmartPlugin; diff --git a/smart_admin_v1/smart-admin-h5/src/plugins/vant.js b/smart_admin_v1/smart-admin-h5/src/plugins/vant.js new file mode 100644 index 00000000..8daa8e3e --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/plugins/vant.js @@ -0,0 +1,8 @@ +// 按需全局引入 vant组件 +import Vue from 'vue'; +import { Button, List, Cell, Tabbar, TabbarItem } from 'vant'; + +Vue.use(Button); +Vue.use(Cell); +Vue.use(List); +Vue.use(Tabbar).use(TabbarItem); diff --git a/smart_admin_v1/smart-admin-h5/src/router/dashboard/index.js b/smart_admin_v1/smart-admin-h5/src/router/dashboard/index.js new file mode 100644 index 00000000..69506bbe --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/router/dashboard/index.js @@ -0,0 +1,42 @@ +import { ROUTER_PERMISSION_TYPE } from '@/router/router-const'; + +/** + * dashboard首页 + */ +export const dashboardRouter = [ + { + path: '/', + // redirect: '/dashboard/contact-company', + redirect: '/dashboard/user', + meta: { + title: '首页', + keepAlive: true, + permissionType: ROUTER_PERMISSION_TYPE.NEED_LOGIN.value + }, + component: () => import('@/views/dashboard/dashboard'), + children: [ + // { + // path: '/dashboard/contact-company', + // name: 'ContactCompany', + // meta: { + // title: '往来单位', + // keepAlive: true, + // showTabbar: true, + // permissionType: ROUTER_PERMISSION_TYPE.NEED_LOGIN.value + // }, + // component: () => import('@/views/erp/contact-company/contact-company') + // }, + { + path: '/dashboard/user', + name: 'Mine', + meta: { + title: '我的', + keepAlive: false, + showTabbar: true, + permissionType: ROUTER_PERMISSION_TYPE.NEED_LOGIN.value + }, + component: () => import('@/views/user/index') + } + ] + } +]; diff --git a/smart_admin_v1/smart-admin-h5/src/router/develop/develop.js b/smart_admin_v1/smart-admin-h5/src/router/develop/develop.js new file mode 100644 index 00000000..a3220405 --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/router/develop/develop.js @@ -0,0 +1,21 @@ +import { ROUTER_PERMISSION_TYPE } from '@/router/router-const'; + +export const developRouter = [ + { + path: '/develop', + component: () => import('@/views/dashboard/dashboard'), + children: [ + { + path: '/develop/config', + name: 'DevelopConfig', + meta: { + title: '开发专用配置', + permissionType: ROUTER_PERMISSION_TYPE.NEED_LOGIN.value + }, + component: () => import('views/develop/config') + } + ] + } + +]; + diff --git a/smart_admin_v1/smart-admin-h5/src/router/error/error.js b/smart_admin_v1/smart-admin-h5/src/router/error/error.js new file mode 100644 index 00000000..982c0f96 --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/router/error/error.js @@ -0,0 +1,26 @@ +// 错误页 +import { ROUTER_PERMISSION_TYPE } from '@/router/router-const'; + +export const errorRouter = [ + { + path: '/404', + name: 'Error404', + meta: { + hideInMenu: true, + access: true, + permissionType: ROUTER_PERMISSION_TYPE.NO_VALID.value + }, + component: () => import('views/error/404.vue') + }, + { + path: '/500', + name: 'Error500', + meta: { + hideInMenu: true, + access: true, + noValidatePrivilege: true, + permissionType: ROUTER_PERMISSION_TYPE.NO_VALID.value + }, + component: () => import('views/error/404.vue') + } +]; diff --git a/smart_admin_v1/smart-admin-h5/src/router/index.js b/smart_admin_v1/smart-admin-h5/src/router/index.js new file mode 100644 index 00000000..c47e1a4a --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/router/index.js @@ -0,0 +1,150 @@ +import Vue from 'vue'; +import Router from 'vue-router'; +import { routers } from './routers'; +import cookie from '@/lib/cookie'; +import { ROUTER_PERMISSION_TYPE } from './router-const'; +import NProgress from 'nprogress'; +import 'nprogress/nprogress.css'; + +const projectConfig = require('@/config/index.js'); + +Vue.use(Router); + +/** + * 导入所有的router + * @type {VueRouter} + */ +const router = new Router({ + routes: routers +}); + +// 解决路由跳转相同的地址报错 +const originalPush = Router.prototype.push; +Router.prototype.push = function(location) { + try { + return originalPush.call(this, location).catch(err => err); + } catch (error) { + // TODO zhuoda sentry + console.error(error); + } +}; + +const LOGIN_PAGE_NAME = 'Login'; + +// --------------------- router 守卫 begin --------------------- + +router.beforeEach((to, from, next) => { + // 加载进度条 + NProgress.start(); + + // 权限 + const permissionType = to.meta.permissionType; + // 不需要验证,直接放行 + if (permissionType === ROUTER_PERMISSION_TYPE.NO_VALID.value) { + next(); + return; + } + + const token = cookie.getToken(); + // 需要登录 + if (permissionType === ROUTER_PERMISSION_TYPE.NEED_LOGIN.value) { + if (token) { + next(); + } else { + next({ + name: LOGIN_PAGE_NAME + }); + } + return; + } + + // 需要登录,且验证权限 + if (permissionType === ROUTER_PERMISSION_TYPE.VALIDATE_PERMISSION.value) { + if (!token) { + // TODO 验证权限 + next({ + name: LOGIN_PAGE_NAME + }); + return; + } + } + + next({ + name: 'Error404' + }); +}); + +router.afterEach(to => { + NProgress.done(); + window.scrollTo(0, 0); + if (to.meta.title) { + console.log(to.meta); + document.title = to.meta.title + ' ' + projectConfig.title; + } +}); + +// --------------------- router 守卫 end --------------------- + +/** + * router 检测 + * + * 如果存在相同的 path 或者 name 是一件非常恐怖的事情,所以在develop环境将所有router进行一次遍历
+ * 检测内容如下:
+ * 1、相同的router name + * 2、相同的router name + * 3、path没有以 / 开头 + * + */ + +const tempCheckObj = { + checkRouterNameMap: new Map(), + checkRouterPathMap: new Map() +}; + +function recursionCheckRouter(routerArray) { + for (const routerItem of routerArray) { + if (!routerItem.name) { + console.error('没有配置router name', routerItem); + } else { + const existNameRouter = tempCheckObj.checkRouterNameMap.get( + routerItem.name + ); + if (typeof existNameRouter !== 'undefined') { + console.error('存在相同的router name', routerItem, existNameRouter); + } else { + tempCheckObj.checkRouterNameMap.set(routerItem.name, routerItem); + } + } + + if (!routerItem.path) { + console.error('没有配置router path', routerItem); + } else { + // path必须以 / 开头 + if (routerItem.path !== '*' && routerItem.path.indexOf('/') !== 0) { + console.error('path 没有以/开头 ', routerItem); + } + + const existPathRouter = tempCheckObj.checkRouterPathMap.get( + routerItem.path + ); + if (typeof existPathRouter !== 'undefined') { + console.error('存在相同的router path', routerItem, existPathRouter); + } else { + tempCheckObj.checkRouterPathMap.set(routerItem.path, routerItem); + } + } + + if (routerItem.children) { + recursionCheckRouter(routerItem.children); + } + } +} + +// 如果是开发环境,需要检测router的规范性 +if (process.env.NODE_ENV === 'development') { + recursionCheckRouter(routers); + delete tempCheckObj.checkRouterNameMap; + delete tempCheckObj.checkRouterPathMap; +} + +export default router; diff --git a/smart_admin_v1/smart-admin-h5/src/router/login/login.js b/smart_admin_v1/smart-admin-h5/src/router/login/login.js new file mode 100644 index 00000000..7c9b6a53 --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/router/login/login.js @@ -0,0 +1,15 @@ +import { ROUTER_PERMISSION_TYPE } from '@/router/router-const'; + +export const loginRouter = [ + { + path: '/login', + name: 'Login', + meta: { + title: '登录', + keepAlive: false, + permissionType: ROUTER_PERMISSION_TYPE.NO_VALID.value + }, + component: () => import('@/views/login/login.vue') + } + +]; diff --git a/smart_admin_v1/smart-admin-h5/src/router/router-const.js b/smart_admin_v1/smart-admin-h5/src/router/router-const.js new file mode 100644 index 00000000..4d509cf8 --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/router/router-const.js @@ -0,0 +1,23 @@ +/** + * 权限类型 + */ +export const ROUTER_PERMISSION_TYPE = { + /** + * 不 验 证 + */ + NO_VALID: { + value: 1 + }, + /** + * 需要登录 + */ + NEED_LOGIN: { + value: 2 + }, + /** + * 需要验证权限 + */ + VALIDATE_PERMISSION: { + value: 3 + } +}; diff --git a/smart_admin_v1/smart-admin-h5/src/router/routers.js b/smart_admin_v1/smart-admin-h5/src/router/routers.js new file mode 100644 index 00000000..e1c106e9 --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/router/routers.js @@ -0,0 +1,32 @@ +// 全局错误页面 +import { errorRouter } from './error/error'; +// 登录注册模块 +import { loginRouter } from './login/login'; +// tabbar dashboard 框架页面 +import { dashboardRouter } from './dashboard'; +// 用户相关 +import { userRouter } from './user/user'; +// 开发相关 +import { developRouter } from './develop/develop'; + +/** + * router meta 说明:
+ * + * title: 为页面的title,会显示到浏览器的title上 + * permissionType: 具体使用 router-const.js中的 ROUTER_PERMISSION_TYPE 常量;情况有: 1)不验证 2)校验登录 3)登录后校验权限 + * keepAlive: true or false ; 是否进行页面keepalive, 如果想删除keepalive,可以使用vuex中的app module里有mutation + * showTabbar: true or false ; 是否展示 tabbar, 如果是true, 则会展示tabbar + * + */ +export const routers = [ + // 登录、注册 + ...loginRouter, + // 404、500、403等 + ...errorRouter, + // tab bar 页面 + ...dashboardRouter, + // 用户 + ...userRouter, + // 开发相关 + ...developRouter +]; diff --git a/smart_admin_v1/smart-admin-h5/src/router/user/user.js b/smart_admin_v1/smart-admin-h5/src/router/user/user.js new file mode 100644 index 00000000..901e5708 --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/router/user/user.js @@ -0,0 +1,21 @@ +import { ROUTER_PERMISSION_TYPE } from '@/router/router-const'; + +export const userRouter = [ + { + path: '/user', + component: () => import('@/views/dashboard/dashboard'), + children: [ + { + path: '/user/change-password', + name: 'UserChangePassword', + meta: { + title: '修改密码', + permissionType: ROUTER_PERMISSION_TYPE.NEED_LOGIN.value + }, + component: () => + import('views/user/change-password') + } + ] + } +]; + diff --git a/smart_admin_v1/smart-admin-h5/src/store/index.js b/smart_admin_v1/smart-admin-h5/src/store/index.js new file mode 100644 index 00000000..11c4962b --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/store/index.js @@ -0,0 +1,23 @@ +import Vue from 'vue'; +import Vuex from 'vuex'; + +import user from './module/user'; +import app from './module/app'; + +Vue.use(Vuex); + +export default new Vuex.Store({ + state: { + // + }, + mutations: { + // + }, + actions: { + // + }, + modules: { + app, + user + } +}); diff --git a/smart_admin_v1/smart-admin-h5/src/store/module/app.js b/smart_admin_v1/smart-admin-h5/src/store/module/app.js new file mode 100644 index 00000000..486defe1 --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/store/module/app.js @@ -0,0 +1,32 @@ +/** + * 整个应用相关的状态信息 + * + * 比如: keepalive等 + */ +export default { + namespaced: true, + state: { + // 缓存路由 + keepAliveIncludes: [] + }, + + mutations: { + // 加入keep-alive缓存 + pushKeepAliveIncludes(state, val) { + if (state.keepAliveIncludes.length < 30) { + const number = state.keepAliveIncludes.findIndex(e => e === val); + if (number === -1) { + state.keepAliveIncludes.push(val); + } + } + }, + // 删除缓存 + deleteKeepAliveIncludes(state, val) { + const number = state.keepAliveIncludes.findIndex(e => e === val); + if (number !== -1) { + state.keepAliveIncludes.splice(number, 1); + } + } + } + +}; diff --git a/smart_admin_v1/smart-admin-h5/src/store/module/user.js b/smart_admin_v1/smart-admin-h5/src/store/module/user.js new file mode 100644 index 00000000..5f64b72e --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/store/module/user.js @@ -0,0 +1,41 @@ +import cookie from '@/lib/cookie.js'; + +export default { + namespaced: true, + state: { + token: cookie.getToken(), + // session 信息 + sessionInfo: {}, + // 是否获取了session + isHaveGotSessionInfo: false, + // 权限集合 + privilegeKeySet: new Set() + + }, + mutations: { + clearSession() { + state.token = null; + state.sessionInfo = null; + state.privilegeKeySet = new Set(); + }, + updateSession(state, userLoginInfo) { + state.isHaveGotSessionInfo = true; + state.sessionInfo = userLoginInfo; + if (userLoginInfo.privilegeList) { + state.privilegeKeySet = new Set(userLoginInfo.privilegeList.map(e => e.key)); + } + } + }, + getters: { + // 用户菜单权限 + privilegeKeySet: state => state.privilegeKeySet, + isSuperMan: state => state.sessionInfo.isSuperMan, + actualName: state => state.sessionInfo.actualName, + loginUserId: state => state.sessionInfo.id + }, + actions: { + // 登录 + handleLogin({ commit }, params) { + } + } +}; diff --git a/smart_admin_v1/smart-admin-h5/src/themes/index.scss b/smart_admin_v1/smart-admin-h5/src/themes/index.scss new file mode 100644 index 00000000..b540e422 --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/themes/index.scss @@ -0,0 +1,6 @@ + +html, +body { + font-family: Arial, Helvetica, 'STHeiti STXihei', 'Microsoft YaHei', Tohoma, sans-serif; + background-color: $background-color; +} diff --git a/smart_admin_v1/smart-admin-h5/src/utils/index.js b/smart_admin_v1/smart-admin-h5/src/utils/index.js new file mode 100644 index 00000000..37d915fc --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/utils/index.js @@ -0,0 +1,110 @@ +/** + * Created by PanJiaChen on 16/11/18. + */ + +/** + * Parse the time to string + * @param {(Object|string|number)} time + * @param {string} cFormat + * @returns {string} + */ +export function parseTime(time, cFormat) { + if (arguments.length === 0) { + return null + } + const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}' + let date + if (typeof time === 'object') { + date = time + } else { + if ((typeof time === 'string') && (/^[0-9]+$/.test(time))) { + time = parseInt(time) + } + if ((typeof time === 'number') && (time.toString().length === 10)) { + time = time * 1000 + } + date = new Date(time) + } + const formatObj = { + y: date.getFullYear(), + m: date.getMonth() + 1, + d: date.getDate(), + h: date.getHours(), + i: date.getMinutes(), + s: date.getSeconds(), + a: date.getDay() + } + const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => { + let value = formatObj[key] + // Note: getDay() returns 0 on Sunday + if (key === 'a') { return ['日', '一', '二', '三', '四', '五', '六'][value] } + if (result.length > 0 && value < 10) { + value = '0' + value + } + return value || 0 + }) + return time_str +} + +/** + * @param {number} time + * @param {string} option + * @returns {string} + */ +export function formatTime(time, option) { + if (('' + time).length === 10) { + time = parseInt(time) * 1000 + } else { + time = +time + } + const d = new Date(time) + const now = Date.now() + + const diff = (now - d) / 1000 + + if (diff < 30) { + return '刚刚' + } else if (diff < 3600) { + // less 1 hour + return Math.ceil(diff / 60) + '分钟前' + } else if (diff < 3600 * 24) { + return Math.ceil(diff / 3600) + '小时前' + } else if (diff < 3600 * 24 * 2) { + return '1天前' + } + if (option) { + return parseTime(time, option) + } else { + return ( + d.getMonth() + + 1 + + '月' + + d.getDate() + + '日' + + d.getHours() + + '时' + + d.getMinutes() + + '分' + ) + } +} + +/** + * @param {string} url + * @returns {Object} + */ +export function param2Obj(url) { + const search = url.split('?')[1] + if (!search) { + return {} + } + return JSON.parse( + '{"' + + decodeURIComponent(search) + .replace(/"/g, '\\"') + .replace(/&/g, '","') + .replace(/=/g, '":"') + .replace(/\+/g, ' ') + + '"}' + ) +} diff --git a/smart_admin_v1/smart-admin-h5/src/utils/request.js b/smart_admin_v1/smart-admin-h5/src/utils/request.js new file mode 100644 index 00000000..6788f91b --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/utils/request.js @@ -0,0 +1,58 @@ +import axios from 'axios' +import store from '@/store' +import { Toast } from 'vant' +// 根据环境不同引入不同api地址 +import { baseApi } from '@/config' +// create an axios instance +const service = axios.create({ + baseURL: baseApi, // url = base api url + request url + withCredentials: true, // send cookies when cross-domain requests + timeout: 5000 // request timeout +}) + +// request拦截器 request interceptor +service.interceptors.request.use( + config => { + // 不传递默认开启loading + if (!config.hideloading) { + // loading + Toast.loading({ + forbidClick: true + }) + } + if (store.getters.token) { + config.headers['X-Token'] = '' + } + return config + }, + error => { + // do something with request error + console.log(error) // for debug + return Promise.reject(error) + } +) +// respone拦截器 +service.interceptors.response.use( + response => { + Toast.clear() + const res = response.data + if (res.status && res.status !== 200) { + // 登录超时,重新登录 + if (res.status === 401) { + store.dispatch('FedLogOut').then(() => { + location.reload() + }) + } + return Promise.reject(res || 'error') + } else { + return Promise.resolve(res) + } + }, + error => { + Toast.clear() + console.log('err' + error) // for debug + return Promise.reject(error) + } +) + +export default service diff --git a/smart_admin_v1/smart-admin-h5/src/utils/validate.js b/smart_admin_v1/smart-admin-h5/src/utils/validate.js new file mode 100644 index 00000000..e9bd1bab --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/utils/validate.js @@ -0,0 +1,20 @@ +/** + * Created by Sunnie on 19/06/04. + */ + +/** + * @param {string} path + * @returns {Boolean} + */ +export function isExternal(path) { + return /^(https?:|mailto:|tel:)/.test(path) +} + +/** + * @param {string} str + * @returns {Boolean} + */ +export function validUsername(str) { + const valid_map = ['admin', 'editor'] + return valid_map.indexOf(str.trim()) >= 0 +} diff --git a/smart_admin_v1/smart-admin-h5/src/views/dashboard/dashboard.vue b/smart_admin_v1/smart-admin-h5/src/views/dashboard/dashboard.vue new file mode 100644 index 00000000..47b1ab24 --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/views/dashboard/dashboard.vue @@ -0,0 +1,99 @@ + + + + diff --git a/smart_admin_v1/smart-admin-h5/src/views/develop/config.vue b/smart_admin_v1/smart-admin-h5/src/views/develop/config.vue new file mode 100644 index 00000000..18b2ec08 --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/views/develop/config.vue @@ -0,0 +1,47 @@ + + + + diff --git a/smart_admin_v1/smart-admin-h5/src/views/error/404.vue b/smart_admin_v1/smart-admin-h5/src/views/error/404.vue new file mode 100644 index 00000000..66168409 --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/views/error/404.vue @@ -0,0 +1,23 @@ + + + + diff --git a/smart_admin_v1/smart-admin-h5/src/views/login/login.vue b/smart_admin_v1/smart-admin-h5/src/views/login/login.vue new file mode 100644 index 00000000..8fd8806f --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/views/login/login.vue @@ -0,0 +1,68 @@ + + + + + diff --git a/smart_admin_v1/smart-admin-h5/src/views/user/change-password.vue b/smart_admin_v1/smart-admin-h5/src/views/user/change-password.vue new file mode 100644 index 00000000..08f4c4e8 --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/views/user/change-password.vue @@ -0,0 +1,76 @@ + + + + diff --git a/smart_admin_v1/smart-admin-h5/src/views/user/index.vue b/smart_admin_v1/smart-admin-h5/src/views/user/index.vue new file mode 100644 index 00000000..be177fff --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/src/views/user/index.vue @@ -0,0 +1,79 @@ + + + + diff --git a/smart_admin_v1/smart-admin-h5/vue.config.js b/smart_admin_v1/smart-admin-h5/vue.config.js new file mode 100644 index 00000000..a31f3a23 --- /dev/null +++ b/smart_admin_v1/smart-admin-h5/vue.config.js @@ -0,0 +1,200 @@ +const path = require('path'); +const CompressionWebpackPlugin = require('compression-webpack-plugin'); +const UglifyjsWebpackPlugin = require('uglifyjs-webpack-plugin'); +const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer'); +const ScriptExtHtmlWebpackPlugin = require('script-ext-html-webpack-plugin'); +const SentryPlugin = require('@sentry/webpack-plugin'); +const resolve = dir => path.join(__dirname, dir); +// 项目配置 +const projectConfig = require('./src/config/index.js'); + +// 生产环境,测试和正式 +const isProductionEnv = ['production'].includes(process.env.NODE_ENV); +const isProductionAppEnv = ['prod', 'pre'].includes(process.env.VUE_APP_ENV); + +module.exports = { + publicPath: projectConfig.publicPath, + // 生产环境构建文件的目录 + outputDir: 'dist', + // outputDir的静态资源(js、css、img、fonts)目录 + assetsDir: 'static', + // eslint检测 按需开启 + lintOnSave: !isProductionEnv, + // 如果你不需要生产环境的 source map,可以将其设置为 false 以加速生产环境构建。 + productionSourceMap: false, + devServer: { + // 设置主机地址 + host: '0.0.0.0', + // 设置默认端口 + port: 8090, + // 禁用host验证 + disableHostCheck: true, + // 启动后打开浏览器 + open: true, + overlay: { + // 当出现编译器错误或警告时,在浏览器中显示全屏覆盖层 + warnings: false, + errors: true + } + // proxy: { + // //配置跨域 + // '/api': { + // // 接口前缀 + // target: "https://sit.smart-h5.1024lab.net/api", + // // ws:true, + // changOrigin:true, + // // 改写规则,把/api 替换为/ + // pathRewrite:{ + // '^/api':'/' + // } + // } + // } + }, + css: { + // 是否使用css分离插件 ExtractTextPlugin 是否将组件中的 CSS 提取至一个独立的 CSS 文件中 (而不是动态注入到 JavaScript 中的 inline 代码)。 + extract: isProductionEnv, + // 开启 CSS source maps + sourceMap: false, + // 使用vw布局去掉这个 + requireModuleExtension: true, + loaderOptions: { + // 引入全局变量 + scss: { + additionalData: `@import "@/assets/css/index";` // 全局引入 + } + } + }, + configureWebpack: config => { + config.name = projectConfig.title; + }, + + chainWebpack: config => { + // 移除资源预加载(路由懒加载才能正常使用) + config.plugins.delete('preload'); + config.plugins.delete('prefetch'); + + // 别名 alias + config.resolve.alias + .set('@', resolve('src')) + .set('assets', resolve('src/assets')) + .set('api', resolve('src/api')) + .set('views', resolve('src/views')) + .set('components', resolve('src/components')); + + // 应用名字 + config.plugin('html').tap(args => { + args[0].title = projectConfig.title; + return args; + }); + + // 设置保留空格 + config.module + .rule('vue') + .use('vue-loader') + .loader('vue-loader') + .tap(options => { + options.compilerOptions.preserveWhitespace = true; + return options; + }) + .end(); + + // ==================== 生产环境配置 begin ==================== + if (isProductionEnv) { + // 打包分析 + config.plugin('webpack-report').use(BundleAnalyzerPlugin, [ + { + analyzerMode: 'static' + } + ]); + // 不显示源码 + config.devtool('cheap-source-map'); + + // cdn + config.plugin('html').tap(args => { + args[0].cdn = projectConfig.cdn.cdnResource; + // 压缩html中的css + args[0].minify.minifyCSS = true; + return args; + }); + // 指定资源加载cdn + config.externals(projectConfig.cdn.externals); + + // 开启gzip , Nginx上也需要配置gzip才会生效 + config + .plugin('compression') + .use(CompressionWebpackPlugin) + .tap(() => [ + { + // 压缩 js 与 css + test: new RegExp( + '\\.(js|css)$' + ), + // 资源文件大于10240B=10kB时会被压缩 + threshold: 10240, + // 最小压缩比达到0.8时才会被压缩 + minRatio: 0.8 + } + ]); + + // sentry + if (isProductionAppEnv) { + config.plugin('sentry').use(SentryPlugin, [{ + ignore: ['node_modules'], + include: './dist', // 上传dist文件的js + configFile: './.sentryclirc' // 配置文件地址 + }]); + } + + config.optimization.minimizer = [ + new UglifyjsWebpackPlugin({ + // 生产环境推荐关闭 sourcemap 防止源码泄漏 + // 服务端通过前端发送的行列,根据 sourcemap 转为源文件位置 + sourceMap: false, + uglifyOptions: { + warnings: false, + compress: { + drop_console: true, + drop_debugger: true + } + } + }) + ]; + + config + .plugin('ScriptExtHtmlWebpackPlugin') + .after('html') + .use(ScriptExtHtmlWebpackPlugin, [ + { + // 将 runtime 作为内联引入不单独存在 + inline: /runtime\..*\.js$/ + } + ]) + .end(); + + config.optimization.splitChunks({ + chunks: 'all', + cacheGroups: { + commons: { + name: 'chunk-commons', + test: resolve('src/components'), + minChunks: 3, // 模块至少使用次数 + priority: 5, + reuseExistingChunk: true // 模块嵌套引入时,判断是否复用已经被打包的模块 + }, + node_vendors: { + name: 'chunk-libs', + chunks: 'initial', + test: /[\\/]node_modules[\\/]/, + priority: 10 + }, + vantUI: { + name: 'chunk-vantUI', + priority: 20, + test: /[\\/]node_modules[\\/]_?vant(.*)/ + } + } + }); + } + // ==================== 生产环境配置 end ==================== + } +}; diff --git a/smart_admin_v1/smart-admin-service/.gitignore b/smart_admin_v1/smart-admin-service/.gitignore new file mode 100644 index 00000000..a2a3040a --- /dev/null +++ b/smart_admin_v1/smart-admin-service/.gitignore @@ -0,0 +1,31 @@ +HELP.md +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/** +!**/src/test/** + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ + +### VS Code ### +.vscode/ diff --git a/smart_admin_v1/smart-admin-service/README.md b/smart_admin_v1/smart-admin-service/README.md new file mode 100644 index 00000000..19273c14 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/README.md @@ -0,0 +1,17 @@ +### 部署说明 + +#### 下载代码 + +smart-admin-service + +将两个项目导入idea + +#### 创建数据库 + +先执行:src/main/resources/sql/smart-admin.sql + +再执行:src/main/resources/sql/quartz_mysql_2.3.0.sql + +#### 启动 + +运行 smart-admin-api项目 SmartAdminApplication类 diff --git a/smart_admin_v1/smart-admin-service/pom.xml b/smart_admin_v1/smart-admin-service/pom.xml new file mode 100644 index 00000000..39a6f3ce --- /dev/null +++ b/smart_admin_v1/smart-admin-service/pom.xml @@ -0,0 +1,349 @@ + + + 4.0.0 + + net.1024lab + smart-admin-service-parent + 1.0.0 + pom + + + smart-admin-api + + + + UTF-8 + UTF-8 + 1.8 + 3.1.1 + 2.10.0 + 2.2.5.RELEASE + 1.7 + 2.0 + 2.7.0 + 2.0.4 + 3.3.1 + 1.2.73 + 28.2-jre + 2.7.0 + [7.2.0, 7.2.99] + 0.9.1 + 1.1.21 + 3.9.1 + 1.4.2 + 4.1.2 + 1.3.1 + 3.3.2 + 1.9.3 + 2.8.0 + 2.3.2 + 4.2.2 + 8.0.19 + 1.21 + 1.18.8 + + + + + + + org.springframework.boot + spring-boot-dependencies + ${smartadmin.springboot.version} + pom + import + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + com.baomidou + mybatis-plus-boot-starter + ${mybatis-plus-boot.version} + + + + + velocity + org.apache.velocity + ${velocity.version} + + + org.apache.velocity + velocity-engine-core + ${velocity-engine-core.version} + + + + + + com.alibaba + fastjson + ${fastjson.version} + + + + + com.alibaba + druid + ${druid.version} + + + + + p6spy + p6spy + ${p6spy.version} + + + + + io.springfox + springfox-swagger2 + ${swagger.version} + + + io.springfox + springfox-swagger-ui + ${swagger.version} + + + + + + com.github.xiaoymin + knife4j-spring-boot-starter + ${knife4j.version} + + + + + + com.google.guava + guava + ${guava.version} + + + + + com.aliyun.oss + aliyun-sdk-oss + ${aliyun-oss.version} + + + com.qiniu + qiniu-java-sdk + ${qiniu-oss.version} + + + commons-fileupload + commons-fileupload + ${commons-fileupload.version} + + + + + + io.jsonwebtoken + jjwt + ${jjwt.version} + + + + + cn.afterturn + easypoi-spring-boot-starter + ${easypoi.version} + + + + + + mysql + mysql-connector-java + ${mysql.version} + + + + commons-beanutils + commons-beanutils + ${commons-beanutils.version} + + + + org.apache.commons + commons-pool2 + ${commons-pool2.version} + + + + com.github.penggle + kaptcha + ${kaptcha.version} + + + + com.googlecode.concurrentlinkedhashmap + concurrentlinkedhashmap-lru + ${concurrentlinkedhashmap.version} + + + + com.squareup.okhttp3 + okhttp + ${okhttp.version} + + + + eu.bitwalker + UserAgentUtils + ${user-agent-util.version} + + + + org.projectlombok + lombok + ${lombok.version} + provided + + + + + + + + + src/main/java + + **/*.* + + + + false + src/main/resources + + dev/* + sit/* + pre/* + prod/* + + + + src/main/resources/${profiles.active} + true + + *.properties + + + + src/main/resources/${profiles.active} + false + + *.* + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + ${java.version} + ${java.version} + UTF-8 + + + + org.springframework.boot + spring-boot-maven-plugin + ${smartadmin.springboot.version} + + ${main-class} + + + + + repackage + + + + + + + + + + + + dev + + dev + + + true + + + + telework + + telework + + + + sit + + sit + + + + pre + + pre + + + + prod + + prod + + + + \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/doc/readme.txt b/smart_admin_v1/smart-admin-service/smart-admin-api/doc/readme.txt new file mode 100644 index 00000000..f586e4b8 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/doc/readme.txt @@ -0,0 +1,15 @@ +1 超管默认账号 +sa/123456 + +2 执行脚本: +先执行:src/main/resources/sql/smart-admin.sql +再执行:src/main/resources/sql/quartz_mysql_2.3.0.sql + +3 除dev之外文件 + +4 刷新页面,获取权限是否走缓存 +LoginService.getSession + +5 test类中去掉代码生成run + +6 前端百度统计 \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/pom.xml b/smart_admin_v1/smart-admin-service/smart-admin-api/pom.xml new file mode 100644 index 00000000..f7ec8db4 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/pom.xml @@ -0,0 +1,276 @@ + + + net.1024lab + smart-admin-service-parent + 1.0.0 + ../pom.xml + + + 4.0.0 + smart-admin-api + jar + + smart-admin-api + + + UTF-8 + UTF-8 + 1.8 + + + + + + + org.springframework.boot + spring-boot-starter-log4j2 + + + org.springframework.boot + spring-boot-starter-aop + + + spring-boot-starter-logging + org.springframework.boot + + + + + org.springframework.boot + spring-boot-starter-quartz + + + org.springframework.boot + spring-boot-starter-validation + + + org.springframework.boot + spring-boot-starter-data-redis + + + org.springframework.boot + spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-websocket + + + org.springframework.boot + spring-boot-starter-mail + + + org.springframework.boot + spring-boot-starter-test + test + + + org.springframework.boot + spring-boot-starter-actuator + + + logback-classic + ch.qos.logback + + + spring-boot-starter-logging + org.springframework.boot + + + + + + + com.baomidou + mybatis-plus-boot-starter + + + + + velocity + org.apache.velocity + + + commons-collections + commons-collections + + + + + org.apache.velocity + velocity-engine-core + + + + + + com.alibaba + fastjson + + + + + com.alibaba + druid + + + + + p6spy + p6spy + + + + + io.springfox + springfox-swagger2 + + + io.springfox + springfox-swagger-ui + + + + + + com.github.xiaoymin + knife4j-spring-boot-starter + ${knife4j.version} + + + + + + com.google.guava + guava + + + + + com.aliyun.oss + aliyun-sdk-oss + + + commons-logging + commons-logging + + + + + com.qiniu + qiniu-java-sdk + + + commons-fileupload + commons-fileupload + + + + + + io.jsonwebtoken + jjwt + + + + + cn.afterturn + easypoi-spring-boot-starter + + + + + commons-beanutils + commons-beanutils + + + commons-logging + commons-logging + + + + + + org.apache.commons + commons-pool2 + + + + mysql + mysql-connector-java + + + + com.github.penggle + kaptcha + + + + com.googlecode.concurrentlinkedhashmap + concurrentlinkedhashmap-lru + + + + com.squareup.okhttp3 + okhttp + + + + eu.bitwalker + UserAgentUtils + + + + org.projectlombok + lombok + provided + + + + + + + + src/main/java + + **/*.* + + + + false + src/main/resources + + dev/* + sit/* + pre/* + prod/* + + + + src/main/resources/${profiles.active} + true + + *.properties + *.xml + + + + + + org.springframework.boot + spring-boot-maven-plugin + + true + + + + org.apache.maven.plugins + maven-surefire-plugin + + true + + + + + \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/SmartAdminApplication.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/SmartAdminApplication.java new file mode 100644 index 00000000..b22d0670 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/SmartAdminApplication.java @@ -0,0 +1,29 @@ +package net.lab1024.smartadmin; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.cache.annotation.EnableCaching; +import org.springframework.context.annotation.EnableAspectJAutoProxy; +import org.springframework.scheduling.annotation.EnableScheduling; + +/** + * [ admin 项目启动类 ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + * @since JDK1.8 + * + */ +@SpringBootApplication(scanBasePackages = {"net.lab1024.smartadmin", "cn.afterturn.easypoi"}) +@EnableCaching +@EnableScheduling +@EnableAspectJAutoProxy(proxyTargetClass = true, exposeProxy = true) +public class SmartAdminApplication { + + public static void main(String[] args) { + SpringApplication.run(SmartAdminApplication.class, args); + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/anno/ApiModelPropertyEnum.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/anno/ApiModelPropertyEnum.java new file mode 100644 index 00000000..c9babff3 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/anno/ApiModelPropertyEnum.java @@ -0,0 +1,47 @@ +package net.lab1024.smartadmin.common.anno; + +import net.lab1024.smartadmin.common.domain.BaseEnum; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * 枚举类字段属性的注解 + * + * @author listen + * @date 2019/05/16 15:18 + */ +@Target({ElementType.FIELD}) +@Retention(RetentionPolicy.RUNTIME) +public @interface ApiModelPropertyEnum { + + /** + * 枚举类对象 + * + * @return + */ + Class value(); + + String example() default ""; + + /** + * 是否隐藏 + * + * @return + */ + boolean hidden() default false; + + /** + * 是否必须 + * + * @return + */ + boolean required() default true; + + String dataType() default ""; + + String enumDesc() default ""; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/anno/DataScope.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/anno/DataScope.java new file mode 100644 index 00000000..1ab8061a --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/anno/DataScope.java @@ -0,0 +1,49 @@ +package net.lab1024.smartadmin.common.anno; + +import net.lab1024.smartadmin.module.system.datascope.constant.DataScopeTypeEnum; +import net.lab1024.smartadmin.module.system.datascope.constant.DataScopeWhereInTypeEnum; +import net.lab1024.smartadmin.module.system.datascope.strategy.DataScopePowerStrategy; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * [ 数据范围 ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + * @since JDK1.8 + */ +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.METHOD) +public @interface DataScope { + + DataScopeTypeEnum dataScopeType() default DataScopeTypeEnum.DEFAULT; + + DataScopeWhereInTypeEnum whereInType() default DataScopeWhereInTypeEnum.EMPLOYEE; + + /** + * DataScopeWhereInTypeEnum.CUSTOM_STRATEGY类型 才可使用joinSqlImplClazz属性 + * @return + */ + Class joinSqlImplClazz() default DataScopePowerStrategy.class; + + /** + * + * 第几个where 条件 从0开始 + * @return + */ + int whereIndex() default 0; + + /** + * DataScopeWhereInTypeEnum为CUSTOM_STRATEGY类型时,此属性无效 + * @return + */ + String joinSql() default ""; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/anno/NoNeedLogin.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/anno/NoNeedLogin.java new file mode 100644 index 00000000..3957937a --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/anno/NoNeedLogin.java @@ -0,0 +1,22 @@ +package net.lab1024.smartadmin.common.anno; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * + * [ 不需要登陆 ] + * + * @version 1.0 + * @since JDK1.8 + * @author yandanyang + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + */ +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.METHOD) +public @interface NoNeedLogin { +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/anno/NoValidPrivilege.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/anno/NoValidPrivilege.java new file mode 100644 index 00000000..d37e63c2 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/anno/NoValidPrivilege.java @@ -0,0 +1,20 @@ +package net.lab1024.smartadmin.common.anno; + +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; + +/** + * + * [ 不需要权限验证 ] + * + * @version 1.0 + * @since JDK1.8 + * @author yandanyang + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + */ +@Retention(RetentionPolicy.RUNTIME) +public @interface NoValidPrivilege { + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/anno/OperateLog.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/anno/OperateLog.java new file mode 100644 index 00000000..31dd3683 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/anno/OperateLog.java @@ -0,0 +1,20 @@ +package net.lab1024.smartadmin.common.anno; + +import java.lang.annotation.*; + +/** + * [ 用户操作日志 ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + * @since JDK1.8 + */ +@Retention(RetentionPolicy.RUNTIME) +@Target(ElementType.TYPE) +@Documented +public @interface OperateLog { + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/constant/CommentSortTypeEnum.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/constant/CommentSortTypeEnum.java new file mode 100644 index 00000000..1a4de4e4 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/constant/CommentSortTypeEnum.java @@ -0,0 +1,57 @@ +package net.lab1024.smartadmin.common.constant; + + +import net.lab1024.smartadmin.common.domain.BaseEnum; + +/** + * 全局排序枚举类 + * + * @author listen + * @date 2018/01/13 14:24 + */ +public enum CommentSortTypeEnum implements BaseEnum { + + /** + * 正序 ASC 1 + */ + ASC(1, "ASC"), + + /** + * 倒序 DESC 2 + */ + DESC(2, "DESC"); + + private Integer value; + + private String desc; + + /** + * 排序类型:1正序 | 2倒序 + */ + public static final String INFO = "排序类型:1正序 | 2倒序"; + + CommentSortTypeEnum(Integer value, String desc) { + this.value = value; + this.desc = desc; + } + + /** + * 获取枚举类的值 + * + * @return Integer + */ + @Override + public Integer getValue() { + return value; + } + + /** + * 获取枚举类的说明 + * + * @return String + */ + @Override + public String getDesc() { + return desc; + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/constant/JudgeEnum.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/constant/JudgeEnum.java new file mode 100644 index 00000000..d7c55429 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/constant/JudgeEnum.java @@ -0,0 +1,52 @@ +package net.lab1024.smartadmin.common.constant; + +import net.lab1024.smartadmin.common.domain.BaseEnum; + +import java.util.Arrays; +import java.util.Optional; + +/** + * + * [ 是与否] + * + * @version 1.0 + * @since JDK1.8 + * @author yandanyang + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + */ +public enum JudgeEnum implements BaseEnum { + + NO(0, "否"), + + YES(1, "是"); + + private Integer value; + private String desc; + + JudgeEnum(Integer value, String desc) { + this.value = value; + this.desc = desc; + } + + @Override + public Integer getValue() { + return value; + } + @Override + public String getDesc() { + return desc; + } + + public static JudgeEnum valueOf(Integer status) { + JudgeEnum[] values = JudgeEnum.values(); + Optional first = Arrays.stream(values).filter(e -> e.getValue().equals(status)).findFirst(); + return !first.isPresent() ? null : first.get(); + } + + public static boolean isExist(Integer status) { + JudgeEnum judgeEnum = valueOf(status); + return judgeEnum != null; + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/constant/ResponseCodeConst.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/constant/ResponseCodeConst.java new file mode 100644 index 00000000..c572eecd --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/constant/ResponseCodeConst.java @@ -0,0 +1,181 @@ +package net.lab1024.smartadmin.common.constant; + +import net.lab1024.smartadmin.module.system.department.DepartmentResponseCodeConst; +import net.lab1024.smartadmin.module.system.employee.constant.EmployeeResponseCodeConst; +import net.lab1024.smartadmin.module.support.file.constant.FileResponseCodeConst; +import net.lab1024.smartadmin.module.business.log.orderoperatelog.constant.OrderOperateLogOperateTypeConst; +import net.lab1024.smartadmin.module.system.login.LoginResponseCodeConst; +import net.lab1024.smartadmin.module.system.position.PositionResponseCodeConst; +import net.lab1024.smartadmin.module.system.privilege.constant.PrivilegeResponseCodeConst; +import net.lab1024.smartadmin.module.system.role.basic.RoleResponseCodeConst; +import net.lab1024.smartadmin.module.system.systemconfig.constant.SystemConfigResponseCodeConst; +import lombok.extern.slf4j.Slf4j; + +import java.lang.reflect.Field; +import java.util.HashMap; +import java.util.Map; + +/** + * 每个业务,100个范围值就够了. + */ +@Slf4j +public class ResponseCodeConst { + + // 范围声明 + static { + // 系统功能,从0开始,step=1000 + ResponseCodeContainer.register(ResponseCodeConst.class, 0, 1000); + ResponseCodeContainer.register(LoginResponseCodeConst.class, 1001, 1999); + ResponseCodeContainer.register(DepartmentResponseCodeConst.class, 2001, 2999); + ResponseCodeContainer.register(EmployeeResponseCodeConst.class, 3001, 3999); + ResponseCodeContainer.register(FileResponseCodeConst.class, 4001, 4999); + ResponseCodeContainer.register(SystemConfigResponseCodeConst.class, 5001, 5999); + ResponseCodeContainer.register(RoleResponseCodeConst.class, 6001, 6999); + ResponseCodeContainer.register(PrivilegeResponseCodeConst.class, 7001, 7999); + ResponseCodeContainer.register(OrderOperateLogOperateTypeConst.class, 8001, 8999); + ResponseCodeContainer.register(PositionResponseCodeConst.class, 13000, 13999); + + } + + public static final ResponseCodeConst SUCCESS = new ResponseCodeConst(1, "操作成功!", true); + + public static final ResponseCodeConst ERROR_PARAM = new ResponseCodeConst(101, "参数异常!"); + + public static final ResponseCodeConst ERROR_PARAM_ANY = new ResponseCodeConst(102, "%s参数异常!"); + + public static final ResponseCodeConst SYSTEM_ERROR = new ResponseCodeConst(111, "系统错误"); + + public static final ResponseCodeConst DEVELOPMENT = new ResponseCodeConst(112, "此功能正在开发中"); + + public static final ResponseCodeConst NOT_EXISTS = new ResponseCodeConst(113, "数据不存在"); + + public static ResponseCodeConst REQUEST_METHOD_ERROR = new ResponseCodeConst(114, "请求方式错误"); + + public static ResponseCodeConst JSON_FORMAT_ERROR = new ResponseCodeConst(115, "JSON格式错误"); + + protected int code; + + protected String msg; + + protected boolean success; + + public ResponseCodeConst() { + } + + protected ResponseCodeConst(int code, String msg) { + super(); + this.code = code; + this.msg = msg; + ResponseCodeContainer.put(this); + } + + protected ResponseCodeConst(int code, String msg, boolean success) { + super(); + this.code = code; + this.msg = msg; + this.success = success; + ResponseCodeContainer.put(this); + } + + protected ResponseCodeConst(int code) { + super(); + this.code = code; + ResponseCodeContainer.put(this); + } + + public int getCode() { + return code; + } + + public void setCode(int code) { + this.code = code; + } + + public String getMsg() { + return msg; + } + + public void setMsg(String msg) { + this.msg = msg; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + public static void init() { + log.info("ResponseCodeConst init...."); + } + + // =======================分割======================= + + /** + * 内部类,用于检测code范围 + * + * @author Anders + */ + @Slf4j + private static class ResponseCodeContainer { + + private static final Map RESPONSE_CODE_MAP = new HashMap<>(); + + private static final Map, int[]> RESPONSE_CODE_RANGE_MAP = new HashMap<>(); + + /** + * id的范围:[start, end]左闭右闭 + * + * @param clazz + * @param start + * @param end + */ + private static void register(Class clazz, int start, int end) { + if (start > end) { + throw new IllegalArgumentException(" start > end!"); + } + + if (RESPONSE_CODE_RANGE_MAP.containsKey(clazz)) { + throw new IllegalArgumentException(String.format(" Class:%s already exist!", clazz.getSimpleName())); + } + RESPONSE_CODE_RANGE_MAP.forEach((k, v) -> { + if ((start >= v[0] && start <= v[1]) || (end >= v[0] && end <= v[1])) { + throw new IllegalArgumentException(String.format(" Class:%s 's id range[%d,%d] has " + "intersection with " + "class:%s", clazz.getSimpleName(), start, end, + k.getSimpleName())); + } + }); + + RESPONSE_CODE_RANGE_MAP.put(clazz, new int[]{start, end}); + + // 提前初始化static变量,进行范围检测 + Field[] fields = clazz.getFields(); + if (fields.length != 0) { + try { + fields[0].get(clazz); + } catch (IllegalArgumentException | IllegalAccessException e) { + log.error("", e); + } + } + } + + public static void put(ResponseCodeConst codeConst) { + int[] idRange = RESPONSE_CODE_RANGE_MAP.get(codeConst.getClass()); + if (idRange == null) { + throw new IllegalArgumentException(String.format(" Class:%s has not been registered!", codeConst.getClass().getSimpleName())); + } + int code = codeConst.code; + if (code < idRange[0] || code > idRange[1]) { + throw new IllegalArgumentException(String.format(" Id(%d) out of range[%d,%d], " + "class:%s", code, idRange[0], idRange[1], codeConst.getClass().getSimpleName())); + } + if (RESPONSE_CODE_MAP.keySet().contains(code)) { + log.error(String.format(" Id(%d) out of range[%d,%d], " + "class:%s code is repeat!", code, idRange[0], idRange[1], codeConst.getClass().getSimpleName())); + System.exit(0); + } + RESPONSE_CODE_MAP.put(code, codeConst); + } + + } + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/controller/BaseController.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/controller/BaseController.java new file mode 100644 index 00000000..47b321aa --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/controller/BaseController.java @@ -0,0 +1,42 @@ +package net.lab1024.smartadmin.common.controller; + +import lombok.extern.slf4j.Slf4j; +import org.apache.poi.ss.usermodel.Workbook; + +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; + +/** + * @author: zhuoda + * @create: 2020-03-31 08:54 PM from win10 + */ + +@Slf4j +public class BaseController { + + /** + * 下载 Excel 消息头 + * @param fileName + * @param workbook + * @param response + */ + public void downloadExcel(String fileName, Workbook workbook, HttpServletResponse response) { + try { + fileName = URLEncoder.encode(fileName, "UTF-8"); + } catch (UnsupportedEncodingException e) { + log.error("", e); + } + response.setCharacterEncoding("utf-8"); + response.setHeader("Content-Type", "application/vnd.ms-excel"); + response.setHeader("Content-Disposition", "attachment;filename=" + fileName + ".xls"); + try { + workbook.write(response.getOutputStream()); + workbook.close(); + } catch (IOException e) { + log.error("", e); + } + } + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/domain/BaseEntity.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/domain/BaseEntity.java new file mode 100644 index 00000000..e6724c94 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/domain/BaseEntity.java @@ -0,0 +1,39 @@ +package net.lab1024.smartadmin.common.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import lombok.Data; + +import java.time.LocalDateTime; +import java.util.Date; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/3/27 0027 上午 11:15 + * @since JDK1.8 + */ +@Data +public class BaseEntity { + + /** + * 主键id + */ + @TableId(type = IdType.AUTO) + private Long id; + + /** + * 更新时间 + */ + private Date updateTime; + + /** + * 创建时间 + */ + private Date createTime; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/domain/BaseEnum.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/domain/BaseEnum.java new file mode 100644 index 00000000..61ef2c66 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/domain/BaseEnum.java @@ -0,0 +1,97 @@ +package net.lab1024.smartadmin.common.domain; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONAware; +import com.alibaba.fastjson.JSONObject; +import com.google.common.base.CaseFormat; +import lombok.Data; + +import java.util.LinkedHashMap; +import java.util.Objects; + +/** + * @author listen + * @date 2018-07-17 下午 3:52 + */ +public interface BaseEnum { + + /** + * 获取枚举类的值 + * + * @return Object + */ + Object getValue(); + + /** + * 获取枚举类的说明 + * + * @return String + */ + String getDesc(); + + /** + * 比较参数是否与枚举类的value相同 + * + * @param value + * @return boolean + */ + default boolean equalsValue(Object value) { + return Objects.equals(getValue(), value); + } + + /** + * 比较枚举类是否相同 + * + * @param baseEnum + * @return boolean + */ + default boolean equals(BaseEnum baseEnum) { + return Objects.equals(getValue(), baseEnum.getValue()) && Objects.equals(getDesc(), baseEnum.getDesc()); + } + + /** + * 返回枚举类的说明 + * + * @param clazz 枚举类类对象 + * @return + */ + static String getInfo(Class clazz) { + BaseEnum[] enums = clazz.getEnumConstants(); + LinkedHashMap json = new LinkedHashMap<>(enums.length); + for (BaseEnum e : enums) { + JSONObject jsonObject = new JSONObject(); + jsonObject.put("value", new DeletedQuotationAware(e.getValue())); + jsonObject.put("desc", new DeletedQuotationAware(e.getDesc())); + json.put(e.toString(), jsonObject); + } + + String enumJson = JSON.toJSONString(json, true); + enumJson = enumJson.replaceAll("\"", ""); + enumJson= enumJson.replaceAll("\t","  "); + enumJson = enumJson.replaceAll("\n","
"); + String prefix = "
export const
" + CaseFormat.UPPER_CAMEL.to(CaseFormat.UPPER_UNDERSCORE, clazz.getSimpleName() + " =
"); + return prefix + "" + enumJson + "
"; + } + + + @Data + class DeletedQuotationAware implements JSONAware { + + private String value; + + public DeletedQuotationAware(Object value) { + if(value == null){ + this.value = ""; + }else if (value instanceof String) { + this.value = "'" + value + "'"; + }else { + this.value = value.toString(); + } + } + + @Override + public String toJSONString() { + return value; + } + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/domain/ITask.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/domain/ITask.java new file mode 100644 index 00000000..b6427c8e --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/domain/ITask.java @@ -0,0 +1,16 @@ +package net.lab1024.smartadmin.common.domain; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/4/13 0013 下午 14:23 + * @since JDK1.8 + */ +public interface ITask { + + void execute(String paramJson) throws Exception; +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/domain/OrderItemDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/domain/OrderItemDTO.java new file mode 100644 index 00000000..759bb93d --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/domain/OrderItemDTO.java @@ -0,0 +1,16 @@ +package net.lab1024.smartadmin.common.domain; + +import lombok.Data; +import lombok.extern.slf4j.Slf4j; + +/** + * @author: zhuoda + * @create: 2020-03-20 09:07 PM from win10 + */ + +@Slf4j +@Data +public class OrderItemDTO { + private String column; + private boolean asc = true; +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/domain/PageParamDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/domain/PageParamDTO.java new file mode 100644 index 00000000..73590fc5 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/domain/PageParamDTO.java @@ -0,0 +1,33 @@ +package net.lab1024.smartadmin.common.domain; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.Max; +import javax.validation.constraints.NotNull; +import java.util.List; + +/** + * 分页基础参数 + * + * @author lihaifan + * @Date Created in 2017/10/28 16:19 + */ +@Data +public class PageParamDTO { + + @NotNull(message = "分页参数不能为空") + @ApiModelProperty(value = "页码(不能为空)", example = "1") + protected Integer pageNum; + + @NotNull(message = "每页数量不能为空") + @ApiModelProperty(value = "每页数量(不能为空)", example = "10") + @Max(value = 500, message = "每页最大为500") + protected Integer pageSize; + + @ApiModelProperty("是否查询总条数") + protected Boolean searchCount; + + @ApiModelProperty("排序") + protected List orders; +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/domain/PageResultDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/domain/PageResultDTO.java new file mode 100644 index 00000000..23995832 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/domain/PageResultDTO.java @@ -0,0 +1,47 @@ +package net.lab1024.smartadmin.common.domain; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * Page返回对象 + * + * @Author lihaifan + * @Date Created in 2017/10/31 15:05 + */ +@Data +public class PageResultDTO { + + /** + * 当前页 + */ + @ApiModelProperty(value = "当前页") + private Long pageNum; + + /** + * 每页的数量 + */ + @ApiModelProperty(value = "每页的数量") + private Long pageSize; + + /** + * 总记录数 + */ + @ApiModelProperty(value = "总记录数") + private Long total; + + /** + * 总页数 + */ + @ApiModelProperty(value = "总页数") + private Long pages; + + /** + * 结果集 + */ + @ApiModelProperty(value = "结果集") + private List list; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/domain/ResponseDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/domain/ResponseDTO.java new file mode 100644 index 00000000..92ec781e --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/domain/ResponseDTO.java @@ -0,0 +1,132 @@ +package net.lab1024.smartadmin.common.domain; + + +import net.lab1024.smartadmin.common.constant.ResponseCodeConst; + +/** + * 返回类 + * + * @param + * @author zhuoda + */ +public class ResponseDTO { + + protected Integer code; + + protected String msg; + + protected Boolean success; + + protected T data; + + public ResponseDTO() { + } + + public ResponseDTO(ResponseCodeConst responseCodeConst, String msg) { + this.code = responseCodeConst.getCode(); + this.msg = msg; + this.success = responseCodeConst.isSuccess(); + } + + public ResponseDTO(ResponseCodeConst responseCodeConst, T data) { + super(); + this.code = responseCodeConst.getCode(); + this.msg = responseCodeConst.getMsg(); + this.data = data; + this.success = responseCodeConst.isSuccess(); + } + + public ResponseDTO(ResponseCodeConst responseCodeConst, T data, String msg) { + super(); + this.code = responseCodeConst.getCode(); + this.msg = msg; + this.data = data; + this.success = responseCodeConst.isSuccess(); + } + + private ResponseDTO(ResponseCodeConst responseCodeConst) { + this.code = responseCodeConst.getCode(); + this.msg = responseCodeConst.getMsg(); + this.success = responseCodeConst.isSuccess(); + } + + public ResponseDTO(ResponseDTO responseDTO) { + this.code = responseDTO.getCode(); + this.msg = responseDTO.getMsg(); + this.success = responseDTO.isSuccess(); + } + + public static ResponseDTO succ() { + return new ResponseDTO(ResponseCodeConst.SUCCESS); + } + + public static ResponseDTO succData(T data, String msg) { + return new ResponseDTO(ResponseCodeConst.SUCCESS, data, msg); + } + + public static ResponseDTO succData(T data) { + return new ResponseDTO(ResponseCodeConst.SUCCESS, data); + } + + public static ResponseDTO succMsg(String msg) { + return new ResponseDTO(ResponseCodeConst.SUCCESS, msg); + } + + + public static ResponseDTO wrap(ResponseCodeConst codeConst) { + return new ResponseDTO<>(codeConst); + } + + public static ResponseDTO wrap(ResponseCodeConst codeConst, T t) { + return new ResponseDTO(codeConst, t); + } + + public static ResponseDTO wrap(ResponseCodeConst codeConst, String msg) { + return new ResponseDTO(codeConst, msg); + } + + public static ResponseDTO wrapMsg(ResponseCodeConst codeConst, String msg) { + return new ResponseDTO(codeConst, msg); + } + + public String getMsg() { + return msg; + } + + public ResponseDTO setMsg(String msg) { + this.msg = msg; + return this; + } + + public int getCode() { + return code; + } + + public ResponseDTO setCode(Integer code) { + this.code = code; + return this; + } + + public T getData() { + return data; + } + + public ResponseDTO setData(T data) { + this.data = data; + return this; + } + + public boolean isSuccess() { + return success; + } + + public void setSuccess(boolean success) { + this.success = success; + } + + @Override + public String toString() { + return "ResponseDTO{" + "code=" + code + ", msg='" + msg + '\'' + ", success=" + success + ", data=" + data + + '}'; + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/domain/ValidateList.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/domain/ValidateList.java new file mode 100644 index 00000000..c3907e63 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/domain/ValidateList.java @@ -0,0 +1,148 @@ +package net.lab1024.smartadmin.common.domain; + +import javax.validation.Valid; +import javax.validation.constraints.NotEmpty; +import java.util.*; + +/** + * @author: zhuoda + * @create: 2020-02-03 17:37 PM from win10 + */ +public class ValidateList implements List { + + @Valid + @NotEmpty(message = "数据长度请大于0!") + private List list; + + public ValidateList() { + this.list = new ArrayList<>(); + } + + public ValidateList(List list) { + this.list = list; + } + + public List getList() { + return list; + } + + public void setList(List list) { + this.list = list; + } + + @Override + public int size() { + return list.size(); + } + + @Override + public boolean isEmpty() { + return list.isEmpty(); + } + + @Override + public boolean contains(Object o) { + return list.contains(o); + } + + @Override + public Iterator iterator() { + return list.iterator(); + } + + @Override + public Object[] toArray() { + return list.toArray(); + } + + @Override + public T[] toArray(T[] a) { + return list.toArray(a); + } + + @Override + public boolean add(E e) { + return list.add(e); + } + + @Override + public boolean remove(Object o) { + return list.remove(o); + } + + @Override + public boolean containsAll(Collection c) { + return list.containsAll(c); + } + + @Override + public boolean addAll(Collection c) { + return list.addAll(c); + } + + @Override + public boolean addAll(int index, Collection c) { + return list.addAll(index, c); + } + + @Override + public boolean removeAll(Collection c) { + return list.removeAll(c); + } + + @Override + public boolean retainAll(Collection c) { + return list.retainAll(c); + } + + @Override + public void clear() { + list.clear(); + } + + @Override + public E get(int index) { + return list.get(index); + } + + @Override + public E set(int index, E element) { + return list.set(index, element); + } + + @Override + public void add(int index, E element) { + list.add(index, element); + } + + @Override + public E remove(int index) { + return list.remove(index); + } + + @Override + public int indexOf(Object o) { + return list.indexOf(o); + } + + @Override + public int lastIndexOf(Object o) { + return list.lastIndexOf(o); + } + + @Override + public ListIterator listIterator() { + return list.listIterator(); + } + + @Override + public ListIterator listIterator(int index) { + return list.listIterator(index); + } + + @Override + public List subList(int fromIndex, int toIndex) { + return list.subList(fromIndex, toIndex); + } + +} \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/exception/SmartBusinessException.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/exception/SmartBusinessException.java new file mode 100644 index 00000000..904f3a7b --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/exception/SmartBusinessException.java @@ -0,0 +1,33 @@ +package net.lab1024.smartadmin.common.exception; +/** + * + * [ 业务逻辑异常,全局异常拦截后统一返回ResponseCodeConst.SYSTEM_ERROR ] + * + * @version 1.0 + * @since JDK1.8 + * @author yandanyang + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + */ +public class SmartBusinessException extends RuntimeException { + + public SmartBusinessException() { + } + + public SmartBusinessException(String message) { + super(message); + } + + public SmartBusinessException(String message, Throwable cause) { + super(message, cause); + } + + public SmartBusinessException(Throwable cause) { + super(cause); + } + + public SmartBusinessException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { + super(message, cause, enableSuppression, writableStackTrace); + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/exception/SmartResponseCodeException.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/exception/SmartResponseCodeException.java new file mode 100644 index 00000000..f3c37ed2 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/exception/SmartResponseCodeException.java @@ -0,0 +1,24 @@ +package net.lab1024.smartadmin.common.exception; + +/** + * [ 全局异常拦截后保留ResponseCode码的异常] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/8/7 0007 下午 16:11 + * @since JDK1.8 + */ +public class SmartResponseCodeException extends RuntimeException{ + private Integer code; + + public SmartResponseCodeException(Integer code, String message) { + super(message); + this.code = code; + } + + public Integer getCode() { + return code; + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/heartbeat/AbstractHeartBeatCommand.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/heartbeat/AbstractHeartBeatCommand.java new file mode 100644 index 00000000..c62fbc3d --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/heartbeat/AbstractHeartBeatCommand.java @@ -0,0 +1,90 @@ +package net.lab1024.smartadmin.common.heartbeat; + +import com.google.common.util.concurrent.ThreadFactoryBuilder; +import java.util.Date; +import java.util.List; +import java.util.concurrent.*; + + +/** +* @Description: 心跳服务 +* @Author: simajinqiang +* @Date: 2018/7/9 16:26 +*/ +public abstract class AbstractHeartBeatCommand implements HeartBeatRecordCommendInterface { + + + ScheduledExecutorService executorService; + + int threadNum = 1; + + /** + * 项目路径 + */ + private String projectPath; + /** + * 服务器ip(多网卡) + */ + private List serverIps; + /** + * 进程号 + */ + private Integer processNo; + /** + * 进程开启时间 + */ + private Date processStartTime; + + HeartBeatLogger logger; + + /** + * 初始化 + */ + public void init(HeartBeatConfig config, HeartBeatLogger logger){ + this.handlerHeartBeat(); + ThreadFactory threadFactory = new ThreadFactoryBuilder().setNameFormat("AbstractHeartBeatCommand-%s").build(); + executorService = Executors.newScheduledThreadPool(threadNum, threadFactory); + executorService.scheduleWithFixedDelay(new DoHeartBeat(), config.getDelayHandlerTime(), config.getIntervalTime(), TimeUnit.MILLISECONDS); + } + + public void handlerHeartBeat(){ + try { + projectPath = HeatBeatRecordHelper.getProjectPath(); + serverIps = IpUtil.getLocalIPS(); + processNo = HeatBeatRecordHelper.getProcessID(); + processStartTime = HeatBeatRecordHelper.getStartTime(); + }catch (Throwable e){ + logger.error("get heart beat info error.", e); + } + } + + /** + * 销毁线程池 + */ + public void destroy(){ + if (executorService != null && !executorService.isShutdown()) { + executorService.shutdown(); + executorService = null; + } + } + + public class DoHeartBeat implements Runnable{ + + @Override + public void run() { + try { + HeartBeatRecordDTO heartBeatRecord = new HeartBeatRecordDTO(); + heartBeatRecord.setProjectPath(projectPath); + heartBeatRecord.setServerIp(StringUtil.join(serverIps,";")); + heartBeatRecord.setProcessNo(processNo); + heartBeatRecord.setProcessStartTime(processStartTime); + heartBeatRecord.setHeartBeatTime(new Date()); + handler(heartBeatRecord); + }catch (Throwable t){ + logger.error("handler heartbeat error.", t); + } + + } + } + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/heartbeat/HeartBeatConfig.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/heartbeat/HeartBeatConfig.java new file mode 100644 index 00000000..3fa1ed84 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/heartbeat/HeartBeatConfig.java @@ -0,0 +1,29 @@ +package net.lab1024.smartadmin.common.heartbeat; + +import lombok.Builder; +import lombok.Data; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/8/8 0008 下午 16:22 + * @since JDK1.8 + */ +@Data +@Builder +public class HeartBeatConfig { + + /** + * 延迟执行时间 + */ + private Long delayHandlerTime; + + /** + * 间隔执行时间 + */ + private Long intervalTime; +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/heartbeat/HeartBeatLogger.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/heartbeat/HeartBeatLogger.java new file mode 100644 index 00000000..0376b0f0 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/heartbeat/HeartBeatLogger.java @@ -0,0 +1,20 @@ +package net.lab1024.smartadmin.common.heartbeat; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/8/8 0008 下午 16:23 + * @since JDK1.8 + */ +public interface HeartBeatLogger { + + void error(String string); + + void error(String string, Throwable e); + + void info(String string); +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/heartbeat/HeartBeatRecordCommendInterface.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/heartbeat/HeartBeatRecordCommendInterface.java new file mode 100644 index 00000000..e94369e3 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/heartbeat/HeartBeatRecordCommendInterface.java @@ -0,0 +1,17 @@ +package net.lab1024.smartadmin.common.heartbeat; + + + +/** +* @Description: +* @Author: simajinqiang +* @Date: 2018/7/9 14:06 +*/ +public interface HeartBeatRecordCommendInterface { + /** + * 处理 + * @param heartBeatRecord + */ + void handler(HeartBeatRecordDTO heartBeatRecord); + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/heartbeat/HeartBeatRecordDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/heartbeat/HeartBeatRecordDTO.java new file mode 100644 index 00000000..b5f4e499 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/heartbeat/HeartBeatRecordDTO.java @@ -0,0 +1,37 @@ +package net.lab1024.smartadmin.common.heartbeat; + +import lombok.Data; + +import java.util.Date; + +/** +* @Description: 心跳记录日志 +* @Author: simajinqiang +* @Date: 2018/7/9 11:11 +*/ +@Data +public class HeartBeatRecordDTO { + + /** + * 项目名字 + */ + private String projectPath; + /** + * 服务器ip + */ + private String serverIp; + /** + * 进程号 + */ + private Integer processNo; + /** + * 进程开启时间 + */ + private Date processStartTime; + /** + * 心跳当前时间 + */ + private Date heartBeatTime; + + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/heartbeat/HeatBeatRecordHelper.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/heartbeat/HeatBeatRecordHelper.java new file mode 100644 index 00000000..ce3b04f7 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/heartbeat/HeatBeatRecordHelper.java @@ -0,0 +1,45 @@ +package net.lab1024.smartadmin.common.heartbeat; + + +import java.lang.management.ManagementFactory; +import java.lang.management.RuntimeMXBean; +import java.util.Date; + +/** +* @Description: 心跳工具类 +* @Author: simajinqiang +* @Date: 2018/7/9 11:48 +*/ +public class HeatBeatRecordHelper { + + /** + * 获取进程号 + * @return + */ + public static final Integer getProcessID() { + RuntimeMXBean runtimeMXBean = ManagementFactory.getRuntimeMXBean(); + return Integer.valueOf(runtimeMXBean.getName().split("@")[0]) + .intValue(); + } + + /** + * 获取项目名称 + * @return + */ + public static final String getProjectPath(){ + return System.getProperty("user.dir"); + } + + /** + * 获取进程启动时间 + * @return + */ + public static final Date getStartTime(){ + RuntimeMXBean runtimeMXBean = ManagementFactory.getRuntimeMXBean(); + return new Date(runtimeMXBean.getStartTime()); + } + + + + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/heartbeat/IpUtil.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/heartbeat/IpUtil.java new file mode 100644 index 00000000..e250f074 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/heartbeat/IpUtil.java @@ -0,0 +1,81 @@ +package net.lab1024.smartadmin.common.heartbeat; + +import java.net.InetAddress; +import java.net.NetworkInterface; +import java.util.ArrayList; +import java.util.Enumeration; +import java.util.List; + +/** +* @Description: ip工具类 +* @Author: sbq +* @CreateDate: 2019/8/8 10:33 +* @Version: 1.0 +*/ +public class IpUtil { + /** + * 获得服务器的IP地址 + */ + public static String getLocalIP() { + String sIP = ""; + InetAddress ip = null; + try { + boolean bFindIP = false; + Enumeration netInterfaces = (Enumeration) NetworkInterface + .getNetworkInterfaces(); + while (netInterfaces.hasMoreElements()) { + if (bFindIP) { + break; + } + NetworkInterface ni = (NetworkInterface) netInterfaces + .nextElement(); + Enumeration ips = ni.getInetAddresses(); + while (ips.hasMoreElements()) { + ip = (InetAddress) ips.nextElement(); + if (!ip.isLoopbackAddress() + && ip.getHostAddress().matches( + "(\\d{1,3}\\.){3}\\d{1,3}")) { + bFindIP = true; + break; + } + } + } + } catch (Exception e) { + } + if (null != ip) { + sIP = ip.getHostAddress(); + } + return sIP; + } + + /** + * @Description: 获得服务器的IP地址(多网卡) + * @Author: sbq + * @CreateDate: 2019/8/8 10:34 + * @Version: 1.0 + */ + public static List getLocalIPS() { + InetAddress ip = null; + List ipList = new ArrayList(); + try { + Enumeration netInterfaces = (Enumeration) NetworkInterface + .getNetworkInterfaces(); + while (netInterfaces.hasMoreElements()) { + NetworkInterface ni = (NetworkInterface) netInterfaces + .nextElement(); + Enumeration ips = ni.getInetAddresses(); + while (ips.hasMoreElements()) { + ip = (InetAddress) ips.nextElement(); + if (!ip.isLoopbackAddress() + && ip.getHostAddress().matches( + "(\\d{1,3}\\.){3}\\d{1,3}")) { + ipList.add(ip.getHostAddress()); + } + } + } + } catch (Exception e) { + } + return ipList; + } + +} \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/heartbeat/StringUtil.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/heartbeat/StringUtil.java new file mode 100644 index 00000000..9e0842ec --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/heartbeat/StringUtil.java @@ -0,0 +1,60 @@ +package net.lab1024.smartadmin.common.heartbeat; + +import java.util.Iterator; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/8/8 0008 下午 16:27 + * @since JDK1.8 + */ +public class StringUtil { + + + + public static String join(Iterable iterable, String separator) { + return iterable == null ? null : join(iterable.iterator(), separator); + } + + + public static String join(Iterator iterator, String separator) { + if (iterator == null) { + return null; + } else if (!iterator.hasNext()) { + return ""; + } else { + Object first = iterator.next(); + if (!iterator.hasNext()) { + String result = toString(first); + return result; + } else { + StringBuilder buf = new StringBuilder(256); + if (first != null) { + buf.append(first); + } + + while(iterator.hasNext()) { + if (separator != null) { + buf.append(separator); + } + + Object obj = iterator.next(); + if (obj != null) { + buf.append(obj); + } + } + + return buf.toString(); + } + } + } + + public static String toString(Object obj) { + return obj == null ? "" : obj.toString(); + } + +} \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/json/LongJsonDeserializer.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/json/LongJsonDeserializer.java new file mode 100644 index 00000000..0dc8e315 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/json/LongJsonDeserializer.java @@ -0,0 +1,21 @@ +package net.lab1024.smartadmin.common.json; + +import com.fasterxml.jackson.core.JsonParser; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.DeserializationContext; +import com.fasterxml.jackson.databind.JsonDeserializer; + +import java.io.IOException; + +public class LongJsonDeserializer extends JsonDeserializer { + + @Override + public Long deserialize(JsonParser jsonParser, DeserializationContext deserializationContext) throws IOException, JsonProcessingException { + String value = jsonParser.getText(); + try { + return value == null ? null : Long.parseLong(value); + } catch (NumberFormatException e) { + return null; + } + } +} \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/json/LongJsonSerializer.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/json/LongJsonSerializer.java new file mode 100644 index 00000000..75442925 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/json/LongJsonSerializer.java @@ -0,0 +1,19 @@ +package net.lab1024.smartadmin.common.json; + + +import com.fasterxml.jackson.core.JsonGenerator; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.JsonSerializer; +import com.fasterxml.jackson.databind.SerializerProvider; + +import java.io.IOException; + +public class LongJsonSerializer extends JsonSerializer { + @Override + public void serialize(Long value, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException { + String text = (value == null ? null : String.valueOf(value)); + if (text != null) { + jsonGenerator.writeString(text); + } + } +} \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/kaptcha/KaptchaColor.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/kaptcha/KaptchaColor.java new file mode 100644 index 00000000..4baeb2a2 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/kaptcha/KaptchaColor.java @@ -0,0 +1,39 @@ +package net.lab1024.smartadmin.common.kaptcha; + +import com.google.common.collect.Lists; + +import java.awt.*; +import java.util.List; +import java.util.Random; + +/** + * [ 验证码颜色 ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/7/6 0006 上午 10:51 + * @since JDK1.8 + */ +public class KaptchaColor { + + public static Color getColor() { + + List colors = Lists.newArrayList(); + colors.add(new Color(0, 135, 255)); + colors.add(new Color(51, 153, 51)); + colors.add(new Color(255, 102, 102)); + colors.add(new Color(255, 153, 0)); + colors.add(new Color(153, 102, 0)); + colors.add(new Color(153, 102, 153)); + colors.add(new Color(51, 153, 153)); + colors.add(new Color(102, 102, 255)); + colors.add(new Color(0, 102, 204)); + colors.add(new Color(204, 51, 51)); + colors.add(new Color(128, 153, 65)); + Random random = new Random(); + int colorIndex = random.nextInt(10); + return colors.get(colorIndex); + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/kaptcha/KaptchaNoise.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/kaptcha/KaptchaNoise.java new file mode 100644 index 00000000..22238a6c --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/kaptcha/KaptchaNoise.java @@ -0,0 +1,44 @@ +package net.lab1024.smartadmin.common.kaptcha; + +import com.google.code.kaptcha.NoiseProducer; +import com.google.code.kaptcha.util.Configurable; + +import java.awt.*; +import java.awt.image.BufferedImage; +import java.util.Random; + +/** + * [ 验证码加噪处理 ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/7/6 0006 上午 10:47 + * @since JDK1.8 + */ +public class KaptchaNoise extends Configurable implements NoiseProducer { + public KaptchaNoise() { + } + + @Override + public void makeNoise(BufferedImage image, float factorOne, float factorTwo, float factorThree, float factorFour) { + + int width = image.getWidth(); + int height = image.getHeight(); + Graphics2D graph = (Graphics2D)image.getGraphics(); + graph.setRenderingHints(new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON)); + graph.setStroke(new BasicStroke(1.0f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL)); + Random random = new Random(); + int noiseLineNum = random.nextInt(3); + if(noiseLineNum == 0){ + noiseLineNum = 1; + } + for (int i = 0; i < noiseLineNum; i++){ + graph.setColor(KaptchaColor.getColor()); + graph.drawLine(random.nextInt(width), random.nextInt(height), 10 + random.nextInt(20), 10 + random.nextInt(20)); + } + + graph.dispose(); + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/kaptcha/KaptchaWordRenderer.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/kaptcha/KaptchaWordRenderer.java new file mode 100644 index 00000000..38ff1b4c --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/kaptcha/KaptchaWordRenderer.java @@ -0,0 +1,75 @@ +package net.lab1024.smartadmin.common.kaptcha; + +import com.google.code.kaptcha.util.Configurable; + +import java.awt.*; +import java.awt.font.FontRenderContext; +import java.awt.font.GlyphVector; +import java.awt.image.BufferedImage; +import java.util.Random; + +/** + * [ 验证码字体生成 ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/7/6 0006 上午 9:43 + * @since JDK1.8 + */ +public class KaptchaWordRenderer extends Configurable implements com.google.code.kaptcha.text.WordRenderer { + + public KaptchaWordRenderer() { + } + + @Override + public BufferedImage renderWord(String word, int width, int height) { + int fontSize = this.getConfig().getTextProducerFontSize(); + Font[] fonts = this.getConfig().getTextProducerFonts(fontSize); + int charSpace = this.getConfig().getTextProducerCharSpace(); + BufferedImage image = new BufferedImage(width, height, 2); + + Graphics2D g2D = image.createGraphics(); + g2D.setColor(Color.WHITE); + RenderingHints hints = new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON); + hints.add(new RenderingHints(RenderingHints.KEY_RENDERING, RenderingHints.VALUE_RENDER_QUALITY)); + g2D.setRenderingHints(hints); + g2D.setStroke(new BasicStroke(1.0f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_BEVEL)); + + FontRenderContext frc = g2D.getFontRenderContext(); + Random random = new Random(); + int startPosY = (height - fontSize) / 5 + fontSize; + char[] wordChars = word.toCharArray(); + Font[] chosenFonts = new Font[wordChars.length]; + int[] charWidths = new int[wordChars.length]; + int widthNeeded = 0; + + int startPosX; + for(startPosX = 0; startPosX < wordChars.length; ++startPosX) { + chosenFonts[startPosX] = fonts[random.nextInt(fonts.length)]; + char[] charToDraw = new char[]{wordChars[startPosX]}; + GlyphVector gv = chosenFonts[startPosX].createGlyphVector(frc, charToDraw); + charWidths[startPosX] = (int)gv.getVisualBounds().getWidth(); + if (startPosX > 0) { + widthNeeded += 2; + } + + widthNeeded += charWidths[startPosX]; + } + + startPosX = (width - widthNeeded) / 2; + + for(int i = 0; i < wordChars.length; ++i) { + g2D.setColor(KaptchaColor.getColor()); + g2D.setFont(chosenFonts[i].deriveFont(Font.PLAIN)); + char[] charToDraw = new char[]{wordChars[i]}; + g2D.drawChars(charToDraw, 0, charToDraw.length, startPosX, startPosY); + startPosX = startPosX + charWidths[i] + charSpace; + } + + return image; + } + + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/reload/SmartReloadManager.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/reload/SmartReloadManager.java new file mode 100644 index 00000000..1d4770c4 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/reload/SmartReloadManager.java @@ -0,0 +1,134 @@ +package net.lab1024.smartadmin.common.reload; + +import net.lab1024.smartadmin.common.reload.annotation.SmartReload; +import net.lab1024.smartadmin.common.reload.domain.AbstractSmartReloadObject; +import net.lab1024.smartadmin.common.reload.domain.AnnotationReloadObject; +import net.lab1024.smartadmin.common.reload.domain.InterfaceReloadObject; +import net.lab1024.smartadmin.common.reload.domain.entity.ReloadItem; +import net.lab1024.smartadmin.common.reload.domain.entity.SmartReloadResult; +import net.lab1024.smartadmin.common.reload.interfaces.SmartReloadCommandInterface; +import net.lab1024.smartadmin.common.reload.interfaces.SmartReloadThreadLogger; +import net.lab1024.smartadmin.common.reload.interfaces.SmartReloadable; + +import java.lang.reflect.Method; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.TimeUnit; + +import static java.util.Objects.requireNonNull; + +/** + * SmartReloadManager 管理器 + *

+ * 可以在此类中添加 检测任务 以及注册 处理程序 + * + * @author zhuoda + */ +public class SmartReloadManager { + + private Map tagReloadObject; + + private SmartReloadScheduler reloadScheduler; + + private SmartReloadThreadLogger logger; + + public SmartReloadManager(SmartReloadThreadLogger logger, int threadCount) { + this.tagReloadObject = new ConcurrentHashMap<>(); + if (logger == null) { + throw new ExceptionInInitializerError("SmartReloadLoggerImp cannot be null"); + } + + if (threadCount < 1) { + throw new ExceptionInInitializerError("threadCount must be greater than 1"); + } + + this.logger = logger; + this.reloadScheduler = new SmartReloadScheduler(this.logger, threadCount); + } + + /** + * 默认创建单个线程 + * + * @param logger + */ + public SmartReloadManager(SmartReloadThreadLogger logger) { + this(logger, 1); + } + + /** + * 停止 + */ + public void shutdown() { + reloadScheduler.shutdown(); + } + + /** + * 添加任务 + * + * @param command SmartReloadCommand实现类 + * @param initialDelay 第一次执行前的延迟时间 + * @param delay 任务间隔时间 + * @param unit 延迟单位 TimeUnit 天、小时、分、秒等 + */ + public void addCommand(SmartReloadCommandInterface command, long initialDelay, long delay, TimeUnit unit) { + reloadScheduler.addCommand(command, initialDelay, delay, unit); + } + + /** + * 注册 实现接口的方式 + * + * @param tag + * @param reloadable + */ + public void register(String tag, SmartReloadable reloadable) { + requireNonNull(reloadable); + requireNonNull(tag); + if (tagReloadObject.containsKey(tag)) { + logger.error("<> register duplicated tag reload : " + tag + " , and it will be cover!"); + } + tagReloadObject.put(tag, new InterfaceReloadObject(reloadable)); + } + + /** + * 注册 要求此类必须包含使用了SmartReload注解的方法 + * + * @param reloadObject + */ + public void register(Object reloadObject) { + requireNonNull(reloadObject); + Method[] declaredMethods = reloadObject.getClass().getDeclaredMethods(); + if (declaredMethods != null) { + for (int i = 0; i < declaredMethods.length; i++) { + Method method = declaredMethods[i]; + SmartReload annotation = method.getAnnotation(SmartReload.class); + if (annotation != null) { + String reloadTag = annotation.value(); + this.register(reloadTag, new AnnotationReloadObject(reloadObject, method)); + } + } + } + } + + private void register(String tag, AbstractSmartReloadObject reloadObject) { + if (tagReloadObject.containsKey(tag)) { + logger.error("<> register duplicated tag reload : " + tag + " , and it will be cover!"); + } + tagReloadObject.put(tag, reloadObject); + } + + /** + * Reload 已注册的ReloadItem + * + * @param reloadItem + * @return SmartReloadResult + */ + public SmartReloadResult doReload(ReloadItem reloadItem) { + AbstractSmartReloadObject reloadObject = tagReloadObject.get(reloadItem.getTag()); + if (reloadObject != null) { + return reloadObject.reload(reloadItem); + } + // 返回注册结果 + return new SmartReloadResult(reloadItem.getTag(), reloadItem.getArgs(), reloadItem.getIdentification(), false, "No registered reload handler was found"); + } + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/reload/SmartReloadScheduler.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/reload/SmartReloadScheduler.java new file mode 100644 index 00000000..121c3056 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/reload/SmartReloadScheduler.java @@ -0,0 +1,87 @@ +package net.lab1024.smartadmin.common.reload; + +import net.lab1024.smartadmin.common.reload.interfaces.SmartReloadCommandInterface; +import net.lab1024.smartadmin.common.reload.interfaces.SmartReloadThreadLogger; + +import java.util.concurrent.ScheduledThreadPoolExecutor; +import java.util.concurrent.ThreadFactory; +import java.util.concurrent.TimeUnit; +import java.util.concurrent.atomic.AtomicInteger; + +/** + * Reload 调度器 + * + * @author zhuoda + */ +public class SmartReloadScheduler { + + private ScheduledThreadPoolExecutor executor; + + private SmartReloadThreadLogger logger; + + SmartReloadScheduler(SmartReloadThreadLogger logger, int threadCount) { + this.executor = new ScheduledThreadPoolExecutor(threadCount, new SmartReloadSchedulerThreadFactory()); + this.logger = logger; + } + + void shutdown() { + try { + executor.shutdown(); + } catch (Throwable e) { + logger.error("<> shutdown ", e); + } + } + + void addCommand(SmartReloadCommandInterface command, long initialDelay, long delay, TimeUnit unit) { + executor.scheduleWithFixedDelay(new ScheduleRunnable(command, this.logger), initialDelay, delay, unit); + } + + static class ScheduleRunnable implements Runnable { + + private SmartReloadCommandInterface command; + + private SmartReloadThreadLogger logger; + + public ScheduleRunnable(SmartReloadCommandInterface command, SmartReloadThreadLogger logger) { + this.command = command; + this.logger = logger; + } + + @Override + public void run() { + try { + command.doTask(); + } catch (Throwable e) { + logger.error("", e); + } + } + } + + static class SmartReloadSchedulerThreadFactory implements ThreadFactory { + + private static final AtomicInteger poolNumber = new AtomicInteger(1); + + private final ThreadGroup group; + + private final AtomicInteger threadNumber = new AtomicInteger(1); + + private final String namePrefix; + + SmartReloadSchedulerThreadFactory() { + SecurityManager s = System.getSecurityManager(); + group = (s != null) ? s.getThreadGroup() : Thread.currentThread().getThreadGroup(); + namePrefix = "smartreload-" + poolNumber.getAndIncrement() + "-thread-"; + } + + @Override + public Thread newThread(Runnable r) { + Thread t = new Thread(group, r, namePrefix + threadNumber.getAndIncrement(), 0); + if (t.isDaemon()) + t.setDaemon(false); + if (t.getPriority() != Thread.NORM_PRIORITY) + t.setPriority(Thread.NORM_PRIORITY); + return t; + } + } + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/reload/abstracts/AbstractSmartReloadCommand.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/reload/abstracts/AbstractSmartReloadCommand.java new file mode 100644 index 00000000..8e1dc3ed --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/reload/abstracts/AbstractSmartReloadCommand.java @@ -0,0 +1,66 @@ +package net.lab1024.smartadmin.common.reload.abstracts; + +import net.lab1024.smartadmin.common.reload.SmartReloadManager; +import net.lab1024.smartadmin.common.reload.domain.entity.ReloadItem; +import net.lab1024.smartadmin.common.reload.interfaces.SmartReloadCommandInterface; + +import java.util.List; +import java.util.concurrent.ConcurrentHashMap; + +/** + * 检测是否 Reload 的类 + * + * @author zhuoda + */ +public abstract class AbstractSmartReloadCommand implements SmartReloadCommandInterface { + + /** + * 当前ReloadItem的存储器 + */ + private ConcurrentHashMap currentTags = null; + + /** + * Reload的执行类 + */ + private SmartReloadManager reloadManager; + + public AbstractSmartReloadCommand(SmartReloadManager reloadManager) { + this.reloadManager = reloadManager; + this.currentTags = new ConcurrentHashMap<>(); + // 初始获取ReloadItem数据 + List readTagStatesFromDb = readReloadItem(); + if (readTagStatesFromDb != null) { + for (ReloadItem reloadItem : readTagStatesFromDb) { + String tag = reloadItem.getTag(); + String tagChangeIdentifier = reloadItem.getIdentification(); + this.currentTags.put(tag, tagChangeIdentifier); + } + } + } + /** + * 任务: + * 读取数据库中 ReloadItem 数据 + * 校验是否发生变化 + * 执行重加载动作 + */ + @Override + public void doTask() { + // 获取数据库数据 + List readTagStatesFromDb = readReloadItem(); + String tag; + String tagIdentifier; + String preTagChangeIdentifier; + for (ReloadItem reloadItem : readTagStatesFromDb) { + tag = reloadItem.getTag(); + tagIdentifier = reloadItem.getIdentification(); + preTagChangeIdentifier = currentTags.get(tag); + // 数据不一致 + if (preTagChangeIdentifier == null || ! preTagChangeIdentifier.equals(tagIdentifier)) { + // 更新map数据 + currentTags.put(tag, tagIdentifier); + // 执行重新加载此项的动作 + handleReloadResult(this.reloadManager.doReload(reloadItem)); + } + } + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/reload/abstracts/AbstractSmartReloadCommand4Spring.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/reload/abstracts/AbstractSmartReloadCommand4Spring.java new file mode 100644 index 00000000..60f34a9c --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/reload/abstracts/AbstractSmartReloadCommand4Spring.java @@ -0,0 +1,67 @@ +package net.lab1024.smartadmin.common.reload.abstracts; + +import net.lab1024.smartadmin.common.reload.SmartReloadManager; +import net.lab1024.smartadmin.common.reload.domain.entity.ReloadItem; +import net.lab1024.smartadmin.common.reload.interfaces.SmartReloadCommandInterface; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.List; +import java.util.concurrent.ConcurrentHashMap; + +/** + * 检测是否 Reload 的类 + * + * @author zhuoda + */ +public abstract class AbstractSmartReloadCommand4Spring implements SmartReloadCommandInterface { + + /** + * 当前ReloadItem的存储器 + */ + protected ConcurrentHashMap currentTags = new ConcurrentHashMap<>(); + + /** + * Reload的执行类 + */ + @Autowired + protected SmartReloadManager reloadManager; + +// @PostConstruct + public void init() { + List readTagStatesFromDb = readReloadItem(); + if (readTagStatesFromDb != null) { + for (ReloadItem reloadItem : readTagStatesFromDb) { + String tag = reloadItem.getTag(); + String tagChangeIdentifier = reloadItem.getIdentification(); + this.currentTags.put(tag, tagChangeIdentifier); + } + } + } + + /** + * 任务: + * 读取数据库中 ReloadItem 数据 + * 校验是否发生变化 + * 执行重加载动作 + */ + @Override + public void doTask() { + // 获取数据库数据 + List readTagStatesFromDb = readReloadItem(); + String tag; + String tagIdentifier; + String preTagChangeIdentifier; + for (ReloadItem reloadItem : readTagStatesFromDb) { + tag = reloadItem.getTag(); + tagIdentifier = reloadItem.getIdentification(); + preTagChangeIdentifier = currentTags.get(tag); + // 数据不一致 + if (preTagChangeIdentifier == null || ! preTagChangeIdentifier.equals(tagIdentifier)) { + // 更新map数据 + currentTags.put(tag, tagIdentifier); + // 执行重新加载此项的动作 + handleReloadResult(this.reloadManager.doReload(reloadItem)); + } + } + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/reload/annotation/SmartReload.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/reload/annotation/SmartReload.java new file mode 100644 index 00000000..eac54afd --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/reload/annotation/SmartReload.java @@ -0,0 +1,18 @@ +package net.lab1024.smartadmin.common.reload.annotation; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * 定义 SmartReload 注解 + * + * @author zhuoda + */ +@Target(ElementType.METHOD) +@Retention(RetentionPolicy.RUNTIME) +public @interface SmartReload { + + String value(); +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/reload/domain/AbstractSmartReloadObject.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/reload/domain/AbstractSmartReloadObject.java new file mode 100644 index 00000000..907d37da --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/reload/domain/AbstractSmartReloadObject.java @@ -0,0 +1,31 @@ +package net.lab1024.smartadmin.common.reload.domain; + +import net.lab1024.smartadmin.common.reload.domain.entity.ReloadItem; +import net.lab1024.smartadmin.common.reload.domain.entity.SmartReloadResult; + +import java.io.PrintWriter; +import java.io.StringWriter; +/** + * AbstractSmartReloadObject 处理程序的抽象类 + * + * @author zhuoda + */ +public abstract class AbstractSmartReloadObject { + + protected String getStackTrace(Throwable e) { + StringWriter sw = new StringWriter(); + PrintWriter pw = new PrintWriter(sw); + e.printStackTrace(pw); + return sw.toString(); + } + + /** + * 通过reloadItem参数reload,获得结果 + * + * @param reloadItem + * @return boolean + * @author zhuokongming + * @date 2016年10月21日 下午2:09:44 + */ + public abstract SmartReloadResult reload(ReloadItem reloadItem); +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/reload/domain/AnnotationReloadObject.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/reload/domain/AnnotationReloadObject.java new file mode 100644 index 00000000..da19bcb9 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/reload/domain/AnnotationReloadObject.java @@ -0,0 +1,44 @@ +package net.lab1024.smartadmin.common.reload.domain; + +import net.lab1024.smartadmin.common.reload.annotation.SmartReload; +import net.lab1024.smartadmin.common.reload.domain.entity.ReloadItem; +import net.lab1024.smartadmin.common.reload.domain.entity.SmartReloadResult; + +import java.lang.reflect.Method; + +/** + * Reload 处理程序的实现类 + * 用于包装以注解 SmartReload 实现的处理类 + * + * @author zhuoda + */ +public class AnnotationReloadObject extends AbstractSmartReloadObject { + + private Object reloadObject; + + private Method method; + + public AnnotationReloadObject(Object reloadObject, Method method) { + super(); + this.reloadObject = reloadObject; + this.method = method; + this.method.setAccessible(true); + } + + @Override + public SmartReloadResult reload(ReloadItem reloadItem) { + SmartReloadResult result = new SmartReloadResult(); + String tag = method.getAnnotation(SmartReload.class).value(); + result.setTag(tag); + result.setArgs(reloadItem.getArgs()); + result.setIdentification(reloadItem.getIdentification()); + try { + Object invoke = method.invoke(reloadObject, reloadItem.getArgs()); + result.setResult((Boolean) invoke); + } catch (Throwable e) { + result.setException(getStackTrace(e)); + } + return result; + } + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/reload/domain/InterfaceReloadObject.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/reload/domain/InterfaceReloadObject.java new file mode 100644 index 00000000..e0f75ba0 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/reload/domain/InterfaceReloadObject.java @@ -0,0 +1,37 @@ +package net.lab1024.smartadmin.common.reload.domain; + +import net.lab1024.smartadmin.common.reload.domain.entity.ReloadItem; +import net.lab1024.smartadmin.common.reload.domain.entity.SmartReloadResult; +import net.lab1024.smartadmin.common.reload.interfaces.SmartReloadable; + +/** + * Reload 处理程序的实现类 + * 用于处理以接口实现的处理类 + * + * @author zhuoda + */ +public class InterfaceReloadObject extends AbstractSmartReloadObject { + + private SmartReloadable object; + + public InterfaceReloadObject(SmartReloadable object) { + super(); + this.object = object; + } + + @Override + public SmartReloadResult reload(ReloadItem reloadItem) { + SmartReloadResult reloadResult = new SmartReloadResult(); + reloadResult.setArgs(reloadItem.getArgs()); + reloadResult.setIdentification(reloadItem.getIdentification()); + reloadResult.setTag(reloadItem.getTag()); + try { + boolean res = object.reload(reloadItem); + reloadResult.setResult(res); + } catch (Throwable e) { + reloadResult.setException(getStackTrace(e)); + } + return reloadResult; + } + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/reload/domain/entity/ReloadItem.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/reload/domain/entity/ReloadItem.java new file mode 100644 index 00000000..66a89b60 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/reload/domain/entity/ReloadItem.java @@ -0,0 +1,55 @@ +package net.lab1024.smartadmin.common.reload.domain.entity; +/** + * ReloadItem 类 + * + * @author zhuoda + */ +public class ReloadItem { + + /** + * 项名称 + */ + private String tag; + + /** + * 参数 + */ + private String args; + + /** + * 标识 + */ + private String identification; + + public ReloadItem() { + + } + public ReloadItem(String tag, String identification, String args) { + this.tag = tag; + this.identification = identification; + this.args = args; + } + + public String getTag() { + return tag; + } + public void setTag(String tag) { + this.tag = tag; + } + public String getIdentification() { + return identification; + } + public void setIdentification(String identification) { + this.identification = identification; + } + public String getArgs() { + return args; + } + public void setArgs(String args) { + this.args = args; + } + @Override + public String toString() { + return "ReloadItem{" + "tag='" + tag + '\'' + ", identification='" + identification + '\'' + ", args='" + args + '\'' + '}'; + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/reload/domain/entity/SmartReloadResult.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/reload/domain/entity/SmartReloadResult.java new file mode 100644 index 00000000..07c6d2d5 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/reload/domain/entity/SmartReloadResult.java @@ -0,0 +1,102 @@ +package net.lab1024.smartadmin.common.reload.domain.entity; +/** + * t_reload_result 表 实体类 + * + * @author zhuoda + */ +public class SmartReloadResult { + + /** + * 项名称 + */ + private String tag; + + /** + * 参数 + */ + private String args; + + /** + * 标识 + */ + private String identification; + + /** + * 处理结果 + */ + private boolean result; + + /** + * 异常说明 + */ + private String exception; + + public SmartReloadResult() { + } + + public SmartReloadResult(String tag, String args, boolean result, String exception) { + this.tag = tag; + this.args = args; + this.result = result; + this.exception = exception; + } + + public SmartReloadResult(String tag, String args, String identification, boolean result, String exception) { + this.tag = tag; + this.args = args; + this.identification = identification; + this.result = result; + this.exception = exception; + } + + public void setTag(String tag) { + this.tag = tag; + } + + public void setArgs(String args) { + this.args = args; + } + + public void setIdentification(String identification) { + this.identification = identification; + } + + public void setResult(boolean result) { + this.result = result; + } + + public void setException(String exception) { + this.exception = exception; + } + + public String getTag() { + return tag; + } + + public String getArgs() { + return args; + } + + public String getIdentification() { + return identification; + } + + public boolean isResult() { + return result; + } + + public String getException() { + return exception; + } + + @Override + public String toString() { + return "SmartReloadResult{" + + "tag='" + tag + '\'' + + ", args='" + args + '\'' + + ", identification='" + identification + '\'' + + ", result=" + result + + ", exception='" + exception + '\'' + + '}'; + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/reload/interfaces/SmartReloadCommandInterface.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/reload/interfaces/SmartReloadCommandInterface.java new file mode 100644 index 00000000..c9e04237 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/reload/interfaces/SmartReloadCommandInterface.java @@ -0,0 +1,38 @@ +package net.lab1024.smartadmin.common.reload.interfaces; + +import net.lab1024.smartadmin.common.reload.domain.entity.ReloadItem; +import net.lab1024.smartadmin.common.reload.domain.entity.SmartReloadResult; + +import java.util.List; + +/** + * 检测是否 Reload 的类 + * + * @author zhuoda + */ +public interface SmartReloadCommandInterface { + + /** + * 任务: + * 读取数据库中 ReloadItem 数据 + * 校验是否发生变化 + * 执行重加载动作 + */ + void doTask(); + + /** + * 该方法返回一个List:
+ * ReloadItem对象的tagIdentify为:该tag的 状态(状态其实就是个字符串,如果该字符串跟上次有变化则进行reload操作)
+ * ReloadItem对象的args为: reload操作需要的参数

+ * + * @return List + */ + List readReloadItem(); + + /** + * 处理Reload结果 + * + * @param reloadResult + */ + void handleReloadResult(SmartReloadResult reloadResult); +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/reload/interfaces/SmartReloadThreadLogger.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/reload/interfaces/SmartReloadThreadLogger.java new file mode 100644 index 00000000..e03c9ad7 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/reload/interfaces/SmartReloadThreadLogger.java @@ -0,0 +1,12 @@ +package net.lab1024.smartadmin.common.reload.interfaces; + +/** + * SmartReloadThreadLogger 日志类 + */ +public interface SmartReloadThreadLogger { + + void error(String string); + + void error(String string, Throwable e); + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/reload/interfaces/SmartReloadable.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/reload/interfaces/SmartReloadable.java new file mode 100644 index 00000000..85473d5f --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/reload/interfaces/SmartReloadable.java @@ -0,0 +1,19 @@ +package net.lab1024.smartadmin.common.reload.interfaces; + +import net.lab1024.smartadmin.common.reload.domain.entity.ReloadItem; + +/** + * reload 接口
+ * 需要reload的业务实现类 + */ +@FunctionalInterface +public interface SmartReloadable { + + /** + * reload + * + * @param reloadItem + * @return boolean + */ + boolean reload(ReloadItem reloadItem); +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/swagger/SmartSwaggerApiModelEnumPlugin.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/swagger/SmartSwaggerApiModelEnumPlugin.java new file mode 100644 index 00000000..dbc2d586 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/swagger/SmartSwaggerApiModelEnumPlugin.java @@ -0,0 +1,90 @@ +/* + * + * Copyright 2015 the original author or authors. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * + */ + +package net.lab1024.smartadmin.common.swagger; + +import net.lab1024.smartadmin.common.anno.ApiModelPropertyEnum; +import net.lab1024.smartadmin.common.domain.BaseEnum; +import com.google.common.base.Function; +import com.google.common.base.Optional; +import org.apache.commons.lang3.StringUtils; +import org.springframework.core.annotation.AnnotationUtils; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spi.schema.ModelPropertyBuilderPlugin; +import springfox.documentation.spi.schema.contexts.ModelPropertyContext; +import springfox.documentation.swagger.common.SwaggerPluginSupport; + +import java.lang.reflect.AnnotatedElement; + +import static springfox.documentation.schema.Annotations.findPropertyAnnotation; + +/** + * swagger 用于说明枚举类字段说明 + * SWAGGER_PLUGIN_ORDER+1 是将此配置放在原来的后面执行 + * + * @author listen + * @date 2019年5月16日 15:36:56 + */ +public class SmartSwaggerApiModelEnumPlugin implements ModelPropertyBuilderPlugin { + + @Override + public void apply(ModelPropertyContext context) { + Optional enumOptional = Optional.absent(); + + if (context.getAnnotatedElement().isPresent()) { + enumOptional = enumOptional.or(findApiModePropertyAnnotation(context.getAnnotatedElement().get())); + } + if (context.getBeanPropertyDefinition().isPresent()) { + enumOptional = enumOptional.or(findPropertyAnnotation(context.getBeanPropertyDefinition().get(), ApiModelPropertyEnum.class)); + } + + if (enumOptional.isPresent()) { + ApiModelPropertyEnum anEnum = enumOptional.get(); + String enumInfo = BaseEnum.getInfo(anEnum.value()); + context.getBuilder() + .required(enumOptional.transform(toIsRequired()).or(false)) + .description(anEnum.enumDesc() + ":" + enumInfo) + .example(enumOptional.transform(toExample()).orNull()) + .isHidden(anEnum.hidden()); + } + } + + @Override + public boolean supports(DocumentationType delimiter) { + return SwaggerPluginSupport.pluginDoesApply(delimiter); + } + + static Function toIsRequired() { + return annotation -> annotation.required(); + } + + public static Optional findApiModePropertyAnnotation(AnnotatedElement annotated) { + return Optional.fromNullable(AnnotationUtils.getAnnotation(annotated, ApiModelPropertyEnum.class)); + } + + static Function toExample() { + return annotation -> { + String example = annotation.example(); + if (StringUtils.isBlank(example)) { + return ""; + } + return example; + }; + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/validator/bigdecimal/BigDecimalValidator.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/validator/bigdecimal/BigDecimalValidator.java new file mode 100644 index 00000000..5ba85bf7 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/validator/bigdecimal/BigDecimalValidator.java @@ -0,0 +1,73 @@ +package net.lab1024.smartadmin.common.validator.bigdecimal; + +import net.lab1024.smartadmin.util.SmartBigDecimalUtil; + +import javax.validation.ConstraintValidator; +import javax.validation.ConstraintValidatorContext; +import java.math.BigDecimal; + +/** + * BigDecimal 类校验器 + * + * @author listen + * @date 2018年3月20日 13:51:46 + */ +public class BigDecimalValidator implements ConstraintValidator { + + /** + * 获取定义的数值 + */ + private BigDecimal value; + + /** + * 获取比较符 + */ + private ComparisonSymbolEnum symbolEnum; + + /** + * 是否必须 + */ + private boolean required; + + @Override + public void initialize(CheckBigDecimal constraintAnnotation) { + // 初始化属性 + value = new BigDecimal(constraintAnnotation.value()); + symbolEnum = constraintAnnotation.symbolEnum(); + required = constraintAnnotation.required(); + } + + @Override + public boolean isValid(BigDecimal decimal, ConstraintValidatorContext constraintValidatorContext) { + + // 如果数值为空,校验是否必须 + if (null == decimal) { + return ! required; + } + + // 根据操作符,校验结果 + switch (symbolEnum) { + // 等于 + case EQUAL: + return SmartBigDecimalUtil.equals(decimal, value); + // 不等于 + case NOT_EQUAL: + return ! SmartBigDecimalUtil.equals(decimal, value); + // 小于 + case LESS_THAN: + return SmartBigDecimalUtil.isLessThan(decimal, value); + // 小于等于 + case LESS_THAN_OR_EQUAL: + return SmartBigDecimalUtil.isLessThan(decimal, value) || SmartBigDecimalUtil.equals(decimal, value); + // 大于 + case GREATER_THAN: + return SmartBigDecimalUtil.isGreaterThan(decimal, value); + // 大于等于 + case GREATER_THAN_OR_EQUAL: + return SmartBigDecimalUtil.isGreaterThan(decimal, value) || SmartBigDecimalUtil.equals(decimal, value); + default: + } + + return false; + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/validator/bigdecimal/CheckBigDecimal.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/validator/bigdecimal/CheckBigDecimal.java new file mode 100644 index 00000000..73ef5668 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/validator/bigdecimal/CheckBigDecimal.java @@ -0,0 +1,53 @@ +package net.lab1024.smartadmin.common.validator.bigdecimal; + +import javax.validation.Constraint; +import javax.validation.Payload; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * 自定义的属性校验注解 + * + * @author listen + * @date 2018年3月20日 13:53:33 + */ +@Target(ElementType.FIELD) +@Retention(RetentionPolicy.RUNTIME) +@Constraint(validatedBy = BigDecimalValidator.class)// 自定义验证的处理类 +public @interface CheckBigDecimal { + + /** + * 与这个数值校验 + * + * @return + */ + String value(); + + /** + * 比较符 请使用 ComparisonSymbolEnum 枚举类 + * + * @return + */ + ComparisonSymbolEnum symbolEnum(); + + /** + * 默认的错误提示信息 + * + * @return String + */ + String message() default "非法的数值"; + + /** + * 是否必须 : 默认 true + * + * @return boolean + */ + boolean required() default true; + + //下面这两个属性必须添加 :不然会报错 + Class[] groups() default {}; + + Class[] payload() default {}; +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/validator/bigdecimal/ComparisonSymbolEnum.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/validator/bigdecimal/ComparisonSymbolEnum.java new file mode 100644 index 00000000..e59d0bf3 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/validator/bigdecimal/ComparisonSymbolEnum.java @@ -0,0 +1,40 @@ +package net.lab1024.smartadmin.common.validator.bigdecimal; + +/** + * 比较符枚举类 + * + * @author listen + * @date 2018/03/20 14:01 + */ +public enum ComparisonSymbolEnum { + + /** + * 等于 + */ + EQUAL, + + /** + * 不等于 + */ + NOT_EQUAL, + + /** + * 小于 + */ + LESS_THAN, + + /** + * 小于等于 + */ + LESS_THAN_OR_EQUAL, + + /** + * 大于 + */ + GREATER_THAN, + + /** + * 大于等于 + */ + GREATER_THAN_OR_EQUAL, +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/validator/en/CheckEnum.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/validator/en/CheckEnum.java new file mode 100644 index 00000000..ceef46fc --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/validator/en/CheckEnum.java @@ -0,0 +1,50 @@ +package net.lab1024.smartadmin.common.validator.en; + + +import net.lab1024.smartadmin.common.domain.BaseEnum; + +import javax.validation.Constraint; +import javax.validation.Payload; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +/** + * 自定义的属性校验注解 + * 为了方便与校验属性的值是否为合法的枚举值 + * + * @author listen + * @date 2017/11/11 15:31 + */ +@Target(ElementType.FIELD) +@Retention(RetentionPolicy.RUNTIME) +@Constraint(validatedBy = EnumValidator.class)// 自定义验证的处理类 +public @interface CheckEnum { + + /** + * 默认的错误提示信息 + * + * @return String + */ + String message() default "非法的枚举值"; + + /** + * 枚举类对象 必须实现BaseEnum接口 + * + * @return + */ + Class enumClazz(); + + /** + * 是否必须 + * + * @return boolean + */ + boolean required() default false; + + //下面这两个属性必须添加 :不然会报错 + Class[] groups() default {}; + + Class[] payload() default {}; +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/validator/en/EnumValidator.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/validator/en/EnumValidator.java new file mode 100644 index 00000000..adbc1dbe --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/common/validator/en/EnumValidator.java @@ -0,0 +1,71 @@ +package net.lab1024.smartadmin.common.validator.en; + +import net.lab1024.smartadmin.common.domain.BaseEnum; + +import javax.validation.ConstraintValidator; +import javax.validation.ConstraintValidatorContext; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; + +/** + * 枚举类校验器 + * + * @author listen + * @date 2017/11/11 15:34 + */ +public class EnumValidator implements ConstraintValidator { + + /** + * 枚举类实例集合 + */ + private List enumValList; + + /** + * 是否必须 + */ + private boolean required; + + @Override + public void initialize(CheckEnum constraintAnnotation) { + // 获取注解传入的枚举类对象 + required = constraintAnnotation.required(); + Class enumClass = constraintAnnotation.enumClazz(); + enumValList = Stream.of(enumClass.getEnumConstants()).map(BaseEnum::getValue).collect(Collectors.toList()); + } + + @Override + public boolean isValid(Object value, ConstraintValidatorContext constraintValidatorContext) { + // 判断是否必须 + if (null == value) { + return !required; + } + + if (value instanceof List) { + // 如果为 List 集合数据 + return this.checkList((List) value); + } + + // 校验是否为合法的枚举值 + return enumValList.contains(value); + } + + /** + * 校验集合类型 + * + * @param list + * @return + */ + private boolean checkList(List list) { + if (required && list.isEmpty()) { + // 必须的情况下 list 不能为空 + return false; + } + // 校验是否重复 + long count = list.stream().distinct().count(); + if (count != list.size()) { + return false; + } + return enumValList.containsAll(list); + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/config/SmartAdminWebAppConfig.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/config/SmartAdminWebAppConfig.java new file mode 100644 index 00000000..04d30c67 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/config/SmartAdminWebAppConfig.java @@ -0,0 +1,25 @@ +package net.lab1024.smartadmin.config; + +import net.lab1024.smartadmin.interceptor.SmartAuthenticationInterceptor; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.*; + +@Configuration +public class SmartAdminWebAppConfig implements WebMvcConfigurer { + + @Autowired + private SmartAuthenticationInterceptor smartAuthenticationInterceptor; + + @Override + public void addInterceptors(InterceptorRegistry registry) { + registry.addInterceptor(smartAuthenticationInterceptor).addPathPatterns("/**"); + } + + + @Override + public void addViewControllers(ViewControllerRegistry registry) { + registry.addViewController("/druidMonitor").setViewName("redirect:/druid/index.html"); + registry.addViewController("/swaggerApi").setViewName("redirect:/swagger-ui.html"); + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/config/SmartDruidDataSourceConfig.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/config/SmartDruidDataSourceConfig.java new file mode 100644 index 00000000..560bda2a --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/config/SmartDruidDataSourceConfig.java @@ -0,0 +1,172 @@ +package net.lab1024.smartadmin.config; + +import com.alibaba.druid.filter.Filter; +import com.alibaba.druid.filter.stat.StatFilter; +import com.alibaba.druid.pool.DruidDataSource; +import com.alibaba.druid.support.http.StatViewServlet; +import com.alibaba.druid.support.http.WebStatFilter; +import com.alibaba.druid.support.spring.stat.DruidStatInterceptor; +import com.alibaba.druid.util.JdbcConstants; +import lombok.extern.slf4j.Slf4j; +import org.springframework.aop.support.DefaultPointcutAdvisor; +import org.springframework.aop.support.JdkRegexpMethodPointcut; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.web.servlet.FilterRegistrationBean; +import org.springframework.boot.web.servlet.ServletRegistrationBean; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; + +import javax.sql.DataSource; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; + +/** + * [ 数据源配置 ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + * @since JDK1.8 + */ +@Slf4j +@Configuration +public class SmartDruidDataSourceConfig { + + @Value("${spring.datasource.driver-class-name}") + String driver; + + @Value("${spring.datasource.url}") + String url; + + @Value("${spring.datasource.username}") + String username; + + @Value("${spring.datasource.password}") + String password; + + @Value("${spring.datasource.initial-size}") + int initialSize; + + @Value("${spring.datasource.min-idle}") + int minIdle; + + @Value("${spring.datasource.max-active}") + int maxActive; + + @Value("${spring.datasource.max-wait}") + long maxWait; + + @Value("${spring.datasource.time-between-eviction-runs-millis}") + long timeBetweenEvictionRunsMillis; + + @Value("${spring.datasource.min-evictable-idle-time-millis}") + long minEvictableIdleTimeMillis; + + @Value("${spring.datasource.filters}") + String filters; + + @Value("${spring.datasource.druid.username}") + String druidUserName; + + @Value("${spring.datasource.druid.password}") + String druidPassword; + + @Value("${spring.datasource.druid.login.enabled}") + boolean druidLoginEnable; + + @Autowired + private StatFilter logSlowSql; + + @Autowired + private DruidStatInterceptor druidStatInterceptor; + + @Bean + @Primary + public DataSource druidDataSource() { + DruidDataSource druidDataSource = new DruidDataSource(); + druidDataSource.setDbType(JdbcConstants.MYSQL); + druidDataSource.setDriverClassName(driver); + druidDataSource.setUrl(url); + druidDataSource.setUsername(username); + druidDataSource.setPassword(password); + druidDataSource.setInitialSize(initialSize); + druidDataSource.setMinIdle(minIdle); + druidDataSource.setMaxActive(maxActive); + druidDataSource.setMaxWait(maxWait); + druidDataSource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis); + druidDataSource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis); + try { + druidDataSource.setFilters(filters); + ArrayList arrayList = new ArrayList<>(); + arrayList.add(logSlowSql); + druidDataSource.setProxyFilters(arrayList); + druidDataSource.init(); + } catch (SQLException e) { + log.error("初始化数据源出错", e); + } + + return druidDataSource; + } + + @Bean + public ServletRegistrationBean druidServlet() { + ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(); + servletRegistrationBean.setServlet(new StatViewServlet()); + servletRegistrationBean.addUrlMappings("/druid/*"); + Map initParameters = new HashMap(); + //不设置用户名密码可以直接通过druid/index.html访问 + if (druidLoginEnable) { + initParameters.put("loginUsername", druidUserName); + initParameters.put("loginPassword", druidPassword); + } + initParameters.put("resetEnable", "false"); + servletRegistrationBean.setInitParameters(initParameters); + return servletRegistrationBean; + } + + @Bean + public FilterRegistrationBean filterRegistrationBean() { + FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(); + filterRegistrationBean.setFilter(new WebStatFilter()); + filterRegistrationBean.addUrlPatterns("/*"); + filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"); + return filterRegistrationBean; + } + + @Bean + public StatFilter logSlowSql() { + StatFilter statFilter = new StatFilter(); + statFilter.setMergeSql(true); + statFilter.setSlowSqlMillis(300); + statFilter.setLogSlowSql(true); + return statFilter; + } + + @Bean(name = "druid-stat-interceptor") + public DruidStatInterceptor druidStatInterceptor() { + DruidStatInterceptor dsInterceptor = new DruidStatInterceptor(); + return dsInterceptor; + } + + @Bean + public JdkRegexpMethodPointcut jdkRegexpMethodPointcut() { + JdkRegexpMethodPointcut jdkRegexpMethodPointcut = new JdkRegexpMethodPointcut(); + jdkRegexpMethodPointcut.setPatterns("net.lab1024.smartadmin.module..*Service.*"); + return jdkRegexpMethodPointcut; + } + + @Bean + public DefaultPointcutAdvisor defaultPointcutAdvisor() { + DefaultPointcutAdvisor pointcutAdvisor = new DefaultPointcutAdvisor(); + pointcutAdvisor.setPointcut(jdkRegexpMethodPointcut()); + pointcutAdvisor.setAdvice(druidStatInterceptor); + return pointcutAdvisor; + } + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/config/SmartHeartBeatConfig.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/config/SmartHeartBeatConfig.java new file mode 100644 index 00000000..14517a8f --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/config/SmartHeartBeatConfig.java @@ -0,0 +1,33 @@ +package net.lab1024.smartadmin.config; + +import lombok.Data; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Configuration; + +/** + * + * [ ] + * + * @version 1.0 + * @since JDK1.8 + * @author yandanyang + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + */ +@Data +@Configuration +public class SmartHeartBeatConfig { + + /** + * 延迟执行时间 + */ + @Value("${heart-beat.delayHandlerTime}") + private Long delayHandlerTime; + + /** + * 间隔执行时间 + */ + @Value("${heart-beat.intervalTime}") + private Long intervalTime; +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/config/SmartKaptchaConfig.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/config/SmartKaptchaConfig.java new file mode 100644 index 00000000..06dd1c95 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/config/SmartKaptchaConfig.java @@ -0,0 +1,49 @@ +package net.lab1024.smartadmin.config; + +import net.lab1024.smartadmin.common.kaptcha.KaptchaNoise; +import net.lab1024.smartadmin.common.kaptcha.KaptchaWordRenderer; +import com.google.code.kaptcha.impl.DefaultKaptcha; +import com.google.code.kaptcha.util.Config; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +import java.util.Properties; + +/** + * [ 验证码配置 ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/7/4 0004 上午 9:40 + * @since JDK1.8 + */ +@Configuration +public class SmartKaptchaConfig { + + @Bean + public DefaultKaptcha getDefaultKaptcha(){ + DefaultKaptcha defaultKaptcha=new DefaultKaptcha(); + Properties properties=new Properties(); + properties.setProperty("kaptcha.border", "no"); + properties.setProperty("kaptcha.border.color", "34,114,200"); + properties.setProperty("kaptcha.image.width", "125"); + properties.setProperty("kaptcha.image.height", "45"); + properties.setProperty("kaptcha.textproducer.char.string", "0123456789"); + properties.setProperty("kaptcha.textproducer.char.length", "4"); + properties.setProperty("kaptcha.textproducer.font.names", "Arial,Arial Narrow,Serif,Helvetica,Tahoma,Times New Roman,Verdana"); + properties.setProperty("kaptcha.textproducer.font.size", "38"); + + properties.setProperty("kaptcha.background.clear.from", "white"); + properties.setProperty("kaptcha.background.clear.to", "white"); + + properties.setProperty("kaptcha.word.impl", KaptchaWordRenderer.class.getName()); + properties.setProperty("kaptcha.noise.impl", KaptchaNoise.class.getName()); + + Config config=new Config(properties); + defaultKaptcha.setConfig(config); + return defaultKaptcha; + } + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/config/SmartMybatisPlusConfig.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/config/SmartMybatisPlusConfig.java new file mode 100644 index 00000000..6bdcfb08 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/config/SmartMybatisPlusConfig.java @@ -0,0 +1,27 @@ +package net.lab1024.smartadmin.config; + +import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor; +import com.baomidou.mybatisplus.extension.plugins.pagination.optimize.JsqlParserCountOptimize; +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +/** + * @author zhuoda + */ +@EnableTransactionManagement +@Configuration +@MapperScan(basePackages = {"net.lab1024.smartadmin.module.*"}) +public class SmartMybatisPlusConfig { + + /** + * 分页插件 + */ + @Bean + public PaginationInterceptor paginationInterceptor() { + // 开启 count 的 join 优化,只针对 left join !!! + return new PaginationInterceptor().setCountSqlParser(new JsqlParserCountOptimize(true)); + } + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/config/SmartRedisConfig.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/config/SmartRedisConfig.java new file mode 100644 index 00000000..829ca01f --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/config/SmartRedisConfig.java @@ -0,0 +1,74 @@ +package net.lab1024.smartadmin.config; + +import com.fasterxml.jackson.annotation.JsonAutoDetect; +import com.fasterxml.jackson.annotation.PropertyAccessor; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.data.redis.connection.RedisConnectionFactory; +import org.springframework.data.redis.core.*; +import org.springframework.data.redis.serializer.Jackson2JsonRedisSerializer; +import org.springframework.data.redis.serializer.StringRedisSerializer; + +/** + * [ redis配置 ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + * @since JDK1.8 + */ +@Configuration +public class SmartRedisConfig { + + @Autowired + private RedisConnectionFactory factory; + + @Bean + public RedisTemplate redisTemplate() { + Jackson2JsonRedisSerializer jackson2JsonRedisSerializer = new Jackson2JsonRedisSerializer(Object.class); + ObjectMapper om = new ObjectMapper(); + om.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.ANY); + om.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_FINAL); + jackson2JsonRedisSerializer.setObjectMapper(om); + RedisTemplate template = new RedisTemplate(); + template.setConnectionFactory(factory); + template.setKeySerializer(new StringRedisSerializer()); + template.setValueSerializer(jackson2JsonRedisSerializer); + template.setHashKeySerializer(jackson2JsonRedisSerializer); + template.setHashValueSerializer(jackson2JsonRedisSerializer); + template.setDefaultSerializer(new StringRedisSerializer()); + template.afterPropertiesSet(); + return template; + } + + @Bean + public HashOperations hashOperations(RedisTemplate redisTemplate) { + return redisTemplate.opsForHash(); + } + + @Bean + public ValueOperations valueOperations(RedisTemplate redisTemplate) { + return redisTemplate.opsForValue(); + } + + @Bean + public ListOperations listOperations(RedisTemplate redisTemplate) { + return redisTemplate.opsForList(); + } + + @Bean + public SetOperations setOperations(RedisTemplate redisTemplate) { + return redisTemplate.opsForSet(); + } + + @Bean + public ZSetOperations zSetOperations(RedisTemplate redisTemplate) { + return redisTemplate.opsForZSet(); + } + + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/config/SmartReloadConfig.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/config/SmartReloadConfig.java new file mode 100644 index 00000000..bf5defdd --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/config/SmartReloadConfig.java @@ -0,0 +1,45 @@ +package net.lab1024.smartadmin.config; + +import net.lab1024.smartadmin.common.reload.SmartReloadManager; +import net.lab1024.smartadmin.common.reload.interfaces.SmartReloadThreadLogger; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/3/28 0028 下午 20:15 + * @since JDK1.8 + */ +@Slf4j +@Configuration +public class SmartReloadConfig { + + @Value("${smart-reload.thread-count}") + private Integer threadCount; + + @Bean + public SmartReloadManager initSmartReloadManager() { + /** + * 创建 Reload Manager 调度器 + */ + SmartReloadManager smartReloadManager = new SmartReloadManager(new SmartReloadThreadLogger() { + @Override + public void error(String string) { + log.error(string); + } + + @Override + public void error(String string, Throwable e) { + log.error(string, e); + } + }, threadCount); + return smartReloadManager; + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/config/SmartRestTemplateConfig.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/config/SmartRestTemplateConfig.java new file mode 100644 index 00000000..70d9624c --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/config/SmartRestTemplateConfig.java @@ -0,0 +1,109 @@ +package net.lab1024.smartadmin.config; + +import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter; +import org.apache.http.client.HttpClient; +import org.apache.http.client.config.RequestConfig; +import org.apache.http.config.Registry; +import org.apache.http.config.RegistryBuilder; +import org.apache.http.conn.socket.ConnectionSocketFactory; +import org.apache.http.conn.socket.PlainConnectionSocketFactory; +import org.apache.http.conn.ssl.SSLConnectionSocketFactory; +import org.apache.http.impl.client.HttpClientBuilder; +import org.apache.http.impl.conn.PoolingHttpClientConnectionManager; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.http.MediaType; +import org.springframework.http.client.ClientHttpRequestFactory; +import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; +import org.springframework.http.converter.FormHttpMessageConverter; +import org.springframework.http.converter.HttpMessageConverter; +import org.springframework.http.converter.StringHttpMessageConverter; +import org.springframework.web.client.RestTemplate; + +import java.nio.charset.Charset; +import java.util.ArrayList; +import java.util.List; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + * @since JDK1.8 + */ +@Configuration +public class SmartRestTemplateConfig { + + + @Value("${http.pool.max-total}") + private Integer maxTotal; + @Value("${http.pool.default-max-per-route}") + private Integer defaultMaxPerRoute; + @Value("${http.pool.socket-timeout}") + private Integer socketTimeout; + @Value("${http.pool.connect-timeout}") + private Integer connectTimeout; + @Value("${http.pool.connection-request-timeout}") + private Integer connectionRequestTimeout; + + + @Bean + public RestTemplate restTemplate(ClientHttpRequestFactory factory) { + return new RestTemplate(factory); + } + + @Bean + public ClientHttpRequestFactory httpRequestFactory() { + HttpComponentsClientHttpRequestFactory factory = new HttpComponentsClientHttpRequestFactory(httpClient()); + return factory; + } + + /** + * fastJsonRestTemplate + * + * @return + */ + @Bean(name = "fastJsonRestTemplate") + public RestTemplate fastJsonRestTemplate() { + RestTemplate restTemplate = new RestTemplate(httpRequestFactory()); + + HttpMessageConverter converter = new StringHttpMessageConverter(Charset.forName("UTF-8")); + + FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter(); + List fastMediaTypes = new ArrayList<>(); + fastMediaTypes.add(MediaType.APPLICATION_FORM_URLENCODED); + fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8); + fastConverter.setSupportedMediaTypes(fastMediaTypes); + List> converters = restTemplate.getMessageConverters(); + converters.add(1,converter); + converters.add(fastConverter); + return restTemplate; + } + + + @Bean + public HttpClient httpClient() { + Registry registry = RegistryBuilder.create() + .register("http", PlainConnectionSocketFactory.getSocketFactory()) + .register("https", SSLConnectionSocketFactory.getSocketFactory()) + .build(); + PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager(registry); + connectionManager.setMaxTotal(maxTotal); + connectionManager.setDefaultMaxPerRoute(defaultMaxPerRoute); + + RequestConfig requestConfig = RequestConfig.custom() + .setSocketTimeout(socketTimeout) + .setConnectTimeout(connectTimeout) + .setConnectionRequestTimeout(connectionRequestTimeout) + .build(); + return HttpClientBuilder.create() + .setDefaultRequestConfig(requestConfig) + .setConnectionManager(connectionManager) + .build(); + } + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/config/SmartSwaggerApiModelEnumConfig.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/config/SmartSwaggerApiModelEnumConfig.java new file mode 100644 index 00000000..93e45791 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/config/SmartSwaggerApiModelEnumConfig.java @@ -0,0 +1,29 @@ +package net.lab1024.smartadmin.config; + +import net.lab1024.smartadmin.common.swagger.SmartSwaggerApiModelEnumPlugin; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Profile; +import org.springframework.core.annotation.Order; +import springfox.documentation.swagger.common.SwaggerPluginSupport; + +/** + * [ 对于枚举类进行swagger注解,与前端的vue-enum相匹配 ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/8/9 0009 上午 9:46 + * @since JDK1.8 + */ +@Configuration +@Profile({"dev", "sit", "pre", "prod"}) +public class SmartSwaggerApiModelEnumConfig { + + @Bean + @Order(SwaggerPluginSupport.SWAGGER_PLUGIN_ORDER + 1) + public SmartSwaggerApiModelEnumPlugin swaggerEnum(){ + return new SmartSwaggerApiModelEnumPlugin(); + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/config/SmartSwaggerDynamicGroupConfig.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/config/SmartSwaggerDynamicGroupConfig.java new file mode 100644 index 00000000..aad7b175 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/config/SmartSwaggerDynamicGroupConfig.java @@ -0,0 +1,236 @@ +package net.lab1024.smartadmin.config; + +import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j; +import com.google.common.base.Optional; +import com.google.common.base.Predicate; +import com.google.common.base.Predicates; +import com.google.common.collect.Lists; +import com.google.common.collect.Maps; +import io.swagger.annotations.Api; +import lombok.extern.slf4j.Slf4j; +import net.lab1024.smartadmin.constant.SwaggerTagConst; +import net.lab1024.smartadmin.interceptor.SmartAuthenticationInterceptor; +import org.springframework.beans.BeansException; +import org.springframework.beans.factory.config.BeanDefinition; +import org.springframework.beans.factory.config.ConfigurableListableBeanFactory; +import org.springframework.beans.factory.support.BeanDefinitionBuilder; +import org.springframework.beans.factory.support.BeanDefinitionRegistry; +import org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor; +import org.springframework.context.EnvironmentAware; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Profile; +import org.springframework.core.env.Environment; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; +import springfox.documentation.RequestHandler; +import springfox.documentation.builders.ApiInfoBuilder; +import springfox.documentation.builders.ParameterBuilder; +import springfox.documentation.builders.PathSelectors; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.schema.ModelRef; +import springfox.documentation.service.*; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spi.service.contexts.SecurityContext; +import springfox.documentation.spring.web.plugins.Docket; +import springfox.documentation.swagger2.annotations.EnableSwagger2; + +import java.lang.reflect.Field; +import java.lang.reflect.Modifier; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Map; + +/** + * [ 根据SwaggerTagConst内部类动态生成Swagger group ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/8/7 0007 下午 19:20 + * @since JDK1.8 + */ +@Slf4j +@EnableSwagger2 +@EnableKnife4j +@Configuration +@Profile({"dev", "sit", "pre", "prod"}) +public class SmartSwaggerDynamicGroupConfig implements EnvironmentAware, BeanDefinitionRegistryPostProcessor { + + /** + * 分组名称 + */ + private String apiGroupName; + + /** + * 文档标题 + */ + private String title; + + /** + * 文档描述 + */ + private String description; + + /** + * api版本 + */ + private String version; + + /** + * service url + */ + private String serviceUrl; + + /** + * controller 包路径 + */ + private String packAge; + + private int groupIndex = 0; + + private String groupName = "default"; + + private final List groupList = Lists.newArrayList(); + + private final Map> groupMap = Maps.newHashMap(); + + @Override + public void setEnvironment(Environment environment) { + this.apiGroupName = environment.getProperty("swagger.apiGroupName"); + this.title = environment.getProperty("swagger.title"); + this.description = environment.getProperty("swagger.description"); + this.version = environment.getProperty("swagger.version"); + this.serviceUrl = environment.getProperty("swagger.serviceUrl"); + this.packAge = environment.getProperty("swagger.packAge"); + } + + @Override + public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException { + this.groupBuild(); + for (Map.Entry> entry : groupMap.entrySet()) { + String group = entry.getKey(); + BeanDefinitionBuilder builder = BeanDefinitionBuilder.genericBeanDefinition(Docket.class, this::baseDocket); + BeanDefinition beanDefinition = builder.getRawBeanDefinition(); + registry.registerBeanDefinition(group + "Api", beanDefinition); + } + } + + private void groupBuild() { + Class clazz = SwaggerTagConst.class; + Class[] innerClazz = clazz.getDeclaredClasses(); + for (Class cls : innerClazz) { + String group = cls.getSimpleName(); + List apiTags = Lists.newArrayList(); + Field[] fields = cls.getDeclaredFields(); + for (Field field : fields) { + boolean isFinal = Modifier.isFinal(field.getModifiers()); + if (isFinal) { + try { + apiTags.add(field.get(null).toString()); + } catch (Exception e) { + log.error("", e); + } + } + } + groupList.add(group); + groupMap.put(group, apiTags); + } + } + + private Docket baseDocket() { + // 配置全局参数 token + ParameterBuilder tokenPar = new ParameterBuilder(); + Parameter parameter = tokenPar.name(SmartAuthenticationInterceptor.TOKEN_NAME) + .description("token") + .modelRef(new ModelRef("string")) + .parameterType("header") + .defaultValue("") + .required(false) + .build(); + + // 请求类型过滤规则 + Predicate controllerPredicate = getControllerPredicate(); + // controller 包路径 + Predicate controllerPackage = RequestHandlerSelectors.basePackage(packAge); + return new Docket(DocumentationType.SWAGGER_2) + .groupName(groupName) + .forCodeGeneration(true) + .select() + .apis(controllerPackage) + .apis(controllerPredicate) + .paths(PathSelectors.any()) + .build() + .apiInfo(this.serviceApiInfo()) + .securitySchemes(securitySchemes()) + .securityContexts(securityContexts()) + .globalOperationParameters(Lists.newArrayList(parameter)); + } + + private List securitySchemes() { + List apiKeyList = new ArrayList<>(); + apiKeyList.add(new ApiKey("x-access-token", "x-access-token", "header")); + return apiKeyList; + } + + private List securityContexts() { + List securityContexts = new ArrayList<>(); + securityContexts.add( + SecurityContext.builder() + .securityReferences(defaultAuth()) + .forPaths(PathSelectors.any()) + .build()); + return securityContexts; + } + + List defaultAuth() { + AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything"); + AuthorizationScope[] authorizationScopes = new AuthorizationScope[1]; + authorizationScopes[0] = authorizationScope; + List securityReferences = new ArrayList<>(); + securityReferences.add(new SecurityReference("x-access-token", authorizationScopes)); + return securityReferences; + } + + private Predicate getControllerPredicate() { + groupName = groupList.get(groupIndex); + List apiTags = groupMap.get(groupName); + Predicate methodPredicate = (input) -> { + Api api = null; + Optional apiOptional = input.findControllerAnnotation(Api.class); + if (apiOptional.isPresent()) { + api = apiOptional.get(); + } + List tags = Arrays.asList(api.tags()); + if (api != null && apiTags.containsAll(tags)) { + return true; + } + return false; + }; + groupIndex++; + return Predicates.or( + Predicates.and(RequestHandlerSelectors.withClassAnnotation(RestController.class), methodPredicate), + Predicates.and( + RequestHandlerSelectors.withMethodAnnotation(ResponseBody.class), methodPredicate) + ); + } + + private ApiInfo serviceApiInfo() { + return new ApiInfoBuilder() + .title(title) + .description(description) + .version(version) + .license("Apache License Version 2.0") + .contact(new Contact("1024创新实验室", "http://www.1024lab.net", "")) + .termsOfServiceUrl(serviceUrl) + .build(); + } + + @Override + public void postProcessBeanFactory(ConfigurableListableBeanFactory configurableListableBeanFactory) throws BeansException { + + } + + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/config/SmartWebSocketConfig.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/config/SmartWebSocketConfig.java new file mode 100644 index 00000000..f431fdac --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/config/SmartWebSocketConfig.java @@ -0,0 +1,25 @@ +package net.lab1024.smartadmin.config; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.socket.server.standard.ServerEndpointExporter; + +/** + * [ WebSocketConfig ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/7/10 0010 下午 16:07 + * @since JDK1.8 + */ +@Configuration +public class SmartWebSocketConfig { + + @Bean + public ServerEndpointExporter serverEndpointExporter() { + return new ServerEndpointExporter(); + } + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/config/SystemEnvironmentCondition.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/config/SystemEnvironmentCondition.java new file mode 100644 index 00000000..63c2a5ed --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/config/SystemEnvironmentCondition.java @@ -0,0 +1,22 @@ +package net.lab1024.smartadmin.config; +import net.lab1024.smartadmin.constant.SystemEnvironmentEnum; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Condition; +import org.springframework.context.annotation.ConditionContext; +import org.springframework.core.type.AnnotatedTypeMetadata; +/** + * 是否是正式环境 + * + * @author listen + * @date 2019/08/27 08:56 + */ +public class SystemEnvironmentCondition implements Condition { + + @Value("${spring.profiles.active}") + private String systemEnvironment; + + @Override + public boolean matches(ConditionContext conditionContext, AnnotatedTypeMetadata annotatedTypeMetadata) { + return ! SystemEnvironmentEnum.PROD.equalsValue(systemEnvironment); + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/constant/CommonConst.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/constant/CommonConst.java new file mode 100644 index 00000000..b2c4a63f --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/constant/CommonConst.java @@ -0,0 +1,51 @@ +package net.lab1024.smartadmin.constant; + +import com.google.common.collect.ImmutableSet; +import org.apache.commons.collections4.CollectionUtils; + +import java.util.Set; + +/** + * + * [ 通用常量 ] + * + * @version 1.0 + * @since JDK1.8 + * @author yandanyang + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + */ +public class CommonConst { + + + public static final class Page { + public static final Integer SIZE = 10; + } + + public static final class Password { + public static final String DEFAULT = "123456"; + public static final String SALT_FORMAT = "smart_%s_admin"; + } + + public static final String IGNORE_H5_URL_MAPPING = "/h5/api"; + + public static final class CommonCollection { + public static final Set IGNORE_URL = ImmutableSet.of("/swagger", "Excel"); + + public static final Set IGNORE_URL_MAPPING = ImmutableSet.of(IGNORE_H5_URL_MAPPING); + + public static Boolean contain(Set ignores, String uri) { + if (CollectionUtils.isEmpty(ignores)) { + return false; + } + for (String ignoreUrl : ignores) { + if (uri.startsWith(ignoreUrl)) { + return true; + } + } + return false; + } + } + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/constant/SmartReloadTagConst.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/constant/SmartReloadTagConst.java new file mode 100644 index 00000000..0799bd66 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/constant/SmartReloadTagConst.java @@ -0,0 +1,16 @@ +package net.lab1024.smartadmin.constant; +/** + * smart initDefines 项 常量 + * + * @author listen + * @date 2018/02/10 14:29 + */ +public class SmartReloadTagConst { + + /** + * 系统环境设置 DEMO + */ + public static final String SYSTEM_CONFIG = "system_config"; + + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/constant/SwaggerTagConst.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/constant/SwaggerTagConst.java new file mode 100644 index 00000000..559f9a30 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/constant/SwaggerTagConst.java @@ -0,0 +1,69 @@ +package net.lab1024.smartadmin.constant; + +/** + * [] + * + * @author yandanyang + * @version 1.0 + * @since JDK1.8 + */ +public class SwaggerTagConst { + + + public static class Admin { + public static final String MANAGER_SYSTEM_CONFIG = "管理端-系统配置"; + + public static final String MANAGER_USER = "管理端-用户"; + + public static final String MANAGER_USER_LOGIN = "管理端-用户登录"; + + public static final String MANAGER_DEPARTMENT = "管理端-部门"; + + public static final String MANAGER_ROLE = "管理端-角色"; + + public static final String MANAGER_ROLE_USER = "管理端-角色用户"; + + public static final String MANAGER_ROLE_PRIVILEGE = "管理端-角色权限"; + + public static final String MANAGER_SMART_RELOAD = "管理端-smart reload"; + + public static final String MANAGER_ORDER_OPERATE_LOG = "管理端-单据操作日志"; + + public static final String MANAGER_TASK_SCHEDULER = "管理端-任务调度"; + + public static final String MANAGER_USER_LOGIN_LOG = "管理端-用户登录日志"; + + public static final String MANAGER_USER_OPERATE_LOG = "管理端-用户操作日志"; + + public static final String MANAGER_DATA_SCOPE = "管理端-数据范围"; + + public static final String MANAGER_JOB = "管理端-岗位"; + + public static final String MANAGER_NOTICE = "管理端-系统通知"; + + public static final String MANAGER_FILE = "通用-文件服务"; + + public static final String MANAGER_PRIVILEGE = "通用-权限"; + + public static final String MANAGER_EMAIL = "通用-邮件发送"; + + public static final String MANAGER_HEART_BEAT = "通用-心跳服务"; + } + + /** + * 自定义分组2 + */ + public static class Group2 { + + + } + + /** + * 自定义分组2 + */ + public static class Group3 { + + } + + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/constant/SystemEnvironmentEnum.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/constant/SystemEnvironmentEnum.java new file mode 100644 index 00000000..e8d0fd75 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/constant/SystemEnvironmentEnum.java @@ -0,0 +1,67 @@ +package net.lab1024.smartadmin.constant; + +import net.lab1024.smartadmin.common.domain.BaseEnum; + +/** + * 系统环境枚举类 + * + * @author listen + * @date 2019年4月11日 17:34:59 + */ +public enum SystemEnvironmentEnum implements BaseEnum { + + + /** + * dev + */ + DEV("dev", "开发环境"), + + /** + * sit + */ + SIT("sit", "测试环境"), + + /** + * pre + */ + PRE("pre", "预发布环境"), + + /** + * prod + */ + PROD("prod", "生产环境"); + + + public static final String DEV_ENV = "dev"; + + + private String value; + + private String desc; + + SystemEnvironmentEnum(String value, String desc) { + this.value = value; + this.desc = desc; + } + + /** + * 获取定义枚举value值 + * + * @return Integer + */ + @Override + public String getValue() { + return value; + } + + /** + * 获取枚举类的说明 + * + * @return String + */ + @Override + public String getDesc() { + return desc; + } + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/handler/SmartGlobalExceptionHandler.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/handler/SmartGlobalExceptionHandler.java new file mode 100644 index 00000000..dabd6fd9 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/handler/SmartGlobalExceptionHandler.java @@ -0,0 +1,73 @@ +package net.lab1024.smartadmin.handler; + +import net.lab1024.smartadmin.common.constant.ResponseCodeConst; +import net.lab1024.smartadmin.common.domain.ResponseDTO; +import net.lab1024.smartadmin.common.exception.SmartBusinessException; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.TypeMismatchException; +import org.springframework.http.converter.HttpMessageNotReadableException; +import org.springframework.validation.FieldError; +import org.springframework.web.HttpRequestMethodNotSupportedException; +import org.springframework.web.bind.MethodArgumentNotValidException; +import org.springframework.web.bind.annotation.ControllerAdvice; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.ResponseBody; + +import java.util.List; +import java.util.stream.Collectors; + +/** + * [ 全局异常拦截 ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + * @since JDK1.8 + */ +@Slf4j +@ControllerAdvice +public class SmartGlobalExceptionHandler { + + /** + * 添加全局异常处理流程 + * + * @param e + * @return + * @throws Exception + */ + @ResponseBody + @ExceptionHandler(Exception.class) + public ResponseDTO exceptionHandler(Exception e) { + log.error("error:", e); + + // http 请求方式错误 + if (e instanceof HttpRequestMethodNotSupportedException) { + return ResponseDTO.wrap(ResponseCodeConst.REQUEST_METHOD_ERROR); + } + + // 参数类型错误 + if (e instanceof TypeMismatchException) { + return ResponseDTO.wrap(ResponseCodeConst.ERROR_PARAM); + } + + // json 格式错误 + if (e instanceof HttpMessageNotReadableException) { + return ResponseDTO.wrap(ResponseCodeConst.JSON_FORMAT_ERROR); + } + + // 参数校验未通过 + if (e instanceof MethodArgumentNotValidException) { + List fieldErrors = ((MethodArgumentNotValidException) e).getBindingResult().getFieldErrors(); + List msgList = fieldErrors.stream().map(FieldError :: getDefaultMessage).collect(Collectors.toList()); + return ResponseDTO.wrap(ResponseCodeConst.ERROR_PARAM, String.join(",", msgList)); + } + + if (e instanceof SmartBusinessException) { + return ResponseDTO.wrap(ResponseCodeConst.SYSTEM_ERROR); + } + + return ResponseDTO.wrap(ResponseCodeConst.SYSTEM_ERROR); + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/handler/SmartOperateLogAspect.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/handler/SmartOperateLogAspect.java new file mode 100644 index 00000000..0dd49cd2 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/handler/SmartOperateLogAspect.java @@ -0,0 +1,167 @@ +package net.lab1024.smartadmin.handler; + +import com.alibaba.fastjson.JSON; +import net.lab1024.smartadmin.common.anno.OperateLog; +import net.lab1024.smartadmin.common.constant.JudgeEnum; +import net.lab1024.smartadmin.module.business.log.LogService; +import net.lab1024.smartadmin.module.business.log.useroperatelog.domain.UserOperateLogEntity; +import net.lab1024.smartadmin.module.system.login.domain.RequestTokenBO; +import net.lab1024.smartadmin.util.SmartRequestTokenUtil; +import net.lab1024.smartadmin.util.SmartStringUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.aspectj.lang.JoinPoint; +import org.aspectj.lang.Signature; +import org.aspectj.lang.annotation.AfterReturning; +import org.aspectj.lang.annotation.AfterThrowing; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.annotation.Pointcut; +import org.aspectj.lang.reflect.MethodSignature; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.annotation.AnnotationUtils; +import org.springframework.stereotype.Component; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.servlet.http.HttpServletRequest; +import java.io.PrintWriter; +import java.io.StringWriter; +import java.lang.reflect.Method; +/** + * [ 操作日志记录处理,对所有OperateLog注解的Controller进行操作日志监控 ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + * @since JDK1.8 + */ +@Slf4j +@Aspect +@Component +public class SmartOperateLogAspect { + + @Autowired + private LogService logService; + + @Pointcut("execution(* net.lab1024.smartadmin.module..*Controller.*(..)))") + public void logPointCut() { + } + + @AfterReturning(pointcut = "logPointCut()") + public void doAfterReturning(JoinPoint joinPoint) { + handleLog(joinPoint, null); + } + + @AfterThrowing(value = "logPointCut()", throwing = "e") + public void doAfterThrowing(JoinPoint joinPoint, Exception e) { + handleLog(joinPoint, e); + } + + protected void handleLog(final JoinPoint joinPoint, final Exception e) { + try { + HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest(); + OperateLog operateLog = this.getAnnotationLog(joinPoint); + if (operateLog == null) { + return; + } + RequestTokenBO requestToken = SmartRequestTokenUtil.getRequestUser(); + if (requestToken == null) { + return; + } + // 设置方法名称 + String className = joinPoint.getTarget().getClass().getName(); + String methodName = joinPoint.getSignature().getName(); + String operateMethod = className + "." + methodName; + Object[] args = joinPoint.getArgs(); + StringBuilder sb = new StringBuilder(); + for (Object obj : args) { + sb.append(obj.getClass().getSimpleName()); + sb.append("["); + sb.append(JSON.toJSONString(obj)); + sb.append("]"); + } + String params = sb.toString(); + String failReason = null; + Integer result = JudgeEnum.YES.getValue(); + if (e != null) { + result = JudgeEnum.NO.getValue(); + StringWriter sw = new StringWriter(); + PrintWriter pw = new PrintWriter(sw, true); + e.printStackTrace(pw); + failReason = sw.toString(); + pw.flush(); + pw.close(); + sw.flush(); + sw.close(); + } + UserOperateLogEntity operateLogEntity = + UserOperateLogEntity.builder().userId(requestToken.getRequestUserId()).userName(requestToken.getEmployeeBO().getActualName()).url(request.getRequestURI()).method(operateMethod).param(params).failReason(failReason).result(result).build(); + ApiOperation apiOperation = this.getApiOperation(joinPoint); + if (apiOperation != null) { + operateLogEntity.setContent(apiOperation.value()); + } + Api api = this.getApi(joinPoint); + if (api != null) { + String[] tags = api.tags(); + operateLogEntity.setModule(SmartStringUtil.join(tags, ",")); + } + logService.addLog(operateLogEntity); + } catch (Exception exp) { + log.error("保存操作日志异常:{}", exp.getMessage()); + exp.printStackTrace(); + } + } + + private OperateLog getAnnotationLog(JoinPoint joinPoint) throws Exception { + Signature signature = joinPoint.getSignature(); + MethodSignature methodSignature = (MethodSignature) signature; + Method method = methodSignature.getMethod(); + OperateLog classAnnotation = AnnotationUtils.findAnnotation(method.getDeclaringClass(), OperateLog.class); + + if (method != null) { + return classAnnotation; + } + return null; + } + + /** + * swagger API + * + * @param joinPoint + * @return + * @throws Exception + */ + private Api getApi(JoinPoint joinPoint) { + Signature signature = joinPoint.getSignature(); + MethodSignature methodSignature = (MethodSignature) signature; + Method method = methodSignature.getMethod(); + Api classAnnotation = AnnotationUtils.findAnnotation(method.getDeclaringClass(), Api.class); + + if (method != null) { + return classAnnotation; + } + return null; + } + + /** + * swagger ApiOperation + * + * @param joinPoint + * @return + * @throws Exception + */ + private ApiOperation getApiOperation(JoinPoint joinPoint) { + Signature signature = joinPoint.getSignature(); + MethodSignature methodSignature = (MethodSignature) signature; + Method method = methodSignature.getMethod(); + + if (method != null) { + return method.getAnnotation(ApiOperation.class); + } + return null; + } + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/interceptor/SmartAuthenticationInterceptor.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/interceptor/SmartAuthenticationInterceptor.java new file mode 100644 index 00000000..30f299f9 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/interceptor/SmartAuthenticationInterceptor.java @@ -0,0 +1,158 @@ +package net.lab1024.smartadmin.interceptor; + +import com.alibaba.fastjson.JSONObject; +import net.lab1024.smartadmin.common.anno.NoNeedLogin; +import net.lab1024.smartadmin.common.anno.NoValidPrivilege; +import net.lab1024.smartadmin.common.domain.ResponseDTO; +import net.lab1024.smartadmin.constant.CommonConst; +import net.lab1024.smartadmin.module.system.login.LoginResponseCodeConst; +import net.lab1024.smartadmin.module.system.login.LoginTokenService; +import net.lab1024.smartadmin.module.system.login.domain.RequestTokenBO; +import net.lab1024.smartadmin.module.system.privilege.service.PrivilegeEmployeeService; +import net.lab1024.smartadmin.util.SmartRequestTokenUtil; +import net.lab1024.smartadmin.util.SmartStringUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; +import org.springframework.web.method.HandlerMethod; +import org.springframework.web.servlet.handler.HandlerInterceptorAdapter; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.lang.reflect.Method; +import java.util.List; + +/** + * [ 登录拦截器 ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + * @since JDK1.8 + */ +@Component +public class SmartAuthenticationInterceptor extends HandlerInterceptorAdapter { + + public static final String TOKEN_NAME = "x-access-token"; + + @Value("${access-control-allow-origin}") + private String accessControlAllowOrigin; + + @Autowired + private LoginTokenService loginTokenService; + + @Autowired + private PrivilegeEmployeeService privilegeEmployeeService; + + /** + * 拦截服务器端响应处理ajax请求返回结果 + * + * @param request + * @param response + * @param handler + * @return + * @throws Exception + */ + @Override + public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { + //跨域设置 + this.crossDomainConfig(response); + boolean isHandlerMethod = handler instanceof HandlerMethod; + if (! isHandlerMethod) { + return true; + } + + //不需要登录的注解 + Boolean isNoNeedLogin = ((HandlerMethod) handler).getMethodAnnotation(NoNeedLogin.class) != null; + if (isNoNeedLogin) { + return true; + } + + //放行的Uri前缀 + String uri = request.getRequestURI(); + String contextPath = request.getContextPath(); + String target = uri.replaceFirst(contextPath, ""); + if (CommonConst.CommonCollection.contain(CommonConst.CommonCollection.IGNORE_URL, target)) { + return true; + } + + //需要做token校验, 消息头的token优先于请求query参数的token + String xHeaderToken = request.getHeader(TOKEN_NAME); + String xRequestToken = request.getParameter(TOKEN_NAME); + String xAccessToken = null != xHeaderToken ? xHeaderToken : xRequestToken; + if (null == xAccessToken) { + this.outputResult(response, LoginResponseCodeConst.LOGIN_ERROR); + return false; + } + + //根据token获取登录用户 + RequestTokenBO requestToken = loginTokenService.getEmployeeTokenInfo(xAccessToken); + if (null == requestToken) { + this.outputResult(response, LoginResponseCodeConst.LOGIN_ERROR); + return false; + } + + //判断接口权限 + String methodName = ((HandlerMethod) handler).getMethod().getName(); + String className = ((HandlerMethod) handler).getBeanType().getName(); + List list = SmartStringUtil.splitConvertToList(className, "\\."); + String controllerName = list.get(list.size() - 1); + Method m = ((HandlerMethod) handler).getMethod(); + Class cls = ((HandlerMethod) handler).getBeanType(); + boolean isClzAnnotation = cls.isAnnotationPresent(NoValidPrivilege.class); + boolean isMethodAnnotation = m.isAnnotationPresent(NoValidPrivilege.class); + NoValidPrivilege noValidPrivilege = null; + if (isClzAnnotation) { + noValidPrivilege = cls.getAnnotation(NoValidPrivilege.class); + } else if (isMethodAnnotation) { + noValidPrivilege = m.getAnnotation(NoValidPrivilege.class); + } + //不需验证权限 + if (noValidPrivilege != null) { + SmartRequestTokenUtil.setUser(request, requestToken); + return true; + } + //需要验证权限 + Boolean privilegeValidPass = privilegeEmployeeService.checkEmployeeHavePrivilege(requestToken, controllerName, methodName); + if (! privilegeValidPass) { + this.outputResult(response, LoginResponseCodeConst.NOT_HAVE_PRIVILEGES); + return false; + } + SmartRequestTokenUtil.setUser(request, requestToken); + return true; + } + + /** + * 配置跨域 + * + * @param response + */ + private void crossDomainConfig(HttpServletResponse response) { + response.setHeader("Access-Control-Allow-Origin", accessControlAllowOrigin); + response.setHeader("Access-Control-Allow-Credentials", "true"); + response.setHeader("Access-Control-Allow-Methods", "POST, GET, PUT, OPTIONS, DELETE, PATCH"); + response.setHeader("Access-Control-Expose-Headers", "*"); + response.setHeader("Access-Control-Allow-Headers", "Authentication,Origin, X-Requested-With, Content-Type, " + "Accept, x-access-token"); + response.setHeader("Cache-Control", "no-cache"); + response.setHeader("Pragma", "no-cache"); + response.setHeader("Expires ", "-1"); + } + + /** + * 错误输出 + * + * @param response + * @param responseCodeConst + * @throws IOException + */ + private void outputResult(HttpServletResponse response, LoginResponseCodeConst responseCodeConst) throws IOException { + ResponseDTO wrap = ResponseDTO.wrap(responseCodeConst); + String msg = JSONObject.toJSONString(wrap); + response.setContentType("application/json;charset=UTF-8"); + response.getWriter().write(msg); + response.flushBuffer(); + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/listener/SmartAdminStartupRunner.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/listener/SmartAdminStartupRunner.java new file mode 100644 index 00000000..9205fa5b --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/listener/SmartAdminStartupRunner.java @@ -0,0 +1,22 @@ +package net.lab1024.smartadmin.listener; + +import net.lab1024.smartadmin.common.constant.ResponseCodeConst; +import org.springframework.boot.CommandLineRunner; +import org.springframework.stereotype.Component; + +/** + * 应用启动以后检测code码 + * + * @author zhuo + * @version 1.0 + * @since JDK1.8 + */ + +@Component +public class SmartAdminStartupRunner implements CommandLineRunner { + + @Override + public void run(String... args) { + ResponseCodeConst.init(); + } +} \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/email/EmailController.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/email/EmailController.java new file mode 100644 index 00000000..b7e350bd --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/email/EmailController.java @@ -0,0 +1,81 @@ +package net.lab1024.smartadmin.module.business.email; + +import net.lab1024.smartadmin.common.anno.NoValidPrivilege; +import net.lab1024.smartadmin.common.anno.OperateLog; +import net.lab1024.smartadmin.common.domain.PageResultDTO; +import net.lab1024.smartadmin.constant.SwaggerTagConst; +import net.lab1024.smartadmin.common.domain.ResponseDTO; +import net.lab1024.smartadmin.module.business.email.domain.dto.EmailDTO; +import net.lab1024.smartadmin.module.business.email.domain.dto.EmailQueryDTO; +import net.lab1024.smartadmin.module.business.email.domain.dto.EmailVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date 2019-05-13 17:10:16 + * @since JDK1.8 + */ +@RestController +@OperateLog +@Api(tags = {SwaggerTagConst.Admin.MANAGER_EMAIL}) +public class EmailController { + + @Autowired + private EmailService emailService; + + @ApiOperation(value = "分页查询",notes = "@author yandanyang") + @PostMapping("/email/page/query") + @NoValidPrivilege + public ResponseDTO> queryByPage(@RequestBody @Validated EmailQueryDTO queryDTO) { + return emailService.queryByPage(queryDTO); + } + + @ApiOperation(value = "添加",notes = "@author yandanyang") + @PostMapping("/email/add") + @NoValidPrivilege + public ResponseDTO add(@RequestBody @Valid EmailDTO addTO){ + return emailService.add(addTO); + } + + @ApiOperation(value="修改",notes = "@author yandanyang") + @PostMapping("/email/update") + @NoValidPrivilege + public ResponseDTO update(@RequestBody @Valid EmailDTO updateDTO){ + return emailService.update(updateDTO); + } + + + @ApiOperation(value="删除",notes = "@author yandanyang") + @GetMapping("/email/delete/{id}") + @NoValidPrivilege + public ResponseDTO delete(@PathVariable("id") Long id){ + return emailService.delete(id); + } + + + @ApiOperation(value="详情",notes = "@author yandanyang") + @GetMapping("/email/detail/{id}") + @NoValidPrivilege + public ResponseDTO detail(@PathVariable("id") Long id){ + return emailService.detail(id); + } + + + @ApiOperation(value="发送",notes = "@author yandanyang") + @GetMapping("/email/send/{id}") + @NoValidPrivilege + public ResponseDTO send(@PathVariable("id") Long id){ + return emailService.send(id); + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/email/EmailDao.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/email/EmailDao.java new file mode 100644 index 00000000..76a7dea5 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/email/EmailDao.java @@ -0,0 +1,47 @@ +package net.lab1024.smartadmin.module.business.email; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import net.lab1024.smartadmin.module.business.email.domain.dto.EmailQueryDTO; +import net.lab1024.smartadmin.module.business.email.domain.entity.EmailEntity; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019-05-13 17:10:16 + * @since JDK1.8 + */ +@Mapper +@Component +public interface EmailDao extends BaseMapper { + + /** + * 分页查询 + * @param queryDTO + * @return EmailEntity + */ + List queryByPage(Page page, @Param("queryDTO") EmailQueryDTO queryDTO); + + /** + * 根据id删除 + * @param id + * @return + */ + void deleteById(@Param("id") Long id); + + /** + * 批量删除 + * @param idList + * @return + */ + void deleteByIds(@Param("idList") List idList); +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/email/EmailSendStatusEnum.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/email/EmailSendStatusEnum.java new file mode 100644 index 00000000..a6cf0c44 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/email/EmailSendStatusEnum.java @@ -0,0 +1,37 @@ +package net.lab1024.smartadmin.module.business.email; + + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/4/28 0028 下午 15:37 + * @since JDK1.8 + */ +public enum EmailSendStatusEnum { + + NOT_SEND(0,"未发送"), + + SEND(1,"已发送"); + + private Integer type; + private String desc; + + EmailSendStatusEnum(Integer type, String desc) { + this.type = type; + this.desc = desc; + } + + public Integer getType() { + return type; + } + + public String getDesc() { + return desc; + } + + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/email/EmailService.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/email/EmailService.java new file mode 100644 index 00000000..6b7e5b7d --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/email/EmailService.java @@ -0,0 +1,122 @@ +package net.lab1024.smartadmin.module.business.email; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import net.lab1024.smartadmin.common.constant.ResponseCodeConst; +import net.lab1024.smartadmin.common.domain.PageResultDTO; +import net.lab1024.smartadmin.common.domain.ResponseDTO; +import net.lab1024.smartadmin.module.business.email.domain.dto.EmailConfigDTO; +import net.lab1024.smartadmin.module.business.email.domain.dto.EmailDTO; +import net.lab1024.smartadmin.module.business.email.domain.dto.EmailQueryDTO; +import net.lab1024.smartadmin.module.business.email.domain.dto.EmailVO; +import net.lab1024.smartadmin.module.business.email.domain.entity.EmailEntity; +import net.lab1024.smartadmin.module.system.systemconfig.SystemConfigService; +import net.lab1024.smartadmin.module.system.systemconfig.constant.SystemConfigEnum; +import net.lab1024.smartadmin.util.SmartBeanUtil; +import net.lab1024.smartadmin.util.SmartPageUtil; +import net.lab1024.smartadmin.util.SmartSendMailUtil; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date 2019-05-13 17:10:16 + * @since JDK1.8 + */ +@Service +public class EmailService { + + @Autowired + private EmailDao emailDao; + + @Autowired + private SystemConfigService systemConfigService; + + /** + * @author yandanyang + * @description 分页查询 + * @date 2019-05-13 17:10:16 + */ + public ResponseDTO> queryByPage(EmailQueryDTO queryDTO) { + Page page = SmartPageUtil.convert2QueryPage(queryDTO); + List entities = emailDao.queryByPage(page, queryDTO); + List dtoList = SmartBeanUtil.copyList(entities, EmailVO.class); + page.setRecords(dtoList); + PageResultDTO pageResultDTO = SmartPageUtil.convert2PageResult(page); + return ResponseDTO.succData(pageResultDTO); + } + + /** + * @author yandanyang + * @description 添加 + * @date 2019-05-13 17:10:16 + */ + public ResponseDTO add(EmailDTO addDTO) { + EmailEntity entity = SmartBeanUtil.copy(addDTO, EmailEntity.class); + emailDao.insert(entity); + return ResponseDTO.succData(entity.getId()); + } + + /** + * @author yandanyang + * @description 编辑 + * @date 2019-05-13 17:10:16 + */ + @Transactional(rollbackFor = Exception.class) + public ResponseDTO update(EmailDTO updateDTO) { + EmailEntity entity = SmartBeanUtil.copy(updateDTO, EmailEntity.class); + emailDao.updateById(entity); + return ResponseDTO.succData(entity.getId()); + } + + /** + * @author yandanyang + * @description 删除 + * @date 2019-05-13 17:10:16 + */ + @Transactional(rollbackFor = Exception.class) + public ResponseDTO delete(Long id) { + emailDao.deleteById(id); + return ResponseDTO.succ(); + } + + /** + * @author yandanyang + * @description 根据ID查询 + * @date 2019-05-13 17:10:16 + */ + public ResponseDTO detail(Long id) { + EmailEntity entity = emailDao.selectById(id); + EmailVO dto = SmartBeanUtil.copy(entity, EmailVO.class); + return ResponseDTO.succData(dto); + } + + /** + * 发送某个已创建的邮件 + * + * @param id + * @return + */ + public ResponseDTO send(Long id) { + EmailEntity entity = emailDao.selectById(id); + EmailConfigDTO emailConfig = systemConfigService.selectByKey2Obj(SystemConfigEnum.Key.EMAIL_CONFIG.name(), EmailConfigDTO.class); + String toEmails = entity.getToEmails(); + if (StringUtils.isEmpty(toEmails)) { + return ResponseDTO.wrap(ResponseCodeConst.ERROR_PARAM, "收件人信息为空"); + } + String[] emails = toEmails.split(";"); + SmartSendMailUtil.sendMail(emailConfig.getUsername(), emailConfig.getPassword(), emailConfig.getUsername(), emails, "", emailConfig.getSmtpHost(), entity.getTitle(), entity.getContent()); + entity.setSendStatus(EmailSendStatusEnum.SEND.getType()); + emailDao.updateById(entity); + return ResponseDTO.succ(); + } + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/email/domain/dto/EmailConfigDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/email/domain/dto/EmailConfigDTO.java new file mode 100644 index 00000000..87f0e413 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/email/domain/dto/EmailConfigDTO.java @@ -0,0 +1,30 @@ +package net.lab1024.smartadmin.module.business.email.domain.dto; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/5/13 0013 下午 16:52 + * @since JDK1.8 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class EmailConfigDTO { + + private String smtpHost; + + private String username; + + private String password; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/email/domain/dto/EmailDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/email/domain/dto/EmailDTO.java new file mode 100644 index 00000000..8300a3f5 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/email/domain/dto/EmailDTO.java @@ -0,0 +1,44 @@ +package net.lab1024.smartadmin.module.business.email.domain.dto; +import lombok.Data; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/3/27 0027 下午 12:27 + * @since JDK1.8 + */ +@Data +public class EmailDTO { + + @ApiModelProperty("主键") + private Long id; + + @ApiModelProperty("标题") + private String title; + + @ApiModelProperty("收件人") + private String toEmails; + + @ApiModelProperty("发送状态 0未发送 1已发送") + private Integer sendStatus; + + @ApiModelProperty("邮件内容") + private String content; + + @ApiModelProperty("创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date createTime; + + @ApiModelProperty("更新时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date updateTime; + + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/email/domain/dto/EmailQueryDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/email/domain/dto/EmailQueryDTO.java new file mode 100644 index 00000000..6768dc4f --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/email/domain/dto/EmailQueryDTO.java @@ -0,0 +1,35 @@ +package net.lab1024.smartadmin.module.business.email.domain.dto; + +import net.lab1024.smartadmin.common.domain.PageParamDTO; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date 2019-05-13 17:10:16 + * @since JDK1.8 + */ +@Data +public class EmailQueryDTO extends PageParamDTO { + + + @ApiModelProperty("开始日期") + private String startDate; + + @ApiModelProperty("结束日期") + private String endDate; + + + @ApiModelProperty("标题") + private String title; + + + @ApiModelProperty("发送状态 0未发送 1已发送") + private Integer sendStatus; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/email/domain/dto/EmailVO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/email/domain/dto/EmailVO.java new file mode 100644 index 00000000..4686efad --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/email/domain/dto/EmailVO.java @@ -0,0 +1,45 @@ +package net.lab1024.smartadmin.module.business.email.domain.dto; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/3/27 0027 下午 12:27 + * @since JDK1.8 + */ +@Data +public class EmailVO { + + @ApiModelProperty("主键") + private Long id; + + @ApiModelProperty("标题") + private String title; + + @ApiModelProperty("收件人") + private String toEmails; + + @ApiModelProperty("发送状态 0未发送 1已发送") + private Integer sendStatus; + + @ApiModelProperty("邮件内容") + private String content; + + @ApiModelProperty("创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date createTime; + + @ApiModelProperty("更新时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date updateTime; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/email/domain/entity/EmailEntity.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/email/domain/entity/EmailEntity.java new file mode 100644 index 00000000..d7c0da18 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/email/domain/entity/EmailEntity.java @@ -0,0 +1,40 @@ +package net.lab1024.smartadmin.module.business.email.domain.entity; +import com.baomidou.mybatisplus.annotation.TableName; +import net.lab1024.smartadmin.common.domain.BaseEntity; +import lombok.Data; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019-05-13 17:10:16 + * @since JDK1.8 + */ +@Data +@TableName("t_email") +public class EmailEntity extends BaseEntity { + + /** + * 标题 + */ + private String title; + + /** + * 收件人 + */ + private String toEmails; + + /** + * 发送状态 0未发送 1已发送 + */ + private Integer sendStatus; + + /** + * 邮件内容 + */ + private String content; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/LogService.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/LogService.java new file mode 100644 index 00000000..9aae836c --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/LogService.java @@ -0,0 +1,75 @@ +package net.lab1024.smartadmin.module.business.log; + +import net.lab1024.smartadmin.module.business.log.orderoperatelog.OrderOperateLogDao; +import net.lab1024.smartadmin.module.business.log.orderoperatelog.domain.entity.OrderOperateLogEntity; +import net.lab1024.smartadmin.module.business.log.userloginlog.UserLoginLogDao; +import net.lab1024.smartadmin.module.business.log.userloginlog.domain.UserLoginLogEntity; +import net.lab1024.smartadmin.module.business.log.useroperatelog.UserOperateLogDao; +import net.lab1024.smartadmin.module.business.log.useroperatelog.domain.UserOperateLogEntity; +import net.lab1024.smartadmin.util.SmartThreadFactory; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.annotation.PostConstruct; +import javax.annotation.PreDestroy; +import java.util.concurrent.LinkedBlockingQueue; +import java.util.concurrent.ThreadPoolExecutor; +import java.util.concurrent.TimeUnit; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/4/4 0004 下午 16:19 + * @since JDK1.8 + */ +@Slf4j +@Service +public class LogService { + + private ThreadPoolExecutor threadPoolExecutor; + + @Autowired + private UserLoginLogDao userLoginLogDao; + + @Autowired + private OrderOperateLogDao orderOperateLogDao; + + @Autowired + private UserOperateLogDao userOperateLogDao; + + @PostConstruct + void init() { + if (threadPoolExecutor == null) { + threadPoolExecutor = new ThreadPoolExecutor(1, 1, 10L, TimeUnit.SECONDS, new LinkedBlockingQueue<>(2000), SmartThreadFactory.create("LogAspect")); + } + } + + @PreDestroy + void destroy() { + if (threadPoolExecutor != null) { + threadPoolExecutor.shutdown(); + threadPoolExecutor = null; + } + } + + public void addLog(Object object) { + try { + if (object instanceof UserLoginLogEntity) { + threadPoolExecutor.execute(() -> userLoginLogDao.insert((UserLoginLogEntity) object)); + } + if (object instanceof OrderOperateLogEntity) { + threadPoolExecutor.execute(() -> orderOperateLogDao.insert((OrderOperateLogEntity) object)); + } + if (object instanceof UserOperateLogEntity) { + threadPoolExecutor.execute(() -> userOperateLogDao.insert((UserOperateLogEntity) object)); + } + } catch (Throwable e) { + log.error("userLogAfterAdvice:{}", e); + } + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/orderoperatelog/OrderOperateLogController.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/orderoperatelog/OrderOperateLogController.java new file mode 100644 index 00000000..5f84c7ab --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/orderoperatelog/OrderOperateLogController.java @@ -0,0 +1,44 @@ +package net.lab1024.smartadmin.module.business.log.orderoperatelog; + +import net.lab1024.smartadmin.common.anno.OperateLog; +import net.lab1024.smartadmin.common.domain.ResponseDTO; +import net.lab1024.smartadmin.constant.SwaggerTagConst; +import net.lab1024.smartadmin.module.business.log.orderoperatelog.constant.OrderOperateLogOrderTypeEnum; +import net.lab1024.smartadmin.module.business.log.orderoperatelog.domain.vo.OrderOperateLogVO; +import net.lab1024.smartadmin.util.SmartStringUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; +import java.util.stream.Collectors; + +/** + * 单据操作记录Controller + * + * @author lidoudou + * @date: 2018/1/31 16:56 + */ + +@Api(tags = {SwaggerTagConst.Admin.MANAGER_ORDER_OPERATE_LOG}) +@OperateLog +@RestController +public class OrderOperateLogController { + + @Autowired + private OrderOperateLogService orderOperateLogService; + + @ApiOperation(value = "查询单据操作日志", notes = "查询单据操作日志") + @GetMapping("/orderOperateLog/list/{orderId}") + @ApiImplicitParams({@ApiImplicitParam(name = "orderId", value = "业务id", paramType = "path"), @ApiImplicitParam(name = "orderType", value = "业务类型" + OrderOperateLogOrderTypeEnum.INFO, paramType + = "query")}) + public ResponseDTO> list(@PathVariable Long orderId, String orderType) { + List orderTypeList = SmartStringUtil.splitConverToIntSet(orderType, ",").stream().collect(Collectors.toList()); + return orderOperateLogService.listOrderOperateLogsByOrderTypeAndOrderId(orderId, orderTypeList); + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/orderoperatelog/OrderOperateLogDao.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/orderoperatelog/OrderOperateLogDao.java new file mode 100644 index 00000000..a720f5c5 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/orderoperatelog/OrderOperateLogDao.java @@ -0,0 +1,30 @@ +package net.lab1024.smartadmin.module.business.log.orderoperatelog; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import net.lab1024.smartadmin.module.business.log.orderoperatelog.domain.entity.OrderOperateLogEntity; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + *

+ * 各种单据操作记录 + * Mapper 接口 + *

+ * + * @author anders + * @since 2018-01-09 + */ +@Mapper +@Component +public interface OrderOperateLogDao extends BaseMapper { + + List listOrderOperateLogsByOrderTypeAndOrderId(@Param("orderId") Long orderId, @Param("orderTypeList") List orderTypeList); + + List listOrderOperateLogsByOrderTypeAndOrderIds(@Param("orderIds") List orderIds, @Param("orderTypeList") List orderTypeList); + + void batchInsert(List list); + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/orderoperatelog/OrderOperateLogService.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/orderoperatelog/OrderOperateLogService.java new file mode 100644 index 00000000..601b8cef --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/orderoperatelog/OrderOperateLogService.java @@ -0,0 +1,64 @@ +package net.lab1024.smartadmin.module.business.log.orderoperatelog; + +import net.lab1024.smartadmin.common.domain.ResponseDTO; +import net.lab1024.smartadmin.module.business.log.orderoperatelog.domain.dto.OrderOperateLogSaveDTO; +import net.lab1024.smartadmin.module.business.log.orderoperatelog.domain.entity.OrderOperateLogEntity; +import net.lab1024.smartadmin.module.business.log.orderoperatelog.domain.vo.OrderOperateLogVO; +import net.lab1024.smartadmin.util.SmartBeanUtil; +import net.lab1024.smartadmin.util.SmartStringUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; + +/** + *

+ * 各种单据操作记录 + * 服务实现类 + *

+ * + * @author anders + * @since 2018-01-09 + */ +@Service +public class OrderOperateLogService { + + @Autowired + private OrderOperateLogDao orderOperateLogDao; + + public void batchSaveOrderOperateLog(List orderOperateLogSaveDTOList) { + List entityList = new ArrayList<>(); + orderOperateLogSaveDTOList.forEach(e -> { + OrderOperateLogEntity orderOperateLogEntity = SmartBeanUtil.copy(e, OrderOperateLogEntity.class); + orderOperateLogEntity.setOperateType(e.getOperateType().getCode()); + if (SmartStringUtil.isNotBlank(e.getOperateContent())) { + orderOperateLogEntity.setOperateContent(e.getOperateContent()); + } else { + orderOperateLogEntity.setOperateContent(e.getOperateType().getMsg()); + } + orderOperateLogEntity.setOperateRemark(e.getOperateRemark()); + orderOperateLogEntity.setExtData(e.getExtData()); + orderOperateLogEntity.setCreateTime(new Date()); + orderOperateLogEntity.setOrderType(e.getOrderType().getType()); + entityList.add(orderOperateLogEntity); + }); + //批量添加 + orderOperateLogDao.batchInsert(entityList); + } + + public ResponseDTO> listOrderOperateLogsByOrderTypeAndOrderId(Long orderId, List orderTypeList) { + List orderOperateLogEntities = orderOperateLogDao.listOrderOperateLogsByOrderTypeAndOrderId(orderId, orderTypeList); + List dtoList = orderOperateLogEntities.stream().map(e -> SmartBeanUtil.copy(e, OrderOperateLogVO.class)).collect(Collectors.toList()); + return ResponseDTO.succData(dtoList); + } + + public ResponseDTO> listOrderOperateLogsByOrderTypeAndOrderIds(List orderIds, List orderTypeList) { + List orderOperateLogEntities = orderOperateLogDao.listOrderOperateLogsByOrderTypeAndOrderIds(orderIds, orderTypeList); + List dtoList = orderOperateLogEntities.stream().map(e -> SmartBeanUtil.copy(e, OrderOperateLogVO.class)).collect(Collectors.toList()); + return ResponseDTO.succData(dtoList); + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/orderoperatelog/constant/OrderOperateLogDefaultEmpEnum.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/orderoperatelog/constant/OrderOperateLogDefaultEmpEnum.java new file mode 100644 index 00000000..c088322d --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/orderoperatelog/constant/OrderOperateLogDefaultEmpEnum.java @@ -0,0 +1,37 @@ +package net.lab1024.smartadmin.module.business.log.orderoperatelog.constant; + +/** + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + * @since JDK1.8 + */ +public enum OrderOperateLogDefaultEmpEnum { + + DEFAULT_EMP(0,"系统"); + + + private Integer empId; + + private String empName; + + OrderOperateLogDefaultEmpEnum(Integer empId,String empName) { + this.empId = empId; + this.empName = empName; + } + + public int getEmpId() { + return empId; + } + + public String getEmpName() { + return empName; + } + + + +} + diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/orderoperatelog/constant/OrderOperateLogOperateTypeConst.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/orderoperatelog/constant/OrderOperateLogOperateTypeConst.java new file mode 100644 index 00000000..d5d14b63 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/orderoperatelog/constant/OrderOperateLogOperateTypeConst.java @@ -0,0 +1,30 @@ +package net.lab1024.smartadmin.module.business.log.orderoperatelog.constant; + +import net.lab1024.smartadmin.common.constant.ResponseCodeConst; + +/** + * [ 8001 -8999 ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + * @since JDK1.8 + */ +public class OrderOperateLogOperateTypeConst extends ResponseCodeConst { + + + public static final OrderOperateLogOperateTypeConst ADD = new OrderOperateLogOperateTypeConst(8001, "创建并提交"); + + public static final OrderOperateLogOperateTypeConst UPDATE = new OrderOperateLogOperateTypeConst(8002, "修改并提交"); + + public static final OrderOperateLogOperateTypeConst DELETE = new OrderOperateLogOperateTypeConst(8003, "删除"); + + + private OrderOperateLogOperateTypeConst(int code, String msg) { + super(code, msg); + } + + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/orderoperatelog/constant/OrderOperateLogOrderTypeEnum.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/orderoperatelog/constant/OrderOperateLogOrderTypeEnum.java new file mode 100644 index 00000000..9674836e --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/orderoperatelog/constant/OrderOperateLogOrderTypeEnum.java @@ -0,0 +1,51 @@ +package net.lab1024.smartadmin.module.business.log.orderoperatelog.constant; + +import java.util.Arrays; +import java.util.Optional; + +/** + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + * @since JDK1.8 + */ +public enum OrderOperateLogOrderTypeEnum { + + EXAMPLE(1, "样例"); + + + public static final String INFO = ""; + + private int type; + + private String typeName; + + OrderOperateLogOrderTypeEnum(int type, String typeName) { + this.type = type; + this.typeName = typeName; + } + + public int getType() { + return type; + } + + public String getTypeName() { + return typeName; + } + + public static OrderOperateLogOrderTypeEnum getValueByName(String name) { + OrderOperateLogOrderTypeEnum[] values = OrderOperateLogOrderTypeEnum.values(); + Optional first = Arrays.stream(values).filter(e -> e.getTypeName().equals(name)).findFirst(); + if (!first.isPresent()) { + return null; + } + if (!first.isPresent()) { + return null; + } + OrderOperateLogOrderTypeEnum orderType = first.get(); + return orderType; + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/orderoperatelog/domain/dto/OrderOperateLogSaveDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/orderoperatelog/domain/dto/OrderOperateLogSaveDTO.java new file mode 100644 index 00000000..a9861bdc --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/orderoperatelog/domain/dto/OrderOperateLogSaveDTO.java @@ -0,0 +1,80 @@ +package net.lab1024.smartadmin.module.business.log.orderoperatelog.domain.dto; + + +import net.lab1024.smartadmin.module.business.log.orderoperatelog.constant.OrderOperateLogOperateTypeConst; +import net.lab1024.smartadmin.module.business.log.orderoperatelog.constant.OrderOperateLogOrderTypeEnum; +import lombok.Data; + +/** + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + * @since JDK1.8 + */ +@Data +public class OrderOperateLogSaveDTO { + + /** + * 各种单据的id + */ + private Long orderId; + + /** + * 单据类型 + */ + private OrderOperateLogOrderTypeEnum orderType; + + /** + * 操作类型 + */ + private OrderOperateLogOperateTypeConst operateType; + + /** + *操作类型 对应的中文 + */ + private String operateContent; + + /** + * 操作备注 + */ + private String operateRemark; + + /** + * 员工id + */ + private Long employeeId; + + /** + * 员工名称 + */ + private String employeeName; + + /** + * 额外信息 + */ + private String extData; + + public OrderOperateLogSaveDTO() { + } + + public OrderOperateLogSaveDTO(Long orderId, OrderOperateLogOrderTypeEnum orderType, OrderOperateLogOperateTypeConst operateType, String + operateRemark, Long employeeId, String employeeName, String extData) { + this.orderId = orderId; + this.orderType = orderType; + this.operateType = operateType; + this.operateRemark = operateRemark; + this.employeeId = employeeId; + this.employeeName = employeeName; + this.extData = extData; + } + + @Override + public String toString() { + return "OrderOperateLogSaveDTO{" + "orderId=" + orderId + ", orderType=" + orderType + ", operateType=" + operateType + ", operateRemark='" + + operateRemark + '\'' + ", employeeId=" + employeeId + ", employeeName='" + employeeName + '\'' + ", extData='" + extData + '\'' + '}'; + } + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/orderoperatelog/domain/dto/SupplierOrderOperateVO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/orderoperatelog/domain/dto/SupplierOrderOperateVO.java new file mode 100644 index 00000000..9633527f --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/orderoperatelog/domain/dto/SupplierOrderOperateVO.java @@ -0,0 +1,44 @@ +package net.lab1024.smartadmin.module.business.log.orderoperatelog.domain.dto; + +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; + +/** + * 预存款申请/提取单流水临时文件 + * @author zzr + */ +@Data +public class SupplierOrderOperateVO { + + /** + * 流水类型 + */ + private Integer tradingType; + + /** + * 总重 + */ + private BigDecimal totalWeight; + + /** + * 金额 + */ + private BigDecimal amount; + + /** + * 操作人名称 + */ + private String buyerName; + + /** + * 备注 + */ + private String remark; + + /** + * 创建时间 + */ + private Date createTime; +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/orderoperatelog/domain/entity/OrderOperateLogEntity.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/orderoperatelog/domain/entity/OrderOperateLogEntity.java new file mode 100644 index 00000000..8f61f3ec --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/orderoperatelog/domain/entity/OrderOperateLogEntity.java @@ -0,0 +1,58 @@ +package net.lab1024.smartadmin.module.business.log.orderoperatelog.domain.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import net.lab1024.smartadmin.common.domain.BaseEntity; +import lombok.Builder; +import lombok.Data; + +/** + *

+ * 各种单据操作记录 + * + *

+ * + * @author anders + * @since 2018-01-09 + */ + +@Data +@Builder +@TableName("t_order_operate_log") +public class OrderOperateLogEntity extends BaseEntity { + + /** + * 各种单据的id + */ + private Long orderId; + /** + * 单据类型 + */ + private Integer orderType; + /** + * 操作类型 + */ + private Integer operateType; + /** + * 操作类型 对应的中文 + */ + private String operateContent; + /** + * 操作备注 + */ + private String operateRemark; + /** + * 员工id + */ + private Long employeeId; + /** + * 员工名称 + */ + private String employeeName; + /** + * 额外信息 + */ + private String extData; + + + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/orderoperatelog/domain/vo/OrderOperateLogVO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/orderoperatelog/domain/vo/OrderOperateLogVO.java new file mode 100644 index 00000000..ab565691 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/orderoperatelog/domain/vo/OrderOperateLogVO.java @@ -0,0 +1,69 @@ +package net.lab1024.smartadmin.module.business.log.orderoperatelog.domain.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * @author bhr + * @Description: 操作日志 + * @date 2019/8/28 9:31 + */ +@Data +public class OrderOperateLogVO { + + private Long id; + /** + * 各种单据的id + */ + @ApiModelProperty("各种单据的id") + private Long orderId; + /** + * 单据类型 + */ + @ApiModelProperty("单据类型") + private Integer orderType; + /** + * 操作类型 + */ + @ApiModelProperty("操作类型") + private Integer operateType; + /** + * 操作类型 对应的中文 + */ + @ApiModelProperty("操作类型 对应的中文") + private String operateContent; + /** + * 操作备注 + */ + @ApiModelProperty("操作备注") + private String operateRemark; + @ApiModelProperty("操作备注,包含审批人名使用别名显示") + private String operateSecondRemark; + /** + * 员工id + */ + @ApiModelProperty("员工id") + private Long employeeId; + /** + * 员工名称 + */ + @ApiModelProperty("员工名称") + private String employeeName; + /** + * 员工名称 + */ + @ApiModelProperty("员工别名") + private String employeeSecondName; + /** + * 额外信息 + */ + @ApiModelProperty("额外信息") + private String extData; + /** + * 创建时间 + */ + @ApiModelProperty("创建时间") + private Date createTime; +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/userloginlog/UserLoginLogController.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/userloginlog/UserLoginLogController.java new file mode 100644 index 00000000..eccf2e69 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/userloginlog/UserLoginLogController.java @@ -0,0 +1,54 @@ +package net.lab1024.smartadmin.module.business.log.userloginlog; + +import net.lab1024.smartadmin.common.anno.OperateLog; +import net.lab1024.smartadmin.common.domain.PageResultDTO; +import net.lab1024.smartadmin.common.domain.ResponseDTO; +import net.lab1024.smartadmin.constant.SwaggerTagConst; +import net.lab1024.smartadmin.module.system.employee.domain.dto.EmployeeQueryDTO; +import net.lab1024.smartadmin.module.system.employee.domain.vo.EmployeeVO; +import net.lab1024.smartadmin.module.business.log.userloginlog.domain.UserLoginLogDTO; +import net.lab1024.smartadmin.module.business.log.userloginlog.domain.UserLoginLogQueryDTO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; + +/** + * [ 用户登录日志 ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date 2019-05-15 10:25:21 + * @since JDK1.8 + */ +@RestController +@Api(tags = {SwaggerTagConst.Admin.MANAGER_USER_LOGIN_LOG}) +@OperateLog +public class UserLoginLogController { + + @Autowired + private UserLoginLogService userLoginLogService; + + @ApiOperation(value = "分页查询用户登录日志", notes = "@author yandanyang") + @PostMapping("/userLoginLog/page/query") + public ResponseDTO> queryByPage(@RequestBody UserLoginLogQueryDTO queryDTO) { + return userLoginLogService.queryByPage(queryDTO); + } + + @ApiOperation(value = "删除用户登录日志", notes = "@author yandanyang") + @GetMapping("/userLoginLog/delete/{id}") + public ResponseDTO delete(@PathVariable("id") Long id) { + return userLoginLogService.delete(id); + } + + @ApiOperation(value = "查询员工在线状态", notes = "@author zzr") + @PostMapping("/userOnLine/query") + public ResponseDTO> queryUserOnLine(@RequestBody @Valid EmployeeQueryDTO queryDTO) { + return userLoginLogService.queryUserOnLine(queryDTO); + } + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/userloginlog/UserLoginLogDao.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/userloginlog/UserLoginLogDao.java new file mode 100644 index 00000000..ab585690 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/userloginlog/UserLoginLogDao.java @@ -0,0 +1,47 @@ +package net.lab1024.smartadmin.module.business.log.userloginlog; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import net.lab1024.smartadmin.module.business.log.userloginlog.domain.UserLoginLogQueryDTO; +import net.lab1024.smartadmin.module.business.log.userloginlog.domain.UserLoginLogEntity; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * [ 用户登录日志 ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019-05-15 10:25:21 + * @since JDK1.8 + */ +@Mapper +@Component +public interface UserLoginLogDao extends BaseMapper { + + /** + * 分页查询 + * @param queryDTO + * @return UserLoginLogEntity + */ + List queryByPage(Page page, @Param("queryDTO") UserLoginLogQueryDTO queryDTO); + + /** + * 根据id删除 + * @param id + * @return + */ + void deleteById(@Param("id") Long id); + + /** + * 批量删除 + * @param idList + * @return + */ + void deleteByIds(@Param("idList") List idList); +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/userloginlog/UserLoginLogService.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/userloginlog/UserLoginLogService.java new file mode 100644 index 00000000..0d096fe3 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/userloginlog/UserLoginLogService.java @@ -0,0 +1,82 @@ +package net.lab1024.smartadmin.module.business.log.userloginlog; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import net.lab1024.smartadmin.common.domain.PageResultDTO; +import net.lab1024.smartadmin.common.domain.ResponseDTO; +import net.lab1024.smartadmin.module.system.employee.EmployeeService; +import net.lab1024.smartadmin.module.system.employee.domain.dto.EmployeeQueryDTO; +import net.lab1024.smartadmin.module.system.employee.domain.vo.EmployeeVO; +import net.lab1024.smartadmin.module.business.log.userloginlog.domain.UserLoginLogDTO; +import net.lab1024.smartadmin.module.business.log.userloginlog.domain.UserLoginLogEntity; +import net.lab1024.smartadmin.module.business.log.userloginlog.domain.UserLoginLogQueryDTO; +import net.lab1024.smartadmin.module.support.websocket.WebSocketServer; +import net.lab1024.smartadmin.util.SmartBeanUtil; +import net.lab1024.smartadmin.util.SmartPageUtil; +import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + * [ 用户登录日志 ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date 2019-05-15 10:25:21 + * @since JDK1.8 + */ +@Service +public class UserLoginLogService { + + @Autowired + private UserLoginLogDao userLoginLogDao; + + @Autowired + private EmployeeService employeeService; + + /** + * @author yandanyang + * @description 分页查询 + * @date 2019-05-15 10:25:21 + */ + public ResponseDTO> queryByPage(UserLoginLogQueryDTO queryDTO) { + Page page = SmartPageUtil.convert2QueryPage(queryDTO); + List entities = userLoginLogDao.queryByPage(page, queryDTO); + List dtoList = SmartBeanUtil.copyList(entities, UserLoginLogDTO.class); + page.setRecords(dtoList); + PageResultDTO pageResultDTO = SmartPageUtil.convert2PageResult(page); + return ResponseDTO.succData(pageResultDTO); + } + + /** + * @author yandanyang + * @description 删除 + * @date 2019-05-15 10:25:21 + */ + @Transactional(rollbackFor = Exception.class) + public ResponseDTO delete(Long id) { + userLoginLogDao.deleteById(id); + return ResponseDTO.succ(); + } + + /** + * 查询员工在线状态 + * + * @param queryDTO + * @return + */ + public ResponseDTO> queryUserOnLine(EmployeeQueryDTO queryDTO) { + List onLineUserList = WebSocketServer.getOnLineUserList(); + if (CollectionUtils.isEmpty(onLineUserList)) { + return ResponseDTO.succ(); + } + queryDTO.setEmployeeIds(onLineUserList); + ResponseDTO> employeeList = employeeService.selectEmployeeList(queryDTO); + return employeeList; + } + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/userloginlog/domain/UserLoginLogDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/userloginlog/domain/UserLoginLogDTO.java new file mode 100644 index 00000000..efeb14de --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/userloginlog/domain/UserLoginLogDTO.java @@ -0,0 +1,53 @@ +package net.lab1024.smartadmin.module.business.log.userloginlog.domain; +import lombok.Data; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; + +/** + * [ 用户登录日志 ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/3/27 0027 下午 12:27 + * @since JDK1.8 + */ +@Data +public class UserLoginLogDTO { + + @ApiModelProperty("主键") + private Long id; + + @ApiModelProperty("员工id") + private Long userId; + + @ApiModelProperty("用户名") + private String userName; + + @ApiModelProperty("用户ip") + private String remoteIp; + + @ApiModelProperty("用户端口") + private Integer remotePort; + + @ApiModelProperty("浏览器") + private String remoteBrowser; + + @ApiModelProperty("操作系统") + private String remoteOs; + + @ApiModelProperty("登录状态") + private Integer loginStatus; + + @ApiModelProperty("更新时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date updateTime; + + @ApiModelProperty("创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date createTime; + + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/userloginlog/domain/UserLoginLogEntity.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/userloginlog/domain/UserLoginLogEntity.java new file mode 100644 index 00000000..b0d02ac9 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/userloginlog/domain/UserLoginLogEntity.java @@ -0,0 +1,60 @@ +package net.lab1024.smartadmin.module.business.log.userloginlog.domain; +import com.baomidou.mybatisplus.annotation.TableName; +import net.lab1024.smartadmin.common.domain.BaseEntity; +import lombok.*; + + +/** + * [ 用户登录日志] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019-05-15 10:25:21 + * @since JDK1.8 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@TableName("t_user_login_log") +public class UserLoginLogEntity extends BaseEntity { + + /** + * 员工id + */ + private Long userId; + + /** + * 用户名 + */ + private String userName; + /** + * 用户ip + */ + private String remoteIp; + + /** + * 用户端口 + */ + private Integer remotePort; + + /** + * 浏览器 + */ + private String remoteBrowser; + + /** + * 操作系统 + */ + private String remoteOs; + + /** + * 登录状态 + */ + private Integer loginStatus; + + + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/userloginlog/domain/UserLoginLogQueryDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/userloginlog/domain/UserLoginLogQueryDTO.java new file mode 100644 index 00000000..726797cc --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/userloginlog/domain/UserLoginLogQueryDTO.java @@ -0,0 +1,31 @@ +package net.lab1024.smartadmin.module.business.log.userloginlog.domain; + +import net.lab1024.smartadmin.common.domain.PageParamDTO; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * [ 用户登录日志 ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date 2019-05-15 10:25:21 + * @since JDK1.8 + */ +@Data +public class UserLoginLogQueryDTO extends PageParamDTO { + + + @ApiModelProperty("开始日期") + private String startDate; + + @ApiModelProperty("结束日期") + private String endDate; + + + @ApiModelProperty("用户名") + private String userName; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/useroperatelog/UserOperateLogController.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/useroperatelog/UserOperateLogController.java new file mode 100644 index 00000000..e1c2d775 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/useroperatelog/UserOperateLogController.java @@ -0,0 +1,50 @@ +package net.lab1024.smartadmin.module.business.log.useroperatelog; + +import net.lab1024.smartadmin.common.anno.OperateLog; +import net.lab1024.smartadmin.common.domain.PageResultDTO; +import net.lab1024.smartadmin.constant.SwaggerTagConst; +import net.lab1024.smartadmin.common.domain.ResponseDTO; +import net.lab1024.smartadmin.module.business.log.useroperatelog.domain.UserOperateLogDTO; +import net.lab1024.smartadmin.module.business.log.useroperatelog.domain.UserOperateLogQueryDTO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date 2019-05-15 11:32:14 + * @since JDK1.8 + */ +@RestController +@Api(tags = {SwaggerTagConst.Admin.MANAGER_USER_OPERATE_LOG}) +@OperateLog +public class UserOperateLogController { + + @Autowired + private UserOperateLogService userOperateLogService; + + @ApiOperation(value = "分页查询",notes = "@author yandanyang") + @PostMapping("/userOperateLog/page/query") + public ResponseDTO> queryByPage(@RequestBody UserOperateLogQueryDTO queryDTO) { + return userOperateLogService.queryByPage(queryDTO); + } + + @ApiOperation(value="删除",notes = "@author yandanyang") + @GetMapping("/userOperateLog/delete/{id}") + public ResponseDTO delete(@PathVariable("id") Long id){ + return userOperateLogService.delete(id); + } + + + @ApiOperation(value="详情",notes = "@author yandanyang") + @GetMapping("/userOperateLog/detail/{id}") + public ResponseDTO detail(@PathVariable("id") Long id){ + return userOperateLogService.detail(id); + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/useroperatelog/UserOperateLogDao.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/useroperatelog/UserOperateLogDao.java new file mode 100644 index 00000000..8959bbed --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/useroperatelog/UserOperateLogDao.java @@ -0,0 +1,47 @@ +package net.lab1024.smartadmin.module.business.log.useroperatelog; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import net.lab1024.smartadmin.module.business.log.useroperatelog.domain.UserOperateLogQueryDTO; +import net.lab1024.smartadmin.module.business.log.useroperatelog.domain.UserOperateLogEntity; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019-05-15 11:32:14 + * @since JDK1.8 + */ +@Mapper +@Component +public interface UserOperateLogDao extends BaseMapper { + + /** + * 分页查询 + * @param queryDTO + * @return UserOperateLogEntity + */ + List queryByPage(Page page, @Param("queryDTO") UserOperateLogQueryDTO queryDTO); + + /** + * 根据id删除 + * @param id + * @return + */ + void deleteById(@Param("id") Long id); + + /** + * 批量删除 + * @param idList + * @return + */ + void deleteByIds(@Param("idList") List idList); +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/useroperatelog/UserOperateLogService.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/useroperatelog/UserOperateLogService.java new file mode 100644 index 00000000..772504ce --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/useroperatelog/UserOperateLogService.java @@ -0,0 +1,91 @@ +package net.lab1024.smartadmin.module.business.log.useroperatelog; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import net.lab1024.smartadmin.common.domain.PageResultDTO; +import net.lab1024.smartadmin.common.domain.ResponseDTO; +import net.lab1024.smartadmin.module.business.log.useroperatelog.domain.UserOperateLogDTO; +import net.lab1024.smartadmin.module.business.log.useroperatelog.domain.UserOperateLogEntity; +import net.lab1024.smartadmin.module.business.log.useroperatelog.domain.UserOperateLogQueryDTO; +import net.lab1024.smartadmin.util.SmartBeanUtil; +import net.lab1024.smartadmin.util.SmartPageUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date 2019-05-15 11:32:14 + * @since JDK1.8 + */ +@Service +public class UserOperateLogService { + + @Autowired + private UserOperateLogDao userOperateLogDao; + + /** + * @author yandanyang + * @description 分页查询 + * @date 2019-05-15 11:32:14 + */ + public ResponseDTO> queryByPage(UserOperateLogQueryDTO queryDTO) { + Page page = SmartPageUtil.convert2QueryPage(queryDTO); + List entities = userOperateLogDao.queryByPage(page, queryDTO); + List dtoList = SmartBeanUtil.copyList(entities, UserOperateLogDTO.class); + page.setRecords(dtoList); + PageResultDTO pageResultDTO = SmartPageUtil.convert2PageResult(page); + return ResponseDTO.succData(pageResultDTO); + } + + /** + * @author yandanyang + * @description 添加 + * @date 2019-05-15 11:32:14 + */ + public ResponseDTO add(UserOperateLogDTO addDTO) { + UserOperateLogEntity entity = SmartBeanUtil.copy(addDTO, UserOperateLogEntity.class); + userOperateLogDao.insert(entity); + return ResponseDTO.succ(); + } + + /** + * @author yandanyang + * @description 编辑 + * @date 2019-05-15 11:32:14 + */ + @Transactional(rollbackFor = Exception.class) + public ResponseDTO update(UserOperateLogDTO updateDTO) { + UserOperateLogEntity entity = SmartBeanUtil.copy(updateDTO, UserOperateLogEntity.class); + userOperateLogDao.updateById(entity); + return ResponseDTO.succ(); + } + + /** + * @author yandanyang + * @description 删除 + * @date 2019-05-15 11:32:14 + */ + @Transactional(rollbackFor = Exception.class) + public ResponseDTO delete(Long id) { + userOperateLogDao.deleteById(id); + return ResponseDTO.succ(); + } + + /** + * @author yandanyang + * @description 根据ID查询 + * @date 2019-05-15 11:32:14 + */ + public ResponseDTO detail(Long id) { + UserOperateLogEntity entity = userOperateLogDao.selectById(id); + UserOperateLogDTO dto = SmartBeanUtil.copy(entity, UserOperateLogDTO.class); + return ResponseDTO.succData(dto); + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/useroperatelog/domain/UserOperateLogDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/useroperatelog/domain/UserOperateLogDTO.java new file mode 100644 index 00000000..39fd2f99 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/useroperatelog/domain/UserOperateLogDTO.java @@ -0,0 +1,59 @@ +package net.lab1024.smartadmin.module.business.log.useroperatelog.domain; +import lombok.Data; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/3/27 0027 下午 12:27 + * @since JDK1.8 + */ +@Data +public class UserOperateLogDTO { + + @ApiModelProperty("主键") + private Long id; + + @ApiModelProperty("用户id") + private Long userId; + + @ApiModelProperty("用户名称") + private String userName; + + @ApiModelProperty("操作模块") + private String module; + + @ApiModelProperty("操作内容") + private String content; + + @ApiModelProperty("请求路径") + private String url; + + @ApiModelProperty("请求方法") + private String method; + + @ApiModelProperty("请求参数") + private String param; + + @ApiModelProperty("请求结果 0失败 1成功") + private Integer result; + + @ApiModelProperty("失败原因") + private String failReason; + + @ApiModelProperty("更新时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date updateTime; + + @ApiModelProperty("创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date createTime; + + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/useroperatelog/domain/UserOperateLogEntity.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/useroperatelog/domain/UserOperateLogEntity.java new file mode 100644 index 00000000..467ce769 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/useroperatelog/domain/UserOperateLogEntity.java @@ -0,0 +1,74 @@ +package net.lab1024.smartadmin.module.business.log.useroperatelog.domain; +import com.baomidou.mybatisplus.annotation.TableName; +import net.lab1024.smartadmin.common.domain.BaseEntity; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019-05-15 11:32:14 + * @since JDK1.8 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +@TableName("t_user_operate_log") +public class UserOperateLogEntity extends BaseEntity { + + + + /** + * 用户id + */ + private Long userId; + + /** + * 用户名称 + */ + private String userName; + /** + * 操作模块 + */ + private String module; + + /** + * 操作内容 + */ + private String content; + + /** + * 请求路径 + */ + private String url; + + /** + * 请求方法 + */ + private String method; + + /** + * 请求参数 + */ + private String param; + + /** + * 请求结果 0失败 1成功 + */ + private Integer result; + + /** + * 失败原因 + */ + private String failReason; + + + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/useroperatelog/domain/UserOperateLogQueryDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/useroperatelog/domain/UserOperateLogQueryDTO.java new file mode 100644 index 00000000..cee24b7d --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/log/useroperatelog/domain/UserOperateLogQueryDTO.java @@ -0,0 +1,34 @@ +package net.lab1024.smartadmin.module.business.log.useroperatelog.domain; + +import net.lab1024.smartadmin.common.domain.PageParamDTO; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date 2019-05-15 11:32:14 + * @since JDK1.8 + */ +@Data +public class UserOperateLogQueryDTO extends PageParamDTO { + + + @ApiModelProperty("开始日期") + private String startDate; + + @ApiModelProperty("结束日期") + private String endDate; + + + @ApiModelProperty("用户名称") + private String userName; + + @ApiModelProperty("请求结果 0失败 1成功") + private Integer resultFlag; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/notice/NoticeController.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/notice/NoticeController.java new file mode 100644 index 00000000..5d42d5d9 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/notice/NoticeController.java @@ -0,0 +1,96 @@ +package net.lab1024.smartadmin.module.business.notice; + +import net.lab1024.smartadmin.common.anno.NoValidPrivilege; +import net.lab1024.smartadmin.common.domain.PageParamDTO; +import net.lab1024.smartadmin.common.domain.PageResultDTO; +import net.lab1024.smartadmin.common.domain.ResponseDTO; +import net.lab1024.smartadmin.constant.SwaggerTagConst; +import net.lab1024.smartadmin.module.business.notice.domain.dto.*; +import net.lab1024.smartadmin.util.SmartRequestTokenUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date 2019-07-11 16:19:48 + * @since JDK1.8 + */ +@RestController +@Api(tags = {SwaggerTagConst.Admin.MANAGER_NOTICE}) +public class NoticeController { + + @Autowired + private NoticeService noticeService; + + @ApiOperation(value = "分页查询全部消息", notes = "@author yandanyang") + @PostMapping("/notice/page/query") + @NoValidPrivilege + public ResponseDTO> queryByPage(@RequestBody NoticeQueryDTO queryDTO) { + return noticeService.queryByPage(queryDTO); + } + + @ApiOperation(value = "获取已收取的所有消息", notes = "@author yandanyang") + @PostMapping("/notice/receive/page/query") + @NoValidPrivilege + public ResponseDTO> queryReceiveByPage(@RequestBody NoticeReceiveQueryDTO queryDTO) { + return noticeService.queryReceiveByPage(queryDTO, SmartRequestTokenUtil.getRequestUser()); + } + + @ApiOperation(value = "分页查询未读消息", notes = "@author yandanyang") + @PostMapping("/notice/unread/page/query") + @NoValidPrivilege + public ResponseDTO> queryUnreadByPage(@RequestBody PageParamDTO queryDTO) { + return noticeService.queryUnreadByPage(queryDTO, SmartRequestTokenUtil.getRequestUser()); + } + + @ApiOperation(value = "添加", notes = "@author yandanyang") + @PostMapping("/notice/add") + @NoValidPrivilege + public ResponseDTO add(@RequestBody @Valid NoticeAddDTO addTO) { + return noticeService.add(addTO, SmartRequestTokenUtil.getRequestUser()); + } + + @ApiOperation(value = "修改", notes = "@author yandanyang") + @PostMapping("/notice/update") + @NoValidPrivilege + public ResponseDTO update(@RequestBody @Valid NoticeUpdateDTO updateDTO) { + return noticeService.update(updateDTO); + } + + @ApiOperation(value = "删除", notes = "@author yandanyang") + @GetMapping("/notice/delete/{id}") + @NoValidPrivilege + public ResponseDTO delete(@PathVariable("id") Long id) { + return noticeService.delete(id); + } + + @ApiOperation(value = "详情", notes = "@author yandanyang") + @GetMapping("/notice/detail/{id}") + @NoValidPrivilege + public ResponseDTO detail(@PathVariable("id") Long id) { + return noticeService.detail(id); + } + + @ApiOperation(value = "发送", notes = "@author yandanyang") + @GetMapping("/notice/send/{id}") + @NoValidPrivilege + public ResponseDTO send(@PathVariable("id") Long id) { + return noticeService.send(id, SmartRequestTokenUtil.getRequestUser()); + } + + @ApiOperation(value = "读取消息", notes = "@author yandanyang") + @GetMapping("/notice/read/{id}") + @NoValidPrivilege + public ResponseDTO read(@PathVariable("id") Long id) { + return noticeService.read(id, SmartRequestTokenUtil.getRequestUser()); + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/notice/NoticeManage.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/notice/NoticeManage.java new file mode 100644 index 00000000..7f65e416 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/notice/NoticeManage.java @@ -0,0 +1,97 @@ +package net.lab1024.smartadmin.module.business.notice; + +import net.lab1024.smartadmin.common.constant.JudgeEnum; +import net.lab1024.smartadmin.module.system.login.domain.RequestTokenBO; +import net.lab1024.smartadmin.module.business.notice.dao.NoticeDao; +import net.lab1024.smartadmin.module.business.notice.dao.NoticeReceiveRecordDao; +import net.lab1024.smartadmin.module.business.notice.domain.dto.NoticeUpdateDTO; +import net.lab1024.smartadmin.module.business.notice.domain.entity.NoticeEntity; +import net.lab1024.smartadmin.module.business.notice.domain.entity.NoticeReceiveRecordEntity; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.time.LocalDateTime; +import java.util.Date; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/7/13 0013 下午 17:33 + * @since JDK1.8 + */ +@Service +public class NoticeManage { + + @Autowired + private NoticeDao noticeDao; + @Autowired + private NoticeReceiveRecordDao noticeReceiveRecordDao; + + /** + * 发送消息 + * @param entity + * @param requestToken + */ + @Transactional(rollbackFor = Exception.class) + public void send(NoticeEntity entity, RequestTokenBO requestToken){ + + entity.setSendStatus(JudgeEnum.YES.getValue()); + noticeDao.updateById(entity); + //默认发件人 已读此消息 + NoticeReceiveRecordEntity recordEntity = new NoticeReceiveRecordEntity(); + recordEntity.setEmployeeId(requestToken.getRequestUserId()); + recordEntity.setNoticeId(entity.getId()); + recordEntity.setCreateTime(new Date()); + recordEntity.setUpdateTime(new Date()); + noticeReceiveRecordDao.insert(recordEntity); + } + + + /** + * 保存读取记录 + * @param noticeId + * @param requestToken + */ + public void saveReadRecord(Long noticeId, RequestTokenBO requestToken){ + NoticeReceiveRecordEntity recordEntity = new NoticeReceiveRecordEntity(); + recordEntity.setEmployeeId(requestToken.getRequestUserId()); + recordEntity.setNoticeId(noticeId); + recordEntity.setCreateTime(new Date()); + recordEntity.setUpdateTime(new Date()); + noticeReceiveRecordDao.insert(recordEntity); + } + + + /** + * 消息删除 + * @param entity + */ + @Transactional(rollbackFor = Exception.class) + public void delete(NoticeEntity entity) { + if(JudgeEnum.YES.getValue().equals(entity.getSendStatus())){ + //消息已发送 执行逻辑删除 + noticeDao.logicDeleteById(entity.getId(),JudgeEnum.YES.getValue()); + }else{ + //消息未发送 执行真实删除 + noticeDao.deleteById(entity.getId()); + } + } + + /** + * 更新消息 + * @param entity + * @param updateDTO + */ + public void update(NoticeEntity entity,NoticeUpdateDTO updateDTO) { + entity.setTitle(updateDTO.getTitle()); + entity.setContent(updateDTO.getContent()); + entity.setSendStatus(JudgeEnum.NO.getValue()); + entity.setDeleted(JudgeEnum.NO.getValue()); + noticeDao.updateById(entity); + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/notice/NoticeService.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/notice/NoticeService.java new file mode 100644 index 00000000..113c285c --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/notice/NoticeService.java @@ -0,0 +1,235 @@ +package net.lab1024.smartadmin.module.business.notice; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import net.lab1024.smartadmin.common.constant.JudgeEnum; +import net.lab1024.smartadmin.common.constant.ResponseCodeConst; +import net.lab1024.smartadmin.common.domain.PageParamDTO; +import net.lab1024.smartadmin.common.domain.PageResultDTO; +import net.lab1024.smartadmin.common.domain.ResponseDTO; +import net.lab1024.smartadmin.module.system.login.domain.RequestTokenBO; +import net.lab1024.smartadmin.module.business.notice.dao.NoticeDao; +import net.lab1024.smartadmin.module.business.notice.dao.NoticeReceiveRecordDao; +import net.lab1024.smartadmin.module.business.notice.domain.dto.*; +import net.lab1024.smartadmin.module.business.notice.domain.entity.NoticeEntity; +import net.lab1024.smartadmin.module.business.notice.domain.entity.NoticeReceiveRecordEntity; +import net.lab1024.smartadmin.module.support.websocket.WebSocketServer; +import net.lab1024.smartadmin.util.SmartBeanUtil; +import net.lab1024.smartadmin.util.SmartPageUtil; +import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.time.LocalDateTime; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date 2019-07-11 16:19:48 + * @since JDK1.8 + */ +@Service +public class NoticeService { + + @Autowired + private NoticeDao noticeDao; + + @Autowired + private NoticeReceiveRecordDao noticeReceiveRecordDao; + + @Autowired + private NoticeManage noticeManage; + + /** + * @author yandanyang + * @description 分页查询 + * @date 2019-07-11 16:19:48 + */ + public ResponseDTO> queryByPage(NoticeQueryDTO queryDTO) { + queryDTO.setDeleted(JudgeEnum.NO.getValue()); + Page page = SmartPageUtil.convert2QueryPage(queryDTO); + List dtoList = noticeDao.queryByPage(page, queryDTO); + page.setRecords(dtoList); + PageResultDTO pageResultDTO = SmartPageUtil.convert2PageResult(page); + return ResponseDTO.succData(pageResultDTO); + } + + /** + * 获取当前登录人的消息列表 + * + * @param queryDTO + * @param requestToken + * @return + */ + public ResponseDTO> queryReceiveByPage(NoticeReceiveQueryDTO queryDTO, RequestTokenBO requestToken) { + queryDTO.setEmployeeId(requestToken.getRequestUserId()); + queryDTO.setSendStatus(JudgeEnum.YES.getValue()); + Page page = SmartPageUtil.convert2QueryPage(queryDTO); + List dtoList = noticeDao.queryReceiveByPage(page, queryDTO); + dtoList.forEach(e -> { + if (e.getReceiveTime() == null) { + e.setReadStatus(JudgeEnum.NO.getValue()); + } else { + e.setReadStatus(JudgeEnum.YES.getValue()); + } + }); + page.setRecords(dtoList); + PageResultDTO pageResultDTO = SmartPageUtil.convert2PageResult(page); + return ResponseDTO.succData(pageResultDTO); + } + + /** + * 获取我的未读消息 + * + * @param queryDTO + * @param requestToken + * @return + */ + public ResponseDTO> queryUnreadByPage(PageParamDTO queryDTO, RequestTokenBO requestToken) { + Page page = SmartPageUtil.convert2QueryPage(queryDTO); + List dtoList = noticeDao.queryUnreadByPage(page, requestToken.getRequestUserId(), JudgeEnum.YES.getValue()); + page.setRecords(dtoList); + PageResultDTO pageResultDTO = SmartPageUtil.convert2PageResult(page); + return ResponseDTO.succData(pageResultDTO); + } + + /** + * @author yandanyang + * @description 添加 + * @date 2019-07-11 16:19:48 + */ + public ResponseDTO add(NoticeAddDTO addDTO, RequestTokenBO requestToken) { + NoticeEntity entity = SmartBeanUtil.copy(addDTO, NoticeEntity.class); + entity.setCreateTime(new Date()); + entity.setUpdateTime(new Date()); + entity.setCreateUser(requestToken.getRequestUserId()); + entity.setSendStatus(JudgeEnum.NO.getValue()); + entity.setDeleted(JudgeEnum.NO.getValue()); + noticeDao.insert(entity); + return ResponseDTO.succ(); + } + + /** + * @author yandanyang + * @description 编辑 + * @date 2019-07-11 16:19:48 + */ + @Transactional(rollbackFor = Exception.class) + public ResponseDTO update(NoticeUpdateDTO updateDTO) { + NoticeEntity entity = noticeDao.selectById(updateDTO.getId()); + if (entity == null) { + return ResponseDTO.wrap(ResponseCodeConst.ERROR_PARAM, "此系统通知不存在"); + } + if (JudgeEnum.YES.getValue().equals(entity.getSendStatus())) { + return ResponseDTO.wrap(ResponseCodeConst.ERROR_PARAM, "此系统通知已发送无法修改"); + } + noticeManage.update(entity, updateDTO); + return ResponseDTO.succ(); + } + + /** + * @author yandanyang + * @description 删除 + * @date 2019-07-11 16:19:48 + */ + public ResponseDTO delete(Long id) { + NoticeEntity entity = noticeDao.selectById(id); + if (entity == null) { + return ResponseDTO.wrap(ResponseCodeConst.ERROR_PARAM, "此系统通知不存在"); + } + noticeManage.delete(entity); + return ResponseDTO.succ(); + } + + /** + * @author yandanyang + * @description 根据ID查询 + * @date 2019-07-11 16:19:48 + */ + public ResponseDTO detail(Long id) { + NoticeDetailVO noticeDTO = noticeDao.detail(id); + return ResponseDTO.succData(noticeDTO); + } + + /** + * 获取某人的未读消息数 + * + * @param employeeId + * @return + */ + private Integer getUnreadCount(Long employeeId) { + return noticeDao.noticeUnreadCount(employeeId, JudgeEnum.YES.getValue()); + } + + /** + * 发送给所有在线用户未读消息数 + * + * @param id + * @param requestToken + * @return + */ + public ResponseDTO send(Long id, RequestTokenBO requestToken) { + NoticeEntity entity = noticeDao.selectById(id); + if (entity == null) { + return ResponseDTO.wrap(ResponseCodeConst.ERROR_PARAM, "此系统通知不存在"); + } + noticeManage.send(entity, requestToken); + this.sendMessage(requestToken); + return ResponseDTO.succ(); + } + + /** + * 发送系统通知 ,发送人不进行接收,需再事务外调用 以防止数据隔离级别不同造成未读消息数异常 + * + * @param requestToken + */ + private void sendMessage(RequestTokenBO requestToken) { + List onLineEmployeeIds = WebSocketServer.getOnLineUserList(); + if (CollectionUtils.isEmpty(onLineEmployeeIds)) { + return; + } + //在线用户已读消息数 + Map readCountMap = new HashMap<>(); + List readCountList = noticeDao.readCount(onLineEmployeeIds); + if (CollectionUtils.isNotEmpty(readCountList)) { + readCountMap = readCountList.stream().collect(Collectors.toMap(NoticeReadCountDTO :: getEmployeeId, NoticeReadCountDTO :: getReadCount)); + } + //已发送消息数 + Integer noticeCount = noticeDao.noticeCount(JudgeEnum.YES.getValue()); + for (Long employeeId : onLineEmployeeIds) { + Integer readCount = readCountMap.get(employeeId) == null ? 0 : readCountMap.get(employeeId); + Integer unReadCount = noticeCount - readCount; + if (! requestToken.getRequestUserId().equals(employeeId)) { + WebSocketServer.sendOneOnLineUser(unReadCount.toString(), employeeId); + } + } + } + + /** + * 读取消息 + * + * @param id + * @param requestToken + * @return + */ + public ResponseDTO read(Long id, RequestTokenBO requestToken) { + NoticeDetailVO noticeDTO = noticeDao.detail(id); + + NoticeReceiveRecordEntity recordEntity = noticeReceiveRecordDao.selectByEmployeeAndNotice(requestToken.getRequestUserId(), id); + if (recordEntity != null) { + return ResponseDTO.succData(noticeDTO); + } + noticeManage.saveReadRecord(id, requestToken); + this.sendMessage(requestToken); + return ResponseDTO.succData(noticeDTO); + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/notice/dao/NoticeDao.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/notice/dao/NoticeDao.java new file mode 100644 index 00000000..de7caec5 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/notice/dao/NoticeDao.java @@ -0,0 +1,103 @@ +package net.lab1024.smartadmin.module.business.notice.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import net.lab1024.smartadmin.common.anno.DataScope; +import net.lab1024.smartadmin.module.business.notice.domain.dto.*; +import net.lab1024.smartadmin.module.business.notice.domain.entity.NoticeEntity; +import net.lab1024.smartadmin.module.system.datascope.constant.DataScopeWhereInTypeEnum; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019-07-11 16:19:48 + * @since JDK1.8 + */ +@Mapper +@Component +public interface NoticeDao extends BaseMapper { + + /** + * 分页查询 + * @param queryDTO + * @return NoticeEntity + */ + @DataScope(joinSql = "n.create_user in (#employeeIds)", whereInType = DataScopeWhereInTypeEnum.EMPLOYEE) + List queryByPage(Page page, @Param("queryDTO") NoticeQueryDTO queryDTO); + + + /** + * 获取某人的未读消息 + * @param page + * @param employeeId + * @return + */ + @DataScope(joinSql = "e.department_id in (#departmentIds)", whereInType = DataScopeWhereInTypeEnum.DEPARTMENT) + List queryUnreadByPage(Page page, @Param("employeeId") Long employeeId, @Param("sendStatus") Integer sendStatus); + + + /** + * 获取 + * @param page + * @param queryDTO + * @return + */ + List queryReceiveByPage(Page page, @Param("queryDTO") NoticeReceiveQueryDTO queryDTO); + + /** + * 详情 + * @param id + * @return + */ + NoticeDetailVO detail(@Param("id") Long id); + + /** + * 根据id删除 逻辑删除 + * @param id + * @param deletedFlag + */ + void logicDeleteById(@Param("id") Long id,@Param("deletedFlag") Integer deletedFlag); + + + + /** + * 批量逻辑删除 + * @param idList + * @param deletedFlag + * @return + */ + void logicDeleteByIds(@Param("idList") List idList,@Param("deletedFlag") Integer deletedFlag); + + /** + * 获取消息总数 + * @return + */ + Integer noticeCount(@Param("sendStatus") Integer sendStatus); + + + /** + * 获取已读消息数 + * @param employeeIds + * @return + */ + List readCount(@Param("employeeIds") List employeeIds); + + + /** + * 获取某人的未读消息数 + * @param employeeId + * @param sendStatus + * @return + */ + Integer noticeUnreadCount(@Param("employeeId") Long employeeId, @Param("sendStatus") Integer sendStatus); + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/notice/dao/NoticeReceiveRecordDao.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/notice/dao/NoticeReceiveRecordDao.java new file mode 100644 index 00000000..682e0d74 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/notice/dao/NoticeReceiveRecordDao.java @@ -0,0 +1,48 @@ +package net.lab1024.smartadmin.module.business.notice.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import net.lab1024.smartadmin.module.business.notice.domain.entity.NoticeReceiveRecordEntity; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019-07-11 16:19:48 + * @since JDK1.8 + */ +@Mapper +@Component +public interface NoticeReceiveRecordDao extends BaseMapper { + + /** + * 批量删除 + * + * @param noticeId + * @return + */ + void deleteByNoticeId(@Param("noticeId") Long noticeId); + + /** + * 批量插入 + * + * @param rolePrivilegeList + */ + void batchInsert(List rolePrivilegeList); + + /** + * 根据员工和系统通知获取读取记录 + * + * @param employeeId + * @param noticeId + * @return + */ + NoticeReceiveRecordEntity selectByEmployeeAndNotice(@Param("employeeId") Long employeeId, @Param("noticeId") Long noticeId); +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/notice/domain/dto/NoticeAddDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/notice/domain/dto/NoticeAddDTO.java new file mode 100644 index 00000000..572817d1 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/notice/domain/dto/NoticeAddDTO.java @@ -0,0 +1,28 @@ +package net.lab1024.smartadmin.module.business.notice.domain.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/3/27 0027 下午 12:27 + * @since JDK1.8 + */ +@Data +public class NoticeAddDTO { + + @ApiModelProperty("消息标题") + @Length(max = 200) + private String title; + + @ApiModelProperty("消息内容") + @Length(max = 5000) + private String content; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/notice/domain/dto/NoticeDetailVO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/notice/domain/dto/NoticeDetailVO.java new file mode 100644 index 00000000..097317cd --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/notice/domain/dto/NoticeDetailVO.java @@ -0,0 +1,30 @@ +package net.lab1024.smartadmin.module.business.notice.domain.dto; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/3/27 0027 下午 12:27 + * @since JDK1.8 + */ +@Data +public class NoticeDetailVO extends NoticeVO { + + + @ApiModelProperty("消息内容") + private String content; + + @ApiModelProperty("更新时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date updateTime; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/notice/domain/dto/NoticeQueryDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/notice/domain/dto/NoticeQueryDTO.java new file mode 100644 index 00000000..b68feb4f --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/notice/domain/dto/NoticeQueryDTO.java @@ -0,0 +1,34 @@ +package net.lab1024.smartadmin.module.business.notice.domain.dto; + +import net.lab1024.smartadmin.common.domain.PageParamDTO; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date 2019-07-11 16:19:48 + * @since JDK1.8 + */ +@Data +public class NoticeQueryDTO extends PageParamDTO { + + + @ApiModelProperty("开始日期") + private String startDate; + + @ApiModelProperty("结束日期") + private String endDate; + + + @ApiModelProperty("消息标题") + private String title; + + @ApiModelProperty(value = "是否删除",hidden = true) + private Integer deleted; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/notice/domain/dto/NoticeReadCountDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/notice/domain/dto/NoticeReadCountDTO.java new file mode 100644 index 00000000..7821cf76 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/notice/domain/dto/NoticeReadCountDTO.java @@ -0,0 +1,26 @@ +package net.lab1024.smartadmin.module.business.notice.domain.dto; + +import lombok.Data; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/7/12 0012 上午 8:11 + * @since JDK1.8 + */ +@Data +public class NoticeReadCountDTO { + /** + * 员工id + */ + private Long employeeId; + /** + * 已读消息数 + */ + private Integer readCount; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/notice/domain/dto/NoticeReceiveDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/notice/domain/dto/NoticeReceiveDTO.java new file mode 100644 index 00000000..aa4aa7ad --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/notice/domain/dto/NoticeReceiveDTO.java @@ -0,0 +1,43 @@ +package net.lab1024.smartadmin.module.business.notice.domain.dto; + +import com.fasterxml.jackson.annotation.JsonFormat; +import net.lab1024.smartadmin.common.anno.ApiModelPropertyEnum; +import net.lab1024.smartadmin.common.constant.JudgeEnum; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/7/12 0012 上午 11:53 + * @since JDK1.8 + */ +@Data +public class NoticeReceiveDTO{ + + @ApiModelProperty("id") + private Long id; + + @ApiModelProperty("消息标题") + private String title; + + + @ApiModelProperty("消息创建人") + private Long createUser; + + @ApiModelProperty("消息创建人名称") + private String createUserName; + + @ApiModelProperty("结束时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date receiveTime; + + @ApiModelPropertyEnum(enumDesc = "读取状态",value = JudgeEnum.class) + private Integer readStatus; +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/notice/domain/dto/NoticeReceiveQueryDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/notice/domain/dto/NoticeReceiveQueryDTO.java new file mode 100644 index 00000000..63bbc87b --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/notice/domain/dto/NoticeReceiveQueryDTO.java @@ -0,0 +1,25 @@ +package net.lab1024.smartadmin.module.business.notice.domain.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/7/12 0012 下午 12:32 + * @since JDK1.8 + */ +@Data +public class NoticeReceiveQueryDTO extends NoticeQueryDTO{ + + @ApiModelProperty(value = "当前登录人",hidden = true) + private Long employeeId; + + @ApiModelProperty(value = "发送状态",hidden = true) + private Integer sendStatus; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/notice/domain/dto/NoticeUpdateDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/notice/domain/dto/NoticeUpdateDTO.java new file mode 100644 index 00000000..d62c00ca --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/notice/domain/dto/NoticeUpdateDTO.java @@ -0,0 +1,21 @@ +package net.lab1024.smartadmin.module.business.notice.domain.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/7/11 0011 下午 16:24 + * @since JDK1.8 + */ +@Data +public class NoticeUpdateDTO extends NoticeAddDTO{ + + @ApiModelProperty("id") + private Long id; +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/notice/domain/dto/NoticeVO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/notice/domain/dto/NoticeVO.java new file mode 100644 index 00000000..04fc5fbb --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/notice/domain/dto/NoticeVO.java @@ -0,0 +1,42 @@ +package net.lab1024.smartadmin.module.business.notice.domain.dto; +import net.lab1024.smartadmin.common.anno.ApiModelPropertyEnum; +import net.lab1024.smartadmin.common.constant.JudgeEnum; +import lombok.Data; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/3/27 0027 下午 12:27 + * @since JDK1.8 + */ +@Data +public class NoticeVO { + + @ApiModelProperty("id") + private Long id; + + @ApiModelProperty("消息标题") + private String title; + + + @ApiModelProperty("消息创建人") + private Long createUser; + + @ApiModelPropertyEnum(enumDesc = "发送状态",value = JudgeEnum.class) + private Integer sendStatus; + + @ApiModelProperty("消息创建人名称") + private String createUserName; + + @ApiModelProperty("创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date createTime; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/notice/domain/entity/NoticeEntity.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/notice/domain/entity/NoticeEntity.java new file mode 100644 index 00000000..4caeca22 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/notice/domain/entity/NoticeEntity.java @@ -0,0 +1,45 @@ +package net.lab1024.smartadmin.module.business.notice.domain.entity; +import com.baomidou.mybatisplus.annotation.TableName; +import net.lab1024.smartadmin.common.domain.BaseEntity; +import lombok.Data; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019-07-11 16:19:48 + * @since JDK1.8 + */ +@Data +@TableName("t_notice") +public class NoticeEntity extends BaseEntity { + + /** + * 消息标题 + */ + private String title; + + /** + * 消息内容 + */ + private String content; + + /** + * 消息创建人 + */ + private Long createUser; + + /** + * 发送状态 + */ + private Integer sendStatus; + + /** + * 删除状态 + */ + private Integer deleted; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/notice/domain/entity/NoticeReceiveRecordEntity.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/notice/domain/entity/NoticeReceiveRecordEntity.java new file mode 100644 index 00000000..74f5f3e7 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/notice/domain/entity/NoticeReceiveRecordEntity.java @@ -0,0 +1,33 @@ +package net.lab1024.smartadmin.module.business.notice.domain.entity; +import com.baomidou.mybatisplus.annotation.TableName; +import net.lab1024.smartadmin.common.domain.BaseEntity; +import lombok.Data; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019-07-11 16:19:48 + * @since JDK1.8 + */ +@Data +@TableName("t_notice_receive_record") +public class NoticeReceiveRecordEntity extends BaseEntity { + + + /** + * 消息id + */ + private Long noticeId; + + /** + * 消息接收人 + */ + private Long employeeId; + + + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/peony/controller/PeonyController.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/peony/controller/PeonyController.java new file mode 100644 index 00000000..08b12c62 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/peony/controller/PeonyController.java @@ -0,0 +1,88 @@ +package net.lab1024.smartadmin.module.business.peony.controller; + +import net.lab1024.smartadmin.common.domain.PageResultDTO; +import net.lab1024.smartadmin.common.controller.BaseController; +import net.lab1024.smartadmin.common.domain.ResponseDTO; +import net.lab1024.smartadmin.common.domain.ValidateList; +import net.lab1024.smartadmin.module.business.peony.domain.dto.PeonyAddDTO; +import net.lab1024.smartadmin.module.business.peony.domain.dto.PeonyUpdateDTO; +import net.lab1024.smartadmin.module.business.peony.domain.dto.PeonyQueryDTO; +import net.lab1024.smartadmin.module.business.peony.domain.vo.PeonyVO; +import net.lab1024.smartadmin.module.business.peony.domain.vo.PeonyExcelVO; +import net.lab1024.smartadmin.module.business.peony.service.PeonyService; +import cn.afterturn.easypoi.excel.ExcelExportUtil; +import cn.afterturn.easypoi.excel.entity.ExportParams; +import org.apache.poi.ss.usermodel.Workbook; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * [ 牡丹花 ] + * + * @author 卓大 + * @version 1.0 + * @company 1024创新实验室( www.1024lab.net ) + * @copyright (c) 1024创新实验室( www.1024lab.net )Inc. All rights reserved. + * @date 2020-04-06 18:17:56 + * @since JDK1.8 + */ +@RestController +@Api(tags = {"牡丹花"}) +public class PeonyController extends BaseController { + + @Autowired + private PeonyService peonyService; + + @ApiOperation(value = "分页查询牡丹花",notes = "@author 卓大") + @PostMapping("/peony/page/query") + public ResponseDTO> queryByPage(@RequestBody PeonyQueryDTO queryDTO) { + return peonyService.queryByPage(queryDTO); + } + + @ApiOperation(value = "添加牡丹花",notes = "@author 卓大") + @PostMapping("/peony/add") + public ResponseDTO add(@RequestBody @Validated PeonyAddDTO addTO){ + return peonyService.add(addTO); + } + + @ApiOperation(value="修改牡丹花",notes = "@author 卓大") + @PostMapping("/peony/update") + public ResponseDTO update(@RequestBody @Validated PeonyUpdateDTO updateDTO){ + return peonyService.update(updateDTO); + } + + @ApiOperation(value="批量删除牡丹花",notes = "@author 卓大") + @PostMapping("/peony/deleteByIds") + public ResponseDTO delete(@RequestBody @Validated ValidateList idList) { + return peonyService.deleteByIds(idList); + } + + @ApiOperation(value = "批量导出", notes = "@author 卓大") + @PostMapping("/peony/export/batch") + public void batchExport(@RequestBody @Validated ValidateList idList, HttpServletResponse response) { + //查询数据 + List peonyList = peonyService.queryBatchExportData(idList); + //导出操作 + ExportParams ex = new ExportParams("牡丹花", "Sheet1"); + Workbook workbook = ExcelExportUtil.exportExcel(ex, PeonyExcelVO.class, peonyList); + downloadExcel("牡丹花", workbook, response); + } + + @ApiOperation(value = "导出全部", notes = "@author 卓大") + @PostMapping("/peony/export/all") + public void exportAll(@RequestBody @Validated PeonyQueryDTO queryDTO, HttpServletResponse response) { + //查询数据 + List peonyList = peonyService.queryAllExportData(queryDTO); + //导出操作 + ExportParams ex = new ExportParams("牡丹花", "Sheet1"); + Workbook workbook = ExcelExportUtil.exportExcel(ex, PeonyExcelVO.class, peonyList); + downloadExcel("牡丹花", workbook, response); + } + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/peony/dao/PeonyDao.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/peony/dao/PeonyDao.java new file mode 100644 index 00000000..bc131bb3 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/peony/dao/PeonyDao.java @@ -0,0 +1,64 @@ +package net.lab1024.smartadmin.module.business.peony.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.metadata.IPage; +import net.lab1024.smartadmin.module.business.peony.domain.dto.PeonyQueryDTO; +import net.lab1024.smartadmin.module.business.peony.domain.entity.PeonyEntity; +import net.lab1024.smartadmin.module.business.peony.domain.vo.PeonyVO; +import net.lab1024.smartadmin.module.business.peony.domain.vo.PeonyExcelVO; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * [ 牡丹花 ] + * + * @author 卓大 + * @version 1.0 + * @company 1024创新实验室( www.1024lab.net ) + * @copyright (c) 1024创新实验室( www.1024lab.net )Inc. All rights reserved. + * @date 2020-04-06 18:17:56 + * @since JDK1.8 + */ +@Mapper +@Component +public interface PeonyDao extends BaseMapper { + + /** + * 分页查询 + * @param queryDTO + * @return PeonyVO + */ + IPage queryByPage(Page page, @Param("queryDTO") PeonyQueryDTO queryDTO); + + /** + * 根据id删除 + * @param id + * @return + */ + void deleteById(@Param("id") Long id); + + /** + * 根据id批量删除 + * @param idList + * @return + */ + void deleteByIdList(@Param("idList") List idList); + + /** + * 查询所有导出数据 + * @param queryDTO + * @return + */ + List queryAllExportData(@Param("queryDTO") PeonyQueryDTO queryDTO); + + /** + * 查询批量导出数据 + * @param idList + * @return + */ + List queryBatchExportData(@Param("idList") List idList); +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/peony/domain/dto/PeonyAddDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/peony/domain/dto/PeonyAddDTO.java new file mode 100644 index 00000000..976a2593 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/peony/domain/dto/PeonyAddDTO.java @@ -0,0 +1,41 @@ +package net.lab1024.smartadmin.module.business.peony.domain.dto; + +import lombok.Data; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; + +/** + * 新建 [ 牡丹花 ] + * + * @author 卓大 + * @version 1.0 + * @company 1024创新实验室( www.1024lab.net ) + * @copyright (c) 2018 1024创新实验室( www.1024lab.net )Inc. All rights reserved. + * @date 2020-04-06 18:17:56 + * @since JDK1.8 + */ +@Data +public class PeonyAddDTO { + @ApiModelProperty("品种") + private String kind; + + @ApiModelProperty("名字") + private String name; + + @ApiModelProperty("颜色") + private String color; + + @ApiModelProperty("图片链接") + private String imageUrl; + + @ApiModelProperty("创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date createTime; + + @ApiModelProperty("更新时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date updateTime; + + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/peony/domain/dto/PeonyQueryDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/peony/domain/dto/PeonyQueryDTO.java new file mode 100644 index 00000000..9841f01d --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/peony/domain/dto/PeonyQueryDTO.java @@ -0,0 +1,44 @@ +package net.lab1024.smartadmin.module.business.peony.domain.dto; + +import net.lab1024.smartadmin.common.domain.PageParamDTO; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import java.util.Date; + +/** + * [ 牡丹花 ] + * + * @author 卓大 + * @version 1.0 + * @company 1024创新实验室( www.1024lab.net ) + * @copyright (c) 1024创新实验室( www.1024lab.net )Inc. All rights reserved. + * @date 2020-04-06 18:17:56 + * @since JDK1.8 + */ +@Data +public class PeonyQueryDTO extends PageParamDTO { + + @ApiModelProperty("ID") + private Long id; + + @ApiModelProperty("品种") + private String kind; + + @ApiModelProperty("名字") + private String name; + + @ApiModelProperty("颜色") + private String color; + + @ApiModelProperty("创建时间-开始") + private Date createTimeBegin; + + @ApiModelProperty("创建时间-截止") + private Date createTimeEnd; + + @ApiModelProperty("上次更新时间-开始") + private Date updateTimeBegin; + + @ApiModelProperty("上次更新创建时间-开始") + private Date updateTimeEnd; +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/peony/domain/dto/PeonyUpdateDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/peony/domain/dto/PeonyUpdateDTO.java new file mode 100644 index 00000000..7d7ca820 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/peony/domain/dto/PeonyUpdateDTO.java @@ -0,0 +1,20 @@ +package net.lab1024.smartadmin.module.business.peony.domain.dto; + +import lombok.Data; + +/** + * 更新 [ 牡丹花 ] + * + * @author 卓大 + * @version 1.0 + * @company 1024创新实验室( www.1024lab.net ) + * @copyright (c) 2018 1024创新实验室( www.1024lab.net )Inc. All rights reserved. + * @date 2020-04-06 18:17:56 + * @since JDK1.8 + */ +@Data +public class PeonyUpdateDTO extends PeonyAddDTO { + + private Long id; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/peony/domain/entity/PeonyEntity.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/peony/domain/entity/PeonyEntity.java new file mode 100644 index 00000000..48eb9d56 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/peony/domain/entity/PeonyEntity.java @@ -0,0 +1,44 @@ +package net.lab1024.smartadmin.module.business.peony.domain.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import net.lab1024.smartadmin.common.domain.BaseEntity; +import lombok.Data; + +/** + * [ 牡丹花 ] + * + * @author 卓大 + * @version 1.0 + * @company 1024创新实验室( www.1024lab.net ) + * @copyright (c) 1024创新实验室( www.1024lab.net )Inc. All rights reserved. + * @date 2020-04-06 18:17:56 + * @since JDK1.8 + */ +@Data +@TableName("t_peony") +public class PeonyEntity extends BaseEntity{ + + + /** + * 品种 + */ + private String kind; + + /** + * 名字 + */ + private String name; + + /** + * 颜色 + */ + private String color; + + /** + * 图片链接 + */ + private String imageUrl; + + + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/peony/domain/vo/PeonyExcelVO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/peony/domain/vo/PeonyExcelVO.java new file mode 100644 index 00000000..8964433f --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/peony/domain/vo/PeonyExcelVO.java @@ -0,0 +1,42 @@ +package net.lab1024.smartadmin.module.business.peony.domain.vo; + +import cn.afterturn.easypoi.excel.annotation.Excel; +import lombok.Data; +import java.util.Date; + +/** + * [ 牡丹花 ] + * + * @author 卓大 + * @version 1.0 + * @company 1024创新实验室( www.1024lab.net ) + * @copyright (c) 1024创新实验室( www.1024lab.net )Inc. All rights reserved. + * @date 2020-04-06 18:17:56 + * @since JDK1.8 + */ +@Data +public class PeonyExcelVO { + @Excel(name = "ID") + private Long id; + + @Excel(name = "品种") + private String kind; + + @Excel(name = "名字") + private String name; + + @Excel(name = "颜色") + private String color; + + @Excel(name = "图片链接") + private String imageUrl; + + @Excel(name = "创建时间", format = "yyyy-MM-dd HH:mm:ss") + private Date createTime; + + @Excel(name = "更新时间", format = "yyyy-MM-dd HH:mm:ss") + private Date updateTime; + + + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/peony/domain/vo/PeonyVO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/peony/domain/vo/PeonyVO.java new file mode 100644 index 00000000..06590916 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/peony/domain/vo/PeonyVO.java @@ -0,0 +1,45 @@ +package net.lab1024.smartadmin.module.business.peony.domain.vo; + +import lombok.Data; +import java.util.Date; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; + +/** + * [ 牡丹花 ] + * + * @author 卓大 + * @version 1.0 + * @company 1024创新实验室( www.1024lab.net ) + * @copyright (c) 1024创新实验室( www.1024lab.net )Inc. All rights reserved. + * @date 2020-04-06 18:17:56 + * @since JDK1.8 + */ +@Data +public class PeonyVO { + @ApiModelProperty("ID") + private Long id; + + @ApiModelProperty("品种") + private String kind; + + @ApiModelProperty("名字") + private String name; + + @ApiModelProperty("颜色") + private String color; + + @ApiModelProperty("图片链接") + private String imageUrl; + + @ApiModelProperty("创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date createTime; + + @ApiModelProperty("更新时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date updateTime; + + + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/peony/service/PeonyService.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/peony/service/PeonyService.java new file mode 100644 index 00000000..50bfbb44 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/business/peony/service/PeonyService.java @@ -0,0 +1,108 @@ +package net.lab1024.smartadmin.module.business.peony.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import net.lab1024.smartadmin.common.domain.PageResultDTO; +import net.lab1024.smartadmin.common.domain.ResponseDTO; +import net.lab1024.smartadmin.module.business.peony.dao.PeonyDao; +import net.lab1024.smartadmin.module.business.peony.domain.dto.PeonyAddDTO; +import net.lab1024.smartadmin.module.business.peony.domain.dto.PeonyUpdateDTO; +import net.lab1024.smartadmin.module.business.peony.domain.dto.PeonyQueryDTO; +import net.lab1024.smartadmin.module.business.peony.domain.entity.PeonyEntity; +import net.lab1024.smartadmin.module.business.peony.domain.vo.PeonyVO; +import net.lab1024.smartadmin.module.business.peony.domain.vo.PeonyExcelVO; +import net.lab1024.smartadmin.util.SmartPageUtil; +import net.lab1024.smartadmin.util.SmartBeanUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + * [ 牡丹花 ] + * + * @author 卓大 + * @version 1.0 + * @company 1024创新实验室( www.1024lab.net ) + * @copyright (c) 1024创新实验室( www.1024lab.net )Inc. All rights reserved. + * @date 2020-04-06 18:17:56 + * @since JDK1.8 + */ +@Service +public class PeonyService { + + @Autowired + private PeonyDao peonyDao; + + /** + * 根据id查询 + */ + public PeonyEntity getById(Long id){ + return peonyDao.selectById(id); + } + + /** + * 分页查询 + * @author 卓大 + * @date 2020-04-06 18:17:56 + */ + public ResponseDTO> queryByPage(PeonyQueryDTO queryDTO) { + Page page = SmartPageUtil.convert2QueryPage(queryDTO); + IPage voList = peonyDao.queryByPage(page, queryDTO); + PageResultDTO pageResultDTO = SmartPageUtil.convert2PageResult(voList); + return ResponseDTO.succData(pageResultDTO); + } + + /** + * 添加 + * @author 卓大 + * @date 2020-04-06 18:17:56 + */ + public ResponseDTO add(PeonyAddDTO addDTO) { + PeonyEntity entity = SmartBeanUtil.copy(addDTO, PeonyEntity.class); + peonyDao.insert(entity); + return ResponseDTO.succ(); + } + + /** + * 编辑 + * @author 卓大 + * @date 2020-04-06 18:17:56 + */ + @Transactional(rollbackFor = Exception.class) + public ResponseDTO update(PeonyUpdateDTO updateDTO) { + PeonyEntity entity = SmartBeanUtil.copy(updateDTO, PeonyEntity.class); + peonyDao.updateById(entity); + return ResponseDTO.succ(); + } + + /** + * 删除 + * @author 卓大 + * @date 2020-04-06 18:17:56 + */ + @Transactional(rollbackFor = Exception.class) + public ResponseDTO deleteByIds(List idList) { + peonyDao.deleteByIdList(idList); + return ResponseDTO.succ(); + } + + /** + * 查询全部导出对象 + * @author 卓大 + * @date 2020-04-06 18:17:56 + */ + public List queryAllExportData(PeonyQueryDTO queryDTO) { + return peonyDao.queryAllExportData( queryDTO); + } + + /** + * 批量查询导出对象 + * @author 卓大 + * @date 2020-04-06 18:17:56 + */ + public List queryBatchExportData(List idList) { + return peonyDao.queryBatchExportData(idList); + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/codegenerator/constant/SqlOperateTypeEnum.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/codegenerator/constant/SqlOperateTypeEnum.java new file mode 100644 index 00000000..943e1c36 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/codegenerator/constant/SqlOperateTypeEnum.java @@ -0,0 +1,34 @@ +package net.lab1024.smartadmin.module.support.codegenerator.constant; + + +/** + * [ gt,lt 目前只支持Date] + * + * @author yandanyang + * @version 1.0 + * @since JDK1.8 + */ +public enum SqlOperateTypeEnum{ + + + LIKE(1, "like"), + EQUALS(2, "equals"), + IN(3, "in"); + + private Integer type; + + private String name; + + SqlOperateTypeEnum(Integer type, String name) { + this.type = type; + this.name = name; + } + + public Integer getType() { + return type; + } + + public String getName() { + return name; + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/codegenerator/dao/TableDao.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/codegenerator/dao/TableDao.java new file mode 100644 index 00000000..f8d005ab --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/codegenerator/dao/TableDao.java @@ -0,0 +1,40 @@ +package net.lab1024.smartadmin.module.support.codegenerator.dao; + +import net.lab1024.smartadmin.module.support.codegenerator.domain.ColumnVO; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/5/10 0010 下午 18:59 + * @since JDK1.8 + */ +@Mapper +@Component +public interface TableDao { + + + /** + * 查询表描述 + * @param tableName + * @return + */ + String selectTableDesc(@Param("tableName") String tableName); + + /** + * 查询表列信息 + * @param tableName + * @return + */ + List selectTableColumn(@Param("tableName") String tableName); + + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/codegenerator/domain/CodeGeneratorDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/codegenerator/domain/CodeGeneratorDTO.java new file mode 100644 index 00000000..4995aa57 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/codegenerator/domain/CodeGeneratorDTO.java @@ -0,0 +1,56 @@ +package net.lab1024.smartadmin.module.support.codegenerator.domain; + +import lombok.Builder; +import lombok.Data; + +import java.util.List; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/5/11 0011 上午 10:12 + * @since JDK1.8 + */ +@Data +@Builder +public class CodeGeneratorDTO { + + /** + * 需要生成代码的表名 + */ + private String tableName; + + /** + * 表前缀 + */ + private String tablePrefix; + + /** + * 基础包路径 + */ + private String basePackage; + + /** + * module下的子包 + */ + private String modulePackage; + + /** + * 公司 + */ + private String company; + + /** + * 作者 + */ + private String author; + + /** + * 需要构建查询方法的列 + */ + private List queryColumnList; +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/codegenerator/domain/CodeGeneratorQueryColumnDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/codegenerator/domain/CodeGeneratorQueryColumnDTO.java new file mode 100644 index 00000000..9e1bd054 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/codegenerator/domain/CodeGeneratorQueryColumnDTO.java @@ -0,0 +1,30 @@ +package net.lab1024.smartadmin.module.support.codegenerator.domain; + +import net.lab1024.smartadmin.module.support.codegenerator.constant.SqlOperateTypeEnum; +import lombok.Builder; +import lombok.Data; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/5/11 0011 上午 10:13 + * @since JDK1.8 + */ +@Data +@Builder +public class CodeGeneratorQueryColumnDTO { + + /** + * 生成查询方法的查询列名 + */ + private String columnName; + + /** + * 此列的查询动作 + */ + private SqlOperateTypeEnum sqlOperate; +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/codegenerator/domain/ColumnVO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/codegenerator/domain/ColumnVO.java new file mode 100644 index 00000000..9bec4d9f --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/codegenerator/domain/ColumnVO.java @@ -0,0 +1,36 @@ +package net.lab1024.smartadmin.module.support.codegenerator.domain; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/5/10 0010 下午 17:55 + * @since JDK1.8 + */ +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ColumnVO { + + private String columnName; + + private String columnType; + + private String columnDesc; + + private String fieldType; + + private String fieldName; + + private Boolean isNumber; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/codegenerator/domain/QueryFieldVO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/codegenerator/domain/QueryFieldVO.java new file mode 100644 index 00000000..c2afcc53 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/codegenerator/domain/QueryFieldVO.java @@ -0,0 +1,30 @@ +package net.lab1024.smartadmin.module.support.codegenerator.domain; + +import lombok.Builder; +import lombok.Data; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/5/10 0010 下午 17:56 + * @since JDK1.8 + */ +@Data +@Builder +public class QueryFieldVO { + + private String fieldName; + + private String columnName; + + private String columnDesc; + + private String fieldType; + + private String sqlOperate; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/codegenerator/service/CodeGeneratorComponent.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/codegenerator/service/CodeGeneratorComponent.java new file mode 100644 index 00000000..37ee4e87 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/codegenerator/service/CodeGeneratorComponent.java @@ -0,0 +1,92 @@ +package net.lab1024.smartadmin.module.support.codegenerator.service; + +import com.google.common.base.CaseFormat; +import org.springframework.stereotype.Component; + +import java.io.File; +import java.util.HashMap; +import java.util.Map; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/5/11 0011 上午 8:33 + * @since JDK1.8 + */ +@Component +public class CodeGeneratorComponent { + + private static Map dataMap = new HashMap<>(16); + private static Map numberTypeMap = new HashMap<>(16); + + static { + dataMap(); + } + + public static void dataMap() { + numberTypeMap.put("int", "Integer"); + numberTypeMap.put("tinyint", "Integer"); + numberTypeMap.put("smallint", "Integer"); + numberTypeMap.put("integer", "Integer"); + numberTypeMap.put("bigint", "Long"); + numberTypeMap.put("float", "Float"); + numberTypeMap.put("double", "Double"); + numberTypeMap.put("decimal", "BigDecimal"); + + dataMap.put("char", "String"); + dataMap.put("varchar", "String"); + dataMap.put("tinytext", "String"); + dataMap.put("text", "String"); + dataMap.put("longtext", "String"); + + dataMap.put("date", "Date"); + dataMap.put("datetime", "Date"); + dataMap.put("timestamp", "Date"); + + } + + + public Map codeTemplates(String moduleClass, String basePackage, String modulePackage) { + String modulePath = modulePackage.replaceAll("\\.", "/"); + String javaPackagePath = "java/" + modulePath + File.separator; + String xmlPackagePath = "mapper/" + modulePath + File.separator; + String frontPackagePath = "web" + File.separator; + Map templateMap = new HashMap<>(); + //后端 + templateMap.put("templates/codegenerator/java/Controller.java.vm", javaPackagePath + "controller" + File.separator + moduleClass + "Controller.java"); + templateMap.put("templates/codegenerator/java/Dao.java.vm", javaPackagePath + "dao" + File.separator + moduleClass + "Dao.java"); + templateMap.put("templates/codegenerator/java/Dao.xml.vm", xmlPackagePath + moduleClass + "Mapper.xml"); + templateMap.put("templates/codegenerator/java/AddDTO.java.vm", javaPackagePath + "domain" + File.separator + "dto" + File.separator + moduleClass + "AddDTO.java"); + templateMap.put("templates/codegenerator/java/UpdateDTO.java.vm", javaPackagePath + "domain" + File.separator + "dto" + File.separator + moduleClass + "UpdateDTO.java"); + templateMap.put("templates/codegenerator/java/Entity.java.vm", javaPackagePath + "domain" + File.separator + "entity" + File.separator + moduleClass + "Entity.java"); + templateMap.put("templates/codegenerator/java/VO.java.vm", javaPackagePath + "domain" + File.separator + "vo" + File.separator + moduleClass + "VO.java"); + templateMap.put("templates/codegenerator/java/ExcelVO.java.vm", javaPackagePath + "domain" + File.separator + "vo" + File.separator + moduleClass + "ExcelVO.java"); + templateMap.put("templates/codegenerator/java/QueryDTO.java.vm", javaPackagePath + "domain" + File.separator + "dto" + File.separator + moduleClass + "QueryDTO.java"); + templateMap.put("templates/codegenerator/java/Service.java.vm", javaPackagePath + "service" + File.separator + moduleClass + "Service.java"); + //前端 + String webPackageName = CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, moduleClass).replaceAll("_", "-"); + templateMap.put("templates/codegenerator/web/Api.js.vm", frontPackagePath + "api" + File.separator + webPackageName + ".js"); + templateMap.put("templates/codegenerator/web/Router.js.vm", frontPackagePath + "router" + File.separator + webPackageName + ".js"); + templateMap.put("templates/codegenerator/web/List.vue.vm", frontPackagePath + webPackageName + File.separator + webPackageName + "-list.vue"); + templateMap.put("templates/codegenerator/web/ListForm.vue.vm", frontPackagePath + webPackageName + File.separator + "components" + File.separator + webPackageName + "-list-form.vue"); + return templateMap; + } + + public String getJavaType(String mysqlType) { + String javaType = dataMap.get(mysqlType); + if (javaType == null) { + javaType = numberTypeMap.get(mysqlType); + } + return javaType; + } + + public boolean isNumber(String mysqlType) { + return numberTypeMap.containsKey(mysqlType); + } + + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/codegenerator/service/CodeGeneratorService.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/codegenerator/service/CodeGeneratorService.java new file mode 100644 index 00000000..b2b6585d --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/codegenerator/service/CodeGeneratorService.java @@ -0,0 +1,336 @@ +package net.lab1024.smartadmin.module.support.codegenerator.service; + +import com.google.common.base.CaseFormat; +import net.lab1024.smartadmin.module.support.codegenerator.dao.TableDao; +import net.lab1024.smartadmin.module.support.codegenerator.domain.CodeGeneratorDTO; +import net.lab1024.smartadmin.module.support.codegenerator.domain.CodeGeneratorQueryColumnDTO; +import net.lab1024.smartadmin.module.support.codegenerator.domain.ColumnVO; +import net.lab1024.smartadmin.module.support.codegenerator.domain.QueryFieldVO; +import net.lab1024.smartadmin.util.SmartDateUtil; +import com.google.common.collect.Lists; +import lombok.extern.slf4j.Slf4j; +import net.lab1024.smartadmin.util.SmartStringUtil; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang.WordUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.velocity.Template; +import org.apache.velocity.VelocityContext; +import org.apache.velocity.app.Velocity; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.util.ResourceUtils; + +import javax.swing.filechooser.FileSystemView; +import java.io.File; +import java.io.FileWriter; +import java.util.*; +import java.util.Map.Entry; +import java.util.stream.Collectors; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/5/11 0011 上午 9:36 + * @since JDK1.8 + */ +@Slf4j +@Service +public class CodeGeneratorService { + + @Autowired + private TableDao tableDao; + + @Autowired + private CodeGeneratorComponent codeGeneratorComponent; + + /** + * 大家注意了开始生成代码了 + * + * @param codeGenerator + * @throws Exception + */ + public void codeGenerator(CodeGeneratorDTO codeGenerator) throws Exception { + this.basicValid(codeGenerator); + String date = SmartDateUtil.formatYMDHMS(new Date()); + String tableDesc = this.getTableDesc(codeGenerator.getTableName()); + String author = codeGenerator.getAuthor(); + String basePackage = codeGenerator.getBasePackage(); + if (StringUtils.isEmpty(basePackage)) { + basePackage = "net.lab1024.smartadmin"; + } + String moduleClass = this.tableName2Class(codeGenerator.getTableName(), codeGenerator.getTablePrefix()); + String moduleVar = this.tableName2Var(codeGenerator.getTableName(), codeGenerator.getTablePrefix()); + String modulePackage = codeGenerator.getModulePackage(); + + List columnList = this.columnList(codeGenerator.getTableName()); + List queryFieldList = this.buildQueryField(codeGenerator, columnList); + Map codeTemplates = codeGeneratorComponent.codeTemplates(moduleClass, basePackage, modulePackage); + List queryImports = this.buildQueryImport(queryFieldList); + List dtoImports = this.buildDTOImport(columnList); + List entityImports = this.buildEntityImport(columnList); + Properties p = new Properties(); + p.put("file.resource.loader.class", "org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader"); + p.put("directive.foreach.counter.name", "velocityCount"); + p.put("directive.foreach.counter.initial.value", "1"); + Velocity.init(p); + Map map = new HashMap<>(); + map.put("company", codeGenerator.getCompany()); + map.put("tableName", codeGenerator.getTableName()); + map.put("basePackage", basePackage); + map.put("modulePackage", modulePackage); + map.put("moduleClass", moduleClass); + map.put("tableDesc", tableDesc); + map.put("author", author); + map.put("date", date); + map.put("moduleVar", moduleVar); + map.put("columnList", columnList); + map.put("queryFieldList", queryFieldList); + map.put("queryImports", queryImports); + map.put("dtoImports", dtoImports); + map.put("entityImports", entityImports); + map.put("webModuleName", CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, moduleClass).replaceAll("_", "-")); + map.put("upperCamel", CaseFormat.LOWER_CAMEL.to(CaseFormat.UPPER_CAMEL, moduleClass)); + //前端的变量 + map.put("ViewUIMessage", "$Message"); + map.put("VueRefs", "$refs"); + VelocityContext context = new VelocityContext(map); + this.codeGenerator(context, codeTemplates); + } + + private List buildQueryImport(List queryFieldList) { + List queryImports = Lists.newArrayList(); + if (CollectionUtils.isNotEmpty(queryFieldList)) { + queryFieldList.forEach(e -> { + importPackage(queryImports, e.getFieldType()); + if ("in".equals(e.getSqlOperate())) { + queryImports.add("import java.util.List;"); + } + }); + } + return queryImports; + } + + private List buildDTOImport(List columnList) { + List dtoImports = Lists.newArrayList(); + if (CollectionUtils.isNotEmpty(columnList)) { + columnList.forEach(e -> { + importPackage(dtoImports, e.getFieldType()); + }); + } + return dtoImports; + } + + private List buildEntityImport(List columnList) { + List entityImports = Lists.newArrayList(); + if (CollectionUtils.isNotEmpty(columnList)) { + columnList.forEach(e -> { + if (!e.getFieldName().equals("createTime") && !e.getFieldName().equals("updateTime") && !e.getFieldName().equals("id")) { + importPackage(entityImports, e.getFieldType()); + } + }); + } + return entityImports; + } + + private void importPackage(List imports, String fieldType) { + if ("Date".equals(fieldType) && !imports.contains("import java.util.Date;")) { + imports.add("import java.util.Date;"); + } + if ("BigDecimal".equals(fieldType) && !imports.contains("import java.math.BigDecimal;")) { + imports.add("import java.math.BigDecimal;"); + } + } + + private String getOutputDir() { + File desktopDir = FileSystemView.getFileSystemView().getHomeDirectory(); + return desktopDir.getAbsolutePath() + File.separator + "smart-admin" + File.separator; + } + + /** + * 生成代码 + * + * @param context + * @param codeTemplates + */ + private void codeGenerator(VelocityContext context, Map codeTemplates) throws Exception { + String projectPath = getOutputDir(); + + Velocity.setProperty("input.encoding", "UTF-8"); + Velocity.setProperty("output.encoding", "UTF-8"); + + for (Entry entry : codeTemplates.entrySet()) { + String template = entry.getKey(); + String filePath = projectPath + entry.getValue(); + String fileName = filePath.substring(filePath.lastIndexOf(File.separator) + 1); + String fileDir = filePath.replace(fileName, ""); + File directory = new File(fileDir); + if (!directory.exists()) { + directory.mkdirs(); + } + FileWriter writer; + try { + writer = new FileWriter(filePath); + Template tpl = Velocity.getTemplate(template, "UTF-8"); + tpl.merge(context, writer); + writer.flush(); + writer.close(); + } catch (Exception e) { + log.error("", e); + } + } + + log.info("------------------------------ 代 码 生 成 完 毕 ! ------------------------------"); + log.info("代码目录:{}", projectPath); + log.info("------------------------------ 代 码 生 成 完 毕 ! ------------------------------"); + + } + + public static void main(String[] args) { + try { + int i = 1 / 0; + } catch (Exception e) { + log.error("", e); + } + } + + private void basicValid(CodeGeneratorDTO codeGenerator) throws Exception { + if (StringUtils.isEmpty(codeGenerator.getTableName())) { + throw new Exception("你没建表吗?"); + } + if (StringUtils.isEmpty(codeGenerator.getTablePrefix())) { + throw new Exception("你的表没前缀吗?"); + } + if (StringUtils.isEmpty(codeGenerator.getAuthor())) { + throw new Exception("输入下你的大名"); + } + } + + /** + * 构建查询集合 + * + * @param codeGenerator + * @param columnList + * @return + * @throws Exception + */ + private List buildQueryField(CodeGeneratorDTO codeGenerator, List columnList) throws Exception { + List queryFieldList = Lists.newArrayList(); + Map storageMap = columnList.stream().collect(Collectors.toMap(ColumnVO::getColumnName, e -> e)); + List queryColumnList = codeGenerator.getQueryColumnList(); + if (CollectionUtils.isEmpty(queryColumnList)) { + return queryFieldList; + } + for (CodeGeneratorQueryColumnDTO queryColumn : queryColumnList) { + ColumnVO columnDTO = storageMap.get(queryColumn.getColumnName()); + if (columnDTO == null) { + String errorMsg = "sql列[" + queryColumn.getColumnName() + "]在表[" + codeGenerator.getTableName() + "]中不存在。"; + log.error(errorMsg); + throw new Exception(errorMsg); + } + QueryFieldVO queryField = + QueryFieldVO.builder().fieldName(columnDTO.getFieldName()).fieldType(columnDTO.getFieldType()).columnName(columnDTO.getColumnName()).columnDesc(columnDTO.getColumnDesc()).sqlOperate(queryColumn.getSqlOperate().getName()).build(); + queryFieldList.add(queryField); + } + return queryFieldList; + } + + /** + * 列数据 组合 + * + * @param tableName + * @return + * @throws Exception + */ + private List columnList(String tableName) throws Exception { + List list = tableDao.selectTableColumn(tableName); + for (ColumnVO column : list) { + String javaType = codeGeneratorComponent.getJavaType(column.getColumnType()); + if (StringUtils.isEmpty(javaType)) { + String errorMsg = "sql数据类型[" + column.getColumnType() + "]缺少对应的java类型。"; + log.error(errorMsg); + throw new Exception(errorMsg); + } + if ("Integer".equals(javaType) && column.getColumnName().contains("id")) { + column.setFieldType("Long"); + } else { + column.setFieldType(javaType); + } + column.setFieldName(this.columnName2Field(column.getColumnName())); + if (SmartStringUtil.isBlank(column.getColumnDesc())) { + column.setColumnDesc(column.getColumnName()); + } + + column.setIsNumber(codeGeneratorComponent.isNumber(column.getColumnType())); + } + return list; + } + + /** + * 获取列注释为类描述 + * + * @param tableName + * @return + */ + private String getTableDesc(String tableName) { + return tableDao.selectTableDesc(tableName); + } + + /** + * 列名转字段名 + * + * @param columnName + * @return + */ + private String columnName2Field(String columnName) { + String transName = WordUtils.capitalizeFully(columnName, new char[]{'_'}).replace("_", ""); + return WordUtils.uncapitalize(transName); + } + + /** + * 表名转类名前缀 + * + * @param tableName + * @param tablePrefix + * @return + */ + private String tableName2Class(String tableName, String tablePrefix) { + if (StringUtils.isNotBlank(tablePrefix)) { + tableName = tableName.replaceFirst(tablePrefix, ""); + } + return WordUtils.capitalizeFully(tableName, new char[]{'_'}).replace("_", ""); + } + + /** + * 表名转包名 + * + * @param tableName + * @param tablePrefix + * @return + */ + private String tableName2Package(String tableName, String tablePrefix) { + if (StringUtils.isNotBlank(tablePrefix)) { + tableName = tableName.replaceFirst(tablePrefix, ""); + } + return tableName.replace("_", ""); + } + + /** + * 表名转 java变量前缀 + * + * @param tableName + * @param tablePrefix + * @return + */ + private String tableName2Var(String tableName, String tablePrefix) { + if (StringUtils.isNotBlank(tablePrefix)) { + tableName = tableName.replaceFirst(tablePrefix, ""); + } + String transName = WordUtils.capitalizeFully(tableName, new char[]{'_'}).replace("_", ""); + return WordUtils.uncapitalize(transName); + } + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/file/FileController.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/file/FileController.java new file mode 100644 index 00000000..001e99d2 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/file/FileController.java @@ -0,0 +1,93 @@ +package net.lab1024.smartadmin.module.support.file; + +import net.lab1024.smartadmin.common.anno.NoNeedLogin; +import net.lab1024.smartadmin.common.domain.PageResultDTO; +import net.lab1024.smartadmin.common.domain.ResponseDTO; +import net.lab1024.smartadmin.constant.SwaggerTagConst; +import net.lab1024.smartadmin.module.support.file.constant.FileServiceTypeEnum; +import net.lab1024.smartadmin.module.support.file.domain.dto.FileAddDTO; +import net.lab1024.smartadmin.module.support.file.domain.dto.FileQueryDTO; +import net.lab1024.smartadmin.module.support.file.domain.vo.FileVO; +import net.lab1024.smartadmin.module.support.file.domain.vo.UploadVO; +import net.lab1024.smartadmin.module.support.file.service.FileService; +import net.lab1024.smartadmin.module.system.login.domain.RequestTokenBO; +import net.lab1024.smartadmin.util.SmartRequestTokenUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import javax.validation.Valid; + +/** + * @Description: 文件服务 + * @Author: sbq + * @CreateDate: 2019/7/18 9:36 + * @Version: 1.0 + */ +@RestController +@Api(tags = {SwaggerTagConst.Admin.MANAGER_FILE}) +public class FileController { + + @Autowired + private FileService fileService; + + @ApiOperation(value = "文件本地上传", notes = "文件本地上传") + @PostMapping("/api/file/localUpload/{moduleType}") + public ResponseDTO localUpload(MultipartFile file, @PathVariable Integer moduleType) throws Exception { + return fileService.fileUpload(file, FileServiceTypeEnum.LOCAL, moduleType); + } + + @ApiOperation(value = "获取本地文件URL", notes = "获取文件URL") + @PostMapping("/api/file/get") + public ResponseDTO localGetFile(String path) { + return fileService.getFileUrl(path, FileServiceTypeEnum.LOCAL); + } + + @ApiOperation(value = "文件阿里云上传", notes = "文件阿里云上传") + @PostMapping("/api/file/aliYunUpload/{moduleType}") + public ResponseDTO aliYunUpload(MultipartFile file, @PathVariable Integer moduleType) throws Exception { + return fileService.fileUpload(file, FileServiceTypeEnum.ALI_OSS, moduleType); + } + + @ApiOperation(value = "获取阿里云文件URL", notes = "获取阿里云文件URL") + @PostMapping("/api/file/aliYunGet") + public ResponseDTO aliYunGet(String path) { + return fileService.getFileUrl(path, FileServiceTypeEnum.ALI_OSS); + } + + @ApiOperation(value = "文件七牛云上传", notes = "文件七牛云上传") + @PostMapping("/api/file/qiNiuUpload/{moduleType}") + public ResponseDTO qiNiuUpload(MultipartFile file, @PathVariable Integer moduleType) throws Exception { + return fileService.fileUpload(file, FileServiceTypeEnum.QI_NIU_OSS, moduleType); + } + + @ApiOperation(value = "获取七牛云文件URL", notes = "获取七牛云URL") + @PostMapping("/api/file/qiNiuGet") + public ResponseDTO qiNiuGet(String path) { + return fileService.getFileUrl(path, FileServiceTypeEnum.QI_NIU_OSS); + } + + @ApiOperation(value = "系统文件查询") + @PostMapping("/api/file/query") + public ResponseDTO> queryListByPage(@RequestBody FileQueryDTO queryDTO) { + return fileService.queryListByPage(queryDTO); + } + + @ApiOperation(value = "系统文件下载通用接口(流下载)") + @GetMapping("/api/file/downLoad") + @NoNeedLogin + public ResponseEntity downLoadById(Long id, HttpServletRequest request) { + return fileService.downLoadById(id, request); + } + + @ApiOperation(value = "系统文件保存通用接口") + @PostMapping("/api/file/save") + public ResponseDTO saveFile(@Valid @RequestBody FileAddDTO addDTO) { + RequestTokenBO requestToken = SmartRequestTokenUtil.getRequestUser(); + return fileService.saveFile(addDTO,requestToken); + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/file/FileDao.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/file/FileDao.java new file mode 100644 index 00000000..3155bf25 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/file/FileDao.java @@ -0,0 +1,72 @@ +package net.lab1024.smartadmin.module.support.file; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import net.lab1024.smartadmin.module.support.file.domain.dto.FileDTO; +import net.lab1024.smartadmin.module.support.file.domain.dto.FileQueryDTO; +import net.lab1024.smartadmin.module.support.file.domain.entity.FileEntity; +import net.lab1024.smartadmin.module.support.file.domain.vo.FileVO; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * @author cyj + * @date 2018-01-05 上午 9:49 + */ +@Mapper +@Component +public interface FileDao extends BaseMapper { + + /** + * 批量添加上传文件 + * + * @param fileDTOList + * @return + */ + Integer insertFileBatch(List fileDTOList); + + + /** + * 批量添加上传文件 + * + * @param fileDTOList + * @return + */ + Integer insertFileEntityBatch(List fileDTOList); + + /** + * 批量删除 + * + * @param moduleId + * @return + */ + Integer deleteFilesByModuleId(@Param("moduleId") String moduleId); + + /** + * 批量删除 + * + * @param moduleId + * @param moduleType + * @return + */ + Integer deleteFilesByModuleIdAndModuleType(@Param("moduleId") String moduleId, @Param("moduleType") String moduleType); + + /** + * @param moduleId + * @return + */ + List listFilesByModuleId(@Param("moduleId") String moduleId); + + List listFilesByFileIds(@Param("fileIds") List fileIds); + + List listFilesByModuleIdAndModuleType(@Param("moduleId") String moduleId, @Param("moduleType") String moduleType); + + List listFilesByModuleIdAndModuleTypes(@Param("moduleId") String moduleId, @Param("moduleTypes") List moduleTypes); + + List listFilesByModuleIdsAndModuleType(@Param("moduleIds") List moduleIds, @Param("moduleType") String moduleType); + + List queryListByPage(Page page, @Param("queryDTO") FileQueryDTO queryDTO); +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/file/constant/FileModuleTypeEnum.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/file/constant/FileModuleTypeEnum.java new file mode 100644 index 00000000..8052b767 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/file/constant/FileModuleTypeEnum.java @@ -0,0 +1,47 @@ +package net.lab1024.smartadmin.module.support.file.constant; + +import net.lab1024.smartadmin.common.domain.BaseEnum; + +/** + * [] + * + * @author yandanyang + * @version 1.0 + * @since JDK1.8 + */ +public enum FileModuleTypeEnum implements BaseEnum { + + /** + * path 首字符不能包含\ 或者/ + */ + + BACK_USER(1, "backUser/config", "backUser"), + + CODE_REVIEW(2, "codeReview", "CodeReview"); + + private Integer value; + + private String path; + + private String desc; + + FileModuleTypeEnum(Integer value, String path, String desc) { + this.value = value; + this.path = path; + this.desc = desc; + } + + public String getPath() { + return path; + } + + @Override + public Integer getValue() { + return this.value; + } + + @Override + public String getDesc() { + return this.desc; + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/file/constant/FileResponseCodeConst.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/file/constant/FileResponseCodeConst.java new file mode 100644 index 00000000..fd5abfb9 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/file/constant/FileResponseCodeConst.java @@ -0,0 +1,37 @@ +package net.lab1024.smartadmin.module.support.file.constant; + +import net.lab1024.smartadmin.common.constant.ResponseCodeConst; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + * @since JDK1.8 + */ +public class FileResponseCodeConst extends ResponseCodeConst { + + /** + * 4001 -4999 + */ + public static final FileResponseCodeConst FILE_EMPTY = new FileResponseCodeConst(4001, "上传文件不存在!"); + + public static final FileResponseCodeConst FILE_SIZE_ERROR = new FileResponseCodeConst(4002, "上传文件超过%s,请重新上传!"); + + public static final FileResponseCodeConst UNKNOWN_FILE_TYPE = new FileResponseCodeConst(4003, "未知的文件类型!"); + + public static final FileResponseCodeConst LOCAL_UPDATE_PREFIX_ERROR = new FileResponseCodeConst(4004, "文件本地上传缺少URL前缀配置[local_upload_url_prefix]"); + + public static final FileResponseCodeConst UPLOAD_ERROR = new FileResponseCodeConst(4005, "上传失败"); + + public static final FileResponseCodeConst URL_ERROR = new FileResponseCodeConst(4006, "获取URL失败"); + + public static final FileResponseCodeConst FILE_MODULE_ERROR = new FileResponseCodeConst(4007, "文件目录类型错误"); + + public FileResponseCodeConst(int code, String msg) { + super(code, msg); + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/file/constant/FileServiceNameConst.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/file/constant/FileServiceNameConst.java new file mode 100644 index 00000000..012cffbf --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/file/constant/FileServiceNameConst.java @@ -0,0 +1,24 @@ +package net.lab1024.smartadmin.module.support.file.constant; +/** + * 文件服务名称常量 + * + * @author listen + * @date 2019/08/27 15:24 + */ +public class FileServiceNameConst { + + /** + * 阿里OSS文件服务 + */ + public static final String ALI_OSS = "ali_oss"; + + /** + * 七牛文件服务 + */ + public static final String QI_NIU_OSS = "qi_niu_oss"; + + /** + * 本地文件服务 + */ + public static final String LOCAL = "local"; +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/file/constant/FileServiceTypeEnum.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/file/constant/FileServiceTypeEnum.java new file mode 100644 index 00000000..793503fc --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/file/constant/FileServiceTypeEnum.java @@ -0,0 +1,52 @@ +package net.lab1024.smartadmin.module.support.file.constant; + +import net.lab1024.smartadmin.common.domain.BaseEnum; + +/** + * 文件服务枚举类 + * + * @author listen + * @date 2019年8月27日 14:27:16 + */ +public enum FileServiceTypeEnum implements BaseEnum { + + /** + * 本地文件服务 + */ + LOCAL(1, FileServiceNameConst.LOCAL, "本地文件服务"), + + /** + * 阿里OSS文件服务 + */ + ALI_OSS(2, FileServiceNameConst.ALI_OSS, "阿里OSS文件服务"), + + /** + * 七牛文件服务 + */ + QI_NIU_OSS(3, FileServiceNameConst.QI_NIU_OSS, "七牛文件服务"); + + private Integer locationType; + + private String serviceName; + + private String desc; + + FileServiceTypeEnum(Integer locationType, String serviceName, String desc) { + this.locationType = locationType; + this.serviceName = serviceName; + this.desc = desc; + } + + public String getServiceName() { + return serviceName; + } + @Override + public Integer getValue() { + return this.locationType; + } + + @Override + public String getDesc() { + return this.desc; + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/file/domain/dto/FileAddDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/file/domain/dto/FileAddDTO.java new file mode 100644 index 00000000..b097df0a --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/file/domain/dto/FileAddDTO.java @@ -0,0 +1,39 @@ +package net.lab1024.smartadmin.module.support.file.domain.dto; + +import net.lab1024.smartadmin.common.anno.ApiModelPropertyEnum; +import net.lab1024.smartadmin.common.validator.en.CheckEnum; +import net.lab1024.smartadmin.module.support.file.constant.FileServiceTypeEnum; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** +* @Description: 文件保存DTO +* @Author: sbq +* @CreateDate: 2019/9/11 15:05 +* @Version: 1.0 +*/ +@Data +public class FileAddDTO { + + @ApiModelProperty("相关业务id(无业务可写死一个id)") + @NotBlank(message = "相关业务id不能为空") + private String moduleId; + + @ApiModelProperty("相关业务类型(无模块写1)") + @NotBlank(message = "相关业务类型不能为空") + private String moduleType; + + @ApiModelPropertyEnum(enumDesc = "文件类型",value = FileServiceTypeEnum.class) + @CheckEnum(enumClazz = FileServiceTypeEnum.class,message = "文件类型错误") + private Integer fileLocationType; + + @ApiModelProperty("文件名称") + @NotBlank(message = "文件名称不能为空") + private String fileName; + + @ApiModelProperty("文件路径") + @NotBlank(message = "文件路径不能为空") + private String filePath; +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/file/domain/dto/FileDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/file/domain/dto/FileDTO.java new file mode 100644 index 00000000..16491d85 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/file/domain/dto/FileDTO.java @@ -0,0 +1,58 @@ +package net.lab1024.smartadmin.module.support.file.domain.dto; + +import net.lab1024.smartadmin.common.anno.ApiModelPropertyEnum; +import net.lab1024.smartadmin.module.support.file.constant.FileServiceTypeEnum; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.sql.Date; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + * @since JDK1.8 + */ +@Data +public class FileDTO { + + @ApiModelProperty("主键") + private Long id; + + @ApiModelProperty("相关业务id") + private String moduleId; + + @ApiModelProperty("相关业务类型") + private String moduleType; + + @ApiModelPropertyEnum(FileServiceTypeEnum.class) + private Integer fileLocationType; + + @ApiModelProperty("文件名称") + private String fileName; + + @ApiModelProperty("文件大小") + private String fileSize; + + @ApiModelProperty("文件类型") + private String fileType; + + @ApiModelProperty("文件路径") + private String filePath; + + @ApiModelProperty("上传人") + private Long createUser; + + @ApiModelProperty("updateTime") + private Date updateTime; + + @ApiModelProperty("创建时间") + private Date createTime; + + @ApiModelProperty("文件展示url(可用于下载,注:七牛云下载url要拼接 ?attname=文件名.jpg)") + private String fileUrl; +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/file/domain/dto/FileQueryDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/file/domain/dto/FileQueryDTO.java new file mode 100644 index 00000000..85df6375 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/file/domain/dto/FileQueryDTO.java @@ -0,0 +1,33 @@ +package net.lab1024.smartadmin.module.support.file.domain.dto; + +import net.lab1024.smartadmin.common.anno.ApiModelPropertyEnum; +import net.lab1024.smartadmin.common.domain.PageParamDTO; +import net.lab1024.smartadmin.common.validator.en.CheckEnum; +import net.lab1024.smartadmin.module.support.file.constant.FileModuleTypeEnum; +import net.lab1024.smartadmin.module.support.file.constant.FileServiceTypeEnum; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @Description: 文件信息查询dto + * @Author: sbq + * @CreateDate: 2019/7/3 17:38 + * @Version: 1.0 + */ +@Data +public class FileQueryDTO extends PageParamDTO { + + @ApiModelProperty(value = "文件名称") + private String fileName; + + @ApiModelProperty(value = "业务类型") + @ApiModelPropertyEnum(FileModuleTypeEnum.class) + @CheckEnum(enumClazz = FileModuleTypeEnum.class, message = "文件业务类型错误") + private Integer moduleType; + + @ApiModelProperty(value = "文件位置") + @ApiModelPropertyEnum(FileServiceTypeEnum.class) + @CheckEnum(enumClazz = FileServiceTypeEnum.class, message = "文件位置类型错误") + private Integer fileLocationType; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/file/domain/dto/OSSConfig.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/file/domain/dto/OSSConfig.java new file mode 100644 index 00000000..112ad4eb --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/file/domain/dto/OSSConfig.java @@ -0,0 +1,35 @@ +package net.lab1024.smartadmin.module.support.file.domain.dto; + +import lombok.Data; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/5/11 0011 下午 16:05 + * @since JDK1.8 + */ +@Data +public class OSSConfig { + + private String endpoint; + + private String accessKeyId; + + private String accessKeySecret; + + private String bucketName; + + @Override + public String toString() { + return "OSSConfig{" + + "endpoint='" + endpoint + '\'' + + ", accessKeyId='" + accessKeyId + '\'' + + ", accessKeySecret='" + accessKeySecret + '\'' + + ", bucketName='" + bucketName + '\'' + + '}'; + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/file/domain/entity/FileEntity.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/file/domain/entity/FileEntity.java new file mode 100644 index 00000000..38b0db3d --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/file/domain/entity/FileEntity.java @@ -0,0 +1,58 @@ +package net.lab1024.smartadmin.module.support.file.domain.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import net.lab1024.smartadmin.common.domain.BaseEntity; +import lombok.Data; + + +/** + * + * [ ] + * + * @version 1.0 + * @since JDK1.8 + * @author yandanyang + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + */ +@Data +@TableName(value = "t_file") +public class FileEntity extends BaseEntity { + + + /** + * 相关业务id + */ + private String moduleId; + /** + * 相关业务类型 + */ + private String moduleType; + /** + * 文件位置类型 + */ + private Integer fileLocationType; + /** + * 文件名称 + */ + private String fileName; + /** + * 文件大小 + */ + private String fileSize; + /** + * 文件类型,程序中枚举控制,文件类型:如身份证正面,三证合一等等 + */ + private String fileType; + /** + * 文件key,用于文件下载 + */ + private String filePath; + /** + * 创建人,即上传人 + */ + private Long createrUser; + +} + diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/file/domain/vo/FileVO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/file/domain/vo/FileVO.java new file mode 100644 index 00000000..7f101482 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/file/domain/vo/FileVO.java @@ -0,0 +1,58 @@ +package net.lab1024.smartadmin.module.support.file.domain.vo; + +import net.lab1024.smartadmin.common.anno.ApiModelPropertyEnum; +import net.lab1024.smartadmin.module.support.file.constant.FileServiceTypeEnum; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.sql.Date; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + * @since JDK1.8 + */ +@Data +public class FileVO { + + @ApiModelProperty("主键") + private Long id; + + @ApiModelProperty("相关业务id") + private String moduleId; + + @ApiModelProperty("相关业务类型") + private String moduleType; + + @ApiModelPropertyEnum(FileServiceTypeEnum.class) + private Integer fileLocationType; + + @ApiModelProperty("文件名称") + private String fileName; + + @ApiModelProperty("文件大小") + private String fileSize; + + @ApiModelProperty("文件类型") + private String fileType; + + @ApiModelProperty("文件路径") + private String filePath; + + @ApiModelProperty("上传人") + private Long createUser; + + @ApiModelProperty("updateTime") + private Date updateTime; + + @ApiModelProperty("创建时间") + private Date createTime; + + @ApiModelProperty("文件展示url(可用于下载,注:七牛云下载url要拼接 ?attname=文件名.jpg)") + private String fileUrl; +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/file/domain/vo/UploadVO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/file/domain/vo/UploadVO.java new file mode 100644 index 00000000..f878e7a7 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/file/domain/vo/UploadVO.java @@ -0,0 +1,27 @@ +package net.lab1024.smartadmin.module.support.file.domain.vo; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2018/12/11 0011 上午 10:57 + * @since JDK1.8 + */ +@Data +public class UploadVO { + + @ApiModelProperty(value = "文件名称") + private String fileName; + @ApiModelProperty(value = "url") + private String url; + @ApiModelProperty(value = "filePath") + private String filePath; + @ApiModelProperty(value = "文件大小") + private Long fileSize; +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/file/service/FileService.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/file/service/FileService.java new file mode 100644 index 00000000..9f645620 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/file/service/FileService.java @@ -0,0 +1,198 @@ +package net.lab1024.smartadmin.module.support.file.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import net.lab1024.smartadmin.common.domain.PageResultDTO; +import net.lab1024.smartadmin.common.domain.ResponseDTO; +import net.lab1024.smartadmin.module.support.file.FileDao; +import net.lab1024.smartadmin.module.support.file.constant.FileModuleTypeEnum; +import net.lab1024.smartadmin.module.support.file.constant.FileResponseCodeConst; +import net.lab1024.smartadmin.module.support.file.constant.FileServiceTypeEnum; +import net.lab1024.smartadmin.module.support.file.domain.dto.FileAddDTO; +import net.lab1024.smartadmin.module.support.file.domain.dto.FileDTO; +import net.lab1024.smartadmin.module.support.file.domain.dto.FileQueryDTO; +import net.lab1024.smartadmin.module.support.file.domain.entity.FileEntity; +import net.lab1024.smartadmin.module.support.file.domain.vo.FileVO; +import net.lab1024.smartadmin.module.support.file.domain.vo.UploadVO; +import net.lab1024.smartadmin.module.system.login.domain.RequestTokenBO; +import net.lab1024.smartadmin.util.SmartBaseEnumUtil; +import net.lab1024.smartadmin.util.SmartBeanUtil; +import net.lab1024.smartadmin.util.SmartPageUtil; +import com.google.common.collect.Lists; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import java.time.LocalDateTime; +import java.util.Arrays; +import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + * @since JDK1.8 + */ +@Service +public class FileService { + + @Autowired + private FileDao fileDao; + + @Autowired + private java.util.Map fileServiceMap; + + /** + * 获取文件服务实现 + * + * @param typeEnum + * @return + */ + private IFileService getFileService(FileServiceTypeEnum typeEnum) { + /** + * 获取文件服务 + */ + String serviceName = typeEnum.getServiceName(); + IFileService fileService = fileServiceMap.get(serviceName); + if (null == fileService) { + throw new RuntimeException("未找到文件服务实现类:" + serviceName); + } + return fileService; + } + + /** + * 文件上传服务 + * + * @param file + * @param typeEnum 文件服务类型枚举类 + * @param moduleType 文件夹类型 + * @return + */ + public ResponseDTO fileUpload(MultipartFile file, FileServiceTypeEnum typeEnum, Integer moduleType) { + FileModuleTypeEnum moduleTypeEnum = SmartBaseEnumUtil.getEnumByValue(moduleType, FileModuleTypeEnum.class); + if (null == moduleTypeEnum) { + return ResponseDTO.wrap(FileResponseCodeConst.FILE_MODULE_ERROR); + } + // 获取文件服务 + IFileService fileService = this.getFileService(typeEnum); + ResponseDTO response = fileService.fileUpload(file, moduleTypeEnum.getPath()); + return response; + } + + /** + * 根据文件绝对路径 获取文件URL + * + * @param path + * @return + */ + public ResponseDTO getFileUrl(String path, FileServiceTypeEnum typeEnum) { + IFileService fileService = this.getFileService(typeEnum); + return fileService.getFileUrl(path); + } + + /** + * 批量插入 + * + * @param fileDTOList + */ + public void insertFileBatch(List fileDTOList) { + fileDao.insertFileBatch(fileDTOList); + } + + /** + * 根据module 删除文件信息 + * + * @param moduleId + * @return + */ + public void deleteFilesByModuleId(String moduleId) { + fileDao.deleteFilesByModuleId(moduleId); + } + + /** + * 根据module 获取文件信息 + * + * @param moduleId + * @return + */ + public List listFilesByModuleId(String moduleId) { + return fileDao.listFilesByModuleId(moduleId); + } + + /** + * @param filesStr 逗号分隔文件id字符串 + * @return + */ + public List getFileDTOList(String filesStr) { + if (StringUtils.isEmpty(filesStr)) { + return Lists.newArrayList(); + } + String[] fileIds = filesStr.split(","); + List fileIdList = Arrays.asList(fileIds).stream().map(e -> Long.valueOf(e)).collect(Collectors.toList()); + List files = fileDao.listFilesByFileIds(fileIdList); + return files; + } + + /** + * 分页查询文件列表 + * + * @param queryDTO + * @return + */ + public ResponseDTO> queryListByPage(FileQueryDTO queryDTO) { + Page page = SmartPageUtil.convert2QueryPage(queryDTO); + List fileList = fileDao.queryListByPage(page, queryDTO); + if (CollectionUtils.isNotEmpty(fileList)) { + fileList.forEach(e -> { + // 根据文件服务类 获取对应文件服务 查询 url + FileServiceTypeEnum serviceTypeEnum = SmartBaseEnumUtil.getEnumByValue(e.getFileLocationType(), FileServiceTypeEnum.class); + IFileService fileService = this.getFileService(serviceTypeEnum); + e.setFileUrl(fileService.getFileUrl(e.getFilePath()).getData()); + }); + } + PageResultDTO pageResultDTO = SmartPageUtil.convert2PageResult(page, fileList); + return ResponseDTO.succData(pageResultDTO); + } + + /** + * 根据id 下载文件 + * + * @param id + * @param request + * @return + */ + public ResponseEntity downLoadById(Long id, HttpServletRequest request) { + FileEntity entity = fileDao.selectById(id); + if (null == entity) { + throw new RuntimeException("文件信息不存在"); + } + + // 根据文件服务类 获取对应文件服务 查询 url + FileServiceTypeEnum serviceTypeEnum = SmartBaseEnumUtil.getEnumByValue(entity.getFileLocationType(), FileServiceTypeEnum.class); + IFileService fileService = this.getFileService(serviceTypeEnum); + ResponseEntity stream = fileService.fileDownload(entity.getFilePath(), entity.getFileName(), request); + return stream; + } + + /** + * 系统文件保存通用接口 + * @param addDTO + * @return + */ + public ResponseDTO saveFile(FileAddDTO addDTO, RequestTokenBO requestToken) { + FileEntity entity = SmartBeanUtil.copy(addDTO,FileEntity.class); + entity.setCreaterUser(requestToken.getRequestUserId()); + entity.setCreateTime(new Date()); + fileDao.insert(entity); + return ResponseDTO.succ(); + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/file/service/FileServiceAliYun.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/file/service/FileServiceAliYun.java new file mode 100644 index 00000000..15ae3feb --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/file/service/FileServiceAliYun.java @@ -0,0 +1,182 @@ +package net.lab1024.smartadmin.module.support.file.service; + +import com.aliyun.oss.OSSClient; +import com.aliyun.oss.model.OSSObject; +import com.aliyun.oss.model.ObjectMetadata; +import com.aliyun.oss.model.PutObjectRequest; +import net.lab1024.smartadmin.common.domain.ResponseDTO; +import net.lab1024.smartadmin.module.support.file.constant.FileResponseCodeConst; +import net.lab1024.smartadmin.module.support.file.constant.FileServiceNameConst; +import net.lab1024.smartadmin.module.support.file.domain.dto.OSSConfig; +import net.lab1024.smartadmin.module.support.file.domain.vo.UploadVO; +import net.lab1024.smartadmin.module.system.systemconfig.SystemConfigService; +import net.lab1024.smartadmin.module.system.systemconfig.constant.SystemConfigEnum; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; +import org.springframework.util.FileCopyUtils; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import java.io.ByteArrayInputStream; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.net.URL; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/5/10 0010 上午 8:29 + * @since JDK1.8 + */ +@Slf4j +@Service(FileServiceNameConst.ALI_OSS) +public class FileServiceAliYun implements IFileService { + + @Autowired + private SystemConfigService systemConfigService; + + OSSClient ossClient = null; + + String accessConfig = null; + + @Override + public ResponseDTO fileUpload(MultipartFile multipartFile, String path) { + OSSConfig ossConfig = systemConfigService.selectByKey2Obj(SystemConfigEnum.Key.ALI_OSS.name(), OSSConfig.class); + try { + InputStream inputStream = new ByteArrayInputStream(multipartFile.getBytes()); + if (! ossConfig.toString().equals(accessConfig)) { + //accessKeyId 发生变动自动创建新的 + if (ossClient != null) { + ossClient.shutdown(); + } + ossClient = new OSSClient(ossConfig.getEndpoint(), ossConfig.getAccessKeyId(), ossConfig.getAccessKeySecret()); + accessConfig = ossConfig.toString(); + } + String uuid = UUID.randomUUID().toString().replace("-", ""); + String ossPath = path + "/" + uuid; + String fileName = multipartFile.getOriginalFilename(); + String fileExt = fileName.substring(fileName.lastIndexOf(".") + 1); + ObjectMetadata meta = new ObjectMetadata(); + meta.setContentDisposition("attachment;filename=" + fileName); + Map userMetadata = new HashMap(); + userMetadata.put("fileName", fileName); + userMetadata.put("fileExt", fileExt); + userMetadata.put("fileSize", String.valueOf(multipartFile.getSize())); + meta.setUserMetadata(userMetadata); + meta.setContentType(this.getContentType(fileExt)); + PutObjectRequest putObjectRequest = new PutObjectRequest(ossConfig.getBucketName(), ossPath, inputStream, meta); + ossClient.putObject(putObjectRequest); + UploadVO localUploadVO = new UploadVO(); + localUploadVO.setUrl(this.getUrl(ossPath, ossConfig.getBucketName(), ossClient)); + localUploadVO.setFileName(fileName); + localUploadVO.setFilePath(ossPath); + localUploadVO.setFileSize(multipartFile.getSize()); + return ResponseDTO.succData(localUploadVO); + } catch (Exception e) { + log.error("ALI UPLOAD ERROR : {}", e); + } + return ResponseDTO.wrap(FileResponseCodeConst.UPLOAD_ERROR); + } + + @Override + public ResponseDTO getFileUrl(String path) { + OSSConfig ossConfig = systemConfigService.selectByKey2Obj(SystemConfigEnum.Key.ALI_OSS.name(), OSSConfig.class); + try { + if (! ossConfig.toString().equals(accessConfig)) { + //accessKeyId 发生变动自动创建新的 + if (ossClient != null) { + ossClient.shutdown(); + } + ossClient = new OSSClient(ossConfig.getEndpoint(), ossConfig.getAccessKeyId(), ossConfig.getAccessKeySecret()); + accessConfig = ossConfig.toString(); + } + String url = this.getUrl(path, ossConfig.getBucketName(), ossClient); + return ResponseDTO.succData(url); + } catch (Exception e) { + log.error("ALI getFileUrl ERROR : {}", e); + } + return ResponseDTO.wrap(FileResponseCodeConst.URL_ERROR); + } + + private String getUrl(String path, String bucketName, OSSClient ossClient) { + Date expiration = new Date(System.currentTimeMillis() + (60 * 60 * 1000)); + URL url = ossClient.generatePresignedUrl(bucketName, path, expiration); + return url.toString(); + } + + /** + * 流式下载(名称为原文件) + */ + @Override + public ResponseEntity fileDownload(String key, String fileName, HttpServletRequest request) { + File file = this.getFile(key, fileName); + if (file == null) { + throw new RuntimeException("文件不存在"); + } + return this.downloadMethod(file, request); + } + + /** + * 根据osskey获取文件 + * + * @param key + * @return + */ + public File getFile(String key, String fileName) { + OSSConfig ossConfig = systemConfigService.selectByKey2Obj(SystemConfigEnum.Key.ALI_OSS.name(), OSSConfig.class); + if (! ossConfig.toString().equals(accessConfig)) { + //accessKeyId 发生变动自动创建新的 + if (ossClient != null) { + ossClient.shutdown(); + } + ossClient = new OSSClient(ossConfig.getEndpoint(), ossConfig.getAccessKeyId(), ossConfig.getAccessKeySecret()); + accessConfig = ossConfig.toString(); + } + //获取oss对象 + OSSObject ossObject = ossClient.getObject(ossConfig.getBucketName(), key); + if (StringUtils.isBlank(fileName)) { + // 获取元信息 + ObjectMetadata objectMetadata = ossObject.getObjectMetadata(); + // 获取下载时文件名 + Map userMetadata = objectMetadata.getUserMetadata(); + fileName = userMetadata == null ? "" : userMetadata.get("filename"); + if (StringUtils.isBlank(fileName)) { + fileName = objectMetadata.getContentDisposition(); + } + } + // 创建文件 + File file = new File(fileName); + // 获得输入流 + InputStream objectContent = ossObject.getObjectContent(); + try { + // 输入流转换为字节流 + byte[] buffer = FileCopyUtils.copyToByteArray(objectContent); + // 字节流写入文件 + FileCopyUtils.copy(buffer, file); + // 关闭输入流 + objectContent.close(); + } catch (IOException e) { + log.error("文件获取失败:" + e); + return null; + } finally { + try { + ossObject.close(); + } catch (IOException e) { + log.error("", e); + } + } + return file; + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/file/service/FileServiceLocal.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/file/service/FileServiceLocal.java new file mode 100644 index 00000000..08aac36d --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/file/service/FileServiceLocal.java @@ -0,0 +1,123 @@ +package net.lab1024.smartadmin.module.support.file.service; + +import net.lab1024.smartadmin.common.domain.ResponseDTO; +import net.lab1024.smartadmin.module.support.file.constant.FileResponseCodeConst; +import net.lab1024.smartadmin.module.support.file.constant.FileServiceNameConst; +import net.lab1024.smartadmin.module.support.file.domain.vo.UploadVO; +import net.lab1024.smartadmin.module.system.systemconfig.SystemConfigDao; +import net.lab1024.smartadmin.module.system.systemconfig.constant.SystemConfigEnum; +import net.lab1024.smartadmin.module.system.systemconfig.domain.entity.SystemConfigEntity; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import java.io.File; +import java.io.IOException; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/5/11 0011 下午 16:15 + * @since JDK1.8 + */ +@Slf4j +@Service(FileServiceNameConst.LOCAL) +public class FileServiceLocal implements IFileService { + + @Autowired + private SystemConfigDao systemConfigDao; + + @Value("${spring.servlet.multipart.max-file-size}") + private String maxFileSize; + + @Value("${file-upload-service.path}") + private String fileParentPath; + + private static final Long DEFAULT_SIZE = 10 * 1024 * 1024L; + + @Override + public ResponseDTO fileUpload(MultipartFile multipartFile, String path) { + if (null == multipartFile) { + return ResponseDTO.wrap(FileResponseCodeConst.FILE_EMPTY); + } + Long maxSize = DEFAULT_SIZE; + if (StringUtils.isNotEmpty(maxFileSize)) { + String maxSizeStr = maxFileSize.toLowerCase().replace("mb", ""); + maxSize = Integer.valueOf(maxSizeStr) * 1024 * 1024L; + } + if (multipartFile.getSize() > maxSize) { + return ResponseDTO.wrap(FileResponseCodeConst.FILE_SIZE_ERROR, String.format(FileResponseCodeConst.FILE_SIZE_ERROR.getMsg(), maxFileSize)); + } + String filePath = fileParentPath; + String urlParent = this.localUrlPrefix(); + if (urlParent == null) { + return ResponseDTO.wrap(FileResponseCodeConst.LOCAL_UPDATE_PREFIX_ERROR); + } + if (StringUtils.isNotEmpty(path)) { + filePath = filePath + path + "/"; + urlParent = urlParent + path + "/"; + } + File directory = new File(filePath); + if (!directory.exists()) { + // 目录不存在,新建 + directory.mkdirs(); + } + UploadVO localUploadVO = new UploadVO(); + String newFileName; + File fileTemp; + String originalFileName; + originalFileName = multipartFile.getOriginalFilename(); + newFileName = this.generateFileName(originalFileName); + fileTemp = new File(new File(filePath + newFileName).getAbsolutePath()); + try { + multipartFile.transferTo(fileTemp); + localUploadVO.setUrl(urlParent + newFileName); + localUploadVO.setFileName(newFileName); + localUploadVO.setFilePath(path + "/" + newFileName); + localUploadVO.setFileSize(multipartFile.getSize()); + } catch (IOException e) { + if (fileTemp.exists() && fileTemp.isFile()) { + fileTemp.delete(); + } + log.error("", e); + return ResponseDTO.wrap(FileResponseCodeConst.UPLOAD_ERROR); + } + return ResponseDTO.succData(localUploadVO); + } + + @Override + public ResponseDTO getFileUrl(String path) { + String urlParent = this.localUrlPrefix(); + if (urlParent == null) { + return ResponseDTO.wrap(FileResponseCodeConst.LOCAL_UPDATE_PREFIX_ERROR); + } + String url = urlParent + path; + return ResponseDTO.succData(url); + } + + private String localUrlPrefix() { + SystemConfigEntity configEntity = systemConfigDao.getByKey(SystemConfigEnum.Key.LOCAL_UPLOAD_URL_PREFIX.name()); + if (configEntity == null) { + return null; + } + return configEntity.getConfigValue(); + } + + @Override + public ResponseEntity fileDownload(String key, String fileName, HttpServletRequest request) { + + String url = fileParentPath + key; + // 创建文件 + File file = new File(url); + return this.downloadMethod(file, request); + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/file/service/FileServiceQiNiuYun.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/file/service/FileServiceQiNiuYun.java new file mode 100644 index 00000000..394b7af8 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/file/service/FileServiceQiNiuYun.java @@ -0,0 +1,175 @@ +package net.lab1024.smartadmin.module.support.file.service; + +import net.lab1024.smartadmin.common.domain.ResponseDTO; +import net.lab1024.smartadmin.module.support.file.constant.FileResponseCodeConst; +import net.lab1024.smartadmin.module.support.file.constant.FileServiceNameConst; +import net.lab1024.smartadmin.module.support.file.domain.dto.OSSConfig; +import net.lab1024.smartadmin.module.support.file.domain.vo.UploadVO; +import net.lab1024.smartadmin.module.system.systemconfig.SystemConfigService; +import net.lab1024.smartadmin.module.system.systemconfig.constant.SystemConfigEnum; +import com.qiniu.http.Response; +import com.qiniu.storage.Configuration; +import com.qiniu.storage.UploadManager; +import com.qiniu.util.Auth; +import lombok.extern.slf4j.Slf4j; +import okhttp3.OkHttpClient; +import okhttp3.Request; +import okhttp3.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; +import org.springframework.util.FileCopyUtils; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import java.io.ByteArrayInputStream; +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.net.URLEncoder; +import java.util.UUID; + +/** + * [ 七牛云 ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/5/10 0010 上午 8:30 + * @since JDK1.8 + */ +@Slf4j +@Service(FileServiceNameConst.QI_NIU_OSS) +public class FileServiceQiNiuYun implements IFileService { + + //1小时,可以自定义链接过期时间 + private static final Long expireInSeconds = 3600L; + + @Autowired + private SystemConfigService systemConfigService; + + UploadManager ossClient = null; + + String accessConfig = null; + + String token = null; + + @Override + public ResponseDTO fileUpload(MultipartFile multipartFile, String path) { + OSSConfig ossConfig = systemConfigService.selectByKey2Obj(SystemConfigEnum.Key.QI_NIU_OSS.name(), OSSConfig.class); + try { + InputStream inputStream = new ByteArrayInputStream(multipartFile.getBytes()); + if (! ossConfig.toString().equals(accessConfig)) { + //accessKeyId 发生变动自动重新创建新的UploadManager + ossClient = new UploadManager(new Configuration()); + token = Auth.create(ossConfig.getAccessKeyId(), ossConfig.getAccessKeySecret()). + uploadToken(ossConfig.getBucketName()); + accessConfig = ossConfig.toString(); + } + String uuid = UUID.randomUUID().toString().replace("-", ""); + String ossPath = path + "/" + uuid; + String fileName = multipartFile.getOriginalFilename(); + String fileExt = fileName.substring(fileName.lastIndexOf(".") + 1); + String mime = this.getContentType(fileExt); + Response res = ossClient.put(inputStream, ossPath, token, null, mime); + if (! res.isOK()) { + log.error("QINIU fileUpload ERROR : {}", res.toString()); + return ResponseDTO.wrap(FileResponseCodeConst.UPLOAD_ERROR); + } + UploadVO localUploadVO = new UploadVO(); + localUploadVO.setUrl(this.getFileUrl(ossPath).getData()); + localUploadVO.setFileName(fileName); + localUploadVO.setFilePath(ossPath); + localUploadVO.setFileSize(multipartFile.getSize()); + return ResponseDTO.succData(localUploadVO); + } catch (Exception e) { + log.error("QINIU fileUpload ERROR : {}", e); + } + return ResponseDTO.wrap(FileResponseCodeConst.UPLOAD_ERROR); + } + + @Override + public ResponseDTO getFileUrl(String path) { + OSSConfig ossConfig = systemConfigService.selectByKey2Obj(SystemConfigEnum.Key.QI_NIU_OSS.name(), OSSConfig.class); + try { + if (! ossConfig.toString().equals(accessConfig)) { + //accessKeyId 发生变动自动重新创建新的UploadManager + ossClient = new UploadManager(new Configuration()); + token = Auth.create(ossConfig.getAccessKeyId(), ossConfig.getAccessKeySecret()). + uploadToken(ossConfig.getBucketName()); + accessConfig = ossConfig.toString(); + } + String encodedFileName = URLEncoder.encode(path, "utf-8"); + String domainOfBucket = ossConfig.getEndpoint(); + String publicUrl = String.format("%s/%s", domainOfBucket, encodedFileName); + String accessKey = ossConfig.getAccessKeyId(); + String secretKey = ossConfig.getAccessKeySecret(); + Auth auth = Auth.create(accessKey, secretKey); + //1小时,可以自定义链接过期时间 + long expireInSeconds = 3600; + String finalUrl = auth.privateDownloadUrl(publicUrl, expireInSeconds); + return ResponseDTO.succData(finalUrl); + } catch (Exception e) { + log.error("QINIU getFileUrl ERROR : {}", e); + } + return ResponseDTO.wrap(FileResponseCodeConst.URL_ERROR); + } + + @Override + public ResponseEntity fileDownload(String key, String fileName, HttpServletRequest request) { + File file = this.getFile(key, fileName); + if (file == null) { + throw new RuntimeException("文件不存在"); + } + return this.downloadMethod(file, request); + } + + /** + * 获取下载路径 + */ + public String getDownloadUrl(String key) { + OSSConfig ossConfig = systemConfigService.selectByKey2Obj(SystemConfigEnum.Key.QI_NIU_OSS.name(), OSSConfig.class); + String domainOfBucket = ossConfig.getEndpoint(); + String finalUrl = ""; + try { + String encodedFileName = URLEncoder.encode(key, "utf-8").replace("+", "%20"); + String publicUrl = String.format("%s/%s", domainOfBucket, encodedFileName); + Auth auth = Auth.create(ossConfig.getAccessKeyId(), ossConfig.getAccessKeySecret()); + finalUrl = auth.privateDownloadUrl(publicUrl, expireInSeconds); + } catch (Exception e) { + log.error("QINIU download ERROR : {}", e); + } + return finalUrl; + } + + /** + * 获取文件 + */ + public File getFile(String key, String fileName) { + String finalUrl = getDownloadUrl(key); + OkHttpClient client = new OkHttpClient(); + Request req = new Request.Builder().url(finalUrl).build(); + okhttp3.Response resp = null; + File file = new File(fileName); + try { + resp = client.newCall(req).execute(); + if (resp.isSuccessful()) { + ResponseBody body = resp.body(); + InputStream objectContent = body.byteStream(); + // 输入流转换为字节流 + byte[] buffer = FileCopyUtils.copyToByteArray(objectContent); + // 字节流写入文件 + FileCopyUtils.copy(buffer, file); + // 关闭输入流 + objectContent.close(); + } + + } catch (IOException e) { + log.error("文件获取失败:" + e); + return null; + } finally { + } + return file; + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/file/service/IFileService.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/file/service/IFileService.java new file mode 100644 index 00000000..a818ae42 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/file/service/IFileService.java @@ -0,0 +1,152 @@ +package net.lab1024.smartadmin.module.support.file.service; + +import net.lab1024.smartadmin.common.domain.ResponseDTO; +import net.lab1024.smartadmin.module.support.file.domain.vo.UploadVO; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.util.FileCopyUtils; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletRequest; +import java.io.File; +import java.io.FileInputStream; +import java.io.InputStream; +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.UUID; + +/** + * 文件服务接口 + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/5/11 0011 下午 16:42 + * @since JDK1.8 + */ +public interface IFileService { + + /** + * 文件上传 + * + * @param multipartFile + * @param path + * @return + */ + ResponseDTO fileUpload(MultipartFile multipartFile, String path); + + /** + * 获取文件url + * + * @param path + * @return + */ + ResponseDTO getFileUrl(String path); + + /** + * 文件下载 + * + * @param key + * @param fileName + * @param request + * @return + */ + ResponseEntity fileDownload(String key, String fileName, HttpServletRequest request); + + /** + * 生成文件名字 + * 当前年月日时分秒 +32位 uuid + 文件格式后缀 + * + * @param originalFileName + * @return String + */ + default String generateFileName(String originalFileName) { + String time = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMddhhmms")); + String uuid = UUID.randomUUID().toString().replaceAll("-", ""); + String fileType = originalFileName.substring(originalFileName.lastIndexOf(".")); + return time + uuid + fileType; + } + + /** + * 获取文件类型 + * + * @param fileExt + * @return + */ + default String getContentType(String fileExt) { + // 文件的后缀名 + if ("bmp".equalsIgnoreCase(fileExt)) { + return "image/bmp"; + } + if ("gif".equalsIgnoreCase(fileExt)) { + return "image/gif"; + } + if ("jpeg".equalsIgnoreCase(fileExt) || "jpg".equalsIgnoreCase(fileExt) || ".png".equalsIgnoreCase(fileExt)) { + return "image/jpeg"; + } + if ("png".equalsIgnoreCase(fileExt)) { + return "image/png"; + } + if ("html".equalsIgnoreCase(fileExt)) { + return "text/html"; + } + if ("txt".equalsIgnoreCase(fileExt)) { + return "text/plain"; + } + if ("vsd".equalsIgnoreCase(fileExt)) { + return "application/vnd.visio"; + } + if ("ppt".equalsIgnoreCase(fileExt) || "pptx".equalsIgnoreCase(fileExt)) { + return "application/vnd.ms-powerpoint"; + } + if ("doc".equalsIgnoreCase(fileExt) || "docx".equalsIgnoreCase(fileExt)) { + return "application/msword"; + } + if ("xml".equalsIgnoreCase(fileExt)) { + return "text/xml"; + } + return ""; + } + + default ResponseEntity downloadMethod(File file, HttpServletRequest request) { + HttpHeaders heads = new HttpHeaders(); + heads.add(HttpHeaders.CONTENT_TYPE, "application/octet-stream; charset=utf-8"); + String fileName = file.getName(); + try { + if (request.getHeader("User-Agent").toLowerCase().indexOf("firefox") > 0) { + // firefox浏览器 + fileName = new String(fileName.getBytes("UTF-8"), "ISO8859-1"); + } else if (request.getHeader("User-Agent").toUpperCase().indexOf("MSIE") > 0) { + // IE浏览器 + fileName = URLEncoder.encode(fileName, "UTF-8"); + } else if (request.getHeader("User-Agent").toUpperCase().indexOf("EDGE") > 0) { + // WIN10浏览器 + fileName = URLEncoder.encode(fileName, "UTF-8"); + } else if (request.getHeader("User-Agent").toUpperCase().indexOf("CHROME") > 0) { + // 谷歌 + fileName = new String(fileName.getBytes("UTF-8"), "ISO8859-1"); + } else { + //万能乱码问题解决 + fileName = new String(fileName.getBytes("UTF-8"), "ISO-8859-1"); + } + } catch (UnsupportedEncodingException e) { + // log.error("", e); + } + heads.add(HttpHeaders.CONTENT_DISPOSITION, "attachment;filename=" + fileName); + try { + InputStream in = new FileInputStream(file); + // 输入流转换为字节流 + byte[] buffer = FileCopyUtils.copyToByteArray(in); + ResponseEntity responseEntity = new ResponseEntity<>(buffer, heads, HttpStatus.OK); + //file.delete(); + return responseEntity; + } catch (Exception e) { + // log.error("", e); + } + return null; + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/heartbeat/HeartBeatController.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/heartbeat/HeartBeatController.java new file mode 100644 index 00000000..a9671255 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/heartbeat/HeartBeatController.java @@ -0,0 +1,32 @@ +package net.lab1024.smartadmin.module.support.heartbeat; + +import net.lab1024.smartadmin.common.anno.OperateLog; +import net.lab1024.smartadmin.common.domain.PageParamDTO; +import net.lab1024.smartadmin.common.domain.PageResultDTO; +import net.lab1024.smartadmin.common.domain.ResponseDTO; +import net.lab1024.smartadmin.constant.SwaggerTagConst; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; + +import javax.validation.Valid; + + +@Api(tags = {SwaggerTagConst.Admin.MANAGER_HEART_BEAT}) +@OperateLog +@RestController +public class HeartBeatController { + + @Autowired + private HeartBeatService heartBeatService; + + @PostMapping("/heartBeat/query") + @ApiOperation("查询心跳记录 @author zhuoda") + public ResponseDTO> query(@RequestBody @Valid PageParamDTO pageParamDTO){ + return heartBeatService.pageQuery(pageParamDTO); + } + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/heartbeat/HeartBeatRecordDao.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/heartbeat/HeartBeatRecordDao.java new file mode 100644 index 00000000..e10c8e8c --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/heartbeat/HeartBeatRecordDao.java @@ -0,0 +1,52 @@ +package net.lab1024.smartadmin.module.support.heartbeat; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Component; + +import java.util.Date; +import java.util.List; + +/** + * 心跳日志数据库操作 + * + * @author : simajinqiang + * Date: 2018/7/9 + * Time: 17:37 + */ +@Component +@Mapper +public interface HeartBeatRecordDao extends BaseMapper { + + /** + * 新增心跳日志 + * + * @param heartBeatRecordEntity + */ + void insertHeartBeat(HeartBeatRecordEntity heartBeatRecordEntity); + + /** + * 更新心跳日志 + * + * @param id + * @param heartBeatTime + */ + void updateHeartBeatTimeById(@Param("id") Long id, @Param("heartBeatTime") Date heartBeatTime); + + /** + * 查询心跳日志 + * + * @param heartBeatRecordEntity + * @return + */ + HeartBeatRecordEntity query(HeartBeatRecordEntity heartBeatRecordEntity); + + + /** + * 分页查询心跳记录 + * @return + */ + List pageQuery(Page page); +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/heartbeat/HeartBeatRecordEntity.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/heartbeat/HeartBeatRecordEntity.java new file mode 100644 index 00000000..694eb936 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/heartbeat/HeartBeatRecordEntity.java @@ -0,0 +1,42 @@ +package net.lab1024.smartadmin.module.support.heartbeat; + +import com.baomidou.mybatisplus.annotation.TableName; +import net.lab1024.smartadmin.common.domain.BaseEntity; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * 心跳记录日志 + * User: simajinqiang + * Date: 2018/7/9 + * Time: 11:11 + */ +@Data +@TableName(value = "t_heart_beat_record") +public class HeartBeatRecordEntity extends BaseEntity implements Serializable { + + /** + * 项目名字 + */ + private String projectPath; + /** + * 服务器ip + */ + private String serverIp; + /** + * 进程号 + */ + private Integer processNo; + /** + * 进程开启时间 + */ + private Date processStartTime; + /** + * 心跳当前时间 + */ + private Date heartBeatTime; + + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/heartbeat/HeartBeatRecordVO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/heartbeat/HeartBeatRecordVO.java new file mode 100644 index 00000000..34e98932 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/heartbeat/HeartBeatRecordVO.java @@ -0,0 +1,36 @@ +package net.lab1024.smartadmin.module.support.heartbeat; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * 心跳记录日志 + * User: simajinqiang + * Date: 2018/7/9 + * Time: 11:11 + */ +@Data +public class HeartBeatRecordVO implements Serializable { + + private Integer id; + + @ApiModelProperty("项目名字") + private String projectPath; + + @ApiModelProperty("服务器ip") + private String serverIp; + + @ApiModelProperty("进程号") + private Integer processNo; + + @ApiModelProperty("进程开启时间") + private Date processStartTime; + + @ApiModelProperty("心跳当前时间") + private Date heartBeatTime; + + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/heartbeat/HeartBeatService.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/heartbeat/HeartBeatService.java new file mode 100644 index 00000000..b474c174 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/heartbeat/HeartBeatService.java @@ -0,0 +1,90 @@ +package net.lab1024.smartadmin.module.support.heartbeat; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import net.lab1024.smartadmin.common.domain.PageParamDTO; +import net.lab1024.smartadmin.common.domain.PageResultDTO; +import net.lab1024.smartadmin.common.domain.ResponseDTO; +import net.lab1024.smartadmin.common.heartbeat.AbstractHeartBeatCommand; +import net.lab1024.smartadmin.common.heartbeat.HeartBeatConfig; +import net.lab1024.smartadmin.common.heartbeat.HeartBeatLogger; +import net.lab1024.smartadmin.common.heartbeat.HeartBeatRecordDTO; +import net.lab1024.smartadmin.config.SmartHeartBeatConfig; +import net.lab1024.smartadmin.util.SmartBeanUtil; +import net.lab1024.smartadmin.util.SmartPageUtil; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.annotation.PostConstruct; +import javax.annotation.PreDestroy; +import java.util.List; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + * @since JDK1.8 + */ +@Slf4j +@Service +public class HeartBeatService extends AbstractHeartBeatCommand { + + @Autowired + private HeartBeatRecordDao heartBeatRecordDao; + + @Autowired + private SmartHeartBeatConfig heartBeatConfig; + + @PostConstruct + public void init() { + + HeartBeatConfig config = HeartBeatConfig.builder().delayHandlerTime(heartBeatConfig.getDelayHandlerTime()).intervalTime(heartBeatConfig.getIntervalTime()).build(); + + super.init(config, new HeartBeatLogger() { + @Override + public void error(String string) { + log.error(string); + } + + @Override + public void error(String string, Throwable e) { + log.error(string, e); + } + + @Override + public void info(String string) { + log.info(string); + } + }); + } + + @PreDestroy + @Override + public void destroy() { + super.destroy(); + } + + @Override + public void handler(HeartBeatRecordDTO heartBeatRecordDTO) { + HeartBeatRecordEntity heartBeatRecordEntity = SmartBeanUtil.copy(heartBeatRecordDTO, HeartBeatRecordEntity.class); + HeartBeatRecordEntity heartBeatRecordOld = heartBeatRecordDao.query(heartBeatRecordEntity); + if (heartBeatRecordOld == null) { + heartBeatRecordDao.insertHeartBeat(heartBeatRecordEntity); + } else { + heartBeatRecordDao.updateHeartBeatTimeById(heartBeatRecordOld.getId(), heartBeatRecordEntity.getHeartBeatTime()); + } + + } + + public ResponseDTO> pageQuery(PageParamDTO pageParamDTO) { + Page pageQueryInfo = SmartPageUtil.convert2QueryPage(pageParamDTO); + List recordVOList = heartBeatRecordDao.pageQuery(pageQueryInfo); + PageResultDTO pageResultDTO = SmartPageUtil.convert2PageResult(pageQueryInfo, recordVOList); + return ResponseDTO.succData(pageResultDTO); + + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/idgenerator/IdGeneratorDao.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/idgenerator/IdGeneratorDao.java new file mode 100644 index 00000000..e6e1341e --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/idgenerator/IdGeneratorDao.java @@ -0,0 +1,36 @@ +package net.lab1024.smartadmin.module.support.idgenerator; + + +import net.lab1024.smartadmin.module.support.idgenerator.domain.IdGeneratorEntity; +import net.lab1024.smartadmin.module.support.idgenerator.domain.IdGeneratorLastNumberDTO; +import net.lab1024.smartadmin.module.support.idgenerator.domain.IdGeneratorRecordDTO; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + * + * zhuo + */ +@Mapper +public interface IdGeneratorDao { + + IdGeneratorLastNumberDTO selectLastNumber(Long id); + + List selectAll(); + + void updateLastNumber(@Param("generatorId") Long generatorId, @Param("lastNumber") Long lastNumber); + + int replaceIdGeneratorRecord(@Param("generatorId") Long generatorId,// + @Param("year") int year,// + @Param("month") int month,// + @Param("day") int day,// + @Param("lastNumber") Long lastNumber); + + IdGeneratorRecordDTO selectHistoryLastNumber(@Param("generatorId") Long generatorId, + @Param("year") int year, + @Param("month") int month, + @Param("day") int day); + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/idgenerator/IdGeneratorManager.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/idgenerator/IdGeneratorManager.java new file mode 100644 index 00000000..1b2a926d --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/idgenerator/IdGeneratorManager.java @@ -0,0 +1,66 @@ +package net.lab1024.smartadmin.module.support.idgenerator; + +import net.lab1024.smartadmin.common.exception.SmartBusinessException; +import net.lab1024.smartadmin.module.support.idgenerator.domain.IdGeneratorLastNumberDTO; +import net.lab1024.smartadmin.module.support.idgenerator.domain.IdGeneratorPOJO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.util.Date; + +/** + * 全局id生成器 + * zhuo + */ +@Service +public class IdGeneratorManager { + + @Autowired + private IdGeneratorDao idGeneratorDao; + + @Transactional(rollbackFor = Exception.class) + public long[] generate(IdGeneratorPOJO idGeneratorPOJO, int stepLength) { + IdGeneratorLastNumberDTO idGeneratorLastNumberDTO = idGeneratorDao.selectLastNumber(idGeneratorPOJO.getIdGeneratorEntity().getId()); + if (idGeneratorLastNumberDTO == null) { + throw new SmartBusinessException("IdGenerator, id 数据库不存在" + idGeneratorPOJO.getIdGeneratorEntity().getId()); + } + + Long lastNumber = idGeneratorLastNumberDTO.getLastNumber(); + if (lastNumber == null) { + lastNumber = idGeneratorPOJO.getIdGeneratorEntity().getInitNumber(); + } else { + lastNumber = lastNumber + 1; + } + + Date updateTime = idGeneratorLastNumberDTO.getUpdateTime(); + if (updateTime == null) { + updateTime = idGeneratorLastNumberDTO.getDatabaseTime(); + } + + Long startValue = -1L, endValue = -1L; + switch (idGeneratorPOJO.getIdGeneratorRuleTypeEnum()) { + case NO_CYCLE: + startValue = lastNumber.longValue(); + endValue = startValue + stepLength; + break; + default: + SimpleDateFormat format = new SimpleDateFormat(idGeneratorPOJO.getIdGeneratorRuleTypeEnum().getExt()); + if (format.format(idGeneratorLastNumberDTO.getDatabaseTime()).equals(format.format(updateTime))) { + startValue = lastNumber.longValue(); + endValue = startValue + stepLength; + } else { + startValue = idGeneratorPOJO.getIdGeneratorEntity().getInitNumber(); + endValue = startValue + stepLength; + } + break; + } + + idGeneratorDao.updateLastNumber(idGeneratorPOJO.getIdGeneratorEntity().getId(), endValue - 1); + LocalDate localDate = LocalDate.now(); + idGeneratorDao.replaceIdGeneratorRecord(idGeneratorPOJO.getIdGeneratorEntity().getId(), localDate.getYear(), localDate.getMonthValue(), localDate.getDayOfMonth(), endValue - 1); + return new long[]{startValue, endValue}; + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/idgenerator/IdGeneratorService.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/idgenerator/IdGeneratorService.java new file mode 100644 index 00000000..ca5d581b --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/idgenerator/IdGeneratorService.java @@ -0,0 +1,140 @@ +package net.lab1024.smartadmin.module.support.idgenerator; + +import net.lab1024.smartadmin.common.exception.SmartBusinessException; +import net.lab1024.smartadmin.module.support.idgenerator.constant.IdGeneratorEnum; +import net.lab1024.smartadmin.module.support.idgenerator.constant.IdGeneratorRuleTypeEnum; +import net.lab1024.smartadmin.module.support.idgenerator.domain.IdGeneratorEntity; +import net.lab1024.smartadmin.module.support.idgenerator.domain.IdGeneratorPOJO; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.annotation.PostConstruct; +import java.time.LocalDate; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +/** + * 全局id生成器 + * zhuo + */ +@Slf4j +@Service +public class IdGeneratorService { + + private Map idGeneratorMap; + + @Autowired + private IdGeneratorDao idGeneratorDao; + + @Autowired + private IdGeneratorManager idGeneratorManager; + + @PostConstruct + void init() { + this.idGeneratorMap = new ConcurrentHashMap<>(); + List idGeneratorEntities = idGeneratorDao.selectAll(); + if (idGeneratorEntities != null) { + idGeneratorEntities.forEach(e -> { + IdGeneratorRuleTypeEnum idGeneratorRuleTypeEnum = this.getIdGeneratorRuleTypeEnum(e.getRuleType()); + if (idGeneratorRuleTypeEnum != null) { + IdGeneratorPOJO idGeneratorPOJO = new IdGeneratorPOJO(idGeneratorRuleTypeEnum, e); + String ruleFormat = e.getRuleFormat(); + int startNInx = ruleFormat.indexOf("[n"); + int endNInx = ruleFormat.indexOf("n]"); + idGeneratorPOJO.setNumberCount(endNInx - startNInx); + idGeneratorPOJO.setHaveDay(ruleFormat.contains("[dd]")); + idGeneratorPOJO.setHaveMonth(ruleFormat.contains("[mm]")); + idGeneratorPOJO.setHaveYear(ruleFormat.contains("[yyyy]")); + this.idGeneratorMap.put(e.getId(), idGeneratorPOJO); + } else { + log.error("cannot find rule type , id : {}, key name : {} ", e.getId(), e.getKeyName()); + } + }); + } + } + + public String generate(IdGeneratorEnum idGeneratorEnum) { + return generate(idGeneratorEnum, 1).get(0); + } + + /** + * @param idGeneratorEnum + * @param stepLength + * @return + */ + public List generate(IdGeneratorEnum idGeneratorEnum, int stepLength) { + IdGeneratorPOJO idGeneratorPOJO = validateParams(idGeneratorEnum, stepLength); + long[] generateIds = idGeneratorManager.generate(idGeneratorPOJO, stepLength); + Long startValue = generateIds[0], endValue = generateIds[1]; + LocalDate now = LocalDate.now(); + String year = String.valueOf(now.getYear()); + String month = now.getMonthValue() > 9 ? String.valueOf(now.getMonthValue()) : "0" + now.getMonthValue(); + String day = now.getDayOfMonth() > 9 ? String.valueOf(now.getDayOfMonth()) : "0" + now.getDayOfMonth(); + ArrayList codeList = new ArrayList<>(); + for (long loop = startValue; loop < endValue; loop++) { + String generateBillCode = this.replaceAndFill(idGeneratorPOJO, loop, year, month, day); + codeList.add(generateBillCode); + } + return codeList; + } + + private IdGeneratorRuleTypeEnum getIdGeneratorRuleTypeEnum(String ruleType) { + for (IdGeneratorRuleTypeEnum en : IdGeneratorRuleTypeEnum.values()) { + if (en.name().equalsIgnoreCase(ruleType)) { + return en; + } + } + return null; + } + + private IdGeneratorPOJO validateParams(IdGeneratorEnum idGeneratorEnum, int stepLength) { + if (stepLength < 1) { + throw new SmartBusinessException("IdGenerator, step过短" + stepLength); + } + + IdGeneratorPOJO idGeneratorPOJO = this.idGeneratorMap.get(idGeneratorEnum.getId()); + if (idGeneratorPOJO == null) { + throw new SmartBusinessException("IdGenerator, id 不存在" + idGeneratorEnum); + } + return idGeneratorPOJO; + } + + /** + * 替换特殊rule,即替换[yyyy][mm][dd][nnn]等规则 + */ + private String replaceAndFill(IdGeneratorPOJO idGeneratorPOJO, Long number, String year, String month, String day) { + StringBuilder numberStringBuilder = new StringBuilder(); + int curNumberCount = String.valueOf(number).length(); + + if (idGeneratorPOJO.getNumberCount() > curNumberCount) { + int remain = idGeneratorPOJO.getNumberCount() - curNumberCount; + for (int i = 0; i < remain; i++) { + numberStringBuilder.append(0); + } + } + numberStringBuilder.append(number); + + StringBuilder nStringBuilder = new StringBuilder(); + nStringBuilder.append("\\["); + for (int i = 0; i < idGeneratorPOJO.getNumberCount(); i++) { + nStringBuilder.append("n"); + } + nStringBuilder.append("\\]"); + + String tempRuleFormat = new String(idGeneratorPOJO.getIdGeneratorEntity().getRuleFormat().getBytes()); + if (idGeneratorPOJO.isHaveYear()) { + tempRuleFormat = tempRuleFormat.replaceAll("\\[yyyy\\]", year); + } + if (idGeneratorPOJO.isHaveMonth()) { + tempRuleFormat = tempRuleFormat.replaceAll("\\[mm\\]", month); + } + if (idGeneratorPOJO.isHaveDay()) { + tempRuleFormat = tempRuleFormat.replaceAll("\\[dd\\]", day); + } + + return tempRuleFormat.replaceAll(nStringBuilder.toString(), numberStringBuilder.toString()); + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/idgenerator/constant/IdGeneratorEnum.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/idgenerator/constant/IdGeneratorEnum.java new file mode 100644 index 00000000..79cebd0e --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/idgenerator/constant/IdGeneratorEnum.java @@ -0,0 +1,45 @@ +package net.lab1024.smartadmin.module.support.idgenerator.constant; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/3/8 0008 下午 13:43 + * @since JDK1.8 + */ +public enum IdGeneratorEnum { + + + /** + * 测试generate + */ + TEST_ID_GENERATOR(2, "testIdGenerator"), + + + ORDER(1, "order"); + + private long id; + private String keyName; + + IdGeneratorEnum(int id, String keyName) { + this.id = id; + this.keyName = keyName; + } + + @Override + public String toString() { + return "IdGeneratorEnum{" + "id=" + id + ", keyName='" + keyName + '\'' + '}'; + } + + public long getId() { + return id; + } + + public String getKeyName() { + return keyName; + } + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/idgenerator/constant/IdGeneratorRuleTypeEnum.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/idgenerator/constant/IdGeneratorRuleTypeEnum.java new file mode 100644 index 00000000..c2dad2da --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/idgenerator/constant/IdGeneratorRuleTypeEnum.java @@ -0,0 +1,40 @@ +package net.lab1024.smartadmin.module.support.idgenerator.constant; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/3/8 0008 下午 13:43 + * @since JDK1.8 + */ +public enum IdGeneratorRuleTypeEnum { + /** + * 没有周期 + */ + NO_CYCLE(""), + /** + * 年周期 + */ + YEAR_CYCLE("yyyy"), + /** + * 月周期 + */ + MONTH_CYCLE("yyyyMM"), + /** + * 日周期 + */ + DAY_CYCLE("yyyyMMdd"); + + private String ext; + + IdGeneratorRuleTypeEnum(String ext) { + this.ext = ext; + } + + public String getExt() { + return ext; + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/idgenerator/domain/IdGeneratorEntity.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/idgenerator/domain/IdGeneratorEntity.java new file mode 100644 index 00000000..e1d64ffc --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/idgenerator/domain/IdGeneratorEntity.java @@ -0,0 +1,45 @@ +package net.lab1024.smartadmin.module.support.idgenerator.domain; + +import com.baomidou.mybatisplus.annotation.TableName; +import net.lab1024.smartadmin.common.domain.BaseEntity; +import lombok.Data; + +import java.io.Serializable; +import java.util.Date; + +/** + * @author sun + * @Auther: anders + * @Date: 2018/8/7 0007 13:33 + * @Description: + */ +@Data +@TableName(value = "t_id_generator") +public class IdGeneratorEntity extends BaseEntity implements Serializable { + + private static final long serialVersionUID = 5582354131134766548L; + /** + * 英文key + */ + private String keyName; + /** + * 规则格式 + */ + private String ruleFormat; + /** + * 类型 + */ + private String ruleType; + /** + * 初始值 + */ + private Long initNumber; + /** + * 上次产生的id + */ + private Long lastNumber; + /** + * 备注 + */ + private String remark; +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/idgenerator/domain/IdGeneratorLastNumberDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/idgenerator/domain/IdGeneratorLastNumberDTO.java new file mode 100644 index 00000000..69af325e --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/idgenerator/domain/IdGeneratorLastNumberDTO.java @@ -0,0 +1,38 @@ +package net.lab1024.smartadmin.module.support.idgenerator.domain; + +import java.util.Date; + +/** + * @Auther: yandanyang + * @Date: 2018/8/7 0007 13:33 + * @Description: + */ +public class IdGeneratorLastNumberDTO { + private Date updateTime; + private Long lastNumber; + private Date databaseTime; + + public Date getUpdateTime() { + return updateTime; + } + + public void setUpdateTime(Date updateTime) { + this.updateTime = updateTime; + } + + public Long getLastNumber() { + return lastNumber; + } + + public void setLastNumber(Long lastNumber) { + this.lastNumber = lastNumber; + } + + public Date getDatabaseTime() { + return databaseTime; + } + + public void setDatabaseTime(Date databaseTime) { + this.databaseTime = databaseTime; + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/idgenerator/domain/IdGeneratorPOJO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/idgenerator/domain/IdGeneratorPOJO.java new file mode 100644 index 00000000..6cd93931 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/idgenerator/domain/IdGeneratorPOJO.java @@ -0,0 +1,71 @@ +package net.lab1024.smartadmin.module.support.idgenerator.domain; + +import net.lab1024.smartadmin.module.support.idgenerator.constant.IdGeneratorRuleTypeEnum; + +/** + * @Auther: yandanyang + * @Date: 2018/8/7 0007 13:33 + * @Description: + */ +public class IdGeneratorPOJO { + + private IdGeneratorRuleTypeEnum idGeneratorRuleTypeEnum; + private IdGeneratorEntity idGeneratorEntity; + private int numberCount = 0; + private boolean haveYear = false; + private boolean haveMonth = false; + private boolean haveDay = false; + + public IdGeneratorPOJO(IdGeneratorRuleTypeEnum idGeneratorRuleTypeEnum, IdGeneratorEntity idGeneratorEntity) { + this.idGeneratorRuleTypeEnum = idGeneratorRuleTypeEnum; + this.idGeneratorEntity = idGeneratorEntity; + } + + public IdGeneratorRuleTypeEnum getIdGeneratorRuleTypeEnum() { + return idGeneratorRuleTypeEnum; + } + + public void setIdGeneratorRuleTypeEnum(IdGeneratorRuleTypeEnum idGeneratorRuleTypeEnum) { + this.idGeneratorRuleTypeEnum = idGeneratorRuleTypeEnum; + } + + public IdGeneratorEntity getIdGeneratorEntity() { + return idGeneratorEntity; + } + + public void setIdGeneratorEntity(IdGeneratorEntity idGeneratorEntity) { + this.idGeneratorEntity = idGeneratorEntity; + } + + public int getNumberCount() { + return numberCount; + } + + public void setNumberCount(int numberCount) { + this.numberCount = numberCount; + } + + public boolean isHaveYear() { + return haveYear; + } + + public void setHaveYear(boolean haveYear) { + this.haveYear = haveYear; + } + + public boolean isHaveMonth() { + return haveMonth; + } + + public void setHaveMonth(boolean haveMonth) { + this.haveMonth = haveMonth; + } + + public boolean isHaveDay() { + return haveDay; + } + + public void setHaveDay(boolean haveDay) { + this.haveDay = haveDay; + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/idgenerator/domain/IdGeneratorRecordDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/idgenerator/domain/IdGeneratorRecordDTO.java new file mode 100644 index 00000000..50f79b1e --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/idgenerator/domain/IdGeneratorRecordDTO.java @@ -0,0 +1,22 @@ +package net.lab1024.smartadmin.module.support.idgenerator.domain; + +import lombok.Data; + +/** + * @Auther: yandanyang + * @Date: 2018/8/7 0007 13:33 + * @Description: + */ +@Data +public class IdGeneratorRecordDTO { + + private Long generatorId; + + private Integer year; + + private Integer month; + + private Integer day; + + private Long lastNumber; +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/quartz/constant/QuartzConst.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/quartz/constant/QuartzConst.java new file mode 100644 index 00000000..949da2bc --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/quartz/constant/QuartzConst.java @@ -0,0 +1,17 @@ +package net.lab1024.smartadmin.module.support.quartz.constant; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/4/13 0013 下午 15:21 + * @since JDK1.8 + */ +public class QuartzConst { + public static final String QUARTZ_PARAMS_KEY="TASK_PARAMS"; + public static final String JOB_KEY_PREFIX="TASK_"; + public static final String TRIGGER_KEY_PREFIX="TRIGGER_"; +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/quartz/constant/TaskResultEnum.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/quartz/constant/TaskResultEnum.java new file mode 100644 index 00000000..df5fbc5d --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/quartz/constant/TaskResultEnum.java @@ -0,0 +1,47 @@ +package net.lab1024.smartadmin.module.support.quartz.constant; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/4/13 0013 下午 14:19 + * @since JDK1.8 + */ +public enum TaskResultEnum { + + SUCCESS(0,"成功"), + /** + * + */ + FAIL(1,"失败"); + + public static final String INFO="0:成功,1:失败"; + + private Integer status; + + private String desc; + + TaskResultEnum(Integer status , String desc) { + this.status = status; + this.desc = desc; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getDesc() { + return desc; + } + + public void setDesc(String desc) { + this.desc = desc; + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/quartz/constant/TaskStatusEnum.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/quartz/constant/TaskStatusEnum.java new file mode 100644 index 00000000..9a7f9bd7 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/quartz/constant/TaskStatusEnum.java @@ -0,0 +1,47 @@ +package net.lab1024.smartadmin.module.support.quartz.constant; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/4/13 0013 下午 14:19 + * @since JDK1.8 + */ +public enum TaskStatusEnum { + + NORMAL(0,"正常"), + /** + * + */ + PAUSE(1,"暂停"); + + public static final String INFO="0:正常,1:暂停"; + + private Integer status; + + private String desc; + + TaskStatusEnum(Integer status ,String desc) { + this.status = status; + this.desc = desc; + } + + public Integer getStatus() { + return status; + } + + public void setStatus(Integer status) { + this.status = status; + } + + public String getDesc() { + return desc; + } + + public void setDesc(String desc) { + this.desc = desc; + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/quartz/controller/QuartzController.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/quartz/controller/QuartzController.java new file mode 100644 index 00000000..59a71ad3 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/quartz/controller/QuartzController.java @@ -0,0 +1,81 @@ +package net.lab1024.smartadmin.module.support.quartz.controller; + +import net.lab1024.smartadmin.common.anno.NoValidPrivilege; +import net.lab1024.smartadmin.common.anno.OperateLog; +import net.lab1024.smartadmin.common.domain.PageResultDTO; +import net.lab1024.smartadmin.constant.SwaggerTagConst; +import net.lab1024.smartadmin.common.domain.ResponseDTO; +import net.lab1024.smartadmin.module.support.quartz.service.QuartzTaskService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import net.lab1024.smartadmin.module.support.quartz.domain.dto.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; + +/** + * + * [ ] + * + * @version 1.0 + * @since JDK1.8 + * @author yandanyang + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + */ +@OperateLog +@RestController +@Api(tags = {SwaggerTagConst.Admin.MANAGER_TASK_SCHEDULER}) +public class QuartzController { + + @Autowired + private QuartzTaskService quartzTaskService; + + + @PostMapping("/quartz/task/query") + @ApiOperation(value = "查询任务") + @NoValidPrivilege + public ResponseDTO> query(@RequestBody @Valid QuartzQueryDTO queryDTO){ + return quartzTaskService.query(queryDTO); + } + + + @PostMapping("/quartz/task/queryLog") + @ApiOperation(value = "查询任务运行日志") + @NoValidPrivilege + public ResponseDTO> queryLog(@RequestBody @Valid QuartzLogQueryDTO queryDTO){ + return quartzTaskService.queryLog(queryDTO); + } + + @PostMapping("/quartz/task/saveOrUpdate") + @ApiOperation(value = "新建更新任务") + public ResponseDTO saveOrUpdateTask(@RequestBody @Valid QuartzTaskDTO quartzTaskDTO)throws Exception{ + return quartzTaskService.saveOrUpdateTask(quartzTaskDTO); + } + + @GetMapping("/quartz/task/run/{taskId}") + @ApiOperation(value = "立即运行某个任务") + public ResponseDTO runTask(@PathVariable("taskId") Long taskId)throws Exception{ + return quartzTaskService.runTask(taskId); + } + + @GetMapping("/quartz/task/pause/{taskId}") + @ApiOperation(value = "暂停某个任务") + public ResponseDTO pauseTask(@PathVariable("taskId")Long taskId)throws Exception{ + return quartzTaskService.pauseTask(taskId); + } + + @GetMapping("/quartz/task/resume/{taskId}") + @ApiOperation(value = "恢复某个任务") + public ResponseDTO resumeTask(@PathVariable("taskId")Long taskId)throws Exception{ + return quartzTaskService.resumeTask(taskId); + } + + @GetMapping("/quartz/task/delete/{taskId}") + @ApiOperation(value = "删除某个任务") + public ResponseDTO deleteTask(@PathVariable("taskId")Long taskId)throws Exception{ + return quartzTaskService.deleteTask(taskId); + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/quartz/dao/QuartzTaskDao.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/quartz/dao/QuartzTaskDao.java new file mode 100644 index 00000000..f9153e9e --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/quartz/dao/QuartzTaskDao.java @@ -0,0 +1,42 @@ +package net.lab1024.smartadmin.module.support.quartz.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import net.lab1024.smartadmin.module.support.quartz.domain.dto.QuartzQueryDTO; +import net.lab1024.smartadmin.module.support.quartz.domain.dto.QuartzTaskVO; +import net.lab1024.smartadmin.module.support.quartz.domain.entity.QuartzTaskEntity; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/4/13 0013 下午 14:35 + * @since JDK1.8 + */ +@Mapper +@Component +public interface QuartzTaskDao extends BaseMapper { + + /** + * 更新任务状态 + * @param taskId + * @param taskStatus + */ + void updateStatus(@Param("taskId") Integer taskId,@Param("taskStatus") Integer taskStatus); + + /** + * 查询列表 + * @param queryDTO + * @return + */ + List queryList(Page page, @Param("queryDTO")QuartzQueryDTO queryDTO); + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/quartz/dao/QuartzTaskLogDao.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/quartz/dao/QuartzTaskLogDao.java new file mode 100644 index 00000000..b2e9cb04 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/quartz/dao/QuartzTaskLogDao.java @@ -0,0 +1,35 @@ +package net.lab1024.smartadmin.module.support.quartz.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import net.lab1024.smartadmin.module.support.quartz.domain.dto.QuartzLogQueryDTO; +import net.lab1024.smartadmin.module.support.quartz.domain.dto.QuartzTaskLogVO; +import net.lab1024.smartadmin.module.support.quartz.domain.entity.QuartzTaskLogEntity; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/4/13 0013 下午 14:35 + * @since JDK1.8 + */ +@Mapper +@Component +public interface QuartzTaskLogDao extends BaseMapper{ + + + /** + * 查询列表 + * @param queryDTO + * @return + */ + List queryList(Page page, @Param("queryDTO")QuartzLogQueryDTO queryDTO); +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/quartz/domain/dto/QuartzLogQueryDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/quartz/domain/dto/QuartzLogQueryDTO.java new file mode 100644 index 00000000..84b8564e --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/quartz/domain/dto/QuartzLogQueryDTO.java @@ -0,0 +1,25 @@ +package net.lab1024.smartadmin.module.support.quartz.domain.dto; + +import net.lab1024.smartadmin.common.domain.PageParamDTO; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/4/15 0015 上午 11:29 + * @since JDK1.8 + */ +@Data +public class QuartzLogQueryDTO extends PageParamDTO { + + @ApiModelProperty(value = "任务Id(不能为空)") + @NotNull(message = "任务Id不能为空") + private Integer taskId; +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/quartz/domain/dto/QuartzQueryDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/quartz/domain/dto/QuartzQueryDTO.java new file mode 100644 index 00000000..51e6b584 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/quartz/domain/dto/QuartzQueryDTO.java @@ -0,0 +1,16 @@ +package net.lab1024.smartadmin.module.support.quartz.domain.dto; + +import net.lab1024.smartadmin.common.domain.PageParamDTO; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/4/15 0015 上午 11:29 + * @since JDK1.8 + */ +public class QuartzQueryDTO extends PageParamDTO { +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/quartz/domain/dto/QuartzTaskDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/quartz/domain/dto/QuartzTaskDTO.java new file mode 100644 index 00000000..5fb303fc --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/quartz/domain/dto/QuartzTaskDTO.java @@ -0,0 +1,45 @@ +package net.lab1024.smartadmin.module.support.quartz.domain.dto; + +import net.lab1024.smartadmin.module.support.quartz.constant.TaskStatusEnum; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/4/13 0013 下午 15:42 + * @since JDK1.8 + */ +@Data +public class QuartzTaskDTO { + + @ApiModelProperty("id") + private Long id; + + @ApiModelProperty("任务名称") + @NotNull(message = "任务名称不能为空") + private String taskName; + + @ApiModelProperty("任务Bean") + @NotNull(message = "任务Bean不能为空") + private String taskBean; + + @ApiModelProperty("任务参数") + private String taskParams; + + @ApiModelProperty("cron") + @NotNull(message = "cron表达式不能为空") + private String taskCron; + + @ApiModelProperty("任务状态:"+ TaskStatusEnum.INFO) + private Integer taskStatus; + + @ApiModelProperty("任务备注") + private String remark; +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/quartz/domain/dto/QuartzTaskLogVO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/quartz/domain/dto/QuartzTaskLogVO.java new file mode 100644 index 00000000..23cd35fc --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/quartz/domain/dto/QuartzTaskLogVO.java @@ -0,0 +1,49 @@ +package net.lab1024.smartadmin.module.support.quartz.domain.dto; + +import net.lab1024.smartadmin.module.support.quartz.constant.TaskResultEnum; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/4/13 0013 下午 15:42 + * @since JDK1.8 + */ +@Data +public class QuartzTaskLogVO { + + @ApiModelProperty("id") + private Long id; + + @ApiModelProperty("任务id") + private Long taskId; + + @ApiModelProperty("任务名称") + private String taskName; + + @ApiModelProperty("任务参数") + private String taskParams; + + @ApiModelProperty("任务处理状态:"+ TaskResultEnum.INFO) + private Integer processStatus; + + @ApiModelProperty("任务时长ms") + private Long processDuration; + + @ApiModelProperty("处理日志") + private String processLog; + + @ApiModelProperty("创建时间") + private Date createTime; + + + @ApiModelProperty("主机ip") + private String ipAddress; +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/quartz/domain/dto/QuartzTaskVO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/quartz/domain/dto/QuartzTaskVO.java new file mode 100644 index 00000000..b588c532 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/quartz/domain/dto/QuartzTaskVO.java @@ -0,0 +1,45 @@ +package net.lab1024.smartadmin.module.support.quartz.domain.dto; + +import net.lab1024.smartadmin.module.support.quartz.constant.TaskStatusEnum; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/4/13 0013 下午 15:42 + * @since JDK1.8 + */ +@Data +public class QuartzTaskVO { + + @ApiModelProperty("id") + private Long id; + + @ApiModelProperty("任务名称") + @NotNull(message = "任务名称不能为空") + private String taskName; + + @ApiModelProperty("任务Bean") + @NotNull(message = "任务Bean不能为空") + private String taskBean; + + @ApiModelProperty("任务参数") + private String taskParams; + + @ApiModelProperty("cron") + @NotNull(message = "cron表达式不能为空") + private String taskCron; + + @ApiModelProperty("任务状态:"+ TaskStatusEnum.INFO) + private Integer taskStatus; + + @ApiModelProperty("任务备注") + private String remark; +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/quartz/domain/entity/QuartzTaskEntity.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/quartz/domain/entity/QuartzTaskEntity.java new file mode 100644 index 00000000..cb419b84 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/quartz/domain/entity/QuartzTaskEntity.java @@ -0,0 +1,50 @@ +package net.lab1024.smartadmin.module.support.quartz.domain.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import net.lab1024.smartadmin.common.domain.BaseEntity; +import lombok.Data; + + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/4/13 0013 下午 13:45 + * @since JDK1.8 + */ +@Data +@TableName("t_quartz_task") +public class QuartzTaskEntity extends BaseEntity { + /** + * 任务名称参数 + */ + private String taskName; + /** + * 任务类 + */ + private String taskBean; + + /** + * 任务参数 + */ + private String taskParams; + + /** + * cron + */ + private String taskCron; + + /** + * 任务状态 + */ + private Integer taskStatus; + + /** + * 备注 + */ + private String remark; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/quartz/domain/entity/QuartzTaskLogEntity.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/quartz/domain/entity/QuartzTaskLogEntity.java new file mode 100644 index 00000000..9d728416 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/quartz/domain/entity/QuartzTaskLogEntity.java @@ -0,0 +1,50 @@ +package net.lab1024.smartadmin.module.support.quartz.domain.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import net.lab1024.smartadmin.common.domain.BaseEntity; +import lombok.Data; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/4/13 0013 下午 13:45 + * @since JDK1.8 + */ +@Data +@TableName("t_quartz_task_log") +public class QuartzTaskLogEntity extends BaseEntity { + /** + * 任务名称参数 + */ + private Long taskId; + /** + * 任务名称 + */ + private String taskName; + /** + * 任务参数 + */ + private String taskParams; + /** + * 任务处理状态 + */ + private Integer processStatus; + + /** + * 任务时长ms + */ + private Long processDuration; + + /** + * 处理日志 + */ + private String processLog; + + + private String ipAddress; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/quartz/service/QuartzTask.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/quartz/service/QuartzTask.java new file mode 100644 index 00000000..4b327d1f --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/quartz/service/QuartzTask.java @@ -0,0 +1,85 @@ +package net.lab1024.smartadmin.module.support.quartz.service; + +import lombok.extern.slf4j.Slf4j; +import net.lab1024.smartadmin.common.domain.ITask; +import net.lab1024.smartadmin.module.support.quartz.constant.QuartzConst; +import net.lab1024.smartadmin.module.support.quartz.constant.TaskResultEnum; +import net.lab1024.smartadmin.module.support.quartz.domain.entity.QuartzTaskEntity; +import net.lab1024.smartadmin.module.support.quartz.domain.entity.QuartzTaskLogEntity; +import net.lab1024.smartadmin.third.SmartApplicationContext; +import net.lab1024.smartadmin.util.SmartIPUtil; +import net.lab1024.smartadmin.util.SmartQuartzUtil; +import org.quartz.JobDetail; +import org.quartz.JobExecutionContext; +import org.quartz.JobExecutionException; +import org.quartz.JobKey; +import org.springframework.scheduling.quartz.QuartzJobBean; + +import java.io.PrintWriter; +import java.io.StringWriter; +import java.util.Date; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + * @since JDK1.8 + */ +@Slf4j +public class QuartzTask extends QuartzJobBean { + + @Override + protected void executeInternal(JobExecutionContext context) throws JobExecutionException { + JobDetail jobDetail = context.getJobDetail(); + Object params = context.getMergedJobDataMap().get(QuartzConst.QUARTZ_PARAMS_KEY); + JobKey jobKey = jobDetail.getKey(); + + Long taskId = SmartQuartzUtil.getTaskIdByJobKey(jobKey); + QuartzTaskService quartzTaskService = (QuartzTaskService) SmartApplicationContext.getBean("quartzTaskService"); + QuartzTaskEntity quartzTaskEntity = quartzTaskService.getByTaskId(taskId); + + QuartzTaskLogService quartzTaskLogService = (QuartzTaskLogService) SmartApplicationContext.getBean("quartzTaskLogService"); + + QuartzTaskLogEntity taskLogEntity = new QuartzTaskLogEntity(); + taskLogEntity.setTaskId(taskId); + taskLogEntity.setIpAddress(SmartIPUtil.getLocalHostIP()); + try { + taskLogEntity.setTaskName(quartzTaskEntity.getTaskName()); + } catch (Exception e) { + e.printStackTrace(); + } + String paramsStr = null; + if (params != null) { + paramsStr = params.toString(); + taskLogEntity.setTaskParams(paramsStr); + } + taskLogEntity.setUpdateTime(new Date()); + taskLogEntity.setCreateTime(new Date()); + //任务开始时间 + long startTime = System.currentTimeMillis(); + try { + ITask taskClass = (ITask) SmartApplicationContext.getBean(quartzTaskEntity.getTaskBean()); + taskClass.execute(paramsStr); + taskLogEntity.setProcessStatus(TaskResultEnum.SUCCESS.getStatus()); + } catch (Exception e) { + log.error("", e); + StringWriter sw = new StringWriter(); + PrintWriter pw = new PrintWriter(sw, true); + e.printStackTrace(pw); + pw.flush(); + sw.flush(); + taskLogEntity.setProcessStatus(TaskResultEnum.FAIL.getStatus()); + taskLogEntity.setProcessLog(sw.toString()); + } finally { + long times = System.currentTimeMillis() - startTime; + taskLogEntity.setProcessDuration(times); + quartzTaskLogService.save(taskLogEntity); + } + + } + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/quartz/service/QuartzTaskLogService.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/quartz/service/QuartzTaskLogService.java new file mode 100644 index 00000000..e54c483c --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/quartz/service/QuartzTaskLogService.java @@ -0,0 +1,28 @@ +package net.lab1024.smartadmin.module.support.quartz.service; + +import net.lab1024.smartadmin.module.support.quartz.dao.QuartzTaskLogDao; +import net.lab1024.smartadmin.module.support.quartz.domain.entity.QuartzTaskLogEntity; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/4/13 0013 下午 14:50 + * @since JDK1.8 + */ +@Service +public class QuartzTaskLogService { + + @Autowired + private QuartzTaskLogDao quartzTaskLogDao; + + + public void save(QuartzTaskLogEntity logEntity){ + quartzTaskLogDao.insert(logEntity); + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/quartz/service/QuartzTaskService.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/quartz/service/QuartzTaskService.java new file mode 100644 index 00000000..9f88132a --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/quartz/service/QuartzTaskService.java @@ -0,0 +1,349 @@ +package net.lab1024.smartadmin.module.support.quartz.service; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import net.lab1024.smartadmin.common.constant.ResponseCodeConst; +import net.lab1024.smartadmin.common.domain.PageResultDTO; +import net.lab1024.smartadmin.common.domain.ResponseDTO; +import net.lab1024.smartadmin.module.support.quartz.constant.QuartzConst; +import net.lab1024.smartadmin.module.support.quartz.constant.TaskStatusEnum; +import net.lab1024.smartadmin.module.support.quartz.dao.QuartzTaskDao; +import net.lab1024.smartadmin.module.support.quartz.dao.QuartzTaskLogDao; +import net.lab1024.smartadmin.module.support.quartz.domain.entity.QuartzTaskEntity; +import net.lab1024.smartadmin.third.SmartApplicationContext; +import net.lab1024.smartadmin.util.SmartBeanUtil; +import net.lab1024.smartadmin.util.SmartPageUtil; +import net.lab1024.smartadmin.util.SmartQuartzUtil; +import lombok.extern.slf4j.Slf4j; +import net.lab1024.smartadmin.module.support.quartz.domain.dto.*; +import org.quartz.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.time.LocalDateTime; +import java.util.Date; +import java.util.List; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/4/13 0013 下午 14:50 + * @since JDK1.8 + */ +@Slf4j +@Service +public class QuartzTaskService { + + @Autowired + private QuartzTaskDao quartzTaskDao; + + @Autowired + private QuartzTaskLogDao quartzTaskLogDao; + + @Autowired + private Scheduler scheduler; + + /** + * 查询列表 + * + * @param queryDTO + * @return + */ + public ResponseDTO> query(QuartzQueryDTO queryDTO) { + Page pageParam = SmartPageUtil.convert2QueryPage(queryDTO); + List taskList = quartzTaskDao.queryList(pageParam, queryDTO); + pageParam.setRecords(taskList); + return ResponseDTO.succData(SmartPageUtil.convert2PageResult(pageParam)); + } + + /** + * 查询运行日志 + * + * @param queryDTO + * @return + */ + public ResponseDTO> queryLog(QuartzLogQueryDTO queryDTO) { + Page pageParam = SmartPageUtil.convert2QueryPage(queryDTO); + List taskList = quartzTaskLogDao.queryList(pageParam, queryDTO); + pageParam.setRecords(taskList); + return ResponseDTO.succData(SmartPageUtil.convert2PageResult(pageParam)); + } + + /** + * 保存或更新 + * + * @param quartzTaskDTO + * @return + * @throws Exception + */ + @Transactional(rollbackFor = Throwable.class) + public ResponseDTO saveOrUpdateTask(QuartzTaskDTO quartzTaskDTO) throws Exception { + ResponseDTO baseValid = this.baseValid(quartzTaskDTO); + if (!baseValid.isSuccess()) { + return baseValid; + } + Long taskId = quartzTaskDTO.getId(); + if (taskId == null) { + return this.saveTask(quartzTaskDTO); + } else { + return this.updateTask(quartzTaskDTO); + } + } + + private ResponseDTO baseValid(QuartzTaskDTO quartzTaskDTO) { + Object taskBean = null; + try { + taskBean = SmartApplicationContext.getBean(quartzTaskDTO.getTaskBean()); + } catch (Exception e) { + log.error("taskBean 不存在{}", e); + } + if (taskBean == null) { + return ResponseDTO.wrap(ResponseCodeConst.ERROR_PARAM, "taskBean 不存在"); + } + if (!CronExpression.isValidExpression(quartzTaskDTO.getTaskCron())) { + return ResponseDTO.wrap(ResponseCodeConst.ERROR_PARAM, "请传入正确的正则表达式"); + } + return ResponseDTO.succ(); + } + + private ResponseDTO saveTask(QuartzTaskDTO quartzTaskDTO) throws Exception { + QuartzTaskEntity taskEntity = SmartBeanUtil.copy(quartzTaskDTO, QuartzTaskEntity.class); + taskEntity.setTaskStatus(TaskStatusEnum.NORMAL.getStatus()); + taskEntity.setUpdateTime(new Date()); + taskEntity.setCreateTime(new Date()); + quartzTaskDao.insert(taskEntity); + this.createQuartzTask(scheduler, taskEntity); + return ResponseDTO.succ(); + } + + private ResponseDTO updateTask(QuartzTaskDTO quartzTaskDTO) throws Exception { + QuartzTaskEntity updateEntity = quartzTaskDao.selectById(quartzTaskDTO.getId()); + if (updateEntity == null) { + return ResponseDTO.wrap(ResponseCodeConst.ERROR_PARAM, "task不存在"); + } + QuartzTaskEntity taskEntity = SmartBeanUtil.copy(quartzTaskDTO, QuartzTaskEntity.class); + //任务状态不能更新 + taskEntity.setTaskStatus(updateEntity.getTaskStatus()); + taskEntity.setUpdateTime(new Date()); + quartzTaskDao.updateById(taskEntity); + if(this.checkExist(taskEntity.getId())){ + this.updateQuartzTask(scheduler, taskEntity); + }else{ + this.createQuartzTask(scheduler,taskEntity); + } + + return ResponseDTO.succ(); + } + + /** + * 立即运行 + * + * @param taskId + * @return + * @throws Exception + */ + public ResponseDTO runTask(Long taskId) throws Exception { + QuartzTaskEntity quartzTaskEntity = quartzTaskDao.selectById(taskId); + if (quartzTaskEntity == null) { + return ResponseDTO.wrap(ResponseCodeConst.ERROR_PARAM, "task不存在"); + } + this.runQuartzTask(scheduler, quartzTaskEntity); + return ResponseDTO.succ(); + } + + /** + * 暂停运行 + * + * @param taskId + * @return + * @throws Exception + */ + @Transactional(rollbackFor = Throwable.class) + public ResponseDTO pauseTask(Long taskId) throws Exception { + QuartzTaskEntity quartzTaskEntity = quartzTaskDao.selectById(taskId); + if (quartzTaskEntity == null) { + return ResponseDTO.wrap(ResponseCodeConst.ERROR_PARAM, "task不存在"); + } + quartzTaskEntity.setTaskStatus(TaskStatusEnum.PAUSE.getStatus()); + quartzTaskDao.updateById(quartzTaskEntity); + this.pauseQuartzTask(scheduler, quartzTaskEntity); + return ResponseDTO.succ(); + } + + /** + * 恢复任务 + * + * @param taskId + * @return + * @throws Exception + */ + @Transactional(rollbackFor = Throwable.class) + public ResponseDTO resumeTask(Long taskId) throws Exception { + QuartzTaskEntity quartzTaskEntity = quartzTaskDao.selectById(taskId); + if (quartzTaskEntity == null) { + return ResponseDTO.wrap(ResponseCodeConst.ERROR_PARAM, "task不存在"); + } + quartzTaskEntity.setTaskStatus(TaskStatusEnum.NORMAL.getStatus()); + quartzTaskDao.updateById(quartzTaskEntity); + this.resumeQuartzTask(scheduler, quartzTaskEntity); + return ResponseDTO.succ(); + } + + /** + * 删除任务 + * + * @param taskId + * @return + * @throws Exception + */ + public ResponseDTO deleteTask(Long taskId) throws Exception { + QuartzTaskEntity quartzTaskEntity = quartzTaskDao.selectById(taskId); + if (quartzTaskEntity == null) { + return ResponseDTO.wrap(ResponseCodeConst.ERROR_PARAM, "task不存在"); + } + quartzTaskDao.deleteById(taskId); + this.deleteQuartzTask(scheduler, taskId); + return ResponseDTO.succ(); + } + + /** + * 通过任务Id 获取任务实体 + * + * @param taskId + * @return + */ + public QuartzTaskEntity getByTaskId(Long taskId) { + return quartzTaskDao.selectById(taskId); + } + + /** + * 创建任务 + * + * @param scheduler + * @param taskEntity + * @throws Exception + */ + public void createQuartzTask(Scheduler scheduler, QuartzTaskEntity taskEntity) throws Exception { + JobKey jobKey = SmartQuartzUtil.getJobKey(taskEntity.getId()); + JobDetail jobDetail = JobBuilder.newJob(QuartzTask.class).withIdentity(jobKey).build(); + + CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(taskEntity.getTaskCron()).withMisfireHandlingInstructionDoNothing(); + + TriggerKey triggerKey = SmartQuartzUtil.getTriggerKey(Long.valueOf(taskEntity.getId())); + CronTrigger trigger = TriggerBuilder.newTrigger().withIdentity(triggerKey).withSchedule(scheduleBuilder).build(); + + jobDetail.getJobDataMap().put(QuartzConst.QUARTZ_PARAMS_KEY, taskEntity.getTaskParams()); + scheduler.scheduleJob(jobDetail, trigger); + //如果任务是暂停状态,则暂停任务 + if (TaskStatusEnum.PAUSE.getStatus().equals(taskEntity.getTaskStatus())) { + this.pauseQuartzTask(scheduler, taskEntity); + } + } + + /** + * 更新任务 + * + * @param scheduler + * @param taskEntity + * @throws Exception + */ + private void updateQuartzTask(Scheduler scheduler, QuartzTaskEntity taskEntity) throws Exception { + TriggerKey triggerKey = SmartQuartzUtil.getTriggerKey(Long.valueOf(taskEntity.getId())); + + CronScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(taskEntity.getTaskCron()).withMisfireHandlingInstructionDoNothing(); + + CronTrigger trigger = this.getCronTrigger(scheduler, Long.valueOf(taskEntity.getId())); + + trigger = trigger.getTriggerBuilder().withIdentity(triggerKey).withSchedule(scheduleBuilder).build(); + + trigger.getJobDataMap().put(QuartzConst.QUARTZ_PARAMS_KEY, taskEntity.getTaskParams()); + + scheduler.rescheduleJob(triggerKey, trigger); + //如果更新之前任务是暂停状态,此时再次暂停任务 + if (TaskStatusEnum.PAUSE.getStatus().equals(taskEntity.getTaskStatus())) { + this.pauseQuartzTask(scheduler, taskEntity); + } + } + + private CronTrigger getCronTrigger(Scheduler scheduler, Long taskId) throws Exception { + TriggerKey triggerKey = SmartQuartzUtil.getTriggerKey(taskId); + return (CronTrigger) scheduler.getTrigger(triggerKey); + } + + /** + * 立即运行 + * + * @param scheduler + * @param taskEntity + * @throws Exception + */ + private void runQuartzTask(Scheduler scheduler, QuartzTaskEntity taskEntity) throws Exception { + JobDataMap dataMap = new JobDataMap(); + dataMap.put(QuartzConst.QUARTZ_PARAMS_KEY, taskEntity.getTaskParams()); + JobKey jobKey = SmartQuartzUtil.getJobKey(taskEntity.getId()); + if(!scheduler.checkExists(jobKey)){ + this.createQuartzTask(scheduler,taskEntity); + scheduler.triggerJob(jobKey, dataMap); + return; + } + scheduler.triggerJob(jobKey, dataMap); + } + + /** + * 暂停任务 + * + * @param scheduler + * @param quartzTaskEntity + * @throws Exception + */ + private void pauseQuartzTask(Scheduler scheduler, QuartzTaskEntity quartzTaskEntity) throws Exception { + JobKey jobKey = SmartQuartzUtil.getJobKey(quartzTaskEntity.getId()); + if(!scheduler.checkExists(jobKey)){ + this.createQuartzTask(scheduler,quartzTaskEntity); + scheduler.pauseJob(jobKey); + return; + } + scheduler.pauseJob(jobKey); + } + + /** + * 恢复任务 + * + * @param scheduler + * @param quartzTaskEntity + * @throws Exception + */ + private void resumeQuartzTask(Scheduler scheduler, QuartzTaskEntity quartzTaskEntity) throws Exception { + JobKey jobKey = SmartQuartzUtil.getJobKey(quartzTaskEntity.getId()); + if(!scheduler.checkExists(jobKey)){ + this.createQuartzTask(scheduler,quartzTaskEntity); + return; + } + scheduler.resumeJob(jobKey); + } + + /** + * 删除任务 + * + * @param scheduler + * @param taskId + * @throws Exception + */ + private void deleteQuartzTask(Scheduler scheduler, Long taskId) throws Exception { + JobKey jobKey = SmartQuartzUtil.getJobKey(taskId); + if(!scheduler.checkExists(jobKey)){ + return; + } + scheduler.deleteJob(jobKey); + } + + + private Boolean checkExist(Long taskId) throws Exception{ + JobKey jobKey = SmartQuartzUtil.getJobKey(taskId); + return scheduler.checkExists(jobKey); + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/quartz/task/test/Example.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/quartz/task/test/Example.java new file mode 100644 index 00000000..f62d22b5 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/quartz/task/test/Example.java @@ -0,0 +1,28 @@ +package net.lab1024.smartadmin.module.support.quartz.task.test; + +import lombok.extern.slf4j.Slf4j; +import net.lab1024.smartadmin.common.domain.ITask; +import net.lab1024.smartadmin.util.SmartDateUtil; +import org.springframework.stereotype.Component; + +import java.util.Date; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/4/13 0013 下午 14:26 + * @since JDK1.8 + */ +@Slf4j +@Component("exampleTask") +public class Example implements ITask { + + @Override + public void execute(String paramJson) throws Exception { + log.warn("{}-今天搬了{}块砖,paramJson:{}",SmartDateUtil.formatYMDHMS(new Date()),System.currentTimeMillis(),paramJson ); + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/smartreload/SmartReloadCommand.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/smartreload/SmartReloadCommand.java new file mode 100644 index 00000000..2535efdd --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/smartreload/SmartReloadCommand.java @@ -0,0 +1,52 @@ +package net.lab1024.smartadmin.module.support.smartreload; + +import net.lab1024.smartadmin.common.reload.abstracts.AbstractSmartReloadCommand4Spring; +import net.lab1024.smartadmin.common.reload.domain.entity.ReloadItem; +import net.lab1024.smartadmin.common.reload.domain.entity.SmartReloadResult; +import net.lab1024.smartadmin.module.support.smartreload.dao.ReloadItemDao; +import net.lab1024.smartadmin.module.support.smartreload.dao.ReloadResultDao; +import net.lab1024.smartadmin.module.support.smartreload.domain.entity.ReloadItemEntity; +import net.lab1024.smartadmin.module.support.smartreload.domain.entity.ReloadResultEntity; +import net.lab1024.smartadmin.util.SmartBeanUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * Smart Reload 业务 + * + * @author listen + * @date 2018/02/10 09:18 + */ +@Component +public class SmartReloadCommand extends AbstractSmartReloadCommand4Spring { + + @Autowired + private ReloadItemDao reloadItemDao; + + @Autowired + private ReloadResultDao reloadResultDao; + + /** + * 读取数据库中SmartReload项 + * + * @return List + */ + @Override + public List readReloadItem() { + List reloadItemEntityList = reloadItemDao.selectList(null); + return SmartBeanUtil.copyList(reloadItemEntityList, ReloadItem.class); + } + + /** + * 保存reload结果 + * + * @param smartReloadResult + */ + @Override + public void handleReloadResult(SmartReloadResult smartReloadResult) { + ReloadResultEntity reloadResultEntity = SmartBeanUtil.copy(smartReloadResult, ReloadResultEntity.class); + reloadResultDao.insert(reloadResultEntity); + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/smartreload/SmartReloadController.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/smartreload/SmartReloadController.java new file mode 100644 index 00000000..2d6e9560 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/smartreload/SmartReloadController.java @@ -0,0 +1,52 @@ +package net.lab1024.smartadmin.module.support.smartreload; + +import net.lab1024.smartadmin.common.anno.NoValidPrivilege; +import net.lab1024.smartadmin.common.anno.OperateLog; +import net.lab1024.smartadmin.common.domain.ResponseDTO; +import net.lab1024.smartadmin.constant.SwaggerTagConst; +import net.lab1024.smartadmin.module.support.smartreload.domain.dto.ReloadItemUpdateDTO; +import net.lab1024.smartadmin.module.support.smartreload.domain.dto.ReloadItemVO; +import net.lab1024.smartadmin.module.support.smartreload.domain.dto.ReloadResultVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; + +/** + * Smart Reload 路由 + * + * @author listen + * @date 2018/02/10 09:18 + */ +@Api(tags = {SwaggerTagConst.Admin.MANAGER_SMART_RELOAD}) +@OperateLog +@RestController +public class SmartReloadController { + + @Autowired + private SmartReloadService smartReloadService; + + @ApiOperation(value = "获取全部Smart-reload项", notes = "获取全部Smart-reload项") + @GetMapping("/smartReload/all") + @NoValidPrivilege + public ResponseDTO> listAllReloadItem() { + return smartReloadService.listAllReloadItem(); + } + + @ApiOperation(value = "获取reload result", notes = "获取reload result") + @GetMapping("/smartReload/result/{tag}") + @NoValidPrivilege + public ResponseDTO> queryReloadResult(@PathVariable("tag") String tag) { + return smartReloadService.listReloadItemResult(tag); + } + + @ApiOperation("通过tag更新标识") + @PostMapping("/smartReload/update") + @NoValidPrivilege + public ResponseDTO updateByTag(@RequestBody @Valid ReloadItemUpdateDTO updateDTO) { + return smartReloadService.updateByTag(updateDTO); + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/smartreload/SmartReloadService.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/smartreload/SmartReloadService.java new file mode 100644 index 00000000..78778659 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/smartreload/SmartReloadService.java @@ -0,0 +1,103 @@ +package net.lab1024.smartadmin.module.support.smartreload; + +import net.lab1024.smartadmin.common.constant.ResponseCodeConst; +import net.lab1024.smartadmin.common.domain.ResponseDTO; +import net.lab1024.smartadmin.common.reload.SmartReloadManager; +import net.lab1024.smartadmin.module.support.smartreload.dao.ReloadItemDao; +import net.lab1024.smartadmin.module.support.smartreload.dao.ReloadResultDao; +import net.lab1024.smartadmin.module.support.smartreload.domain.dto.ReloadItemUpdateDTO; +import net.lab1024.smartadmin.module.support.smartreload.domain.dto.ReloadItemVO; +import net.lab1024.smartadmin.module.support.smartreload.domain.dto.ReloadResultVO; +import net.lab1024.smartadmin.module.support.smartreload.domain.entity.ReloadItemEntity; +import net.lab1024.smartadmin.module.support.smartreload.domain.entity.ReloadResultEntity; +import net.lab1024.smartadmin.util.SmartBeanUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import javax.annotation.PostConstruct; +import java.sql.Timestamp; +import java.util.List; +import java.util.concurrent.TimeUnit; + +/** + * Smart initDefines 业务 + * + * @author listen + * @date 2018/02/10 13:49 + */ +@Service +public class SmartReloadService { + + @Autowired + private SmartReloadManager smartReloadManager; + + @Autowired + private SmartReloadCommand smartReloadCommand; + + @Autowired + private ReloadItemDao reloadItemDao; + + @Autowired + private ReloadResultDao reloadResultDao; + + @Value("${smart-reload.time-interval}") + private Long timeInterval; + + @PostConstruct + public void init() { + smartReloadManager.addCommand(smartReloadCommand, 10, timeInterval, TimeUnit.SECONDS); + } + + /** + * 注册到SmartReload里 + */ + public void register(Object reload) { + smartReloadManager.register(reload); + } + + /** + * 获取所有 initDefines 项 + * + * @return + */ + public ResponseDTO> listAllReloadItem() { + List reloadItemEntityList = reloadItemDao.selectList(null); + List reloadItemDTOList = SmartBeanUtil.copyList(reloadItemEntityList, ReloadItemVO.class); + return ResponseDTO.succData(reloadItemDTOList); + } + + /** + * 根据 tag + * 获取所有 initDefines 运行结果 + * + * @return ResponseDTO + */ + public ResponseDTO> listReloadItemResult(String tag) { + ReloadResultEntity query = new ReloadResultEntity(); + query.setTag(tag); + List reloadResultEntityList = reloadResultDao.query(tag); + List reloadResultDTOList = SmartBeanUtil.copyList(reloadResultEntityList, ReloadResultVO.class); + return ResponseDTO.succData(reloadResultDTOList); + } + + /** + * 通过标签更新标识符 + * + * @param updateDTO + * @return + */ + public ResponseDTO updateByTag(ReloadItemUpdateDTO updateDTO) { + ReloadItemEntity entity = new ReloadItemEntity(); + entity.setTag(updateDTO.getTag()); + ReloadItemEntity reloadItemEntity = reloadItemDao.selectById(entity.getTag()); + if (null == reloadItemEntity) { + return ResponseDTO.wrap(ResponseCodeConst.NOT_EXISTS); + } + reloadItemEntity.setIdentification(updateDTO.getIdentification()); + reloadItemEntity.setUpdateTime(new Timestamp(System.currentTimeMillis())); + reloadItemEntity.setArgs(updateDTO.getArgs()); + reloadItemDao.updateById(reloadItemEntity); + return ResponseDTO.succ(); + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/smartreload/dao/ReloadItemDao.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/smartreload/dao/ReloadItemDao.java new file mode 100644 index 00000000..c497ebbc --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/smartreload/dao/ReloadItemDao.java @@ -0,0 +1,15 @@ +package net.lab1024.smartadmin.module.support.smartreload.dao; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import net.lab1024.smartadmin.module.support.smartreload.domain.entity.ReloadItemEntity; +import org.apache.ibatis.annotations.Mapper; +import org.springframework.stereotype.Component; + +/** + * t_reload_item 数据表dao + * + * @author listen + * @date 2018/02/10 09:23 + */ +@Component +@Mapper +public interface ReloadItemDao extends BaseMapper {} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/smartreload/dao/ReloadResultDao.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/smartreload/dao/ReloadResultDao.java new file mode 100644 index 00000000..dc4d2d69 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/smartreload/dao/ReloadResultDao.java @@ -0,0 +1,23 @@ +package net.lab1024.smartadmin.module.support.smartreload.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import net.lab1024.smartadmin.module.support.smartreload.domain.entity.ReloadResultEntity; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * t_reload_result 数据表dao + * + * @author listen + * @date 2018/02/10 09:23 + */ +@Component +@Mapper +public interface ReloadResultDao extends BaseMapper { + + + List query(@Param("tag") String tag); +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/smartreload/domain/dto/ReloadItemUpdateDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/smartreload/domain/dto/ReloadItemUpdateDTO.java new file mode 100644 index 00000000..20ad98f5 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/smartreload/domain/dto/ReloadItemUpdateDTO.java @@ -0,0 +1,29 @@ +package net.lab1024.smartadmin.module.support.smartreload.domain.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +/** + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + * @since JDK1.8 + */ +@Data +public class ReloadItemUpdateDTO { + + @ApiModelProperty("标签") + @NotBlank(message = "标签不能为空") + private String tag; + + @ApiModelProperty("状态标识") + @NotBlank(message = "状态标识不能为空") + private String identification; + + @ApiModelProperty("reload时传入的参数,可以为空") + private String args; +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/smartreload/domain/dto/ReloadItemVO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/smartreload/domain/dto/ReloadItemVO.java new file mode 100644 index 00000000..8f462297 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/smartreload/domain/dto/ReloadItemVO.java @@ -0,0 +1,46 @@ +package net.lab1024.smartadmin.module.support.smartreload.domain.dto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * initDefines 项 DTO 类 + * + * @author listen + * @date 2018/02/10 09:29 + */ +@Data +public class ReloadItemVO { + + /** + * 加载项标签 + */ + @ApiModelProperty("加载项标签") + private String tag; + + /** + * 参数 + */ + @ApiModelProperty("参数") + private String args; + + /** + * 状态标识 + */ + @ApiModelProperty("状态标识") + private String identification; + + /** + * 更新时间 + */ + @ApiModelProperty("最后更新时间") + private Date updateTime; + + /** + * 创建时间 + */ + @ApiModelProperty("创建时间") + private Date createTime; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/smartreload/domain/dto/ReloadResultVO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/smartreload/domain/dto/ReloadResultVO.java new file mode 100644 index 00000000..56b388a3 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/smartreload/domain/dto/ReloadResultVO.java @@ -0,0 +1,45 @@ +package net.lab1024.smartadmin.module.support.smartreload.domain.dto; +import lombok.Data; + +import java.util.Date; + +/** + * reload_result DTO 类 + * + * @author listen + * @date 2018/02/10 09:29 + */ +@Data +public class ReloadResultVO { + + /** + * 加载项标签 + */ + private String tag; + + /** + * 参数 + */ + private String args; + + /** + * 状态标识 + */ + private String identification; + + /** + * 运行结果 + */ + private Boolean result; + + /** + * 异常 + */ + private String exception; + + /** + * 创建时间 + */ + private Date createTime; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/smartreload/domain/entity/ReloadItemEntity.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/smartreload/domain/entity/ReloadItemEntity.java new file mode 100644 index 00000000..cbd264c1 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/smartreload/domain/entity/ReloadItemEntity.java @@ -0,0 +1,46 @@ +package net.lab1024.smartadmin.module.support.smartreload.domain.entity; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +/** + * t_reload_item 数据表 实体类 + * + * @author listen + * @date 2018/02/10 09:29 + */ +@Data +@TableName("t_reload_item") +public class ReloadItemEntity { + + /** + * 加载项标签 + */ + @TableId(type = IdType.INPUT) + private String tag; + + /** + * 参数 + */ + private String args; + + /** + * 运行标识 + */ + private String identification; + + /** + * 更新时间 + */ + private Date updateTime; + + /** + * 创建时间 + */ + private Date createTime; + + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/smartreload/domain/entity/ReloadResultEntity.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/smartreload/domain/entity/ReloadResultEntity.java new file mode 100644 index 00000000..bb79c21e --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/smartreload/domain/entity/ReloadResultEntity.java @@ -0,0 +1,48 @@ +package net.lab1024.smartadmin.module.support.smartreload.domain.entity; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; + +import java.util.Date; + +/** + * t_reload_result 数据表 实体类 + * + * @author listen + * @date 2018/02/10 09:29 + */ +@Data +@TableName("t_reload_result") +public class ReloadResultEntity { + + /** + * 加载项标签 + */ + private String tag; + + /** + * 运行标识 + */ + private String identification; + + /** + * 参数 + */ + private String args; + + /** + * 运行结果 + */ + private Boolean result; + + /** + * 异常 + */ + private String exception; + + /** + * 创建时间 + */ + private Date createTime; + + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/websocket/MessageTypeEnum.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/websocket/MessageTypeEnum.java new file mode 100644 index 00000000..eda10334 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/websocket/MessageTypeEnum.java @@ -0,0 +1,44 @@ +package net.lab1024.smartadmin.module.support.websocket; + +import net.lab1024.smartadmin.common.domain.BaseEnum; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/7/10 0010 下午 19:11 + * @since JDK1.8 + */ +public enum MessageTypeEnum implements BaseEnum{ + + SYS_NOTICE(1,"系统通知"), + + PRIVATE_LETTER(2,"私信"), + + HEART_BEAT(3,"心跳"); + + + private Integer value; + + private String desc; + + + MessageTypeEnum(Integer value,String desc){ + this.value = value; + this.desc = desc; + } + + + @Override + public Integer getValue() { + return this.value; + } + + @Override + public String getDesc() { + return this.desc; + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/websocket/WebSocketServer.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/websocket/WebSocketServer.java new file mode 100644 index 00000000..a26489c8 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/websocket/WebSocketServer.java @@ -0,0 +1,199 @@ +package net.lab1024.smartadmin.module.support.websocket; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.TypeReference; +import net.lab1024.smartadmin.module.support.websocket.domain.MessageCommonDTO; +import net.lab1024.smartadmin.module.support.websocket.domain.MessageDTO; +import net.lab1024.smartadmin.module.support.websocket.domain.WebSocketHeartBeatDTO; +import com.google.common.collect.Lists; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import javax.websocket.*; +import javax.websocket.server.PathParam; +import javax.websocket.server.ServerEndpoint; +import java.io.IOException; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; +import java.util.concurrent.ConcurrentHashMap; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/7/10 0010 下午 16:09 + * @since JDK1.8 + */ +@Slf4j +@ServerEndpoint("/webSocket/{employeeId}") +@Component +public class WebSocketServer { + + /** + * 当前在线用户 employee,expireTime + */ + private static ConcurrentHashMap onLineUser = new ConcurrentHashMap<>(); + + /** + * 当前在线用户所对应的 socket session信息 + */ + private static ConcurrentHashMap webSocketSession = new ConcurrentHashMap<>(); + + @OnOpen + public void onOpen(Session session, @PathParam("employeeId") Long employeeId) { + if (employeeId == null) { + return; + } + webSocketSession.put(employeeId, session); + log.info("连接打开"); + } + + /** + * 不做处理如果 前台可以监听到浏览器关闭 此处处理在线人数也可 + * + * @param session + */ + @OnClose + public void onClose(Session session) { + + log.info("连接关闭"); + } + + @OnError + public void onError(Session session, Throwable error) { + log.error("socket error,{}", error); + error.printStackTrace(); + } + + /** + * 此方法接收 前台信息 + * + * @param message + * @param session + */ + @OnMessage + public void onMessage(String message, Session session) { + if (StringUtils.isEmpty(message)) { + return; + } + MessageCommonDTO messageCommonDTO = JSON.parseObject(message, new TypeReference() {}); + if (MessageTypeEnum.HEART_BEAT.getValue().equals(messageCommonDTO.getMessageType())) { + this.heartBeatHandle(messageCommonDTO.getJsonStr()); + } + } + + /** + * 更新用户过期时间 + * + * @param json + */ + private void heartBeatHandle(String json) { + Long currentDate = System.currentTimeMillis(); + Long expireTime = currentDate + 5 * 1000; + WebSocketHeartBeatDTO heartBeatDTO = JSON.parseObject(json, new TypeReference() {}); + Long employeeId = heartBeatDTO.getEmployeeId(); + onLineUser.put(employeeId, expireTime); + } + + /** + * 移除过期用户,如果用户超过5s未获取到心跳列表则清除在线用户信息 + */ + @Scheduled(cron = "0/5 * * * * ?") + private void removeOnLineUser() { + Long currentDate = System.currentTimeMillis(); + Iterator> it = onLineUser.entrySet().iterator(); + while (it.hasNext()) { + Map.Entry entry = it.next(); + Long key = entry.getKey(); + Long value = entry.getValue(); + Long userExpireTime = value + 5 * 1000; + if (currentDate > userExpireTime) { + onLineUser.remove(key); + webSocketSession.remove(key); + } + } + } + + /** + * 此方法用户后台发送消息 + * + * @param messageDTO + */ + public static void sendMessage(MessageDTO messageDTO) { + //系统通知 + if (MessageTypeEnum.SYS_NOTICE.getValue().equals(messageDTO.getMessageType())) { + sendAllOnLineUser(messageDTO.getMessage(), messageDTO.getFromUserId()); + } + //站内信 + if (MessageTypeEnum.PRIVATE_LETTER.getValue().equals(messageDTO.getMessageType())) { + sendOneOnLineUser(messageDTO.getMessage(), messageDTO.getToUserId()); + } + } + + /** + * 通知所有在线用户 + * + * @param message + */ + public static void sendAllOnLineUser(String message, Long fromUserId) { + for (Entry entry : webSocketSession.entrySet()) { + Session session = entry.getValue(); + Long userId = entry.getKey(); + try { + //不想消息创建人推送消息 + if (! userId.equals(fromUserId)) { + session.getBasicRemote().sendText(message); + } + } catch (IOException e) { + log.error("推送消息到{},发送错误{}", userId, e); + log.error("", e); + } + + } + } + + /** + * 通知某人 + * + * @param message + * @param toUserId + */ + public static void sendOneOnLineUser(String message, Long toUserId) { + Session session = webSocketSession.get(toUserId); + if (session == null) { + log.error("推送消息到{},用户不在线", toUserId); + } + try { + session.getBasicRemote().sendText(message); + } catch (IOException e) { + log.error("推送消息到{},发送错误{}", toUserId, e); + log.error("", e); + } + } + + /** + * 获取所有在线用户id + * + * @return + */ + public static List getOnLineUserList() { + return Lists.newArrayList(onLineUser.keySet()); + } + + /** + * 获取当前在线用户数 + * + * @return + */ + public static Integer getOnLineUserCount() { + return onLineUser.entrySet().size(); + } + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/websocket/domain/MessageCommonDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/websocket/domain/MessageCommonDTO.java new file mode 100644 index 00000000..43828b38 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/websocket/domain/MessageCommonDTO.java @@ -0,0 +1,29 @@ +package net.lab1024.smartadmin.module.support.websocket.domain; + +import net.lab1024.smartadmin.module.support.websocket.MessageTypeEnum; +import lombok.Data; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/7/13 0013 下午 14:37 + * @since JDK1.8 + */ +@Data +public class MessageCommonDTO { + /** + * 消息类型 {@link MessageTypeEnum} + */ + private Integer messageType; + + /** + * 具体消息内容 + */ + private String jsonStr; + + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/websocket/domain/MessageDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/websocket/domain/MessageDTO.java new file mode 100644 index 00000000..23fc615f --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/websocket/domain/MessageDTO.java @@ -0,0 +1,41 @@ +package net.lab1024.smartadmin.module.support.websocket.domain; + +import net.lab1024.smartadmin.module.support.websocket.MessageTypeEnum; +import lombok.Builder; +import lombok.Data; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/7/10 0010 下午 18:50 + * @since JDK1.8 + */ +@Data +@Builder +public class MessageDTO { + + /** + * 消息类型 {@link MessageTypeEnum} + */ + private Integer messageType; + + /** + * 消息体 + */ + private String message; + + /** + * 发送者 + */ + private Long fromUserId; + + /** + * 接收者,系统通知可为null + */ + private Long toUserId; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/websocket/domain/WebSocketHeartBeatDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/websocket/domain/WebSocketHeartBeatDTO.java new file mode 100644 index 00000000..90f8c78f --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/support/websocket/domain/WebSocketHeartBeatDTO.java @@ -0,0 +1,23 @@ +package net.lab1024.smartadmin.module.support.websocket.domain; + +import lombok.Data; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/7/13 0013 下午 14:39 + * @since JDK1.8 + */ +@Data +public class WebSocketHeartBeatDTO { + + /** + * 当前登录人id + */ + private Long employeeId; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/datascope/DataScopeController.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/datascope/DataScopeController.java new file mode 100644 index 00000000..75a5eec4 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/datascope/DataScopeController.java @@ -0,0 +1,59 @@ +package net.lab1024.smartadmin.module.system.datascope; + +import net.lab1024.smartadmin.common.anno.NoValidPrivilege; +import net.lab1024.smartadmin.common.anno.OperateLog; +import net.lab1024.smartadmin.constant.SwaggerTagConst; +import net.lab1024.smartadmin.common.domain.ResponseDTO; +import net.lab1024.smartadmin.module.system.datascope.domain.dto.DataScopeAndViewTypeVO; +import net.lab1024.smartadmin.module.system.datascope.domain.dto.DataScopeBatchSetRoleDTO; +import net.lab1024.smartadmin.module.system.datascope.domain.dto.DataScopeSelectVO; +import net.lab1024.smartadmin.module.system.datascope.service.DataScopeService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/4/27 0027 下午 15:12 + * @since JDK1.8 + */ +@Api(tags = {SwaggerTagConst.Admin.MANAGER_DATA_SCOPE}) +@OperateLog +@RestController +public class DataScopeController { + + @Autowired + private DataScopeService dataScopeService; + + @ApiOperation(value = "获取当前系统所配置的所有数据范围") + @GetMapping("/dataScope/list") + @NoValidPrivilege + public ResponseDTO> dataScopeList() { + return dataScopeService.dataScopeList(); + } + + @ApiOperation(value = "获取某角色所设置的数据范围") + @GetMapping("/dataScope/listByRole/{roleId}") + @NoValidPrivilege + public ResponseDTO> dataScopeListByRole(@PathVariable Long roleId) { + return dataScopeService.dataScopeListByRole(roleId); + } + + @ApiOperation(value = "批量设置某角色数据范围") + @PostMapping("/dataScope/batchSet") + @NoValidPrivilege + public ResponseDTO dataScopeBatchSet(@RequestBody @Valid DataScopeBatchSetRoleDTO batchSetRoleDTO) { + return dataScopeService.dataScopeBatchSet(batchSetRoleDTO); + } + + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/datascope/DataScopeRoleDao.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/datascope/DataScopeRoleDao.java new file mode 100644 index 00000000..1b926a7b --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/datascope/DataScopeRoleDao.java @@ -0,0 +1,52 @@ +package net.lab1024.smartadmin.module.system.datascope; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import net.lab1024.smartadmin.module.system.datascope.domain.entity.DataScopeRoleEntity; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/4/27 0027 下午 14:41 + * @since JDK1.8 + */ +@Mapper +@Component +public interface DataScopeRoleDao extends BaseMapper { + + /** + * 获取某个角色的设置信息 + * @param roleId + * @return + */ + List listByRoleId(@Param("roleId") Long roleId); + + /** + * 获取某批角色的所有数据范围配置信息 + * @param roleIdList + * @return + */ + List listByRoleIdList(@Param("roleIdList") List roleIdList); + + /** + * 删除某个角色的设置信息 + * @param roleId + * @return + */ + void deleteByRoleId(@Param("roleId") Long roleId); + + + /** + * 批量添加设置信息 + * @param list + */ + void batchInsert(@Param("list")List list); +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/datascope/MyBatisPlugin.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/datascope/MyBatisPlugin.java new file mode 100644 index 00000000..f9270b62 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/datascope/MyBatisPlugin.java @@ -0,0 +1,152 @@ +package net.lab1024.smartadmin.module.system.datascope; + +import net.lab1024.smartadmin.module.system.datascope.domain.dto.DataScopeSqlConfigDTO; +import net.lab1024.smartadmin.module.system.datascope.service.DataScopeSqlConfigService; +import net.lab1024.smartadmin.third.SmartApplicationContext; +import net.lab1024.smartadmin.util.SmartStringUtil; +import org.apache.commons.lang3.StringUtils; +import org.apache.ibatis.mapping.*; +import org.apache.ibatis.plugin.*; +import org.apache.ibatis.session.ResultHandler; +import org.apache.ibatis.session.RowBounds; +import org.springframework.stereotype.Component; + +import java.util.List; +import java.util.Properties; + +/** + * [ mybaits sql 拦截 ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + * @since JDK1.8 + */ +@Intercepts({@Signature(type = org.apache.ibatis.executor.Executor.class, method = "query", args = {MappedStatement.class, Object.class, RowBounds.class, ResultHandler.class})}) +@Component +public class MyBatisPlugin implements Interceptor { + + @Override + public Object intercept(Invocation invocation) throws Throwable { + MappedStatement mappedStatement = (MappedStatement) invocation.getArgs()[0]; + Object parameter = invocation.getArgs()[1]; + BoundSql boundSql = mappedStatement.getBoundSql(parameter); + String originalSql = boundSql.getSql().trim(); + String id = mappedStatement.getId(); + List methodStrList = SmartStringUtil.splitConvertToList(id, "\\."); + String path = methodStrList.get(methodStrList.size() - 2) + "." + methodStrList.get(methodStrList.size() - 1); + DataScopeSqlConfigService dataScopeSqlConfigService = this.dataScopeSqlConfigService(); + if (dataScopeSqlConfigService == null) { + return invocation.proceed(); + } + DataScopeSqlConfigDTO sqlConfigDTO = dataScopeSqlConfigService.getSqlConfig(path); + if (sqlConfigDTO != null) { + BoundSql newBoundSql = copyFromBoundSql(mappedStatement, boundSql, this.joinSql(originalSql, sqlConfigDTO)); + ParameterMap map = mappedStatement.getParameterMap(); + MappedStatement newMs = copyFromMappedStatement(mappedStatement, new BoundSqlSqlSource(newBoundSql), map); + invocation.getArgs()[0] = newMs; + } + + Object obj = invocation.proceed(); + return obj; + } + + private String joinSql(String sql, DataScopeSqlConfigDTO sqlConfigDTO) { + if (null == sqlConfigDTO) { + return sql; + } + String appendSql = this.dataScopeSqlConfigService().getJoinSql(sqlConfigDTO); + if (StringUtils.isEmpty(appendSql)) { + return sql; + } + Integer appendSqlWhereIndex = sqlConfigDTO.getWhereIndex(); + String where = "where"; + String order = "order by"; + String group = "group by"; + int whereIndex = StringUtils.ordinalIndexOf(sql.toLowerCase(), where, appendSqlWhereIndex + 1); + int orderIndex = sql.toLowerCase().indexOf(order); + int groupIndex = sql.toLowerCase().indexOf(group); + if (whereIndex > - 1) { + String subSql = sql.substring(0, whereIndex + where.length() + 1); + subSql = subSql + " " + appendSql + " AND " + sql.substring(whereIndex + where.length() + 1); + return subSql; + } + + if (groupIndex > - 1) { + String subSql = sql.substring(0, groupIndex); + subSql = subSql + " where " + appendSql + " " + sql.substring(groupIndex); + return subSql; + } + if (orderIndex > - 1) { + String subSql = sql.substring(0, orderIndex); + subSql = subSql + " where " + appendSql + " " + sql.substring(orderIndex); + return subSql; + } + sql += " where " + appendSql; + return sql; + } + + public DataScopeSqlConfigService dataScopeSqlConfigService() { + return (DataScopeSqlConfigService) SmartApplicationContext.getBean("dataScopeSqlConfigService"); + } + + public class BoundSqlSqlSource implements SqlSource { + + BoundSql boundSql; + + public BoundSqlSqlSource(BoundSql boundSql) { + this.boundSql = boundSql; + } + @Override + public BoundSql getBoundSql(Object parameterObject) { + return boundSql; + } + } + + /** + * 复制MappedStatement对象 + */ + private MappedStatement copyFromMappedStatement(MappedStatement ms, SqlSource newSqlSource, ParameterMap parameterMap) { + + MappedStatement.Builder builder = new MappedStatement.Builder(ms.getConfiguration(), ms.getId(), newSqlSource, ms.getSqlCommandType()); + builder.resource(ms.getResource()); + builder.fetchSize(ms.getFetchSize()); + builder.statementType(ms.getStatementType()); + builder.keyGenerator(ms.getKeyGenerator()); + builder.timeout(ms.getTimeout()); + builder.parameterMap(parameterMap); + builder.resultMaps(ms.getResultMaps()); + builder.resultSetType(ms.getResultSetType()); + builder.cache(ms.getCache()); + builder.flushCacheRequired(ms.isFlushCacheRequired()); + builder.useCache(ms.isUseCache()); + return builder.build(); + } + + /** + * 复制BoundSql对象 + */ + private BoundSql copyFromBoundSql(MappedStatement ms, BoundSql boundSql, String sql) { + BoundSql newBoundSql = new BoundSql(ms.getConfiguration(), sql, boundSql.getParameterMappings(), boundSql.getParameterObject()); + for (ParameterMapping mapping : boundSql.getParameterMappings()) { + String prop = mapping.getProperty(); + if (boundSql.hasAdditionalParameter(prop)) { + newBoundSql.setAdditionalParameter(prop, boundSql.getAdditionalParameter(prop)); + } + } + return newBoundSql; + } + + @Override + public Object plugin(Object arg0) { + return Plugin.wrap(arg0, this); + } + + @Override + public void setProperties(Properties arg0) { + + } + +} \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/datascope/constant/DataScopeTypeEnum.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/datascope/constant/DataScopeTypeEnum.java new file mode 100644 index 00000000..66ebb8f9 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/datascope/constant/DataScopeTypeEnum.java @@ -0,0 +1,51 @@ +package net.lab1024.smartadmin.module.system.datascope.constant; + + +import net.lab1024.smartadmin.common.domain.BaseEnum; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/4/28 0028 下午 15:37 + * @since JDK1.8 + */ +public enum DataScopeTypeEnum implements BaseEnum { + + DEFAULT(0,0,"默认类型","数据范围样例"); + + private Integer value; + private Integer sort; + private String name; + private String desc; + + DataScopeTypeEnum(Integer value,Integer sort,String name,String desc) { + this.value = value; + this.sort = sort; + this.name = name; + this.desc = desc; + } + + @Override + public Integer getValue() { + return value; + } + + public Integer getSort() { + return sort; + } + + @Override + public String getDesc() { + return desc; + } + + public String getName() { + return name; + } + + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/datascope/constant/DataScopeViewTypeEnum.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/datascope/constant/DataScopeViewTypeEnum.java new file mode 100644 index 00000000..75ddf0c9 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/datascope/constant/DataScopeViewTypeEnum.java @@ -0,0 +1,54 @@ +package net.lab1024.smartadmin.module.system.datascope.constant; + + +import net.lab1024.smartadmin.common.domain.BaseEnum; + +import java.util.Arrays; +import java.util.Optional; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/4/28 0028 下午 15:37 + * @since JDK1.8 + */ +public enum DataScopeViewTypeEnum implements BaseEnum { + + ME(0,0,"本人"), + + DEPARTMENT(1,5,"本部门"), + + DEPARTMENT_AND_SUB(2,10,"本部门及下属子部门"), + + ALL(3,15,"全部"); + + private Integer value; + private Integer level; + private String desc; + + DataScopeViewTypeEnum(Integer value,Integer level, String desc) { + this.value = value; + this.level = level; + this.desc = desc; + } + + @Override + public Integer getValue() { + return value; + } + + public Integer getLevel() { + return level; + } + + @Override + public String getDesc() { + return desc; + } + + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/datascope/constant/DataScopeWhereInTypeEnum.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/datascope/constant/DataScopeWhereInTypeEnum.java new file mode 100644 index 00000000..e9037373 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/datascope/constant/DataScopeWhereInTypeEnum.java @@ -0,0 +1,42 @@ +package net.lab1024.smartadmin.module.system.datascope.constant; + +import net.lab1024.smartadmin.common.domain.BaseEnum; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/5/8 0008 下午 16:00 + * @since JDK1.8 + */ +public enum DataScopeWhereInTypeEnum implements BaseEnum { + + EMPLOYEE(0,"以员工IN"), + + DEPARTMENT(1,"以部门IN"), + + CUSTOM_STRATEGY(2,"自定义策略"); + + private Integer value; + private String desc; + + DataScopeWhereInTypeEnum(Integer value, String desc) { + this.value = value; + this.desc = desc; + } + + @Override + public Integer getValue() { + return value; + } + + @Override + public String getDesc() { + return desc; + } + + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/datascope/domain/dto/DataScopeAndViewTypeVO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/datascope/domain/dto/DataScopeAndViewTypeVO.java new file mode 100644 index 00000000..1412be57 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/datascope/domain/dto/DataScopeAndViewTypeVO.java @@ -0,0 +1,36 @@ +package net.lab1024.smartadmin.module.system.datascope.domain.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/4/27 0027 下午 16:37 + * @since JDK1.8 + */ +@Data +public class DataScopeAndViewTypeVO { + + @ApiModelProperty("数据范围类型") + private Integer dataScopeType; + + @ApiModelProperty("数据范围名称") + private String dataScopeTypeName; + + @ApiModelProperty("描述") + private String dataScopeTypeDesc; + + @ApiModelProperty("顺序") + private Integer dataScopeTypeSort; + + @ApiModelProperty("可见范围列表") + private List viewTypeList; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/datascope/domain/dto/DataScopeBatchSetDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/datascope/domain/dto/DataScopeBatchSetDTO.java new file mode 100644 index 00000000..6ff9fc92 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/datascope/domain/dto/DataScopeBatchSetDTO.java @@ -0,0 +1,28 @@ +package net.lab1024.smartadmin.module.system.datascope.domain.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/4/27 0027 下午 16:51 + * @since JDK1.8 + */ +@Data +public class DataScopeBatchSetDTO { + + @ApiModelProperty("数据范围类型") + @NotNull(message = "数据范围类型不能为空") + private Integer dataScopeType; + + @ApiModelProperty("可见范围") + @NotNull(message = "可见范围不能为空") + private Integer viewType; +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/datascope/domain/dto/DataScopeBatchSetRoleDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/datascope/domain/dto/DataScopeBatchSetRoleDTO.java new file mode 100644 index 00000000..215ab664 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/datascope/domain/dto/DataScopeBatchSetRoleDTO.java @@ -0,0 +1,30 @@ +package net.lab1024.smartadmin.module.system.datascope.domain.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.Valid; +import javax.validation.constraints.NotNull; +import java.util.List; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/4/27 0027 下午 16:47 + * @since JDK1.8 + */ +@Data +public class DataScopeBatchSetRoleDTO { + + @ApiModelProperty("角色id") + @NotNull(message = "角色id不能为空") + private Long roleId; + + @ApiModelProperty("设置信息") + @Valid + private List batchSetList; +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/datascope/domain/dto/DataScopeDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/datascope/domain/dto/DataScopeDTO.java new file mode 100644 index 00000000..629679bf --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/datascope/domain/dto/DataScopeDTO.java @@ -0,0 +1,33 @@ +package net.lab1024.smartadmin.module.system.datascope.domain.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Builder; +import lombok.Data; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/4/27 0027 下午 16:37 + * @since JDK1.8 + */ +@Data +@Builder +public class DataScopeDTO { + + @ApiModelProperty("数据范围类型") + private Integer dataScopeType; + + @ApiModelProperty("数据范围名称") + private String dataScopeTypeName; + + @ApiModelProperty("描述") + private String dataScopeTypeDesc; + + @ApiModelProperty("顺序") + private Integer dataScopeTypeSort; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/datascope/domain/dto/DataScopeSelectVO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/datascope/domain/dto/DataScopeSelectVO.java new file mode 100644 index 00000000..5d0a3aa8 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/datascope/domain/dto/DataScopeSelectVO.java @@ -0,0 +1,24 @@ +package net.lab1024.smartadmin.module.system.datascope.domain.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/4/27 0027 下午 16:43 + * @since JDK1.8 + */ +@Data +public class DataScopeSelectVO { + + @ApiModelProperty("数据范围id") + private Integer dataScopeType; + + @ApiModelProperty("可见范围") + private Integer viewType; +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/datascope/domain/dto/DataScopeSqlConfigDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/datascope/domain/dto/DataScopeSqlConfigDTO.java new file mode 100644 index 00000000..422933de --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/datascope/domain/dto/DataScopeSqlConfigDTO.java @@ -0,0 +1,40 @@ +package net.lab1024.smartadmin.module.system.datascope.domain.dto; + +import lombok.Data; +import net.lab1024.smartadmin.module.system.datascope.constant.DataScopeTypeEnum; +import net.lab1024.smartadmin.module.system.datascope.constant.DataScopeWhereInTypeEnum; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/4/28 0028 下午 17:21 + * @since JDK1.8 + */ +@Data +public class DataScopeSqlConfigDTO { + + /** + * 数据范围类型 + * {@link DataScopeTypeEnum} + */ + private DataScopeTypeEnum dataScopeType; + + /** + * join sql 具体实现类 + */ + private Class joinSqlImplClazz; + + private String joinSql; + + private Integer whereIndex; + + /** + * whereIn类型 + * {@link DataScopeWhereInTypeEnum} + */ + private DataScopeWhereInTypeEnum dataScopeWhereInType; +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/datascope/domain/dto/DataScopeViewTypeVO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/datascope/domain/dto/DataScopeViewTypeVO.java new file mode 100644 index 00000000..853a514f --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/datascope/domain/dto/DataScopeViewTypeVO.java @@ -0,0 +1,28 @@ +package net.lab1024.smartadmin.module.system.datascope.domain.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Builder; +import lombok.Data; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/4/28 0028 下午 15:41 + * @since JDK1.8 + */ +@Data +@Builder +public class DataScopeViewTypeVO { + + @ApiModelProperty("可见范围") + private Integer viewType; + @ApiModelProperty("可见范围名称") + private String viewTypeName; + + @ApiModelProperty("级别,用于表示范围大小") + private Integer viewTypeLevel; +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/datascope/domain/entity/DataScopeRoleEntity.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/datascope/domain/entity/DataScopeRoleEntity.java new file mode 100644 index 00000000..016f05bf --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/datascope/domain/entity/DataScopeRoleEntity.java @@ -0,0 +1,33 @@ +package net.lab1024.smartadmin.module.system.datascope.domain.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import net.lab1024.smartadmin.common.domain.BaseEntity; +import lombok.Data; + +/** + * [ 数据范围与角色关系 ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/4/27 0027 下午 14:43 + * @since JDK1.8 + */ +@Data +@TableName("t_role_data_scope") +public class DataScopeRoleEntity extends BaseEntity { + + /** + * 数据范围id + */ + private Integer dataScopeType; + /** + * 数据范围类型 + */ + private Integer viewType; + /** + * 角色id + */ + private Long roleId; +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/datascope/service/DataScopeService.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/datascope/service/DataScopeService.java new file mode 100644 index 00000000..46b80bd4 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/datascope/service/DataScopeService.java @@ -0,0 +1,118 @@ +package net.lab1024.smartadmin.module.system.datascope.service; + +import net.lab1024.smartadmin.common.constant.ResponseCodeConst; +import net.lab1024.smartadmin.common.domain.ResponseDTO; +import net.lab1024.smartadmin.module.system.datascope.DataScopeRoleDao; +import net.lab1024.smartadmin.module.system.datascope.constant.DataScopeTypeEnum; +import net.lab1024.smartadmin.module.system.datascope.constant.DataScopeViewTypeEnum; +import net.lab1024.smartadmin.module.system.datascope.domain.entity.DataScopeRoleEntity; +import net.lab1024.smartadmin.util.SmartBeanUtil; +import com.google.common.collect.Lists; +import net.lab1024.smartadmin.module.system.datascope.domain.dto.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; + +import java.util.Comparator; +import java.util.List; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/4/27 0027 下午 14:52 + * @since JDK1.8 + */ +@Service +public class DataScopeService { + + @Autowired + private DataScopeRoleDao dataScopeRoleDao; + + /** + * 获取所有可以进行数据范围配置的信息 + * + * @return + */ + public ResponseDTO> dataScopeList() { + List dataScopeList = this.getDataScopeType(); + List dataScopeAndTypeList = SmartBeanUtil.copyList(dataScopeList, DataScopeAndViewTypeVO.class); + List typeList = this.getViewType(); + dataScopeAndTypeList.forEach(e -> { + e.setViewTypeList(typeList); + }); + return ResponseDTO.succData(dataScopeAndTypeList); + } + + /** + * 获取当前系统存在的数据可见范围 + * + * @return + */ + public List getViewType() { + List viewTypeList = Lists.newArrayList(); + DataScopeViewTypeEnum[] enums = DataScopeViewTypeEnum.class.getEnumConstants(); + DataScopeViewTypeVO dataScopeViewTypeDTO; + for (DataScopeViewTypeEnum viewTypeEnum : enums) { + dataScopeViewTypeDTO = DataScopeViewTypeVO.builder().viewType(viewTypeEnum.getValue()).viewTypeLevel(viewTypeEnum.getLevel()).viewTypeName(viewTypeEnum.getDesc()).build(); + viewTypeList.add(dataScopeViewTypeDTO); + } + Comparator comparator = (h1, h2) -> h1.getViewTypeLevel().compareTo(h2.getViewTypeLevel()); + viewTypeList.sort(comparator); + return viewTypeList; + } + + public List getDataScopeType() { + List dataScopeTypeList = Lists.newArrayList(); + DataScopeTypeEnum[] enums = DataScopeTypeEnum.class.getEnumConstants(); + DataScopeDTO dataScopeDTO; + for (DataScopeTypeEnum typeEnum : enums) { + dataScopeDTO = + DataScopeDTO.builder().dataScopeType(typeEnum.getValue()).dataScopeTypeDesc(typeEnum.getDesc()).dataScopeTypeName(typeEnum.getName()).dataScopeTypeSort(typeEnum.getSort()).build(); + dataScopeTypeList.add(dataScopeDTO); + } + Comparator comparator = (h1, h2) -> h1.getDataScopeTypeSort().compareTo(h2.getDataScopeTypeSort()); + dataScopeTypeList.sort(comparator); + return dataScopeTypeList; + } + + /** + * 获取某个角色的数据范围设置信息 + * + * @param roleId + * @return + */ + public ResponseDTO> dataScopeListByRole(Long roleId) { + + List dataScopeRoleEntityList = dataScopeRoleDao.listByRoleId(roleId); + if (CollectionUtils.isEmpty(dataScopeRoleEntityList)) { + return ResponseDTO.succData(Lists.newArrayList()); + } + List dataScopeSelects = SmartBeanUtil.copyList(dataScopeRoleEntityList, DataScopeSelectVO.class); + return ResponseDTO.succData(dataScopeSelects); + } + + /** + * 批量设置某个角色的数据范围设置信息 + * + * @param batchSetRoleDTO + * @return + */ + @Transactional(rollbackFor = Exception.class) + public ResponseDTO dataScopeBatchSet(DataScopeBatchSetRoleDTO batchSetRoleDTO) { + List batchSetList = batchSetRoleDTO.getBatchSetList(); + if (CollectionUtils.isEmpty(batchSetList)) { + return ResponseDTO.wrap(ResponseCodeConst.ERROR_PARAM, "缺少配置信息"); + } + List dataScopeRoleEntityList = SmartBeanUtil.copyList(batchSetList, DataScopeRoleEntity.class); + dataScopeRoleEntityList.forEach(e -> e.setRoleId(batchSetRoleDTO.getRoleId())); + dataScopeRoleDao.deleteByRoleId(batchSetRoleDTO.getRoleId()); + dataScopeRoleDao.batchInsert(dataScopeRoleEntityList); + return ResponseDTO.succ(); + } + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/datascope/service/DataScopeSqlConfigService.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/datascope/service/DataScopeSqlConfigService.java new file mode 100644 index 00000000..30381384 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/datascope/service/DataScopeSqlConfigService.java @@ -0,0 +1,142 @@ +package net.lab1024.smartadmin.module.system.datascope.service; + +import lombok.extern.slf4j.Slf4j; +import net.lab1024.smartadmin.common.anno.DataScope; +import net.lab1024.smartadmin.module.system.datascope.constant.DataScopeTypeEnum; +import net.lab1024.smartadmin.module.system.datascope.constant.DataScopeViewTypeEnum; +import net.lab1024.smartadmin.module.system.datascope.constant.DataScopeWhereInTypeEnum; +import net.lab1024.smartadmin.module.system.datascope.domain.dto.DataScopeSqlConfigDTO; +import net.lab1024.smartadmin.module.system.datascope.strategy.DataScopePowerStrategy; +import net.lab1024.smartadmin.module.system.login.domain.RequestTokenBO; +import net.lab1024.smartadmin.third.SmartApplicationContext; +import net.lab1024.smartadmin.util.SmartRequestTokenUtil; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.reflections.Reflections; +import org.reflections.scanners.MethodAnnotationsScanner; +import org.reflections.util.ClasspathHelper; +import org.reflections.util.ConfigurationBuilder; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import javax.annotation.PostConstruct; +import java.lang.reflect.Method; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/4/29 0029 上午 10:12 + * @since JDK1.8 + */ +@Slf4j +@Service +public class DataScopeSqlConfigService { + + private ConcurrentHashMap dataScopeMethodMap = new ConcurrentHashMap<>(); + + @Autowired + private DataScopeViewService dataScopeViewService; + + @Value("${swagger.packAge}") + private String scanPackage; + + /** + * 注解joinsql 参数 + */ + private static final String EMPLOYEE_PARAM = "#employeeIds"; + + private static final String DEPARTMENT_PARAM = "#departmentIds"; + + @PostConstruct + private void initDataScopeMethodMap() { + this.refreshDataScopeMethodMap(); + } + + /** + * 刷新 所有添加数据范围注解的接口方法配置 + * + * @return + */ + private Map refreshDataScopeMethodMap() { + Reflections reflections = new Reflections(new ConfigurationBuilder().setUrls(ClasspathHelper.forPackage(scanPackage)).setScanners(new MethodAnnotationsScanner())); + Set methods = reflections.getMethodsAnnotatedWith(DataScope.class); + for (Method method : methods) { + DataScope dataScopeAnnotation = method.getAnnotation(DataScope.class); + if (dataScopeAnnotation != null) { + DataScopeSqlConfigDTO configDTO = new DataScopeSqlConfigDTO(); + configDTO.setDataScopeType(dataScopeAnnotation.dataScopeType()); + configDTO.setJoinSql(dataScopeAnnotation.joinSql()); + configDTO.setWhereIndex(dataScopeAnnotation.whereIndex()); + configDTO.setDataScopeWhereInType(dataScopeAnnotation.whereInType()); + dataScopeMethodMap.put(method.getDeclaringClass().getSimpleName() + "." + method.getName(), configDTO); + } + } + return dataScopeMethodMap; + } + + /** + * 根据调用的方法获取,此方法的配置信息 + * + * @param method + * @return + */ + public DataScopeSqlConfigDTO getSqlConfig(String method) { + DataScopeSqlConfigDTO sqlConfigDTO = this.dataScopeMethodMap.get(method); + return sqlConfigDTO; + } + + /** + * 组装需要拼接的sql + * + * @param sqlConfigDTO + * @return + */ + public String getJoinSql(DataScopeSqlConfigDTO sqlConfigDTO) { + DataScopeTypeEnum dataScopeTypeEnum = sqlConfigDTO.getDataScopeType(); + String joinSql = sqlConfigDTO.getJoinSql(); + RequestTokenBO requestToken = SmartRequestTokenUtil.getThreadLocalUser(); + Long employeeId = requestToken.getRequestUserId(); + if (DataScopeWhereInTypeEnum.CUSTOM_STRATEGY == sqlConfigDTO.getDataScopeWhereInType()) { + Class strategyClass = sqlConfigDTO.getJoinSqlImplClazz(); + if(strategyClass == null){ + log.warn("data scope custom strategy class is null"); + return ""; + } + DataScopePowerStrategy powerStrategy = (DataScopePowerStrategy)SmartApplicationContext.getBean(sqlConfigDTO.getJoinSqlImplClazz()); + if (powerStrategy == null) { + log.warn("data scope custom strategy class:{} ,bean is null",sqlConfigDTO.getJoinSqlImplClazz()); + return ""; + } + DataScopeViewTypeEnum viewTypeEnum = dataScopeViewService.getEmployeeDataScopeViewType(dataScopeTypeEnum, employeeId); + return powerStrategy.getCondition(viewTypeEnum,sqlConfigDTO); + } + if (DataScopeWhereInTypeEnum.EMPLOYEE == sqlConfigDTO.getDataScopeWhereInType()) { + List canViewEmployeeIds = dataScopeViewService.getCanViewEmployeeId(dataScopeTypeEnum, employeeId); + if (CollectionUtils.isEmpty(canViewEmployeeIds)) { + return ""; + } + String employeeIds = StringUtils.join(canViewEmployeeIds, ","); + String sql = joinSql.replaceAll(EMPLOYEE_PARAM, employeeIds); + return sql; + } + if (DataScopeWhereInTypeEnum.DEPARTMENT == sqlConfigDTO.getDataScopeWhereInType()) { + List canViewDepartmentIds = dataScopeViewService.getCanViewDepartmentId(dataScopeTypeEnum, employeeId); + if (CollectionUtils.isEmpty(canViewDepartmentIds)) { + return ""; + } + String departmentIds = StringUtils.join(canViewDepartmentIds, ","); + String sql = joinSql.replaceAll(DEPARTMENT_PARAM, departmentIds); + return sql; + } + return ""; + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/datascope/service/DataScopeViewService.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/datascope/service/DataScopeViewService.java new file mode 100644 index 00000000..11ec5bc7 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/datascope/service/DataScopeViewService.java @@ -0,0 +1,175 @@ +package net.lab1024.smartadmin.module.system.datascope.service; + +import com.google.common.collect.Lists; +import net.lab1024.smartadmin.module.system.datascope.DataScopeRoleDao; +import net.lab1024.smartadmin.module.system.datascope.constant.DataScopeTypeEnum; +import net.lab1024.smartadmin.module.system.datascope.constant.DataScopeViewTypeEnum; +import net.lab1024.smartadmin.module.system.datascope.domain.entity.DataScopeRoleEntity; +import net.lab1024.smartadmin.module.system.department.DepartmentTreeService; +import net.lab1024.smartadmin.module.system.employee.EmployeeDao; +import net.lab1024.smartadmin.module.system.employee.domain.dto.EmployeeDTO; +import net.lab1024.smartadmin.module.system.employee.domain.entity.EmployeeEntity; +import net.lab1024.smartadmin.module.system.employee.domain.vo.EmployeeVO; +import net.lab1024.smartadmin.module.system.privilege.service.PrivilegeEmployeeService; +import net.lab1024.smartadmin.module.system.role.roleemployee.RoleEmployeeDao; +import net.lab1024.smartadmin.util.SmartBaseEnumUtil; +import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Comparator; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/4/28 0028 下午 15:56 + * @since JDK1.8 + */ +@Service +public class DataScopeViewService { + + @Autowired + private RoleEmployeeDao roleEmployeeDao; + + @Autowired + private DataScopeRoleDao dataScopeRoleDao; + + @Autowired + private DepartmentTreeService departmentTreeService; + + @Autowired + private EmployeeDao employeeDao; + + @Autowired + private PrivilegeEmployeeService privilegeEmployeeService; + + /** + * 获取某人可以查看的所有人员信息 + * + * @param dataScopeTypeEnum + * @param employeeId + * @return + */ + public List getCanViewEmployeeId(DataScopeTypeEnum dataScopeTypeEnum, Long employeeId) { + DataScopeViewTypeEnum viewType = this.getEmployeeDataScopeViewType(dataScopeTypeEnum, employeeId); + if (DataScopeViewTypeEnum.ME == viewType) { + return this.getMeEmployeeIdList(employeeId); + } + if (DataScopeViewTypeEnum.DEPARTMENT == viewType) { + return this.getDepartmentEmployeeIdList(employeeId); + } + if (DataScopeViewTypeEnum.DEPARTMENT_AND_SUB == viewType) { + return this.getDepartmentAndSubEmployeeIdList(employeeId); + } + return Lists.newArrayList(); + } + + /** + * 获取某人可以查看的所有部门信息 + * + * @param dataScopeTypeEnum + * @param employeeId + * @return + */ + public List getCanViewDepartmentId(DataScopeTypeEnum dataScopeTypeEnum, Long employeeId) { + DataScopeViewTypeEnum viewType = this.getEmployeeDataScopeViewType(dataScopeTypeEnum, employeeId); + if (DataScopeViewTypeEnum.ME == viewType) { + return this.getMeDepartmentIdList(employeeId); + } + if (DataScopeViewTypeEnum.DEPARTMENT == viewType) { + return this.getMeDepartmentIdList(employeeId); + } + if (DataScopeViewTypeEnum.DEPARTMENT_AND_SUB == viewType) { + return this.getDepartmentAndSubIdList(employeeId); + } + return Lists.newArrayList(); + } + + private List getMeDepartmentIdList(Long employeeId) { + EmployeeEntity employeeEntity = employeeDao.selectById(employeeId); + return Lists.newArrayList(employeeEntity.getDepartmentId()); + } + + private List getDepartmentAndSubIdList(Long employeeId) { + EmployeeEntity employeeEntity = employeeDao.selectById(employeeId); + List allDepartmentIds = Lists.newArrayList(); + departmentTreeService.buildIdList(employeeEntity.getDepartmentId(), allDepartmentIds); + return allDepartmentIds; + } + + /** + * 根据员工id 获取各数据范围最大的可见范围 map + * + * @param employeeId + * @return + */ + public DataScopeViewTypeEnum getEmployeeDataScopeViewType(DataScopeTypeEnum dataScopeTypeEnum, Long employeeId) { + if (employeeId == null) { + return DataScopeViewTypeEnum.ME; + } + + if (privilegeEmployeeService.isSuperman(employeeId)) { + return DataScopeViewTypeEnum.ALL; + } + List roleIdList = roleEmployeeDao.selectRoleIdByEmployeeId(employeeId); + //未设置角色 默认本人 + if (CollectionUtils.isEmpty(roleIdList)) { + return DataScopeViewTypeEnum.ME; + } + //未设置角色数据范围 默认本人 + List dataScopeRoleList = dataScopeRoleDao.listByRoleIdList(roleIdList); + if (CollectionUtils.isEmpty(dataScopeRoleList)) { + return DataScopeViewTypeEnum.ME; + } + Map> listMap = dataScopeRoleList.stream().collect(Collectors.groupingBy(DataScopeRoleEntity::getDataScopeType)); + List viewLevelList = listMap.get(dataScopeTypeEnum.getValue()); + DataScopeRoleEntity maxLevel = viewLevelList.stream().max(Comparator.comparing(e -> SmartBaseEnumUtil.getEnumByValue(e.getViewType(), DataScopeViewTypeEnum.class).getLevel())).get(); + return SmartBaseEnumUtil.getEnumByValue(maxLevel.getViewType(), DataScopeViewTypeEnum.class); + } + + /** + * 获取本人相关 可查看员工id + * + * @param employeeId + * @return + */ + private List getMeEmployeeIdList(Long employeeId) { + return Lists.newArrayList(employeeId); + } + + /** + * 获取本部门相关 可查看员工id + * + * @param employeeId + * @return + */ + private List getDepartmentEmployeeIdList(Long employeeId) { + EmployeeEntity employeeEntity = employeeDao.selectById(employeeId); + List employeeList = employeeDao.getEmployeeIdByDeptId(employeeEntity.getDepartmentId()); + List employeeIdList = employeeList.stream().map(e -> e.getId()).collect(Collectors.toList()); + return employeeIdList; + } + + /** + * 获取本部门及下属子部门相关 可查看员工id + * + * @param employeeId + * @return + */ + private List getDepartmentAndSubEmployeeIdList(Long employeeId) { + EmployeeEntity employeeEntity = employeeDao.selectById(employeeId); + List allDepartmentIds = Lists.newArrayList(); + departmentTreeService.buildIdList(employeeEntity.getDepartmentId(), allDepartmentIds); + List employeeList = employeeDao.getEmployeeIdByDeptIds(allDepartmentIds); + List employeeIdList = employeeList.stream().map(e -> e.getId()).collect(Collectors.toList()); + return employeeIdList; + } + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/datascope/strategy/DataScopePowerStrategy.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/datascope/strategy/DataScopePowerStrategy.java new file mode 100644 index 00000000..d12cbf15 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/datascope/strategy/DataScopePowerStrategy.java @@ -0,0 +1,24 @@ +package net.lab1024.smartadmin.module.system.datascope.strategy; +import net.lab1024.smartadmin.module.system.datascope.constant.DataScopeViewTypeEnum; +import net.lab1024.smartadmin.module.system.datascope.domain.dto.DataScopeSqlConfigDTO; + +/** + * [ 数据范围策略 ,使用DataScopeWhereInTypeEnum.CUSTOM_STRATEGY类型,DataScope注解的joinSql属性无用] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2020/11/28 0008 下午 16:00 + * @since JDK1.8 + */ +public abstract class DataScopePowerStrategy { + + /** + * 获取joinsql 字符串 + * @param viewTypeEnum 查看的类型 + * @param sqlConfigDTO + * @return + */ + public abstract String getCondition(DataScopeViewTypeEnum viewTypeEnum, DataScopeSqlConfigDTO sqlConfigDTO); +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/department/DepartmentController.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/department/DepartmentController.java new file mode 100644 index 00000000..1a070773 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/department/DepartmentController.java @@ -0,0 +1,99 @@ +package net.lab1024.smartadmin.module.system.department; + +import net.lab1024.smartadmin.common.anno.OperateLog; +import net.lab1024.smartadmin.constant.SwaggerTagConst; +import net.lab1024.smartadmin.common.domain.ResponseDTO; +import net.lab1024.smartadmin.module.system.department.domain.dto.DepartmentCreateDTO; +import net.lab1024.smartadmin.module.system.department.domain.dto.DepartmentUpdateDTO; +import net.lab1024.smartadmin.module.system.department.domain.dto.DepartmentVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; + +/** + * 部门管理路由器 + * + * @author listen + * @date 2017/12/19 14:29 + */ +@Api(tags = {SwaggerTagConst.Admin.MANAGER_DEPARTMENT}) +@OperateLog +@RestController +public class DepartmentController { + + @Autowired + private DepartmentService departmentService; + + @ApiOperation(value = "查询部门树形列表", notes = "查询部门列表") + @GetMapping("/department/list") + public ResponseDTO> listDepartment() { + return departmentService.listDepartment(); + } + + @ApiOperation(value = "查询部门及员工列表", notes = "查询部门及员工列表") + @GetMapping("/department/listEmployee") + public ResponseDTO> listDepartmentEmployee() { + return departmentService.listAllDepartmentEmployee(null); + } + + @ApiOperation(value = "根据部门名称查询部门及员工列表", notes = "根据部门名称查询部门及员工列表") + @GetMapping("/department/listEmployeeByDepartmentName") + public ResponseDTO> listDepartmentEmployee(String departmentName) { + return departmentService.listAllDepartmentEmployee(departmentName); + } + + @ApiOperation(value = "添加部门", notes = "添加部门") + @PostMapping("/department/add") + public ResponseDTO addDepartment(@Valid @RequestBody DepartmentCreateDTO departmentCreateDTO) { + return departmentService.addDepartment(departmentCreateDTO); + } + + @ApiOperation(value = "更新部门信息", notes = "更新部门信息") + @PostMapping("/department/update") + public ResponseDTO updateDepartment(@Valid @RequestBody DepartmentUpdateDTO departmentUpdateDTO) { + return departmentService.updateDepartment(departmentUpdateDTO); + } + + @ApiOperation(value = "删除部门", notes = "删除部门") + @PostMapping("/department/delete/{deptId}") + public ResponseDTO delDepartment(@PathVariable Long deptId) { + return departmentService.delDepartment(deptId); + } + + @ApiOperation(value = "获取部门信息", notes = "获取部门") + @GetMapping("/department/query/{deptId}") + public ResponseDTO getDepartment(@PathVariable Long deptId) { + return departmentService.getDepartmentById(deptId); + } + + @ApiOperation(value = "查询部门列表", notes = "查询部门列表") + @GetMapping("/department/listAll") + public ResponseDTO> listAll() { + return departmentService.listAll(); + } + + + @ApiOperation(value = "上下移动") + @GetMapping("/department/upOrDown/{deptId}/{swapId}") + public ResponseDTO upOrDown(@PathVariable Long deptId, @PathVariable Long swapId) { + return departmentService.upOrDown(deptId, swapId); + } + + @ApiOperation(value = "升级") + @GetMapping("/department/upgrade/{deptId}") + public ResponseDTO upgrade(@PathVariable Long deptId) { + return departmentService.upgrade(deptId); + } + + @ApiOperation(value = "降级") + @GetMapping("/department/downgrade/{deptId}/{preId}") + public ResponseDTO downgrade(@PathVariable Long deptId, @PathVariable Long preId) { + return departmentService.downgrade(deptId, preId); + } + + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/department/DepartmentDao.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/department/DepartmentDao.java new file mode 100644 index 00000000..d7bc2f77 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/department/DepartmentDao.java @@ -0,0 +1,47 @@ +package net.lab1024.smartadmin.module.system.department; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import net.lab1024.smartadmin.module.system.department.domain.dto.DepartmentVO; +import net.lab1024.smartadmin.module.system.department.domain.entity.DepartmentEntity; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * t_department dao接口 + * + * @author listen + * @date 2017/12/19 10:58 + */ +@Component +@Mapper +public interface DepartmentDao extends BaseMapper { + + /** + * 根据部门id,查询此部门直接子部门的数量 + * + * @param deptId + * @return int 子部门的数量 + */ + Integer countSubDepartment(@Param("deptId") Long deptId); + + /** + * 获取全部部门列表 + * + * @return List + */ + List listAll(); + + /** + * 功能描述: 根据父部门id查询 + * + * @param + * @return + * @auther yandanyang + * @date 2018/8/25 0025 上午 9:46 + */ + List selectByParentId(@Param("departmentId") Long departmentId); + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/department/DepartmentResponseCodeConst.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/department/DepartmentResponseCodeConst.java new file mode 100644 index 00000000..a7a219e0 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/department/DepartmentResponseCodeConst.java @@ -0,0 +1,39 @@ +package net.lab1024.smartadmin.module.system.department; + +import net.lab1024.smartadmin.common.constant.ResponseCodeConst; + +/** + * 部门返回信息常量类 + * 2001 - 2999 + * + * @author listen + * @date 2017/12/19 18:52 + */ +public class DepartmentResponseCodeConst extends ResponseCodeConst { + + /** + * 部门不存在 1001 + */ + public static final DepartmentResponseCodeConst DEPT_NOT_EXISTS = new DepartmentResponseCodeConst(2001, "部门不存在"); + + /** + * 当前部门有子级部门 不能删除 10003 + */ + public static final DepartmentResponseCodeConst CANNOT_DEL_DEPARTMENT_WITH_CHILD = new + DepartmentResponseCodeConst(2002, "当前部门有子级部门,无法删除!"); + + /** + * 当前部门有员工 不能删除 10004 + */ + public static final DepartmentResponseCodeConst CANNOT_DEL_DEPARTMENT_WITH_EMPLOYEE = new + DepartmentResponseCodeConst(2003, "当前部门有员工,无法删除!"); + + /** + * + */ + public static final DepartmentResponseCodeConst PARENT_ID_ERROR = new DepartmentResponseCodeConst(2004, "上级部门id不能等于当前部门id"); + + public DepartmentResponseCodeConst(int code, String msg) { + super(code, msg); + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/department/DepartmentService.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/department/DepartmentService.java new file mode 100644 index 00000000..b5b99ab0 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/department/DepartmentService.java @@ -0,0 +1,285 @@ +package net.lab1024.smartadmin.module.system.department; + +import net.lab1024.smartadmin.common.domain.ResponseDTO; +import net.lab1024.smartadmin.module.system.department.domain.dto.DepartmentCreateDTO; +import net.lab1024.smartadmin.module.system.department.domain.dto.DepartmentUpdateDTO; +import net.lab1024.smartadmin.module.system.department.domain.dto.DepartmentVO; +import net.lab1024.smartadmin.module.system.department.domain.entity.DepartmentEntity; +import net.lab1024.smartadmin.module.system.employee.EmployeeDao; +import net.lab1024.smartadmin.module.system.employee.domain.dto.EmployeeDTO; +import net.lab1024.smartadmin.util.SmartBeanUtil; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + * 部门管理业务类 + * + * @author listen + * @date 2017/12/19 14:25 + */ +@Service +public class DepartmentService { + + @Autowired + private DepartmentDao departmentDao; + + @Autowired + private EmployeeDao employeeDao; + + @Autowired + private DepartmentTreeService departmentTreeService; + + /** + * 获取部门树形结构 + * + * @return + */ + public ResponseDTO> listDepartment() { + List departmentVOList = departmentDao.listAll(); + List result = departmentTreeService.buildTree(departmentVOList); + return ResponseDTO.succData(result); + } + + /** + * 获取所有部门和员工信息 + * + * @param departmentName + * @return + */ + public ResponseDTO> listAllDepartmentEmployee(String departmentName) { + + // 获取全部部门列表 + List departmentVOList = departmentDao.listAll(); + if (StringUtils.isNotBlank(departmentName)) { + // 检索条件不为空的时候 过滤部门列表 + departmentVOList = filterDepartment(departmentVOList, departmentName); + } + + Map departmentMap = departmentVOList.stream().collect(Collectors.toMap(DepartmentVO::getId, Function.identity())); + // 获取全部员工列表 + List employeeList = employeeDao.listAll(); + employeeList.forEach(employeeDTO -> { + + DepartmentVO departmentVO = departmentMap.get(employeeDTO.getDepartmentId()); + if (null == departmentVO) { + return; + } + List employeeDTOList = departmentVO.getEmployees(); + if (null == employeeDTOList) { + employeeDTOList = new ArrayList<>(); + } + employeeDTOList.add(employeeDTO); + departmentVO.setEmployees(employeeDTOList); + }); + List result = departmentTreeService.buildTree(departmentVOList); + return ResponseDTO.succData(result); + } + + /** + * 过滤部门名称,获取过滤后的结果 + * + * @author lidoudou + * @date 2019/4/28 20:17 + */ + private List filterDepartment(List departmentVOList, String departmentName) { + Map departmentMap = new HashMap<>(); + departmentVOList.forEach(item -> { + if (item.getName().indexOf(departmentName) < 0) { + return; + } + // 当前部门包含关键字 + departmentMap.put(item.getId(), item); + Long parentId = item.getParentId(); + if (null != parentId) { + List filterResult = new ArrayList<>(); + getParentDepartment(departmentVOList, parentId, filterResult); + for (DepartmentVO dto : filterResult) { + if (!departmentMap.containsKey(dto.getId())) { + departmentMap.put(dto.getId(), dto); + } + } + } + }); + return departmentMap.values().stream().collect(Collectors.toList()); + } + + private List getParentDepartment(List departmentVOList, Long parentId, List result) { + List deptList = departmentVOList.stream().filter(e -> e.getId().equals(parentId)).collect(Collectors.toList()); + for (DepartmentVO item : deptList) { + result.add(item); + if (item.getParentId() != 0 && item.getParentId() != null) { + result.addAll(getParentDepartment(departmentVOList, item.getParentId(), result)); + } + } + return result; + } + + /** + * 新增添加部门 + * + * @param departmentCreateDTO + * @return AjaxResult + */ + @Transactional(rollbackFor = Exception.class) + public ResponseDTO addDepartment(DepartmentCreateDTO departmentCreateDTO) { + DepartmentEntity departmentEntity = SmartBeanUtil.copy(departmentCreateDTO, DepartmentEntity.class); + departmentEntity.setSort(0L); + departmentDao.insert(departmentEntity); + departmentEntity.setSort(departmentEntity.getId()); + departmentDao.updateById(departmentEntity); + return ResponseDTO.succ(); + } + + /** + * 更新部门信息 + * + * @param updateDTO + * @return AjaxResult + */ + @Transactional(rollbackFor = Exception.class) + public ResponseDTO updateDepartment(DepartmentUpdateDTO updateDTO) { + if (updateDTO.getParentId() == null) { + return ResponseDTO.wrap(DepartmentResponseCodeConst.PARENT_ID_ERROR); + } + DepartmentEntity entity = departmentDao.selectById(updateDTO.getId()); + if (entity == null) { + return ResponseDTO.wrap(DepartmentResponseCodeConst.NOT_EXISTS); + } + DepartmentEntity departmentEntity = SmartBeanUtil.copy(updateDTO, DepartmentEntity.class); + departmentEntity.setSort(entity.getSort()); + departmentDao.updateById(departmentEntity); + return ResponseDTO.succ(); + } + + /** + * 根据id删除部门 + * 1、需要判断当前部门是否有子部门,有子部门则不允许删除 + * 2、需要判断当前部门是否有员工,有员工则不能删除 + * + * @param deptId + * @return + */ + @Transactional(rollbackFor = Exception.class) + public ResponseDTO delDepartment(Long deptId) { + DepartmentEntity departmentEntity = departmentDao.selectById(deptId); + if (null == departmentEntity) { + return ResponseDTO.wrap(DepartmentResponseCodeConst.DEPT_NOT_EXISTS); + } + // 是否有子级部门 + int subDepartmentNum = departmentDao.countSubDepartment(deptId); + if (subDepartmentNum > 0) { + return ResponseDTO.wrap(DepartmentResponseCodeConst.CANNOT_DEL_DEPARTMENT_WITH_CHILD); + } + + // 是否有未删除员工 + int employeeNum = employeeDao.countByDepartmentId(deptId, false); + if (employeeNum > 0) { + return ResponseDTO.wrap(DepartmentResponseCodeConst.CANNOT_DEL_DEPARTMENT_WITH_EMPLOYEE); + } + departmentDao.deleteById(deptId); + return ResponseDTO.succ(); + } + + /** + * 根据id获取部门信息 + * + * @param departmentId + * @return AjaxResult + */ + public ResponseDTO getDepartmentById(Long departmentId) { + DepartmentEntity departmentEntity = departmentDao.selectById(departmentId); + if (departmentEntity == null) { + return ResponseDTO.wrap(DepartmentResponseCodeConst.DEPT_NOT_EXISTS); + } + DepartmentVO departmentVO = SmartBeanUtil.copy(departmentEntity, DepartmentVO.class); + return ResponseDTO.succData(departmentVO); + } + + /** + * 获取所有部门 + * + * @return + */ + public ResponseDTO> listAll() { + List departmentVOList = departmentDao.listAll(); + return ResponseDTO.succData(departmentVOList); + } + + /** + * 上下移动 + * + * @param departmentId + * @param swapId + * @return + */ + @Transactional(rollbackFor = Exception.class) + public ResponseDTO upOrDown(Long departmentId, Long swapId) { + DepartmentEntity departmentEntity = departmentDao.selectById(departmentId); + if (departmentEntity == null) { + return ResponseDTO.wrap(DepartmentResponseCodeConst.NOT_EXISTS); + } + DepartmentEntity swapEntity = departmentDao.selectById(swapId); + if (swapEntity == null) { + return ResponseDTO.wrap(DepartmentResponseCodeConst.NOT_EXISTS); + } + Long departmentSort = departmentEntity.getSort(); + departmentEntity.setSort(swapEntity.getSort()); + departmentDao.updateById(departmentEntity); + swapEntity.setSort(departmentSort); + departmentDao.updateById(swapEntity); + return ResponseDTO.succ(); + } + + /** + * 部门升级 + * + * @param departmentId + * @return + */ + @Transactional(rollbackFor = Exception.class) + public ResponseDTO upgrade(Long departmentId) { + DepartmentEntity departmentEntity = departmentDao.selectById(departmentId); + if (departmentEntity == null) { + return ResponseDTO.wrap(DepartmentResponseCodeConst.NOT_EXISTS); + } + if (departmentEntity.getParentId() == null || departmentEntity.getParentId().equals(0)) { + return ResponseDTO.wrap(DepartmentResponseCodeConst.ERROR_PARAM, "此部门已经是根节点无法移动"); + } + DepartmentEntity parentEntity = departmentDao.selectById(departmentEntity.getParentId()); + + departmentEntity.setParentId(parentEntity.getParentId()); + departmentDao.updateById(departmentEntity); + return ResponseDTO.succ(); + } + + /** + * 部门降级 + * + * @param departmentId + * @param preId + * @return + */ + @Transactional(rollbackFor = Exception.class) + public ResponseDTO downgrade(Long departmentId, Long preId) { + DepartmentEntity departmentEntity = departmentDao.selectById(departmentId); + if (departmentEntity == null) { + return ResponseDTO.wrap(DepartmentResponseCodeConst.NOT_EXISTS); + } + DepartmentEntity preEntity = departmentDao.selectById(preId); + if (preEntity == null) { + return ResponseDTO.wrap(DepartmentResponseCodeConst.NOT_EXISTS); + } + departmentEntity.setParentId(preEntity.getId()); + departmentDao.updateById(departmentEntity); + return ResponseDTO.succ(); + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/department/DepartmentTreeService.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/department/DepartmentTreeService.java new file mode 100644 index 00000000..b34a2678 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/department/DepartmentTreeService.java @@ -0,0 +1,99 @@ +package net.lab1024.smartadmin.module.system.department; + +import net.lab1024.smartadmin.module.system.department.domain.dto.DepartmentVO; +import com.google.common.collect.Lists; +import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.stream.Collectors; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/4/29 0029 下午 13:52 + * @since JDK1.8 + */ +@Service +public class DepartmentTreeService { + + @Autowired + private DepartmentDao departmentDao; + + /** + * 构建部门树结构 + * @param departmentVOList + * @return + */ + public List buildTree(List departmentVOList) { + if(CollectionUtils.isEmpty(departmentVOList)){ + return Lists.newArrayList(); + } + List list = departmentVOList.stream().filter(e -> e.getParentId() == null || e.getParentId() == 0).collect(Collectors.toList()); + if(CollectionUtils.isEmpty(list)){ + return Lists.newArrayList(); + } + this.buildTree(list,departmentVOList); + return list; + } + + private void buildTree(List nodeList,List departmentVOList){ + int nodeSize = nodeList.size(); + for(int i =0 ;i< nodeSize;i++){ + int preIndex = i-1; + int nextIndex = i+1; + DepartmentVO node = nodeList.get(i); + if(preIndex>-1){ + node.setPreId(nodeList.get(preIndex).getId()); + } + if(nextIndex departmentVOList) { + List children = getChildren(node, departmentVOList); + if (CollectionUtils.isNotEmpty(children)) { + node.setChildrenDepartment(children); + this.buildTree(children,departmentVOList); + } + } + + private List getChildren(DepartmentVO node, List departmentVOList) { + Long id = node.getId(); + return departmentVOList.stream().filter(e -> id.equals(e.getParentId())).collect(Collectors.toList()); + } + + + + /** + * 通过部门id,获取当前以及下属部门 + */ + public void buildIdList(Long deptId, List result) { + List departmentVOList = departmentDao.listAll(); + result.add(deptId); + if (null == deptId) { + result.addAll(departmentVOList.stream().map(DepartmentVO::getId).collect(Collectors.toList())); + return; + } + List children = getChildrenIdList(deptId, departmentVOList); + if (!children.isEmpty()) { + result.addAll(children.stream().map(DepartmentVO::getId).collect(Collectors.toList())); + for (DepartmentVO child : children) { + buildTree(child, departmentVOList); + } + } + } + + private List getChildrenIdList(Long deptId, List departmentVOList) { + return departmentVOList.stream().filter(e -> deptId.equals(e.getParentId())).collect(Collectors.toList()); + } + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/department/domain/dto/DepartmentCreateDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/department/domain/dto/DepartmentCreateDTO.java new file mode 100644 index 00000000..3e80003c --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/department/domain/dto/DepartmentCreateDTO.java @@ -0,0 +1,38 @@ +package net.lab1024.smartadmin.module.system.department.domain.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.NotNull; + +/** + * + * [ ] + * + * @version 1.0 + * @since JDK1.8 + * @author yandanyang + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + */ +@Data +public class DepartmentCreateDTO { + + + @ApiModelProperty("部门名称") + @Length(min = 1, max = 50, message = "请输入正确的部门名称(1-50个字符)") + @NotNull(message = "请输入正确的部门名称(1-50个字符)") + private String name; + + @ApiModelProperty("部门简称") + private String shortName; + + @ApiModelProperty("部门负责人id") + private Long managerId; + + @ApiModelProperty("上级部门id (可选)") + private Long parentId; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/department/domain/dto/DepartmentUpdateDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/department/domain/dto/DepartmentUpdateDTO.java new file mode 100644 index 00000000..f1b108a8 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/department/domain/dto/DepartmentUpdateDTO.java @@ -0,0 +1,25 @@ +package net.lab1024.smartadmin.module.system.department.domain.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + * @since JDK1.8 + */ +@Data +public class DepartmentUpdateDTO extends DepartmentCreateDTO { + + @ApiModelProperty("部门id") + @NotNull(message = "部门id不能为空") + private Long id; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/department/domain/dto/DepartmentVO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/department/domain/dto/DepartmentVO.java new file mode 100644 index 00000000..067e174d --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/department/domain/dto/DepartmentVO.java @@ -0,0 +1,58 @@ +package net.lab1024.smartadmin.module.system.department.domain.dto; + +import com.fasterxml.jackson.annotation.JsonProperty; +import net.lab1024.smartadmin.module.system.employee.domain.dto.EmployeeDTO; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; +import java.util.List; + +@Data +public class DepartmentVO { + + @ApiModelProperty("部门id") + private Long id; + + @ApiModelProperty("部门名称") + private String name; + + @ApiModelProperty("部门简称") + private String shortName; + + @ApiModelProperty("部门负责人姓名") + private String managerName; + + @ApiModelProperty("部门负责人id") + private Long managerId; + + @ApiModelProperty("子部门") + @JsonProperty("children") + private List childrenDepartment; + + @ApiModelProperty("父级部门id") + private Long parentId; + + @ApiModelProperty("同级上一个元素id") + private Long preId; + + @ApiModelProperty("同级下一个元素id") + private Long nextId; + + @ApiModelProperty("排序") + private Long sort; + + @ApiModelProperty("父级部门名称") + private String parentName; + + @ApiModelProperty("部门员工列表") + private List employees; + + @ApiModelProperty("上次更新时间") + private Date updateTime; + + @ApiModelProperty("创建时间") + private Date createTime; + + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/department/domain/entity/DepartmentEntity.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/department/domain/entity/DepartmentEntity.java new file mode 100644 index 00000000..26023788 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/department/domain/entity/DepartmentEntity.java @@ -0,0 +1,48 @@ +package net.lab1024.smartadmin.module.system.department.domain.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import net.lab1024.smartadmin.common.domain.BaseEntity; +import lombok.Data; + +import java.io.Serializable; + +/** + * 部门实体类 + * t_department 数据表 + * + * @author listen + * @date 2017/12/19 10:45 + */ +@Data +@TableName(value = "t_department") +public class DepartmentEntity extends BaseEntity implements Serializable { + + private static final long serialVersionUID = -6787726615141147044L; + + /** + * 部门名称 + */ + private String name; + + /** + * 部门简称 + */ + private String shortName; + + /** + * 负责人员工 id + */ + private Long managerId; + + /** + * 部门父级id + */ + private Long parentId; + + /** + * 排序 + */ + private Long sort; + + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/employee/EmployeeController.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/employee/EmployeeController.java new file mode 100644 index 00000000..33c788e1 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/employee/EmployeeController.java @@ -0,0 +1,103 @@ +package net.lab1024.smartadmin.module.system.employee; + +import net.lab1024.smartadmin.common.anno.NoValidPrivilege; +import net.lab1024.smartadmin.common.anno.OperateLog; +import net.lab1024.smartadmin.common.domain.PageResultDTO; +import net.lab1024.smartadmin.common.domain.ResponseDTO; +import net.lab1024.smartadmin.constant.SwaggerTagConst; +import net.lab1024.smartadmin.module.system.employee.domain.dto.*; +import net.lab1024.smartadmin.module.system.employee.domain.vo.EmployeeVO; +import net.lab1024.smartadmin.module.system.login.domain.RequestTokenBO; +import net.lab1024.smartadmin.util.SmartRequestTokenUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; + +/** + * 员工管理 + * + * @author lidoudou + * @date 2017年12月19日上午11:34:52 + */ +@RestController +@Api(tags = {SwaggerTagConst.Admin.MANAGER_USER}) +@OperateLog +public class EmployeeController { + + @Autowired + private EmployeeService employeeService; + + @PostMapping("/employee/query") + @ApiOperation(value = "员工管理查询", notes = "员工管理查询 @author lidoudou") + public ResponseDTO> query(@RequestBody EmployeeQueryDTO query) { + return employeeService.selectEmployeeList(query); + } + + @GetMapping("/employee/get/all") + @ApiOperation(value = "查询所有员工基本信息,用于选择框", notes = "查询所有员工基本信息,用于选择框") + @NoValidPrivilege + public ResponseDTO> getAll() { + return ResponseDTO.succData(employeeService.getAllEmployee()); + } + + @ApiOperation(value = "添加员工", notes = "@author yandanyang") + @PostMapping("/employee/add") + public ResponseDTO addEmployee(@Valid @RequestBody EmployeeAddDTO emp) { + RequestTokenBO requestToken = SmartRequestTokenUtil.getRequestUser(); + return employeeService.addEmployee(emp, requestToken); + } + + @ApiOperation(value = "禁用单个员工", notes = "@author yandanyang") + @GetMapping("/employee/updateStatus/{employeeId}/{status}") + public ResponseDTO updateStatus(@PathVariable("employeeId") Long employeeId, @PathVariable("status") Integer status) { + return employeeService.updateStatus(employeeId, status); + } + + @ApiOperation(value = "批量禁用", notes = "@author yandanyang") + @PostMapping("/employee/batchUpdateStatus") + public ResponseDTO batchUpdateStatus(@Valid @RequestBody EmployeeBatchUpdateStatusDTO batchUpdateStatusDTO) { + return employeeService.batchUpdateStatus(batchUpdateStatusDTO); + } + + @ApiOperation(value = "更新员工信息", notes = "@author yandanyang") + @PostMapping("/employee/update") + public ResponseDTO updateEmployee(@Valid @RequestBody EmployeeUpdateDTO employeeUpdateDto) { + return employeeService.updateEmployee(employeeUpdateDto); + } + + @ApiOperation(value = "删除员工信息", notes = "@author yandanyang") + @PostMapping("/employee/delete/{employeeId}") + public ResponseDTO deleteEmployeeById(@PathVariable("employeeId") Long employeeId) { + return employeeService.deleteEmployeeById(employeeId); + } + + @ApiOperation(value = "单个员工角色授权", notes = "@author yandanyang") + @PostMapping("/employee/updateRoles") + public ResponseDTO updateRoles(@Valid @RequestBody EmployeeUpdateRolesDTO updateRolesDTO) { + return employeeService.updateRoles(updateRolesDTO); + } + + @ApiOperation(value = "修改密码", notes = "@author yandanyang") + @PostMapping("/employee/updatePwd") + public ResponseDTO updatePwd(@Valid @RequestBody EmployeeUpdatePwdDTO updatePwdDTO) { + RequestTokenBO requestToken = SmartRequestTokenUtil.getRequestUser(); + return employeeService.updatePwd(updatePwdDTO, requestToken); + } + + @ApiOperation(value = "通过部门id获取当前部门的人员&没有部门的人", notes = "@author yandanyang") + @GetMapping("/employee/listEmployeeByDeptId/{deptId}") + public ResponseDTO> listEmployeeByDeptId(@PathVariable Long deptId) { + return employeeService.getEmployeeByDeptId(deptId); + } + + @ApiOperation(value = "员工重置密码", notes = "@author lizongliang") + @GetMapping("/employee/resetPasswd/{employeeId}") + public ResponseDTO resetPasswd(@PathVariable("employeeId") Integer employeeId) { + return employeeService.resetPasswd(employeeId); + } + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/employee/EmployeeDao.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/employee/EmployeeDao.java new file mode 100644 index 00000000..d77779ea --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/employee/EmployeeDao.java @@ -0,0 +1,138 @@ +package net.lab1024.smartadmin.module.system.employee; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import net.lab1024.smartadmin.module.system.employee.domain.dto.EmployeeDTO; +import net.lab1024.smartadmin.module.system.employee.domain.dto.EmployeeQueryDTO; +import net.lab1024.smartadmin.module.system.employee.domain.dto.EmployeeQueryExportDTO; +import net.lab1024.smartadmin.module.system.employee.domain.entity.EmployeeEntity; +import net.lab1024.smartadmin.module.system.employee.domain.vo.EmployeeVO; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Component; + +import java.util.Collection; +import java.util.List; + +/** + * 员工dao接口 + * + * @author lidoudou + * @date 2017年12月19日下午1:36:30 + */ +@Mapper +@Component +public interface EmployeeDao extends BaseMapper { + /** + * 查询员工列表 + * + * @param page + * @param queryDTO + * @return + */ + List selectEmployeeList(Page page, @Param("queryDTO") EmployeeQueryDTO queryDTO); + + /** + * 不带分页查询员工列表 + * + * @param queryDTO + * @return + */ + List selectEmployeeList(@Param("queryDTO") EmployeeQueryExportDTO queryDTO); + + /** + * 批量更新禁用状态 + * + * @param employeeIds + * @param isDisabled + */ + void batchUpdateStatus(@Param("employeeIds") List employeeIds, @Param("isDisabled") Integer isDisabled); + + /** + * 登录 + * + * @param loginName + * @param loginPwd + * @return + */ + EmployeeDTO login(@Param("loginName") String loginName, @Param("loginPwd") String loginPwd); + + /** + * 通过登录名查询 + * + * @param loginName + * @param isDisabled + * @return + */ + EmployeeDTO getByLoginName(@Param("loginName") String loginName, @Param("isDisabled") Integer isDisabled); + + /** + * 通过手机号查询 + * + * @param phone + * @param isDisabled + * @return + */ + EmployeeDTO getByPhone(@Param("phone") String phone, @Param("isDisabled") Integer isDisabled); + + /** + * 获取所有员工 + * + * @return + */ + List listAll(); + + /** + * 获取某个部门员工数 + * + * @param depId + * @param deleteFlag 可以null + * @return + */ + Integer countByDepartmentId(@Param("depId") Long depId, @Param("deleteFlag") Boolean deleteFlag); + + /** + * 获取一批员工 + * + * @param employeeIds + * @return + */ + List getEmployeeByIds(@Param("ids") Collection employeeIds); + + + EmployeeDTO getEmployeeById(@Param("id") Long employeeId); + + /** + * 获取某个部门的员工 + * + * @param departmentId + * @return + */ + List getEmployeeIdByDeptId(@Param("departmentId") Long departmentId); + + /** + * 获取某批部门的员工 + * + * @param departmentIds + * @return + */ + List getEmployeeIdByDeptIds(@Param("departmentIds") List departmentIds); + + + /** + * 员工重置密码 + * + * @param employeeId + * @param password + * @return + */ + Integer updatePassword(@Param("employeeId") Integer employeeId, @Param("password") String password); + + + /** + * 查询所有员工 + * + * @return + */ + List selectAll(); +} \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/employee/EmployeeService.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/employee/EmployeeService.java new file mode 100644 index 00000000..a689bea2 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/employee/EmployeeService.java @@ -0,0 +1,369 @@ +package net.lab1024.smartadmin.module.system.employee; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.google.common.collect.Lists; +import net.lab1024.smartadmin.common.constant.JudgeEnum; +import net.lab1024.smartadmin.common.domain.PageResultDTO; +import net.lab1024.smartadmin.common.domain.ResponseDTO; +import net.lab1024.smartadmin.constant.CommonConst; +import net.lab1024.smartadmin.module.system.department.DepartmentDao; +import net.lab1024.smartadmin.module.system.department.domain.entity.DepartmentEntity; +import net.lab1024.smartadmin.module.system.employee.constant.EmployeeResponseCodeConst; +import net.lab1024.smartadmin.module.system.employee.constant.EmployeeStatusEnum; +import net.lab1024.smartadmin.module.system.employee.domain.bo.EmployeeBO; +import net.lab1024.smartadmin.module.system.employee.domain.dto.*; +import net.lab1024.smartadmin.module.system.employee.domain.entity.EmployeeEntity; +import net.lab1024.smartadmin.module.system.employee.domain.vo.EmployeeVO; +import net.lab1024.smartadmin.module.system.login.domain.RequestTokenBO; +import net.lab1024.smartadmin.module.system.position.PositionDao; +import net.lab1024.smartadmin.module.system.position.PositionService; +import net.lab1024.smartadmin.module.system.position.domain.dto.PositionRelationAddDTO; +import net.lab1024.smartadmin.module.system.position.domain.dto.PositionRelationResultDTO; +import net.lab1024.smartadmin.module.system.privilege.service.PrivilegeEmployeeService; +import net.lab1024.smartadmin.module.system.role.roleemployee.RoleEmployeeDao; +import net.lab1024.smartadmin.module.system.role.roleemployee.domain.RoleEmployeeEntity; +import net.lab1024.smartadmin.util.SmartBeanUtil; +import net.lab1024.smartadmin.util.SmartDigestUtil; +import net.lab1024.smartadmin.util.SmartPageUtil; +import net.lab1024.smartadmin.util.SmartVerificationUtil; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.collections.map.HashedMap; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; +import java.util.regex.Pattern; +import java.util.stream.Collectors; + +/** + * 员工管理 + * + * @author lidoudou + * @date 2017年12月21日上午11:54:52 + */ +@Service +public class EmployeeService { + + private static final String RESET_PASSWORD = "123456"; + + @Autowired + private EmployeeDao employeeDao; + + @Autowired + private DepartmentDao departmentDao; + + @Autowired + private RoleEmployeeDao roleEmployeeDao; + + @Autowired + private PositionService positionService; + + @Autowired + private PositionDao positionDao; + + @Autowired + private PrivilegeEmployeeService privilegeEmployeeService; + + /** + * 员工基本信息的缓存 + */ + private static final ConcurrentHashMap employeeCache = new ConcurrentHashMap<>(); + + public List getAllEmployee() { + return employeeDao.selectAll(); + } + + public EmployeeBO getById(Long id) { + EmployeeBO employeeBO = employeeCache.get(id); + if (employeeBO == null) { + EmployeeEntity employeeEntity = employeeDao.selectById(id); + if (employeeEntity != null) { + Boolean superman = privilegeEmployeeService.isSuperman(id); + employeeBO = new EmployeeBO(employeeEntity, superman); + employeeCache.put(employeeEntity.getId(), employeeBO); + } + } + return employeeBO; + } + + /** + * 查询员工列表 + * + * @param queryDTO + * @return + */ + public ResponseDTO> selectEmployeeList(EmployeeQueryDTO queryDTO) { + Page pageParam = SmartPageUtil.convert2QueryPage(queryDTO); + queryDTO.setIsDelete(JudgeEnum.NO.getValue()); + List employeeList = employeeDao.selectEmployeeList(pageParam, queryDTO); + List employeeIdList = employeeList.stream().map(EmployeeDTO::getId).collect(Collectors.toList()); + + if (CollectionUtils.isNotEmpty(employeeIdList)) { + List positionRelationResultDTOList = positionDao.selectEmployeesRelation(employeeIdList); + Map> employeePositionMap = new HashedMap(); + + for (PositionRelationResultDTO positionRelationResultDTO : positionRelationResultDTOList) { + List relationResultDTOList = employeePositionMap.get(positionRelationResultDTO.getEmployeeId()); + //匹配对应的岗位 + if (relationResultDTOList == null) { + relationResultDTOList = new ArrayList<>(); + employeePositionMap.put(positionRelationResultDTO.getEmployeeId(), relationResultDTOList); + } + relationResultDTOList.add(positionRelationResultDTO); + } + + for (EmployeeDTO employeeDTO : employeeList) { + List relationResultDTOList = employeePositionMap.get(employeeDTO.getId()); + if (relationResultDTOList != null) { + employeeDTO.setPositionRelationList(relationResultDTOList); + employeeDTO.setPositionName(relationResultDTOList.stream().map(PositionRelationResultDTO::getPositionName).collect(Collectors.joining(","))); + } + } + } + return ResponseDTO.succData(SmartPageUtil.convert2PageResult(pageParam, employeeList, EmployeeVO.class)); + } + + /** + * 新增员工 + * + * @param employeeAddDto + * @param requestToken + * @return + */ + public ResponseDTO addEmployee(EmployeeAddDTO employeeAddDto, RequestTokenBO requestToken) { + EmployeeEntity entity = SmartBeanUtil.copy(employeeAddDto, EmployeeEntity.class); + if (StringUtils.isNotEmpty(employeeAddDto.getIdCard())) { + boolean checkResult = Pattern.matches(SmartVerificationUtil.ID_CARD, employeeAddDto.getIdCard()); + if (!checkResult) { + return ResponseDTO.wrap(EmployeeResponseCodeConst.ID_CARD_ERROR); + } + } + if (StringUtils.isNotEmpty(employeeAddDto.getBirthday())) { + boolean checkResult = Pattern.matches(SmartVerificationUtil.DATE, employeeAddDto.getBirthday()); + if (!checkResult) { + return ResponseDTO.wrap(EmployeeResponseCodeConst.BIRTHDAY_ERROR); + } + } + //同名员工 + EmployeeDTO sameNameEmployee = employeeDao.getByLoginName(entity.getLoginName(), EmployeeStatusEnum.NORMAL.getValue()); + if (null != sameNameEmployee) { + return ResponseDTO.wrap(EmployeeResponseCodeConst.LOGIN_NAME_EXISTS); + } + //同电话员工 + EmployeeDTO samePhoneEmployee = employeeDao.getByPhone(entity.getPhone(), EmployeeStatusEnum.NORMAL.getValue()); + if (null != samePhoneEmployee) { + return ResponseDTO.wrap(EmployeeResponseCodeConst.PHONE_EXISTS); + } + Long departmentId = entity.getDepartmentId(); + DepartmentEntity department = departmentDao.selectById(departmentId); + if (department == null) { + return ResponseDTO.wrap(EmployeeResponseCodeConst.DEPT_NOT_EXIST); + } + + //如果没有密码 默认设置为123456 + String pwd = entity.getLoginPwd(); + if (StringUtils.isBlank(pwd)) { + entity.setLoginPwd(SmartDigestUtil.encryptPassword(CommonConst.Password.SALT_FORMAT, RESET_PASSWORD)); + } else { + entity.setLoginPwd(SmartDigestUtil.encryptPassword(CommonConst.Password.SALT_FORMAT, entity.getLoginPwd())); + } + + entity.setCreateUser(requestToken.getRequestUserId()); + if (StringUtils.isEmpty(entity.getBirthday())) { + entity.setBirthday(null); + } + employeeDao.insert(entity); + + PositionRelationAddDTO positionRelAddDTO = new PositionRelationAddDTO(employeeAddDto.getPositionIdList(), entity.getId()); + //存储所选岗位信息 + positionService.addPositionRelation(positionRelAddDTO); + + return ResponseDTO.succ(); + } + + /** + * 更新禁用状态 + * + * @param employeeId + * @param status + * @return + */ + public ResponseDTO updateStatus(Long employeeId, Integer status) { + if (null == employeeId) { + return ResponseDTO.wrap(EmployeeResponseCodeConst.EMP_NOT_EXISTS); + } + EmployeeBO entity = getById(employeeId); + if (null == entity) { + return ResponseDTO.wrap(EmployeeResponseCodeConst.EMP_NOT_EXISTS); + } + List empIds = Lists.newArrayList(); + empIds.add(employeeId); + employeeDao.batchUpdateStatus(empIds, status); + employeeCache.remove(employeeId); + return ResponseDTO.succ(); + } + + /** + * 批量更新员工状态 + * + * @param batchUpdateStatusDTO + * @return + */ + public ResponseDTO batchUpdateStatus(EmployeeBatchUpdateStatusDTO batchUpdateStatusDTO) { + employeeDao.batchUpdateStatus(batchUpdateStatusDTO.getEmployeeIds(), batchUpdateStatusDTO.getStatus()); + if (batchUpdateStatusDTO.getEmployeeIds() != null) { + batchUpdateStatusDTO.getEmployeeIds().forEach(e -> employeeCache.remove(e)); + } + return ResponseDTO.succ(); + } + + /** + * 更新员工 + * + * @param updateDTO + * @return + */ + public ResponseDTO updateEmployee(EmployeeUpdateDTO updateDTO) { + Long employeeId = updateDTO.getId(); + EmployeeEntity employeeEntity = employeeDao.selectById(employeeId); + if (null == employeeEntity) { + return ResponseDTO.wrap(EmployeeResponseCodeConst.EMP_NOT_EXISTS); + } + if (StringUtils.isNotBlank(updateDTO.getIdCard())) { + boolean checkResult = Pattern.matches(SmartVerificationUtil.ID_CARD, updateDTO.getIdCard()); + if (!checkResult) { + return ResponseDTO.wrap(EmployeeResponseCodeConst.ID_CARD_ERROR); + } + } + if (StringUtils.isNotEmpty(updateDTO.getBirthday())) { + boolean checkResult = Pattern.matches(SmartVerificationUtil.DATE, updateDTO.getBirthday()); + if (!checkResult) { + return ResponseDTO.wrap(EmployeeResponseCodeConst.BIRTHDAY_ERROR); + } + } + Long departmentId = updateDTO.getDepartmentId(); + DepartmentEntity departmentEntity = departmentDao.selectById(departmentId); + if (departmentEntity == null) { + return ResponseDTO.wrap(EmployeeResponseCodeConst.DEPT_NOT_EXIST); + } + EmployeeDTO sameNameEmployee = employeeDao.getByLoginName(updateDTO.getLoginName(), EmployeeStatusEnum.NORMAL.getValue()); + if (null != sameNameEmployee && !sameNameEmployee.getId().equals(employeeId)) { + return ResponseDTO.wrap(EmployeeResponseCodeConst.LOGIN_NAME_EXISTS); + } + EmployeeDTO samePhoneEmployee = employeeDao.getByPhone(updateDTO.getLoginName(), EmployeeStatusEnum.NORMAL.getValue()); + if (null != samePhoneEmployee && !samePhoneEmployee.getId().equals(employeeId)) { + return ResponseDTO.wrap(EmployeeResponseCodeConst.PHONE_EXISTS); + } + String newPwd = updateDTO.getLoginPwd(); + if (!StringUtils.isBlank(newPwd)) { + updateDTO.setLoginPwd(SmartDigestUtil.encryptPassword(CommonConst.Password.SALT_FORMAT, updateDTO.getLoginPwd())); + } else { + updateDTO.setLoginPwd(employeeEntity.getLoginPwd()); + } + EmployeeEntity entity = SmartBeanUtil.copy(updateDTO, EmployeeEntity.class); + entity.setUpdateTime(new Date()); + if (StringUtils.isEmpty(entity.getBirthday())) { + entity.setBirthday(null); + } + if (CollectionUtils.isNotEmpty(updateDTO.getPositionIdList())) { + //删除旧的关联关系 添加新的关联关系 + positionService.removePositionRelation(entity.getId()); + PositionRelationAddDTO positionRelAddDTO = new PositionRelationAddDTO(updateDTO.getPositionIdList(), entity.getId()); + positionService.addPositionRelation(positionRelAddDTO); + } + entity.setIsDisabled(employeeEntity.getIsDisabled()); + entity.setIsLeave(employeeEntity.getIsLeave()); + entity.setCreateUser(employeeEntity.getCreateUser()); + entity.setCreateTime(employeeEntity.getCreateTime()); + entity.setUpdateTime(new Date()); + employeeDao.updateById(entity); + employeeCache.remove(employeeId); + return ResponseDTO.succ(); + } + + /** + * 删除员工 + * + * @param employeeId 员工ID + * @return + */ + public ResponseDTO deleteEmployeeById(Long employeeId) { + EmployeeEntity employeeEntity = employeeDao.selectById(employeeId); + if (null == employeeEntity) { + return ResponseDTO.wrap(EmployeeResponseCodeConst.EMP_NOT_EXISTS); + } + //假删 + employeeEntity.setIsDelete(JudgeEnum.YES.getValue().longValue()); + employeeDao.updateById(employeeEntity); + employeeCache.remove(employeeId); + return ResponseDTO.succ(); + } + + /** + * 更新用户角色 + * + * @param updateRolesDTO + * @return + */ + public ResponseDTO updateRoles(EmployeeUpdateRolesDTO updateRolesDTO) { + roleEmployeeDao.deleteByEmployeeId(updateRolesDTO.getEmployeeId()); + if (CollectionUtils.isNotEmpty(updateRolesDTO.getRoleIds())) { + List roleEmployeeEntities = Lists.newArrayList(); + RoleEmployeeEntity roleEmployeeEntity; + for (Long roleId : updateRolesDTO.getRoleIds()) { + roleEmployeeEntity = new RoleEmployeeEntity(); + roleEmployeeEntity.setEmployeeId(updateRolesDTO.getEmployeeId()); + roleEmployeeEntity.setRoleId(roleId); + roleEmployeeEntities.add(roleEmployeeEntity); + } + roleEmployeeDao.batchInsert(roleEmployeeEntities); + } + return ResponseDTO.succ(); + } + + /** + * 更新密码 + * + * @param updatePwdDTO + * @param requestToken + * @return + */ + public ResponseDTO updatePwd(EmployeeUpdatePwdDTO updatePwdDTO, RequestTokenBO requestToken) { + Long employeeId = requestToken.getRequestUserId(); + EmployeeEntity employee = employeeDao.selectById(employeeId); + if (employee == null) { + return ResponseDTO.wrap(EmployeeResponseCodeConst.EMP_NOT_EXISTS); + } + if (!employee.getLoginPwd().equals(SmartDigestUtil.encryptPassword(CommonConst.Password.SALT_FORMAT, updatePwdDTO.getOldPwd()))) { + return ResponseDTO.wrap(EmployeeResponseCodeConst.PASSWORD_ERROR); + } + employee.setLoginPwd(SmartDigestUtil.encryptPassword(CommonConst.Password.SALT_FORMAT, updatePwdDTO.getPwd())); + employeeDao.updateById(employee); + employeeCache.remove(employeeId); + return ResponseDTO.succ(); + } + + public ResponseDTO> getEmployeeByDeptId(Long departmentId) { + List list = employeeDao.getEmployeeIdByDeptId(departmentId); + return ResponseDTO.succData(list); + } + + /** + * 重置密码 + * + * @param employeeId + * @return + */ + public ResponseDTO resetPasswd(Integer employeeId) { + String md5Password = SmartDigestUtil.encryptPassword(CommonConst.Password.SALT_FORMAT, RESET_PASSWORD); + employeeDao.updatePassword(employeeId, md5Password); + employeeCache.remove(employeeId); + return ResponseDTO.succ(); + } + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/employee/constant/EmployeeResponseCodeConst.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/employee/constant/EmployeeResponseCodeConst.java new file mode 100644 index 00000000..379b8be7 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/employee/constant/EmployeeResponseCodeConst.java @@ -0,0 +1,61 @@ +package net.lab1024.smartadmin.module.system.employee.constant; + +import net.lab1024.smartadmin.common.constant.ResponseCodeConst; + +/** + * 员工常量类 + * 3001-3999 + * + * @author lidoudou + * @date 2017年12月19日下午19:04:52 + */ +public class EmployeeResponseCodeConst extends ResponseCodeConst { + + /** + * 员工不存在 + */ + public static final EmployeeResponseCodeConst EMP_NOT_EXISTS = new EmployeeResponseCodeConst(3001, "员工不存在!"); + + /** + * 更新员工信息失败 + */ + public static final EmployeeResponseCodeConst UPDATE_FAILED = new EmployeeResponseCodeConst(3002, "员工更新失败!"); + + /** + * 部门信息不存在 + */ + public static final EmployeeResponseCodeConst DEPT_NOT_EXIST = new EmployeeResponseCodeConst(3003, "部门信息不存在!"); + + /** + * 用户名或密码错误 + */ + public static final EmployeeResponseCodeConst LOGIN_FAILED = new EmployeeResponseCodeConst(3004, "用户名或密码错误!"); + + /** + * 您的账号已被禁用,不得登录系统 + */ + public static final EmployeeResponseCodeConst IS_DISABLED = new EmployeeResponseCodeConst(3005, "您的账号已被禁用,不得登录系统!"); + + /** + * 登录名已存在 + */ + public static final EmployeeResponseCodeConst LOGIN_NAME_EXISTS = new EmployeeResponseCodeConst(3006, "登录名已存在!"); + /** + * 密码输入有误,请重新输入 10115 + */ + public static final EmployeeResponseCodeConst PASSWORD_ERROR = new EmployeeResponseCodeConst(3007, "密码输入有误,请重新输入"); + /** + * 手机号已存在 + */ + public static final EmployeeResponseCodeConst PHONE_EXISTS = new EmployeeResponseCodeConst(3008, "手机号已经存在"); + + public static final EmployeeResponseCodeConst ID_CARD_ERROR = new EmployeeResponseCodeConst(3009, "请输入正确的身份证号"); + + public static final EmployeeResponseCodeConst BIRTHDAY_ERROR = new EmployeeResponseCodeConst(3010, "生日格式不正确"); + + public static final EmployeeResponseCodeConst VERIFICATION_CODE_INVALID = new EmployeeResponseCodeConst(3011, "验证码无效"); + + public EmployeeResponseCodeConst(int code, String msg) { + super(code, msg); + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/employee/constant/EmployeeStatusEnum.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/employee/constant/EmployeeStatusEnum.java new file mode 100644 index 00000000..3c07ce72 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/employee/constant/EmployeeStatusEnum.java @@ -0,0 +1,56 @@ +package net.lab1024.smartadmin.module.system.employee.constant; + +import net.lab1024.smartadmin.common.domain.BaseEnum; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/3/27 0027 下午 16:22 + * @since JDK1.8 + */ + +public enum EmployeeStatusEnum implements BaseEnum { + + /** + * 用户正常状态 1 + */ + NORMAL(0, "正常"), + + /** + * 用户已被禁用 0 + */ + DISABLED(1, "禁用"); + + private Integer value; + + private String desc; + + EmployeeStatusEnum(Integer value, String desc) { + this.value = value; + this.desc = desc; + } + + /** + * 获取枚举类的值 + * + * @return Integer + */ + @Override + public Integer getValue() { + return value; + } + + /** + * 获取枚举类的说明 + * + * @return String + */ + @Override + public String getDesc() { + return this.desc; + } +} \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/employee/domain/bo/EmployeeBO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/employee/domain/bo/EmployeeBO.java new file mode 100644 index 00000000..57050a5c --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/employee/domain/bo/EmployeeBO.java @@ -0,0 +1,73 @@ +package net.lab1024.smartadmin.module.system.employee.domain.bo; + +import net.lab1024.smartadmin.module.system.employee.domain.entity.EmployeeEntity; +import lombok.Getter; + + +@Getter +public class EmployeeBO { + + /** + * 主键id + */ + private Long id; + + /** + * 登录账号 + */ + private String loginName; + + /** + * 员工名称 + */ + private String actualName; + + /** + * 别名 + */ + private String nickName; + + /** + * 手机号码 + */ + private String phone; + + /** + * 部门id + */ + private Long departmentId; + + /** + * 是否离职 + */ + private Integer isLeave; + + /** + * 是否被禁用 + */ + private Integer isDisabled; + + /** + * 删除状态 0否 1是 + */ + private Long isDelete; + + /** + * 是否为超级管理员 + */ + private Boolean isSuperman; + + public EmployeeBO(EmployeeEntity employeeEntity, boolean isSuperman) { + this.id = employeeEntity.getId(); + this.loginName = employeeEntity.getLoginName(); + this.actualName = employeeEntity.getActualName(); + this.nickName = employeeEntity.getNickName(); + this.phone = employeeEntity.getPhone(); + this.departmentId = employeeEntity.getDepartmentId(); + this.isLeave = employeeEntity.getIsLeave(); + this.isDisabled = employeeEntity.getIsDisabled(); + this.isDelete = employeeEntity.getIsDelete(); + this.isSuperman = isSuperman; + } + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/employee/domain/dto/EmployeeAddDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/employee/domain/dto/EmployeeAddDTO.java new file mode 100644 index 00000000..bb1ac368 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/employee/domain/dto/EmployeeAddDTO.java @@ -0,0 +1,63 @@ +package net.lab1024.smartadmin.module.system.employee.domain.dto; + +import net.lab1024.smartadmin.util.SmartVerificationUtil; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Pattern; +import java.util.List; + +/** + * 添加员工 + * + * @author lidoudou + * @date 2017年12月19日下午2:06:31 + */ +@Data +public class EmployeeAddDTO { + + @ApiModelProperty("姓名") + @NotNull(message = "姓名不能为空") + private String actualName; + + @ApiModelProperty("登录名") + @NotNull(message = "姓名不能为空") + private String loginName; + + @ApiModelProperty("别名") + private String nickName; + + @ApiModelProperty("部门id") + @NotNull(message = "部门id不能为空") + private Long departmentId; + + @ApiModelProperty("是否启用") + @NotNull(message = "是否被禁用不能为空") + private Integer isDisabled; + + @ApiModelProperty("手机号") + @NotNull(message = "手机号不能为空") + @Pattern(regexp = SmartVerificationUtil.PHONE_REGEXP, message = "手机号格式不正确") + private String phone; + + @ApiModelProperty("身份证(可选)") + private String idCard; + + @ApiModelProperty("生日(可选)") + private String birthday; + + @ApiModelProperty("密码") + // @NotNull(message = "密码不能为空") + // @Length(min = 6, message = "密码最少为6位字符") + private String loginPwd; + + @ApiModelProperty("邮箱") + private String email; + + @ApiModelProperty("岗位ID 集合") + @NotEmpty(message = "岗位ID 集合不能为空") + private List positionIdList; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/employee/domain/dto/EmployeeBaseDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/employee/domain/dto/EmployeeBaseDTO.java new file mode 100644 index 00000000..0931bdb4 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/employee/domain/dto/EmployeeBaseDTO.java @@ -0,0 +1,52 @@ +package net.lab1024.smartadmin.module.system.employee.domain.dto; + +import net.lab1024.smartadmin.util.SmartVerificationUtil; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import javax.validation.constraints.Pattern; + +/** + * 添加员工 + * + * @author lidoudou + * @date 2017年12月19日下午2:06:31 + */ +@Data +public class EmployeeBaseDTO { + + @ApiModelProperty("姓名") + @NotNull(message = "姓名不能为空") + private String actualName; + + @ApiModelProperty("登录名") + @NotNull(message = "姓名不能为空") + private String loginName; + + @ApiModelProperty("别名") + private String nickName; + + @ApiModelProperty("部门id") + @NotNull(message = "部门id不能为空") + private Long departmentId; + + @ApiModelProperty("是否启用") + @NotNull(message = "是否被禁用不能为空") + private Integer isDisabled; + + @ApiModelProperty("手机号") + @NotNull(message = "手机号不能为空") + @Pattern(regexp = SmartVerificationUtil.PHONE_REGEXP, message = "手机号格式不正确") + private String phone; + + @ApiModelProperty("身份证(可选)") + private String idCard; + + @ApiModelProperty("生日(可选)") + private String birthday; + + @ApiModelProperty("邮箱") + private String email; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/employee/domain/dto/EmployeeBatchUpdateStatusDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/employee/domain/dto/EmployeeBatchUpdateStatusDTO.java new file mode 100644 index 00000000..7d9db716 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/employee/domain/dto/EmployeeBatchUpdateStatusDTO.java @@ -0,0 +1,26 @@ +package net.lab1024.smartadmin.module.system.employee.domain.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.util.List; + +/** + * 批量更新 + * + * @author lidoudou + * @date 2017年12月21日上午13:17:52 + */ +@Data +public class EmployeeBatchUpdateStatusDTO { + + @ApiModelProperty("员工ids") + @NotNull(message = "员工ids不能为空") + private List employeeIds; + + @ApiModelProperty("状态") + @NotNull(message = "状态不能为空") + private Integer status; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/employee/domain/dto/EmployeeDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/employee/domain/dto/EmployeeDTO.java new file mode 100644 index 00000000..61b49e1a --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/employee/domain/dto/EmployeeDTO.java @@ -0,0 +1,73 @@ +package net.lab1024.smartadmin.module.system.employee.domain.dto; + +import com.fasterxml.jackson.annotation.JsonFormat; +import net.lab1024.smartadmin.module.system.position.domain.dto.PositionRelationResultDTO; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; +import java.util.List; + +/** + * 员工列表DTO + * + * @author lidoudou + * @date 2017年12月21日上午09:09:31 + */ +@Data +public class EmployeeDTO { + + @ApiModelProperty("主键id") + private Long id; + + @ApiModelProperty("登录账号") + private String loginName; + + @ApiModelProperty("别名") + private String nickName; + + @ApiModelProperty("员工名称") + private String actualName; + + @ApiModelProperty("手机号码") + private String phone; + + @ApiModelProperty("身份证") + private String idCard; + + @ApiModelProperty("出生日期") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date birthday; + + @ApiModelProperty("创建者id") + private Long createUser; + + @ApiModelProperty("部门id") + private Long departmentId; + + @ApiModelProperty("是否离职") + private Integer isLeave; + + @ApiModelProperty("是否被禁用") + private Integer isDisabled; + + @ApiModelProperty("是否删除") + private Integer isDelete; + + @ApiModelProperty("部门名称") + private String departmentName; + + @ApiModelProperty("邮箱") + private String email; + + @ApiModelProperty("创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date createTime; + + @ApiModelProperty("岗位关联信息") + private List positionRelationList; + + @ApiModelProperty("岗位名称") + private String positionName; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/employee/domain/dto/EmployeeLoginFormDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/employee/domain/dto/EmployeeLoginFormDTO.java new file mode 100644 index 00000000..0bf1f1a3 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/employee/domain/dto/EmployeeLoginFormDTO.java @@ -0,0 +1,31 @@ +package net.lab1024.smartadmin.module.system.employee.domain.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * 登录 + * + * @author lidoudou + * @date 2017年12月19日上午11:49:46 + */ +@Data +public class EmployeeLoginFormDTO { + + @NotNull(message = "登录名不能为空") + @ApiModelProperty(example = "sa") + private String loginName; + + @NotNull(message = "密码不能为空") + @ApiModelProperty(example = "123456") + private String loginPwd; + + @ApiModelProperty(value = "验证码uuid") + private String codeUuid; + + @ApiModelProperty(value = "验证码") + private String code; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/employee/domain/dto/EmployeeQueryDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/employee/domain/dto/EmployeeQueryDTO.java new file mode 100644 index 00000000..e384a4da --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/employee/domain/dto/EmployeeQueryDTO.java @@ -0,0 +1,39 @@ +package net.lab1024.smartadmin.module.system.employee.domain.dto; + +import net.lab1024.smartadmin.common.domain.PageParamDTO; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * 员工列表DTO + * + * @author lidoudou + * @date 2017年12月21日上午09:09:31 + */ +@Data +public class EmployeeQueryDTO extends PageParamDTO { + + private String phone; + + private String actualName; + + private String keyword; + + private Long departmentId; + + private Integer isLeave; + + private Integer isDisabled; + + /** + * 删除状态 0否 1是 + */ + @ApiModelProperty("删除状态 0否 1是 不需要传") + private Integer isDelete; + + @ApiModelProperty("员工id集合") + private List employeeIds; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/employee/domain/dto/EmployeeQueryExportDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/employee/domain/dto/EmployeeQueryExportDTO.java new file mode 100644 index 00000000..645bd213 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/employee/domain/dto/EmployeeQueryExportDTO.java @@ -0,0 +1,42 @@ +package net.lab1024.smartadmin.module.system.employee.domain.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @author zzr + * 不带分页的查询条件 + */ +@Data +public class EmployeeQueryExportDTO { + + @ApiModelProperty(hidden = true) + private String phone; + + @ApiModelProperty("姓名") + private String actualName; + + @ApiModelProperty(hidden = true) + private String keyword; + + @ApiModelProperty(hidden = true) + private Long departmentId; + + @ApiModelProperty(hidden = true) + private Integer isLeave; + + @ApiModelProperty(hidden = true) + private Integer isDisabled; + + /** + * 删除状态 0否 1是 + */ + @ApiModelProperty(value = "删除状态 0否 1是 不需要传", hidden = true) + private Integer isDelete; + + @ApiModelProperty(value = "员工ID集合", hidden = true) + private List employeeIds; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/employee/domain/dto/EmployeeUpdateDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/employee/domain/dto/EmployeeUpdateDTO.java new file mode 100644 index 00000000..d835c522 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/employee/domain/dto/EmployeeUpdateDTO.java @@ -0,0 +1,28 @@ +package net.lab1024.smartadmin.module.system.employee.domain.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.util.List; + +/** + * 添加员工 + * + * @author lidoudou + * @date 2017年12月19日下午2:06:31 + */ +@Data +public class EmployeeUpdateDTO extends EmployeeBaseDTO { + + @ApiModelProperty("员工id") + @NotNull(message = "员工id不能为空") + private Long id; + + @ApiModelProperty("密码") + private String loginPwd; + + @ApiModelProperty("岗位ID 集合") + private List positionIdList; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/employee/domain/dto/EmployeeUpdatePwdDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/employee/domain/dto/EmployeeUpdatePwdDTO.java new file mode 100644 index 00000000..f5841c31 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/employee/domain/dto/EmployeeUpdatePwdDTO.java @@ -0,0 +1,25 @@ +package net.lab1024.smartadmin.module.system.employee.domain.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * 修改密码所需参数 + * + * @author cyj + * @date 2018-02-23 下午 4:53 + */ +@Data +public class EmployeeUpdatePwdDTO { + + @ApiModelProperty("新密码") + @NotNull + private String pwd; + + @ApiModelProperty("原密码") + @NotNull + private String oldPwd; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/employee/domain/dto/EmployeeUpdateRolesDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/employee/domain/dto/EmployeeUpdateRolesDTO.java new file mode 100644 index 00000000..2829ba1a --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/employee/domain/dto/EmployeeUpdateRolesDTO.java @@ -0,0 +1,29 @@ +package net.lab1024.smartadmin.module.system.employee.domain.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.util.List; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + * @since JDK1.8 + */ +@Data +public class EmployeeUpdateRolesDTO { + + @ApiModelProperty("员工id") + @NotNull(message = "员工id不能为空") + private Long employeeId; + + @ApiModelProperty("角色ids") + private List roleIds; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/employee/domain/entity/EmployeeEntity.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/employee/domain/entity/EmployeeEntity.java new file mode 100644 index 00000000..1744ee1b --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/employee/domain/entity/EmployeeEntity.java @@ -0,0 +1,91 @@ +package net.lab1024.smartadmin.module.system.employee.domain.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import net.lab1024.smartadmin.common.domain.BaseEntity; +import lombok.Data; + +import java.io.Serializable; + +/** + * 员工实体类 + * + * @author lidoudou + * @date 2017年12月19日下午1:34:48 + */ +@Data +@TableName("t_employee") +public class EmployeeEntity extends BaseEntity implements Serializable { + + private static final long serialVersionUID = -8794328598524272806L; + + /** + * 登录账号 + */ + private String loginName; + + /** + * 登录密码 + */ + private String loginPwd; + + /** + * 员工名称 + */ + private String actualName; + + /** + * 别名 + */ + private String nickName; + + /** + * 手机号码 + */ + private String phone; + + /** + * 身份证 + */ + private String idCard; + + /** + * 出生日期 + */ + private String birthday; + + + /** + * 部门id + */ + private Long departmentId; + + /** + * 是否离职 + */ + private Integer isLeave; + + /** + * 是否被禁用 + */ + private Integer isDisabled; + /** + * 邮箱 + */ + private String email; + + /** + * 备注 + */ + private String remark; + + /** + * 创建者id + */ + private Long createUser; + + /** + * 删除状态 0否 1是 + */ + private Long isDelete; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/employee/domain/vo/EmployeeVO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/employee/domain/vo/EmployeeVO.java new file mode 100644 index 00000000..a180d59b --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/employee/domain/vo/EmployeeVO.java @@ -0,0 +1,72 @@ +package net.lab1024.smartadmin.module.system.employee.domain.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import net.lab1024.smartadmin.module.system.position.domain.dto.PositionRelationResultDTO; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; +import java.util.List; + +/** + * @author bhr + * @Description: 员工信息 + * @date 2019/8/28 9:04 + */ + +@Data +public class EmployeeVO { + + @ApiModelProperty("主键id") + private Long id; + + @ApiModelProperty("登录账号") + private String loginName; + + @ApiModelProperty("别名") + private String nickName; + + @ApiModelProperty("员工名称") + private String actualName; + + @ApiModelProperty("手机号码") + private String phone; + + @ApiModelProperty("身份证") + private String idCard; + + @ApiModelProperty("出生日期") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date birthday; + + @ApiModelProperty("创建者id") + private Long createUser; + + @ApiModelProperty("部门id") + private Long departmentId; + + @ApiModelProperty("是否离职") + private Integer isLeave; + + @ApiModelProperty("是否被禁用") + private Integer isDisabled; + + @ApiModelProperty("是否删除") + private Integer isDelete; + + @ApiModelProperty("部门名称") + private String departmentName; + + @ApiModelProperty("邮箱") + private String email; + + @ApiModelProperty("创建时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date createTime; + + @ApiModelProperty("岗位关联信息") + private List positionRelationList; + + @ApiModelProperty("岗位名称") + private String positionName; +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/login/LoginController.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/login/LoginController.java new file mode 100644 index 00000000..414c9ad4 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/login/LoginController.java @@ -0,0 +1,71 @@ +package net.lab1024.smartadmin.module.system.login; + +import net.lab1024.smartadmin.common.anno.NoNeedLogin; +import net.lab1024.smartadmin.common.anno.NoValidPrivilege; +import net.lab1024.smartadmin.common.anno.OperateLog; +import net.lab1024.smartadmin.common.domain.ResponseDTO; +import net.lab1024.smartadmin.constant.SwaggerTagConst; +import net.lab1024.smartadmin.module.system.employee.domain.dto.EmployeeLoginFormDTO; +import net.lab1024.smartadmin.module.system.login.domain.KaptchaVO; +import net.lab1024.smartadmin.module.system.login.domain.LoginDetailVO; +import net.lab1024.smartadmin.module.system.login.domain.RequestTokenBO; +import net.lab1024.smartadmin.util.SmartRequestTokenUtil; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; + +import javax.servlet.http.HttpServletRequest; +import javax.validation.Valid; + +/** + * 后台登录 + * + * @author lidoudou + * @date 2017年12月19日上午11:46:04 + */ +@RestController +@Api(tags = {SwaggerTagConst.Admin.MANAGER_USER_LOGIN}) +@OperateLog +public class LoginController { + + @Autowired + private LoginService loginService; + + @PostMapping("/session/login") + @ApiOperation(value = "登录", notes = "登录") + @NoNeedLogin + public ResponseDTO login(@Valid @RequestBody EmployeeLoginFormDTO loginForm, HttpServletRequest request) { + return loginService.login(loginForm, request); + } + + @GetMapping("/session/get") + @ApiOperation(value = "获取session", notes = "获取session") + @NoValidPrivilege + public ResponseDTO getSession() { + RequestTokenBO requestUser = SmartRequestTokenUtil.getRequestUser(); + return ResponseDTO.succData(loginService.getSession(requestUser)); + } + + @GetMapping("/session/logOut") + @ApiOperation(value = "退出登陆", notes = "退出登陆") + @NoValidPrivilege + public ResponseDTO logOut() { + RequestTokenBO requestToken = SmartRequestTokenUtil.getRequestUser(); + if (null == requestToken) { + return ResponseDTO.wrap(LoginResponseCodeConst.LOGIN_ERROR); + } + return loginService.logoutByToken(requestToken); + } + + @GetMapping("/session/verificationCode") + @ApiOperation(value = "获取验证码", notes = "获取验证码") + @NoNeedLogin + public ResponseDTO verificationCode() { + return loginService.verificationCode(); + } + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/login/LoginResponseCodeConst.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/login/LoginResponseCodeConst.java new file mode 100644 index 00000000..0cfb8d22 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/login/LoginResponseCodeConst.java @@ -0,0 +1,21 @@ +package net.lab1024.smartadmin.module.system.login; + +import net.lab1024.smartadmin.common.constant.ResponseCodeConst; + +/** + * 员工常量类 + * 1001-1999 + * + * @author lidoudou + * @date 2017年12月19日下午19:04:52 + */ +public class LoginResponseCodeConst extends ResponseCodeConst { + + public static final LoginResponseCodeConst LOGIN_ERROR = new LoginResponseCodeConst(1001, "您还未登录或登录失效,请重新登录!"); + + public static final LoginResponseCodeConst NOT_HAVE_PRIVILEGES = new LoginResponseCodeConst(1002, "对不起,您没有权限哦!"); + + public LoginResponseCodeConst(int code, String msg) { + super(code, msg); + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/login/LoginService.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/login/LoginService.java new file mode 100644 index 00000000..070a9ff4 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/login/LoginService.java @@ -0,0 +1,215 @@ +package net.lab1024.smartadmin.module.system.login; + +import net.lab1024.smartadmin.common.constant.JudgeEnum; +import net.lab1024.smartadmin.common.domain.ResponseDTO; +import net.lab1024.smartadmin.constant.CommonConst; +import net.lab1024.smartadmin.module.system.department.DepartmentDao; +import net.lab1024.smartadmin.module.system.department.domain.entity.DepartmentEntity; +import net.lab1024.smartadmin.module.system.employee.EmployeeDao; +import net.lab1024.smartadmin.module.system.employee.constant.EmployeeResponseCodeConst; +import net.lab1024.smartadmin.module.system.employee.constant.EmployeeStatusEnum; +import net.lab1024.smartadmin.module.system.employee.domain.dto.EmployeeDTO; +import net.lab1024.smartadmin.module.system.employee.domain.dto.EmployeeLoginFormDTO; +import net.lab1024.smartadmin.module.business.log.LogService; +import net.lab1024.smartadmin.module.business.log.userloginlog.domain.UserLoginLogEntity; +import net.lab1024.smartadmin.module.system.login.domain.KaptchaVO; +import net.lab1024.smartadmin.module.system.login.domain.LoginDetailVO; +import net.lab1024.smartadmin.module.system.login.domain.LoginPrivilegeDTO; +import net.lab1024.smartadmin.module.system.login.domain.RequestTokenBO; +import net.lab1024.smartadmin.module.system.privilege.domain.entity.PrivilegeEntity; +import net.lab1024.smartadmin.module.system.privilege.service.PrivilegeEmployeeService; +import net.lab1024.smartadmin.util.SmartBeanUtil; +import net.lab1024.smartadmin.util.SmartDigestUtil; +import net.lab1024.smartadmin.util.SmartIPUtil; +import com.google.code.kaptcha.impl.DefaultKaptcha; +import eu.bitwalker.useragentutils.UserAgent; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.codec.binary.Base64; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.ValueOperations; +import org.springframework.stereotype.Service; + +import javax.imageio.ImageIO; +import javax.servlet.http.HttpServletRequest; +import javax.validation.Valid; +import java.awt.image.BufferedImage; +import java.io.ByteArrayOutputStream; +import java.util.List; +import java.util.UUID; +import java.util.concurrent.TimeUnit; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/3/27 0027 下午 18:10 + * @since JDK1.8 + */ +@Slf4j +@Service +public class LoginService { + + private static final String VERIFICATION_CODE_REDIS_PREFIX = "vc_%s"; + + @Autowired + private EmployeeDao employeeDao; + + @Autowired + private DepartmentDao departmentDao; + + @Autowired + private PrivilegeEmployeeService privilegeEmployeeService; + + @Autowired + private LoginTokenService loginTokenService; + + @Autowired + private LogService logService; + + @Autowired + private DefaultKaptcha defaultKaptcha; + + @Autowired + private ValueOperations redisValueOperations; + + /** + * 登陆 + * + * @param loginForm 登录名 密码 + * @return 登录用户基本信息 + */ + public ResponseDTO login(@Valid EmployeeLoginFormDTO loginForm, HttpServletRequest request) { +// String redisVerificationCode = redisValueOperations.get(loginForm.getCodeUuid()); +// //增加删除已使用的验证码方式 频繁登录 +// redisValueOperations.getOperations().delete(loginForm.getCodeUuid()); +// if (StringUtils.isEmpty(redisVerificationCode)) { +// return ResponseDTO.wrap(EmployeeResponseCodeConst.VERIFICATION_CODE_INVALID); +// } +// if (!redisVerificationCode.equalsIgnoreCase(loginForm.getCode())) { +// return ResponseDTO.wrap(EmployeeResponseCodeConst.VERIFICATION_CODE_INVALID); +// } + String loginPwd = SmartDigestUtil.encryptPassword(CommonConst.Password.SALT_FORMAT, loginForm.getLoginPwd()); + EmployeeDTO employeeDTO = employeeDao.login(loginForm.getLoginName(), loginPwd); + if (null == employeeDTO) { + return ResponseDTO.wrap(EmployeeResponseCodeConst.LOGIN_FAILED); + } + if (EmployeeStatusEnum.DISABLED.equalsValue(employeeDTO.getIsDisabled())) { + return ResponseDTO.wrap(EmployeeResponseCodeConst.IS_DISABLED); + } + //jwt token赋值 + String compactJws = loginTokenService.generateToken(employeeDTO); + + LoginDetailVO loginDTO = SmartBeanUtil.copy(employeeDTO, LoginDetailVO.class); + + //获取前端功能权限 + loginDTO.setPrivilegeList(initEmployeePrivilege(employeeDTO.getId())); + + loginDTO.setXAccessToken(compactJws); + DepartmentEntity departmentEntity = departmentDao.selectById(employeeDTO.getDepartmentId()); + loginDTO.setDepartmentName(departmentEntity.getName()); + + //判断是否为超管 + Boolean isSuperman = privilegeEmployeeService.isSuperman(loginDTO.getId()); + loginDTO.setIsSuperMan(isSuperman); + //登陆操作日志 + UserAgent userAgent = UserAgent.parseUserAgentString(request.getHeader("User-Agent")); + UserLoginLogEntity logEntity = + UserLoginLogEntity.builder() + .userId(employeeDTO.getId()) + .userName(employeeDTO.getActualName()) + .remoteIp(SmartIPUtil.getRemoteIp(request)) + .remotePort(request.getRemotePort()) + .remoteBrowser(userAgent.getBrowser().getName()) + .remoteOs(userAgent.getOperatingSystem().getName()) + .loginStatus(JudgeEnum.YES.getValue()).build(); + logService.addLog(logEntity); + return ResponseDTO.succData(loginDTO); + } + + /** + * 手机端退出登陆,清除token缓存 + * + * @param requestToken + * @return 退出登陆是否成功,bool + */ + public ResponseDTO logoutByToken(RequestTokenBO requestToken) { + privilegeEmployeeService.removeCache(requestToken.getRequestUserId()); + return ResponseDTO.succ(); + } + + /** + * 获取验证码 + * + * @return + */ + public ResponseDTO verificationCode() { + KaptchaVO kaptchaVO = new KaptchaVO(); + String uuid = buildVerificationCodeRedisKey(UUID.randomUUID().toString()); + String kaptchaText = defaultKaptcha.createText(); + + String base64Code = ""; + + BufferedImage image = defaultKaptcha.createImage(kaptchaText); + ByteArrayOutputStream outputStream = null; + try { + outputStream = new ByteArrayOutputStream(); + ImageIO.write(image, "jpg", outputStream); + base64Code = Base64.encodeBase64String(outputStream.toByteArray()); + } catch (Exception e) { + log.error("verificationCode exception .{}", e); + } finally { + if (outputStream != null) { + try { + outputStream.close(); + } catch (Exception e) { + log.error("verificationCode outputStream close exception .{}", e); + } + } + } + kaptchaVO.setUuid(uuid); + kaptchaVO.setCode("data:image/png;base64," + base64Code); + redisValueOperations.set(uuid, kaptchaText, 60L, TimeUnit.SECONDS); + return ResponseDTO.succData(kaptchaVO); + } + + private String buildVerificationCodeRedisKey(String uuid) { + return String.format(VERIFICATION_CODE_REDIS_PREFIX, uuid); + } + + /** + * 初始化员工权限 + * + * @param employeeId + * @return + */ + public List initEmployeePrivilege(Long employeeId) { + List privilegeList = privilegeEmployeeService.getPrivilegesByEmployeeId(employeeId); + privilegeEmployeeService.updateCachePrivilege(employeeId, privilegeList); + return SmartBeanUtil.copyList(privilegeList, LoginPrivilegeDTO.class); + } + + public LoginDetailVO getSession(RequestTokenBO requestUser) { + LoginDetailVO loginDTO = SmartBeanUtil.copy(requestUser.getEmployeeBO(), LoginDetailVO.class); + List privilegeEntityList = privilegeEmployeeService.getEmployeeAllPrivilege(requestUser.getRequestUserId()); + //====== 开启缓存 ====== + if (privilegeEntityList == null) { + List loginPrivilegeDTOS = initEmployeePrivilege(requestUser.getRequestUserId()); + loginDTO.setPrivilegeList(loginPrivilegeDTOS); + } else { + loginDTO.setPrivilegeList(SmartBeanUtil.copyList(privilegeEntityList, LoginPrivilegeDTO.class)); + } + + //====== 不开启缓存 ====== +// List loginPrivilegeDTOS = initEmployeePrivilege(requestUser.getRequestUserId()); +// loginDTO.setPrivilegeList(loginPrivilegeDTOS); + + //判断是否为超管 + Boolean isSuperman = privilegeEmployeeService.isSuperman(loginDTO.getId()); + loginDTO.setIsSuperMan(isSuperman); + return loginDTO; + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/login/LoginTokenService.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/login/LoginTokenService.java new file mode 100644 index 00000000..56ec269a --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/login/LoginTokenService.java @@ -0,0 +1,118 @@ +package net.lab1024.smartadmin.module.system.login; + +import net.lab1024.smartadmin.common.constant.JudgeEnum; +import net.lab1024.smartadmin.module.system.employee.EmployeeService; +import net.lab1024.smartadmin.module.system.employee.constant.EmployeeStatusEnum; +import net.lab1024.smartadmin.module.system.employee.domain.bo.EmployeeBO; +import net.lab1024.smartadmin.module.system.employee.domain.dto.EmployeeDTO; +import net.lab1024.smartadmin.module.system.login.domain.RequestTokenBO; +import io.jsonwebtoken.Claims; +import io.jsonwebtoken.Jwts; +import io.jsonwebtoken.SignatureAlgorithm; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; + +import java.time.LocalDateTime; +import java.time.ZoneId; +import java.util.Date; +import java.util.UUID; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + * @since JDK1.8 + */ +@Slf4j +@Service +public class LoginTokenService { + + /** + * 过期时间一天 + */ + private static final int EXPIRE_SECONDS = 1 * 24 * 3600; + /** + * jwt加密字段 + */ + private static final String CLAIM_ID_KEY = "id"; + + @Value("${jwt.key}") + private String jwtKey; + + @Autowired + private EmployeeService employeeService; + + + /** + * 功能描述: 生成JWT TOKEN + * + * @param employeeDTO + * @return + * @auther yandanyang + * @date 2018/9/12 0012 上午 10:08 + */ + public String generateToken(EmployeeDTO employeeDTO) { + Long id = employeeDTO.getId(); + /**将token设置为jwt格式*/ + String baseToken = UUID.randomUUID().toString(); + LocalDateTime localDateTimeNow = LocalDateTime.now(); + LocalDateTime localDateTimeExpire = localDateTimeNow.plusSeconds(EXPIRE_SECONDS); + Date from = Date.from(localDateTimeNow.atZone(ZoneId.systemDefault()).toInstant()); + Date expire = Date.from(localDateTimeExpire.atZone(ZoneId.systemDefault()).toInstant()); + + Claims jwtClaims = Jwts.claims().setSubject(baseToken); + jwtClaims.put(CLAIM_ID_KEY, id); + String compactJws = Jwts.builder().setClaims(jwtClaims).setNotBefore(from).setExpiration(expire).signWith(SignatureAlgorithm.HS512, jwtKey).compact(); + + EmployeeBO employeeBO = employeeService.getById(id); + RequestTokenBO tokenBO = new RequestTokenBO(employeeBO); + + return compactJws; + } + + /** + * 功能描述: 根据登陆token获取登陆信息 + * + * @param + * @return + * @auther yandanyang + * @date 2018/9/12 0012 上午 10:11 + */ + public RequestTokenBO getEmployeeTokenInfo(String token) { + Long employeeId = -1L; + try { + Claims claims = Jwts.parser().setSigningKey(jwtKey).parseClaimsJws(token).getBody(); + String idStr = claims.get(CLAIM_ID_KEY).toString(); + employeeId = Long.valueOf(idStr); + } catch (Exception e) { + log.error("getEmployeeTokenInfo error:{}", e); + return null; + } + + EmployeeBO employeeBO = employeeService.getById(employeeId); + if (employeeBO == null) { + return null; + } + + if (EmployeeStatusEnum.DISABLED.getValue().equals(employeeBO.getIsDisabled())) { + return null; + } + + if (JudgeEnum.YES.equals(employeeBO.getIsLeave())) { + return null; + } + + if (JudgeEnum.YES.equals(employeeBO.getIsDelete())) { + return null; + } + + return new RequestTokenBO(employeeBO); + } + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/login/domain/KaptchaVO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/login/domain/KaptchaVO.java new file mode 100644 index 00000000..61814e63 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/login/domain/KaptchaVO.java @@ -0,0 +1,28 @@ +package net.lab1024.smartadmin.module.system.login.domain; + +import lombok.Data; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/7/4 0004 上午 10:11 + * @since JDK1.8 + */ +@Data +public class KaptchaVO { + + /** + * 验证码UUID + */ + private String uuid; + + /** + * base64 验证码 + */ + private String code; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/login/domain/LoginCacheDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/login/domain/LoginCacheDTO.java new file mode 100644 index 00000000..c8e5f62f --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/login/domain/LoginCacheDTO.java @@ -0,0 +1,28 @@ +package net.lab1024.smartadmin.module.system.login.domain; + +import net.lab1024.smartadmin.module.system.employee.domain.dto.EmployeeDTO; +import lombok.Data; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/8/9 0009 下午 17:32 + * @since JDK1.8 + */ +@Data +public class LoginCacheDTO { + + /** + * 基本信息 + */ + private EmployeeDTO employeeDTO; + + /** + * 过期时间 + */ + private Long expireTime; +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/login/domain/LoginDetailVO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/login/domain/LoginDetailVO.java new file mode 100644 index 00000000..72a27087 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/login/domain/LoginDetailVO.java @@ -0,0 +1,68 @@ +package net.lab1024.smartadmin.module.system.login.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; +import java.util.List; + +/** + * 登录返回DTO + * + * @author lidoudou + * @date 2017年12月21日上午09:06:31 + */ +@Data +public class LoginDetailVO { + + @ApiModelProperty("主键id") + private Long id; + + @ApiModelProperty("登录账号") + private String loginName; + + @ApiModelProperty("别名") + private String nickName; + + @ApiModelProperty("员工名称") + private String actualName; + + @ApiModelProperty("手机号码") + private String phone; + + @ApiModelProperty("身份证") + private String idCard; + + @ApiModelProperty("出生日期") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date birthday; + + @ApiModelProperty("创建者id") + private Long createUser; + + @ApiModelProperty("部门id") + private Long departmentId; + + @ApiModelProperty("是否离职") + private Integer isLeave; + + @ApiModelProperty("是否被禁用") + private Integer isDisabled; + + @ApiModelProperty("部门名称") + private String departmentName; + + @ApiModelProperty("邮箱") + private String email; + + @ApiModelProperty("登陆token") + private String xAccessToken; + + @ApiModelProperty("是否为超管") + private Boolean isSuperMan; + + @ApiModelProperty("权限列表") + private List privilegeList; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/login/domain/LoginPrivilegeDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/login/domain/LoginPrivilegeDTO.java new file mode 100644 index 00000000..e1812b35 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/login/domain/LoginPrivilegeDTO.java @@ -0,0 +1,33 @@ +package net.lab1024.smartadmin.module.system.login.domain; + +import net.lab1024.smartadmin.common.anno.ApiModelPropertyEnum; +import net.lab1024.smartadmin.module.system.privilege.constant.PrivilegeTypeEnum; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/8/21 0021 上午 10:28 + * @since JDK1.8 + */ +@Data +public class LoginPrivilegeDTO { + + @ApiModelProperty("权限key") + private String key; + + @ApiModelPropertyEnum(enumDesc = "菜单类型",value = PrivilegeTypeEnum.class) + private Integer type; + + @ApiModelProperty("url") + private String url; + + @ApiModelProperty("父级key") + private String parentKey; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/login/domain/RequestTokenBO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/login/domain/RequestTokenBO.java new file mode 100644 index 00000000..101f66db --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/login/domain/RequestTokenBO.java @@ -0,0 +1,26 @@ +package net.lab1024.smartadmin.module.system.login.domain; + +import net.lab1024.smartadmin.module.system.employee.domain.bo.EmployeeBO; +import lombok.Getter; + + +@Getter +public class RequestTokenBO { + + private Long requestUserId; + + private EmployeeBO employeeBO; + + public RequestTokenBO(EmployeeBO employeeBO) { + this.requestUserId = employeeBO.getId(); + this.employeeBO = employeeBO; + } + + @Override + public String toString() { + return "RequestTokenBO{" + + "requestUserId=" + requestUserId + + ", employeeBO=" + employeeBO + + '}'; + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/position/PositionController.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/position/PositionController.java new file mode 100644 index 00000000..0f1a311e --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/position/PositionController.java @@ -0,0 +1,59 @@ +package net.lab1024.smartadmin.module.system.position; + +import net.lab1024.smartadmin.common.anno.OperateLog; +import net.lab1024.smartadmin.common.domain.PageResultDTO; +import net.lab1024.smartadmin.common.domain.ResponseDTO; +import net.lab1024.smartadmin.constant.SwaggerTagConst; +import net.lab1024.smartadmin.module.system.position.domain.dto.PositionAddDTO; +import net.lab1024.smartadmin.module.system.position.domain.dto.PositionQueryDTO; +import net.lab1024.smartadmin.module.system.position.domain.dto.PositionResultVO; +import net.lab1024.smartadmin.module.system.position.domain.dto.PositionUpdateDTO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; + +/** + * @author zzr + */ +@Api(tags = {SwaggerTagConst.Admin.MANAGER_JOB}) +@OperateLog +@RestController +public class PositionController { + + @Autowired + private PositionService positionService; + + @ApiOperation(value = "分页查询所有岗位", notes = "分页查询所有岗位 @author zzr") + @PostMapping("/position/getListPage") + public ResponseDTO> getJobPage(@RequestBody @Valid PositionQueryDTO queryDTO) { + return positionService.queryPositionByPage(queryDTO); + } + + @ApiOperation(value = "添加岗位", notes = "添加岗位 @author zzr") + @PostMapping("/position/add") + public ResponseDTO addJob(@RequestBody @Valid PositionAddDTO addDTO) { + return positionService.addPosition(addDTO); + } + + @ApiOperation(value = "更新岗位", notes = "更新岗位 @author zzr") + @PostMapping("/position/update") + public ResponseDTO updateJob(@RequestBody @Valid PositionUpdateDTO updateDTO) { + return positionService.updatePosition(updateDTO); + } + + @ApiOperation(value = "根据ID查询岗位", notes = "根据ID查询岗位 @author zzr") + @GetMapping("/position/queryById/{id}") + public ResponseDTO queryJobById(@PathVariable Long id) { + return positionService.queryPositionById(id); + } + + @ApiOperation(value = "根据ID删除岗位", notes = "根据ID删除岗位 @author zzr") + @GetMapping("/position/remove/{id}") + public ResponseDTO removeJob(@PathVariable Long id) { + return positionService.removePosition(id); + } + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/position/PositionDao.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/position/PositionDao.java new file mode 100644 index 00000000..68423c59 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/position/PositionDao.java @@ -0,0 +1,63 @@ +package net.lab1024.smartadmin.module.system.position; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import net.lab1024.smartadmin.module.system.position.domain.dto.PositionQueryDTO; +import net.lab1024.smartadmin.module.system.position.domain.dto.PositionRelationAddDTO; +import net.lab1024.smartadmin.module.system.position.domain.dto.PositionRelationQueryDTO; +import net.lab1024.smartadmin.module.system.position.domain.dto.PositionRelationResultDTO; +import net.lab1024.smartadmin.module.system.position.domain.entity.PositionEntity; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * @author zzr + */ +@Mapper +@Component +public interface PositionDao extends BaseMapper { + + /** + * 查询岗位列表 + * + * @param page + * @param queryDTO + * @return + */ + List selectByPage(Page page, @Param("queryDTO") PositionQueryDTO queryDTO); + + /** + * 查询岗位与人员关系 + * + * @param positionRelationQueryDTO + * @return + */ + List selectRelation(PositionRelationQueryDTO positionRelationQueryDTO); + + /** + * 批量查询员工岗位信息 + * @param employeeIdList + * @return + */ + List selectEmployeesRelation(@Param("employeeIdList") List employeeIdList); + + /** + * 批量添加岗位 人员 关联关系 + * + * @param positionRelationAddDTO + * @return + */ + Integer insertBatchRelation(@Param("batchDTO")PositionRelationAddDTO positionRelationAddDTO); + + /** + * 删除指定人员的 岗位关联关系 + * + * @param employeeId + * @return + */ + Integer deleteRelationByEmployeeId(@Param("employeeId") Long employeeId); + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/position/PositionResponseCodeConst.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/position/PositionResponseCodeConst.java new file mode 100644 index 00000000..43528034 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/position/PositionResponseCodeConst.java @@ -0,0 +1,16 @@ +package net.lab1024.smartadmin.module.system.position; + +import net.lab1024.smartadmin.common.constant.ResponseCodeConst; + +/** + * @author zzr + */ +public class PositionResponseCodeConst extends ResponseCodeConst { + + public static final PositionResponseCodeConst REMOVE_DEFINE = new PositionResponseCodeConst(13000, "还有人关联该岗位,不能删除"); + + protected PositionResponseCodeConst(int code, String msg) { + super(code, msg); + } + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/position/PositionService.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/position/PositionService.java new file mode 100644 index 00000000..58468969 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/position/PositionService.java @@ -0,0 +1,124 @@ +package net.lab1024.smartadmin.module.system.position; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import net.lab1024.smartadmin.common.domain.PageResultDTO; +import net.lab1024.smartadmin.common.domain.ResponseDTO; +import net.lab1024.smartadmin.module.system.position.domain.dto.*; +import net.lab1024.smartadmin.module.system.position.domain.entity.PositionEntity; +import net.lab1024.smartadmin.util.SmartBeanUtil; +import net.lab1024.smartadmin.util.SmartPageUtil; +import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.stream.Collectors; + +/** + * @author zzr + */ +@Service +public class PositionService { + + @Autowired + private PositionDao positionDao; + + /** + * 查询岗位 + * + * @param queryDTO + * @return + */ + public ResponseDTO> queryPositionByPage(PositionQueryDTO queryDTO) { + Page page = SmartPageUtil.convert2QueryPage(queryDTO); + List entityList = positionDao.selectByPage(page, queryDTO); + page.setRecords(entityList.stream().map(e -> SmartBeanUtil.copy(e, PositionResultVO.class)).collect(Collectors.toList())); + PageResultDTO pageResultDTO = SmartPageUtil.convert2PageResult(page); + return ResponseDTO.succData(pageResultDTO); + } + + /** + * 新增岗位 + * + * @param addDTO + * @return + */ + public ResponseDTO addPosition(PositionAddDTO addDTO) { + PositionEntity positionEntity = SmartBeanUtil.copy(addDTO, PositionEntity.class); + positionDao.insert(positionEntity); + return ResponseDTO.succ(); + } + + /** + * 修改岗位 + * + * @param updateDTO + * @return + */ + public ResponseDTO updatePosition(PositionUpdateDTO updateDTO) { + PositionEntity positionEntity = SmartBeanUtil.copy(updateDTO, PositionEntity.class); + positionDao.updateById(positionEntity); + return ResponseDTO.succ(); + } + + /** + * 根据ID查询 + * + * @param id + * @return + */ + public ResponseDTO queryPositionById(Long id) { + return ResponseDTO.succData(SmartBeanUtil.copy(positionDao.selectById(id), PositionResultVO.class)); + } + + /** + * 删除岗位 + */ + public ResponseDTO removePosition(Long id) { + //查询是否还有人关联该岗位 + PositionRelationQueryDTO positionRelationQueryDTO = new PositionRelationQueryDTO(); + positionRelationQueryDTO.setPositionId(id); + List dtoList = positionDao.selectRelation(positionRelationQueryDTO); + if (CollectionUtils.isNotEmpty(dtoList)) { + return ResponseDTO.wrap(PositionResponseCodeConst.REMOVE_DEFINE); + } + positionDao.deleteById(id); + return ResponseDTO.succ(); + } + + /** + * 添加岗位关联关系 + * + * @param positionRelAddDTO + * @return + */ + public ResponseDTO addPositionRelation(PositionRelationAddDTO positionRelAddDTO) { + positionDao.insertBatchRelation(positionRelAddDTO); + return ResponseDTO.succ(); + } + + /** + * 删除指定用户的岗位关联关系 + * + * @param employeeId + * @return + */ + public ResponseDTO removePositionRelation(Long employeeId) { + positionDao.deleteRelationByEmployeeId(employeeId); + return ResponseDTO.succ(); + } + + /** + * 根据员工ID查询 所关联的岗位信息 + * + * @param employeeId + * @return + */ + public List queryPositionByEmployeeId(Long employeeId) { + PositionRelationQueryDTO positionRelationQueryDTO = new PositionRelationQueryDTO(); + positionRelationQueryDTO.setEmployeeId(employeeId); + List positionRelationList = positionDao.selectRelation(positionRelationQueryDTO); + return positionRelationList; + } + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/position/domain/dto/PositionAddDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/position/domain/dto/PositionAddDTO.java new file mode 100644 index 00000000..d7b4d8b6 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/position/domain/dto/PositionAddDTO.java @@ -0,0 +1,28 @@ +package net.lab1024.smartadmin.module.system.position.domain.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; + +/** + * 岗位 + * + * @author zzr + */ +@Data +public class PositionAddDTO { + + /** + * 岗位名称 + */ + @ApiModelProperty("岗位名称") + @NotBlank(message = "岗位名称不能为空") + private String positionName; + + /** + * 岗位描述 + */ + @ApiModelProperty("岗位描述") + private String remark; +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/position/domain/dto/PositionQueryDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/position/domain/dto/PositionQueryDTO.java new file mode 100644 index 00000000..6ab8d066 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/position/domain/dto/PositionQueryDTO.java @@ -0,0 +1,18 @@ +package net.lab1024.smartadmin.module.system.position.domain.dto; + +import net.lab1024.smartadmin.common.domain.PageParamDTO; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 岗位 + * + * @author zzr + */ +@Data +public class PositionQueryDTO extends PageParamDTO { + + @ApiModelProperty("岗位名称") + private String positionName; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/position/domain/dto/PositionRelationAddDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/position/domain/dto/PositionRelationAddDTO.java new file mode 100644 index 00000000..509c1a22 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/position/domain/dto/PositionRelationAddDTO.java @@ -0,0 +1,32 @@ +package net.lab1024.smartadmin.module.system.position.domain.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.util.List; + +/** + * 岗位关系 + * + * @author zzr + */ +@Data +public class PositionRelationAddDTO { + + @ApiModelProperty("岗位ID") + @NotNull(message = "岗位ID 不能为空") + private List positionIdList; + + @ApiModelProperty("员工ID") + @NotNull(message = "员工ID 不能为空") + private Long employeeId; + + public PositionRelationAddDTO() { + } + + public PositionRelationAddDTO(List positionIdList, Long employeeId) { + this.positionIdList = positionIdList; + this.employeeId = employeeId; + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/position/domain/dto/PositionRelationQueryDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/position/domain/dto/PositionRelationQueryDTO.java new file mode 100644 index 00000000..3732cd50 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/position/domain/dto/PositionRelationQueryDTO.java @@ -0,0 +1,20 @@ +package net.lab1024.smartadmin.module.system.position.domain.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 岗位关系 + * + * @author zzr + */ +@Data +public class PositionRelationQueryDTO { + + @ApiModelProperty("岗位ID") + private Long positionId; + + @ApiModelProperty("员工ID") + private Long employeeId; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/position/domain/dto/PositionRelationResultDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/position/domain/dto/PositionRelationResultDTO.java new file mode 100644 index 00000000..1881904f --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/position/domain/dto/PositionRelationResultDTO.java @@ -0,0 +1,40 @@ +package net.lab1024.smartadmin.module.system.position.domain.dto; + +import lombok.Data; + +import java.util.Date; + +/** + * 岗位关联关系 + * + * @author zzr + */ +@Data +public class PositionRelationResultDTO { + + /** + * 岗位ID + */ + private Long positionId; + + /** + * 员工ID + */ + private Long employeeId; + + /** + * 岗位名称 + */ + private String positionName; + + /** + * 更新时间 + */ + private Date updateTime; + + /** + * 创建时间 + */ + private Date createTime; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/position/domain/dto/PositionResultVO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/position/domain/dto/PositionResultVO.java new file mode 100644 index 00000000..3bc89efd --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/position/domain/dto/PositionResultVO.java @@ -0,0 +1,41 @@ +package net.lab1024.smartadmin.module.system.position.domain.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * @author zzr + */ +@Data +public class PositionResultVO { + + @ApiModelProperty("主键") + private Long id; + + /** + * 更新时间 + */ + @ApiModelProperty("更新时间") + private Date updateTime; + + /** + * 创建时间 + */ + @ApiModelProperty("创建时间") + private Date createTime; + + /** + * 岗位名称 + */ + @ApiModelProperty("岗位名称") + private String positionName; + + /** + * 岗位描述 + */ + @ApiModelProperty("岗位描述") + private String remark; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/position/domain/dto/PositionUpdateDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/position/domain/dto/PositionUpdateDTO.java new file mode 100644 index 00000000..659da733 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/position/domain/dto/PositionUpdateDTO.java @@ -0,0 +1,16 @@ +package net.lab1024.smartadmin.module.system.position.domain.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * 岗位 + * + * @author zzr + */ +@Data +public class PositionUpdateDTO extends PositionAddDTO { + + @ApiModelProperty("主键") + private Long id; +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/position/domain/entity/PositionEntity.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/position/domain/entity/PositionEntity.java new file mode 100644 index 00000000..a42af4ac --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/position/domain/entity/PositionEntity.java @@ -0,0 +1,26 @@ +package net.lab1024.smartadmin.module.system.position.domain.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import net.lab1024.smartadmin.common.domain.BaseEntity; +import lombok.Data; + +/** + * 岗位 + * + * @author zzr + */ +@Data +@TableName("t_position") +public class PositionEntity extends BaseEntity { + + /** + * 岗位名称 + */ + private String positionName; + + /** + * 岗位描述 + */ + private String remark; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/position/domain/entity/PositionRelationEntity.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/position/domain/entity/PositionRelationEntity.java new file mode 100644 index 00000000..b7ff8676 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/position/domain/entity/PositionRelationEntity.java @@ -0,0 +1,26 @@ +package net.lab1024.smartadmin.module.system.position.domain.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import net.lab1024.smartadmin.common.domain.BaseEntity; +import lombok.Data; + +/** + * 岗位关联关系 + * + * @author zzr + */ +@Data +@TableName("t_position_relation") +public class PositionRelationEntity extends BaseEntity { + + /** + * 岗位ID + */ + private Long positionId; + + /** + * 员工ID + */ + private Long employeeId; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/privilege/constant/PrivilegeResponseCodeConst.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/privilege/constant/PrivilegeResponseCodeConst.java new file mode 100644 index 00000000..3efbd9b2 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/privilege/constant/PrivilegeResponseCodeConst.java @@ -0,0 +1,29 @@ +package net.lab1024.smartadmin.module.system.privilege.constant; + +import net.lab1024.smartadmin.common.constant.ResponseCodeConst; + + +/** + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + * @since JDK1.8 + */ +public class PrivilegeResponseCodeConst extends ResponseCodeConst { + + public static final PrivilegeResponseCodeConst PRIVILEGE_NOT_EXISTS = new PrivilegeResponseCodeConst(7001, "当前数据不存在,请联系你的管理员!"); + + public static final PrivilegeResponseCodeConst ROUTER_KEY_NO_REPEAT = new PrivilegeResponseCodeConst(7002, "模块和页面的“功能Key”值不能重复!"); + + public static final PrivilegeResponseCodeConst MENU_NOT_EXIST = new PrivilegeResponseCodeConst(7003, "菜单不存在,清先保存菜单!"); + + public static final PrivilegeResponseCodeConst POINT_NOT_EXIST = new PrivilegeResponseCodeConst(7004, "功能点不存在,清先保存功能点!"); + + public PrivilegeResponseCodeConst(int code, String msg) { + super(code, msg); + } +} + diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/privilege/constant/PrivilegeTypeEnum.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/privilege/constant/PrivilegeTypeEnum.java new file mode 100644 index 00000000..96b175e6 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/privilege/constant/PrivilegeTypeEnum.java @@ -0,0 +1,49 @@ +package net.lab1024.smartadmin.module.system.privilege.constant; + + +import net.lab1024.smartadmin.common.domain.BaseEnum; + +import java.util.Arrays; +import java.util.Optional; + +/** + * + * [ ] + * + * @version 1.0 + * @since JDK1.8 + * @author yandanyang + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + */ +public enum PrivilegeTypeEnum implements BaseEnum { + + + MENU(1,"菜单"), + + POINTS(2,"功能点"); + + private Integer value; + + private String desc; + + PrivilegeTypeEnum(Integer value,String desc){ + this.value = value; + this.desc = desc; + } + @Override + public Integer getValue() { + return this.value; + } + + @Override + public String getDesc() { + return this.desc; + } + + public static PrivilegeTypeEnum selectByValue(Integer value) { + Optional first = Arrays.stream(PrivilegeTypeEnum.values()).filter(e -> e.getValue().equals(value)).findFirst(); + return !first.isPresent() ? null : first.get(); + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/privilege/controller/PrivilegeController.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/privilege/controller/PrivilegeController.java new file mode 100644 index 00000000..3a073a2d --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/privilege/controller/PrivilegeController.java @@ -0,0 +1,75 @@ +package net.lab1024.smartadmin.module.system.privilege.controller; + +import net.lab1024.smartadmin.common.anno.OperateLog; +import net.lab1024.smartadmin.common.domain.ResponseDTO; +import net.lab1024.smartadmin.common.domain.ValidateList; +import net.lab1024.smartadmin.constant.SwaggerTagConst; +import net.lab1024.smartadmin.module.system.privilege.service.PrivilegeService; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import net.lab1024.smartadmin.module.system.privilege.domain.dto.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; + +/** + * [ 与员工权限相关:角色权限关系、权限列表 ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + * @since JDK1.8 + */ +@OperateLog +@RestController +@Api(tags = {SwaggerTagConst.Admin.MANAGER_PRIVILEGE}) +public class PrivilegeController { + + @Autowired + private PrivilegeService privilegeService; + + @GetMapping("/privilege/getAllUrl") + @ApiOperation(value = "获取所有请求路径", notes = "获取所有请求路径") + public ResponseDTO> getAllUrl() { + return privilegeService.getPrivilegeUrlDTOList(); + } + + @ApiOperation(value = "菜单批量保存") + @PostMapping("/privilege/menu/batchSaveMenu") + public ResponseDTO menuBatchSave(@Valid @RequestBody ValidateList menuList) { + return privilegeService.menuBatchSave(menuList); + } + + + @ApiOperation(value = "查询所有菜单项") + @PostMapping("/privilege/menu/queryAll") + public ResponseDTO> queryAll() { + return privilegeService.menuQueryAll(); + } + + + @ApiOperation(value = "保存更新功能点") + @PostMapping("/privilege/function/saveOrUpdate") + public ResponseDTO functionSaveOrUpdate(@Valid @RequestBody PrivilegeFunctionDTO privilegeFunctionDTO) { + return privilegeService.functionSaveOrUpdate(privilegeFunctionDTO); + } + + @ApiOperation(value = "批量保存功能点") + @PostMapping("/privilege/function/batchSave") + public ResponseDTO batchSaveFunctionList(@Valid @RequestBody ValidateList functionList) { + return privilegeService.batchSaveFunctionList(functionList); + } + + + @ApiOperation(value = "查询菜单功能点", notes = "更新") + @PostMapping("/privilege/function/query/{menuKey}") + public ResponseDTO> functionQuery(@PathVariable String menuKey) { + return privilegeService.functionQuery(menuKey); + } + + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/privilege/dao/PrivilegeDao.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/privilege/dao/PrivilegeDao.java new file mode 100644 index 00000000..291480d1 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/privilege/dao/PrivilegeDao.java @@ -0,0 +1,94 @@ +package net.lab1024.smartadmin.module.system.privilege.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import net.lab1024.smartadmin.module.system.privilege.domain.entity.PrivilegeEntity; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Component; + +import java.util.List; + + +/** + * + * [ ] + * + * @version 1.0 + * @since JDK1.8 + * @author yandanyang + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + */ +@Mapper +@Component +public interface PrivilegeDao extends BaseMapper { + + /** + * 根据权限key删除 + * @param keyList + */ + void delByKeyList(@Param("keyList") List keyList); + /** + * 根据权限parentkey删除 + * @param keyList + */ + void delByParentKeyList(@Param("keyList") List keyList); + + /** + * 批量保存 + * @param privilegeList + */ + void batchInsert(List privilegeList); + + /** + * 批量更新 + * @param privilegeList + */ + void batchUpdate(@Param("updateList") List privilegeList); + + /** + * 根据父节点key查询 + * @param parentKey + * @return + */ + List selectByParentKey(@Param("parentKey") String parentKey); + + /** + * 根据父节点key查询 + * @param keyList + * @return + */ + List selectByKeyList(@Param("keyList") List keyList); + + /** + * 根据权限key查询 + * @param key + * @return + */ + PrivilegeEntity selectByKey(@Param("key") String key); + + /** + * 根据类型查询 + * @param type + * @return + */ + List selectByExcludeType(@Param("type") Integer type); + + /** + * 根据类型查询 + * @param type + * @return + */ + List selectByType(@Param("type") Integer type); + + /** + * 查询所有权限 + * @return + */ + List selectAll(); + + + + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/privilege/domain/dto/PrivilegeFunctionDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/privilege/domain/dto/PrivilegeFunctionDTO.java new file mode 100644 index 00000000..0e15a42c --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/privilege/domain/dto/PrivilegeFunctionDTO.java @@ -0,0 +1,40 @@ +package net.lab1024.smartadmin.module.system.privilege.domain.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/8/20 0020 下午 16:45 + * @since JDK1.8 + */ +@Data +public class PrivilegeFunctionDTO { + + @ApiModelProperty("功能点名称") + @NotBlank(message = "功能点名称不能为空") + private String functionName; + + @ApiModelProperty("所属菜单Key") + @NotBlank(message = "所属菜单Key不能为空") + private String menuKey; + + @ApiModelProperty("功能点Key") + @NotBlank(message = "功能点Key不能为空") + private String functionKey; + + @ApiModelProperty("url列表") + private String url; + + @ApiModelProperty("排序") + @NotNull(message = "请输入功能点顺序") + private Integer sort; +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/privilege/domain/dto/PrivilegeFunctionVO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/privilege/domain/dto/PrivilegeFunctionVO.java new file mode 100644 index 00000000..fd89f959 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/privilege/domain/dto/PrivilegeFunctionVO.java @@ -0,0 +1,40 @@ +package net.lab1024.smartadmin.module.system.privilege.domain.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotEmpty; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/8/20 0020 下午 16:45 + * @since JDK1.8 + */ +@Data +public class PrivilegeFunctionVO { + + @ApiModelProperty("功能点名称") + @NotBlank(message = "功能点名称不能为空") + private String functionName; + + @ApiModelProperty("所属菜单Key") + @NotBlank(message = "所属菜单Key不能为空") + private String menuKey; + + @ApiModelProperty("功能点Key") + @NotBlank(message = "功能点Key不能为空") + private String functionKey; + + @ApiModelProperty("url列表") + @NotEmpty(message = "url列表不能为空") + private String url; + + @ApiModelProperty("顺序") + private Integer sort; +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/privilege/domain/dto/PrivilegeMenuDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/privilege/domain/dto/PrivilegeMenuDTO.java new file mode 100644 index 00000000..137f827d --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/privilege/domain/dto/PrivilegeMenuDTO.java @@ -0,0 +1,45 @@ +package net.lab1024.smartadmin.module.system.privilege.domain.dto; + +import net.lab1024.smartadmin.common.anno.ApiModelPropertyEnum; +import net.lab1024.smartadmin.module.system.privilege.constant.PrivilegeTypeEnum; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/8/20 0020 下午 16:32 + * @since JDK1.8 + */ +@Data +public class PrivilegeMenuDTO { + + @ApiModelPropertyEnum(enumDesc = "菜单类型",value = PrivilegeTypeEnum.class) + @NotNull + private Integer type; + + @ApiModelProperty("菜单名") + @NotNull(message = "菜单名不能为空") + private String menuName; + + @ApiModelProperty("菜单Key") + @NotNull(message = "菜单Key不能为空") + private String menuKey; + + @ApiModelProperty("父级菜单Key,根节点不传") + private String parentKey; + + @ApiModelProperty("前端路由path") + @NotNull(message = "前端路由path不能为空") + private String url; + + @ApiModelProperty("排序字段") + @NotNull(message = "菜单项顺序不能为空") + private Integer sort; +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/privilege/domain/dto/PrivilegeMenuVO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/privilege/domain/dto/PrivilegeMenuVO.java new file mode 100644 index 00000000..72febd9c --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/privilege/domain/dto/PrivilegeMenuVO.java @@ -0,0 +1,35 @@ +package net.lab1024.smartadmin.module.system.privilege.domain.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/8/20 0020 下午 16:41 + * @since JDK1.8 + */ +@Data +public class PrivilegeMenuVO { + + @ApiModelProperty("菜单名") + private String menuName; + + @ApiModelProperty("菜单Key") + private String menuKey; + + @ApiModelProperty("菜单父级Key") + private String parentKey; + + @ApiModelProperty("顺序") + private Integer sort; + + @ApiModelProperty("前端路由path") + private String url; + + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/privilege/domain/dto/PrivilegeRequestUrlVO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/privilege/domain/dto/PrivilegeRequestUrlVO.java new file mode 100644 index 00000000..d227c04d --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/privilege/domain/dto/PrivilegeRequestUrlVO.java @@ -0,0 +1,27 @@ +package net.lab1024.smartadmin.module.system.privilege.domain.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/3/28 0028 上午 9:20 + * @since JDK1.8 + */ +@Data +public class PrivilegeRequestUrlVO { + + @ApiModelProperty("注释说明") + private String comment; + + @ApiModelProperty("controller.method") + private String name; + + @ApiModelProperty("url") + private String url; +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/privilege/domain/entity/PrivilegeEntity.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/privilege/domain/entity/PrivilegeEntity.java new file mode 100644 index 00000000..df49b874 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/privilege/domain/entity/PrivilegeEntity.java @@ -0,0 +1,57 @@ +package net.lab1024.smartadmin.module.system.privilege.domain.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import net.lab1024.smartadmin.common.domain.BaseEntity; +import lombok.Data; + +import java.io.Serializable; + +/** + * + * [ ] + * + * @version 1.0 + * @since JDK1.8 + * @author yandanyang + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + */ +@Data +@TableName("t_privilege") +public class PrivilegeEntity extends BaseEntity implements Serializable { + private static final long serialVersionUID = 3848408566432915214L; + + /** + * 功能权限类型:1.模块 2.页面 3.功能点 4.子模块 + */ + private Integer type; + + /** + * 菜单名称 + */ + private String name; + + /** + * 路由name 英文关键字 + */ + @TableField(value = "`key`") + private String key; + + + private String url; + + /** + * 排序 + */ + private Integer sort; + + + /** + * 父级key + */ + private String parentKey; + + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/privilege/service/PrivilegeEmployeeService.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/privilege/service/PrivilegeEmployeeService.java new file mode 100644 index 00000000..602a5b59 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/privilege/service/PrivilegeEmployeeService.java @@ -0,0 +1,199 @@ +package net.lab1024.smartadmin.module.system.privilege.service; + +import net.lab1024.smartadmin.common.constant.JudgeEnum; +import net.lab1024.smartadmin.common.exception.SmartBusinessException; +import net.lab1024.smartadmin.module.system.employee.domain.dto.EmployeeDTO; +import net.lab1024.smartadmin.module.system.login.domain.RequestTokenBO; +import net.lab1024.smartadmin.module.system.privilege.constant.PrivilegeTypeEnum; +import net.lab1024.smartadmin.module.system.privilege.dao.PrivilegeDao; +import net.lab1024.smartadmin.module.system.privilege.domain.entity.PrivilegeEntity; +import net.lab1024.smartadmin.module.system.role.roleemployee.RoleEmployeeDao; +import net.lab1024.smartadmin.module.system.role.roleprivilege.RolePrivilegeDao; +import net.lab1024.smartadmin.module.system.systemconfig.SystemConfigService; +import net.lab1024.smartadmin.module.system.systemconfig.constant.SystemConfigEnum; +import net.lab1024.smartadmin.module.system.systemconfig.domain.dto.SystemConfigDTO; +import net.lab1024.smartadmin.util.SmartStringUtil; +import com.google.common.collect.Lists; +import com.googlecode.concurrentlinkedhashmap.ConcurrentLinkedHashMap; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.*; +import java.util.concurrent.ConcurrentMap; +import java.util.stream.Collectors; + +/** + * [ 后台员工权限缓存方法 ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/3/28 0028 下午 14:07 + * @since JDK1.8 + */ +@Service +public class PrivilegeEmployeeService { + + /** + * 后台用户权限缓存 > + */ + private ConcurrentMap>> employeePrivileges = new ConcurrentLinkedHashMap.Builder>>().maximumWeightedCapacity(1000).build(); + private ConcurrentMap> employeePrivilegeListMap = new ConcurrentLinkedHashMap.Builder>().maximumWeightedCapacity(1000).build(); + + @Autowired + private SystemConfigService systemConfigService; + + @Autowired + private RoleEmployeeDao roleEmployeeDao; + + @Autowired + private RolePrivilegeDao rolePrivilegeDao; + + @Autowired + private PrivilegeDao privilegeDao; + + /** + * 移除某人缓存中的权限 + * + * @param employeeId + */ + public void removeCache(Long employeeId) { + this.employeePrivileges.remove(employeeId); + } + + /** + * 检查某人是否有访问某个方法的权限 + * + * @param requestTokenBO + * @param controllerName + * @param methodName + * @return + */ + public Boolean checkEmployeeHavePrivilege(RequestTokenBO requestTokenBO, String controllerName, String methodName) { + if (StringUtils.isEmpty(controllerName) || StringUtils.isEmpty(methodName)) { + return false; + } + Boolean isSuperman = requestTokenBO.getEmployeeBO().getIsSuperman(); + if (isSuperman) { + return true; + } + Map> privileges = this.getPrivileges(requestTokenBO.getRequestUserId()); + List urlList = privileges.get(controllerName.toLowerCase()); + if (CollectionUtils.isEmpty(urlList)) { + return false; + } + return urlList.contains(methodName); + } + + public List getEmployeeAllPrivilege(Long employeeId) { + return employeePrivilegeListMap.get(employeeId); + } + + /** + * 判断是否为超级管理员 + * + * @param employeeId + * @return + */ + public Boolean isSuperman(Long employeeId) { + SystemConfigDTO systemConfig = systemConfigService.getCacheByKey(SystemConfigEnum.Key.EMPLOYEE_SUPERMAN); + if (systemConfig == null) { + throw new SmartBusinessException("缺少系统配置项[" + SystemConfigEnum.Key.EMPLOYEE_SUPERMAN.name() + "]"); + } + + List superManIdsList = SmartStringUtil.splitConverToLongList(systemConfig.getConfigValue(), ","); + return superManIdsList.contains(employeeId); + } + + /** + * 根据员工ID 获取 权限信息 + * + * @param employeeId + * @return + */ + public List getPrivilegesByEmployeeId(Long employeeId) { + List privilegeEntities = null; + // 如果是超管的话 + Boolean isSuperman = this.isSuperman(employeeId); + if (isSuperman) { + privilegeEntities = privilegeDao.selectAll(); + } else { + privilegeEntities = loadPrivilegeFromDb(employeeId); + } + + if (privilegeEntities == null) { + privilegeEntities = Lists.newArrayList(); + } + + this.updateCachePrivilege(employeeId, privilegeEntities); + return privilegeEntities; + } + + /** + * 获取某人所能访问的方法 + * + * @param employeeId + * @return + */ + private Map> getPrivileges(Long employeeId) { + Map> privileges = employeePrivileges.get(employeeId); + if (privileges != null) { + return privileges; + } + List privilegeEntities = this.loadPrivilegeFromDb(employeeId); + return updateCachePrivilege(employeeId, privilegeEntities); + } + + private List loadPrivilegeFromDb(Long employeeId) { + List roleIdList = roleEmployeeDao.selectRoleIdByEmployeeId(employeeId); + if (CollectionUtils.isEmpty(roleIdList)) { + return Lists.newArrayList(); + } + List privilegeEntities = rolePrivilegeDao.listByRoleIds(roleIdList, JudgeEnum.YES.getValue()); + if (privilegeEntities != null) { + return privilegeEntities; + } + return Collections.emptyList(); + } + + public Map> updateCachePrivilege(Long employeeId, List privilegeEntities) { + employeePrivilegeListMap.put(employeeId, privilegeEntities); + List privilegeList = new ArrayList<>(); + Map> privilegeMap = new HashMap<>(16); + if (CollectionUtils.isNotEmpty(privilegeEntities)) { + List> setList = + privilegeEntities.stream().filter(e -> e.getType().equals(PrivilegeTypeEnum.POINTS.getValue())).map(PrivilegeEntity::getUrl).collect(Collectors.toList()).stream().map(e -> SmartStringUtil.splitConvertToList(e, ",")).collect(Collectors.toList()); + setList.forEach(privilegeList::addAll); + } + privilegeList.forEach(item -> { + List path = SmartStringUtil.splitConvertToList(item, "\\."); + String controllerName = path.get(0).toLowerCase(); + String methodName = path.get(1); + List methodNameList = privilegeMap.get(controllerName); + if (null == methodNameList) { + methodNameList = new ArrayList(); + } + if (!methodNameList.contains(methodName)) { + methodNameList.add(methodName); + } + privilegeMap.put(controllerName, methodNameList); + }); + + employeePrivileges.put(employeeId, privilegeMap); + return privilegeMap; + } + + public void updateOnlineEmployeePrivilegeByRoleId(Long roleId) { + List roleEmployeeList = roleEmployeeDao.selectEmployeeByRoleId(roleId); + List employeeIdList = roleEmployeeList.stream().map(e -> e.getId()).collect(Collectors.toList()); + + for (Long empId : employeePrivileges.keySet()) { + if (employeeIdList.contains(empId)) { + getPrivilegesByEmployeeId(empId); + } + } + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/privilege/service/PrivilegeRequestUrlService.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/privilege/service/PrivilegeRequestUrlService.java new file mode 100644 index 00000000..f9aa07aa --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/privilege/service/PrivilegeRequestUrlService.java @@ -0,0 +1,117 @@ +package net.lab1024.smartadmin.module.system.privilege.service; + +import net.lab1024.smartadmin.constant.CommonConst; +import net.lab1024.smartadmin.module.system.privilege.domain.dto.PrivilegeRequestUrlVO; +import net.lab1024.smartadmin.util.SmartStringUtil; +import com.google.common.collect.Lists; +import com.google.common.collect.Sets; +import io.swagger.annotations.ApiModelProperty; +import io.swagger.annotations.ApiOperation; +import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.core.annotation.AnnotationUtils; +import org.springframework.stereotype.Service; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.context.WebApplicationContext; +import org.springframework.web.method.HandlerMethod; +import org.springframework.web.servlet.mvc.method.RequestMappingInfo; +import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping; + +import javax.annotation.PostConstruct; +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.CopyOnWriteArrayList; + +/** + * [ 初始化 分离前后台权限URL ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/3/28 0028 上午 9:13 + * @since JDK1.8 + */ +@Service +public class PrivilegeRequestUrlService { + + /** + * 系统所有requestUrl + */ + private CopyOnWriteArrayList privilegeUrlDTOList = Lists.newCopyOnWriteArrayList(); + + @Autowired + private WebApplicationContext applicationContext; + + @PostConstruct + public void initAllUrl() { + this.privilegeUrlDTOList.clear(); + + RequestMappingHandlerMapping mapping = applicationContext.getBean(RequestMappingHandlerMapping.class); + //获取url与类和方法的对应信息 + Map map = mapping.getHandlerMethods(); + map.forEach((info, handlerMethod) -> { + //只对Rest 服务进行权限验证 + RestController restAnnotation = AnnotationUtils.findAnnotation(handlerMethod.getMethod().getDeclaringClass(), RestController.class); + if (restAnnotation == null) { + ResponseBody responseBody = handlerMethod.getMethod().getAnnotation(ResponseBody.class); + if (responseBody == null) { + return; + } + } + //获取url的Set集合,一个方法可能对应多个url + Set patterns = info.getPatternsCondition().getPatterns(); + if (CollectionUtils.isEmpty(patterns)) { + return; + } + String className = (String) handlerMethod.getBean(); + String methodName = handlerMethod.getMethod().getName(); + List list = SmartStringUtil.splitConvertToList(className, "\\."); + String controllerName = list.get(list.size() - 1); + String name = controllerName + "." + methodName; + + ApiOperation apiOperation = handlerMethod.getMethod().getAnnotation(ApiOperation.class); + String methodComment = null; + if (apiOperation != null) { + methodComment = apiOperation.value(); + } else { + ApiModelProperty apiModelProperty = handlerMethod.getMethod().getAnnotation(ApiModelProperty.class); + if (apiModelProperty != null) { + methodComment = apiModelProperty.value(); + } else { + methodComment = handlerMethod.getMethod().getName(); + } + } + Set urlSet = this.getUrlSet(patterns); + for (String url : urlSet) { + PrivilegeRequestUrlVO privilegeUrlDTO = new PrivilegeRequestUrlVO(); + privilegeUrlDTO.setUrl(url); + privilegeUrlDTO.setName(name); + privilegeUrlDTO.setComment(methodComment); + this.privilegeUrlDTOList.add(privilegeUrlDTO); + } + + }); + } + + private Set getUrlSet(Set patterns) { + Set urlSet = Sets.newHashSet(); + for (String url : patterns) { + for (String ignoreUrl : CommonConst.CommonCollection.IGNORE_URL_MAPPING) { + if (url.startsWith(ignoreUrl)) { + urlSet.add(url.substring(ignoreUrl.length() - 1)); + } else { + urlSet.add(url); + } + } + } + return urlSet; + } + + public List getPrivilegeList() { + return this.privilegeUrlDTOList; + } + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/privilege/service/PrivilegeService.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/privilege/service/PrivilegeService.java new file mode 100644 index 00000000..c66a919e --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/privilege/service/PrivilegeService.java @@ -0,0 +1,285 @@ +package net.lab1024.smartadmin.module.system.privilege.service; + +import com.google.common.collect.Lists; +import net.lab1024.smartadmin.common.domain.ResponseDTO; +import net.lab1024.smartadmin.common.domain.ValidateList; +import net.lab1024.smartadmin.module.system.privilege.constant.PrivilegeResponseCodeConst; +import net.lab1024.smartadmin.module.system.privilege.constant.PrivilegeTypeEnum; +import net.lab1024.smartadmin.module.system.privilege.dao.PrivilegeDao; +import net.lab1024.smartadmin.module.system.privilege.domain.dto.*; +import net.lab1024.smartadmin.module.system.privilege.domain.entity.PrivilegeEntity; +import net.lab1024.smartadmin.module.system.role.roleprivilege.RolePrivilegeDao; +import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.*; +import java.util.stream.Collectors; + +/** + * [ 后台员工权限 ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + * @since JDK1.8 + */ +@Service +public class PrivilegeService { + + @Autowired + private PrivilegeRequestUrlService privilegeRequestUrlService; + + @Autowired + private PrivilegeDao privilegeDao; + + @Autowired + private RolePrivilegeDao rolePrivilegeDao; + + /** + * 获取系统所有请求路径 + * + * @return + */ + public ResponseDTO> getPrivilegeUrlDTOList() { + List privilegeUrlList = privilegeRequestUrlService.getPrivilegeList(); + return ResponseDTO.succData(privilegeUrlList); + } + + /** + * 批量保存权限菜单项 + * + * @param menuList + * @return + */ + @Transactional(rollbackFor = Throwable.class) + public ResponseDTO menuBatchSave(List menuList) { + if (CollectionUtils.isEmpty(menuList)) { + return ResponseDTO.succ(); + } + //使用前端发送权限的排序 + for (int i = 0; i < menuList.size(); i++) { + menuList.get(i).setSort(i); + } + + List privilegeList = privilegeDao.selectByExcludeType(PrivilegeTypeEnum.POINTS.getValue()); + //若数据库无数据 直接全部保存 + if (CollectionUtils.isEmpty(privilegeList)) { + List menuSaveEntity = this.buildPrivilegeMenuEntity(menuList); + privilegeDao.batchInsert(menuSaveEntity); + return ResponseDTO.succ(); + } + //处理需更新的菜单项 + Map storageMap = menuList.stream().collect(Collectors.toMap(PrivilegeMenuDTO::getMenuKey, e -> e)); + Set menuKeyList = storageMap.keySet(); + List updatePrivilegeList = privilegeList.stream().filter(e -> menuKeyList.contains(e.getKey())).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(updatePrivilegeList)) { + this.rebuildPrivilegeMenuEntity(storageMap, updatePrivilegeList); + privilegeDao.batchUpdate(updatePrivilegeList); + } + //处理需删除的菜单项 + List delKeyList = privilegeList.stream().filter(e -> !menuKeyList.contains(e.getKey())).map(PrivilegeEntity::getKey).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(delKeyList)) { + privilegeDao.delByKeyList(delKeyList); + //处理需删除的功能点 + privilegeDao.delByParentKeyList(delKeyList); + rolePrivilegeDao.deleteByPrivilegeKey(delKeyList); + } + + //处理需新增的菜单项 + List dbKeyList = privilegeList.stream().map(PrivilegeEntity::getKey).collect(Collectors.toList()); + List addPrivilegeList = menuList.stream().filter(e -> !dbKeyList.contains(e.getMenuKey())).collect(Collectors.toList()); + if (CollectionUtils.isNotEmpty(addPrivilegeList)) { + List menuAddEntity = this.buildPrivilegeMenuEntity(addPrivilegeList); + privilegeDao.batchInsert(menuAddEntity); + } + return ResponseDTO.succ(); + } + + /** + * 构建权限菜单项类别 + * + * @param menuList + * @return + */ + private List buildPrivilegeMenuEntity(List menuList) { + List privilegeList = Lists.newArrayList(); + PrivilegeEntity privilegeEntity; + for (PrivilegeMenuDTO menuDTO : menuList) { + privilegeEntity = new PrivilegeEntity(); + privilegeEntity.setKey(menuDTO.getMenuKey()); + privilegeEntity.setName(menuDTO.getMenuName()); + privilegeEntity.setParentKey(menuDTO.getParentKey()); + privilegeEntity.setType(menuDTO.getType()); + privilegeEntity.setSort(menuDTO.getSort()); + privilegeEntity.setUrl(menuDTO.getUrl()); + privilegeList.add(privilegeEntity); + } + return privilegeList; + } + + /** + * 更新权限菜单项 + * + * @param menuMap + * @param menuEntityList + */ + private void rebuildPrivilegeMenuEntity(Map menuMap, List menuEntityList) { + for (PrivilegeEntity menuEntity : menuEntityList) { + PrivilegeMenuDTO menuDTO = menuMap.get(menuEntity.getKey()); + menuEntity.setName(menuDTO.getMenuName()); + menuEntity.setParentKey(menuDTO.getParentKey()); + menuEntity.setType(menuDTO.getType()); + menuEntity.setSort(menuDTO.getSort()); + } + + } + + /** + * 查询所有的权限菜单 + * + * @return + */ + public ResponseDTO> menuQueryAll() { + List privilegeEntityList = privilegeDao.selectByType(PrivilegeTypeEnum.MENU.getValue()); + if (CollectionUtils.isEmpty(privilegeEntityList)) { + return ResponseDTO.succData(Lists.newArrayList()); + } + + List voList = privilegeEntityList.stream().map(e -> { + PrivilegeMenuVO vo = new PrivilegeMenuVO(); + vo.setMenuKey(e.getKey()); + vo.setMenuName(e.getName()); + vo.setParentKey(e.getParentKey()); + vo.setSort(e.getSort()); + vo.setUrl(e.getUrl()); + return vo; + }).collect(Collectors.toList()); + + return ResponseDTO.succData(voList); + } + + + /** + * 保存更新功能点 + * + * @param privilegeFunctionDTO + * @return + */ + public ResponseDTO functionSaveOrUpdate(PrivilegeFunctionDTO privilegeFunctionDTO) { + String functionKey = privilegeFunctionDTO.getFunctionKey(); + PrivilegeEntity functionEntity = privilegeDao.selectByKey(functionKey); + if (functionEntity == null) { + return ResponseDTO.wrap(PrivilegeResponseCodeConst.POINT_NOT_EXIST); + } + functionEntity.setUrl(privilegeFunctionDTO.getUrl()); + functionEntity.setName(privilegeFunctionDTO.getFunctionName()); + functionEntity.setParentKey(privilegeFunctionDTO.getMenuKey()); + functionEntity.setSort(privilegeFunctionDTO.getSort()); + privilegeDao.updateById(functionEntity); + + return ResponseDTO.succ(); + } + + /** + * 查询功能点 + * + * @param menuKey + * @return + */ + public ResponseDTO> functionQuery(String menuKey) { + List functionPrivilegeList = privilegeDao.selectByParentKey(menuKey); + if (CollectionUtils.isEmpty(functionPrivilegeList)) { + return ResponseDTO.succData(Lists.newArrayList()); + } + List functionList = Lists.newArrayList(); + for (PrivilegeEntity functionEntity : functionPrivilegeList) { + PrivilegeFunctionVO functionDTO = new PrivilegeFunctionVO(); + functionDTO.setFunctionKey(functionEntity.getKey()); + functionDTO.setFunctionName(functionEntity.getName()); + functionDTO.setMenuKey(functionEntity.getParentKey()); + functionDTO.setUrl(functionEntity.getUrl()); + functionDTO.setSort(functionEntity.getSort()); + functionList.add(functionDTO); + } + return ResponseDTO.succData(functionList); + } + + @Transactional(rollbackFor = Exception.class) + public ResponseDTO batchSaveFunctionList(ValidateList functionList) { + String menuKey = functionList.get(0).getMenuKey(); + PrivilegeEntity privilegeEntity = privilegeDao.selectByKey(menuKey); + if (privilegeEntity == null) { + return ResponseDTO.wrap(PrivilegeResponseCodeConst.MENU_NOT_EXIST); + } + + List functionKeyList = functionList.stream().map(PrivilegeFunctionDTO::getFunctionKey).collect(Collectors.toList()); + + //数据库中存在的数据 + List existFunctionList = privilegeDao.selectByKeyList(functionKeyList); + //校验是否parent key重复 + boolean parentKeyExist = existFunctionList.stream().anyMatch(e -> !menuKey.equals(e.getParentKey())); + if(parentKeyExist){ + return ResponseDTO.wrap(PrivilegeResponseCodeConst.ROUTER_KEY_NO_REPEAT); + } + + existFunctionList = privilegeDao.selectByParentKey(menuKey); + Map privilegeEntityMap = existFunctionList.stream().collect(Collectors.toMap(PrivilegeEntity::getKey, e -> e)); + //如果没有,则保存全部 + if (existFunctionList.isEmpty()) { + List privilegeEntityList = functionList.stream().map(e -> function2Privilege(e)).collect(Collectors.toList()); + privilegeDao.batchInsert(privilegeEntityList); + return ResponseDTO.succ(); + } + + Set functionKeySet = functionList.stream().map(PrivilegeFunctionDTO::getFunctionKey).collect(Collectors.toSet()); + //删除的 + List deleteIdList = existFunctionList.stream().filter(e -> !functionKeySet.contains(e.getKey())).map(PrivilegeEntity::getId).collect(Collectors.toList()); + List deleteKeyList = existFunctionList.stream().filter(e -> !functionKeySet.contains(e.getKey())).map(PrivilegeEntity::getKey).collect(Collectors.toList()); + if (!deleteIdList.isEmpty()) { + privilegeDao.deleteBatchIds(deleteIdList); + rolePrivilegeDao.deleteByPrivilegeKey(deleteKeyList); + } + + //需要更新的 + ArrayList batchUpdateList = Lists.newArrayList(); + for (PrivilegeFunctionDTO privilegeFunctionDTO : functionList) { + PrivilegeEntity existPrivilege = privilegeEntityMap.get(privilegeFunctionDTO.getFunctionKey()); + if (existPrivilege != null) { + existPrivilege.setSort(privilegeFunctionDTO.getSort()); + existPrivilege.setName(privilegeFunctionDTO.getFunctionName()); + batchUpdateList.add(existPrivilege); + } + } + + if (!batchUpdateList.isEmpty()) { + privilegeDao.batchUpdate(batchUpdateList); + } + + //新增的 + List batchInsertList = functionList.stream() + .filter(e -> !privilegeEntityMap.containsKey(e.getFunctionKey())) + .map(e -> function2Privilege(e)) + .collect(Collectors.toList()); + + if (!batchInsertList.isEmpty()) { + privilegeDao.batchInsert(batchInsertList); + } + + return ResponseDTO.succ(); + } + + private PrivilegeEntity function2Privilege(PrivilegeFunctionDTO privilegeFunction) { + PrivilegeEntity privilegeEntity = new PrivilegeEntity(); + privilegeEntity.setKey(privilegeFunction.getFunctionKey()); + privilegeEntity.setName(privilegeFunction.getFunctionName()); + privilegeEntity.setParentKey(privilegeFunction.getMenuKey()); + privilegeEntity.setType(PrivilegeTypeEnum.POINTS.getValue()); + privilegeEntity.setSort(privilegeFunction.getSort()); + privilegeEntity.setUrl(""); + return privilegeEntity; + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/basic/RoleController.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/basic/RoleController.java new file mode 100644 index 00000000..c95afff7 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/basic/RoleController.java @@ -0,0 +1,60 @@ +package net.lab1024.smartadmin.module.system.role.basic; +import net.lab1024.smartadmin.common.anno.OperateLog; +import net.lab1024.smartadmin.common.domain.ResponseDTO; +import net.lab1024.smartadmin.constant.SwaggerTagConst; +import net.lab1024.smartadmin.module.system.role.basic.domain.dto.RoleAddDTO; +import net.lab1024.smartadmin.module.system.role.basic.domain.dto.RoleUpdateDTO; +import net.lab1024.smartadmin.module.system.role.basic.domain.dto.RoleVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; + +/** + * 角色管理路由 + * + * @author listen + * @date 2017/12/28 10:10 + */ +@Api(tags = {SwaggerTagConst.Admin.MANAGER_ROLE}) +@OperateLog +@RestController +public class RoleController { + + @Autowired + private RoleService roleService; + + @ApiOperation(value = "添加角色", notes = "添加角色") + @PostMapping("/role/add") + public ResponseDTO addRole(@Valid @RequestBody RoleAddDTO roleAddDTO) { + return roleService.addRole(roleAddDTO); + } + + @ApiOperation(value = "删除角色", notes = "根据id删除角色") + @GetMapping("/role/delete/{roleId}") + public ResponseDTO deleteRole(@PathVariable("roleId") Long roleId) { + return roleService.deleteRole(roleId); + } + + @ApiOperation(value = "更新角色", notes = "更新角色") + @PostMapping("/role/update") + public ResponseDTO updateRole(@Valid @RequestBody RoleUpdateDTO roleUpdateDTO) { + return roleService.updateRole(roleUpdateDTO); + } + + @ApiOperation(value = "获取角色数据", notes = "根据id获取角色数据") + @GetMapping("/role/get/{roleId}") + public ResponseDTO getRole(@PathVariable("roleId") Long roleId) { + return roleService.getRoleById(roleId); + } + + @ApiOperation(value = "获取所有角色", notes = "获取所有角色数据") + @GetMapping("/role/getAll") + public ResponseDTO> getAllRole() { + return roleService.getAllRole(); + } + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/basic/RoleDao.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/basic/RoleDao.java new file mode 100644 index 00000000..91b83b4f --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/basic/RoleDao.java @@ -0,0 +1,26 @@ +package net.lab1024.smartadmin.module.system.role.basic; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import net.lab1024.smartadmin.module.system.role.basic.domain.entity.RoleEntity; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Component; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/3/27 0027 下午 13:00 + * @since JDK1.8 + */ +@Mapper +@Component +public interface RoleDao extends BaseMapper { + + + RoleEntity getByRoleName(@Param("roleName") String name); + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/basic/RoleResponseCodeConst.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/basic/RoleResponseCodeConst.java new file mode 100644 index 00000000..c1818465 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/basic/RoleResponseCodeConst.java @@ -0,0 +1,24 @@ +package net.lab1024.smartadmin.module.system.role.basic; +import net.lab1024.smartadmin.common.constant.ResponseCodeConst; + +/** + * + * @author yandanyang + * 角色业务状态码 6001 - 6999 + */ +public class RoleResponseCodeConst extends ResponseCodeConst { + + /** + * 10501 角色名称已存在 + */ + public static final RoleResponseCodeConst ROLE_NAME_EXISTS = new RoleResponseCodeConst(6001, "角色名称已存在"); + + /** + * 10502 角色不存在 + */ + public static final RoleResponseCodeConst ROLE_NOT_EXISTS = new RoleResponseCodeConst(6002, "角色不存在"); + + public RoleResponseCodeConst(int code, String msg) { + super(code, msg); + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/basic/RoleService.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/basic/RoleService.java new file mode 100644 index 00000000..cd0d6444 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/basic/RoleService.java @@ -0,0 +1,114 @@ +package net.lab1024.smartadmin.module.system.role.basic; + +import net.lab1024.smartadmin.common.domain.ResponseDTO; +import net.lab1024.smartadmin.module.system.role.basic.domain.dto.RoleAddDTO; +import net.lab1024.smartadmin.module.system.role.basic.domain.dto.RoleUpdateDTO; +import net.lab1024.smartadmin.module.system.role.basic.domain.dto.RoleVO; +import net.lab1024.smartadmin.module.system.role.basic.domain.entity.RoleEntity; +import net.lab1024.smartadmin.module.system.role.roleemployee.RoleEmployeeDao; +import net.lab1024.smartadmin.module.system.role.roleprivilege.RolePrivilegeDao; +import net.lab1024.smartadmin.util.SmartBeanUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + * 角色管理业务 + * + * @author listen + * @date 2017/12/28 09:37 + */ +@Service +public class RoleService { + + @Autowired + private RoleDao roleDao; + + @Autowired + private RolePrivilegeDao rolePrivilegeDao; + + @Autowired + private RoleEmployeeDao roleEmployeeDao; + + /** + * 新增添加角色 + * + * @param roleAddDTO + * @return ResponseDTO + */ + public ResponseDTO addRole(RoleAddDTO roleAddDTO) { + RoleEntity employeeRoleEntity = roleDao.getByRoleName(roleAddDTO.getRoleName()); + if (null != employeeRoleEntity) { + return ResponseDTO.wrap(RoleResponseCodeConst.ROLE_NAME_EXISTS); + } + RoleEntity roleEntity = SmartBeanUtil.copy(roleAddDTO, RoleEntity.class); + roleDao.insert(roleEntity); + return ResponseDTO.succ(); + } + + /** + * 根据角色id 删除 + * + * @param roleId + * @return ResponseDTO + */ + @Transactional(rollbackFor = Exception.class) + public ResponseDTO deleteRole(Long roleId) { + RoleEntity roleEntity = roleDao.selectById(roleId); + if (null == roleEntity) { + return ResponseDTO.wrap(RoleResponseCodeConst.ROLE_NOT_EXISTS); + } + roleDao.deleteById(roleId); + rolePrivilegeDao.deleteByRoleId(roleId); + roleEmployeeDao.deleteByRoleId(roleId); + return ResponseDTO.succ(); + } + + /** + * 更新角色 + * + * @param roleUpdateDTO + * @return ResponseDTO + */ + @Transactional(rollbackFor = Exception.class) + public ResponseDTO updateRole(RoleUpdateDTO roleUpdateDTO) { + if (null == roleDao.selectById(roleUpdateDTO.getId())) { + return ResponseDTO.wrap(RoleResponseCodeConst.ROLE_NOT_EXISTS); + } + RoleEntity employeeRoleEntity = roleDao.getByRoleName(roleUpdateDTO.getRoleName()); + if (null != employeeRoleEntity && ! employeeRoleEntity.getId().equals(roleUpdateDTO.getId())) { + return ResponseDTO.wrap(RoleResponseCodeConst.ROLE_NAME_EXISTS); + } + RoleEntity roleEntity = SmartBeanUtil.copy(roleUpdateDTO, RoleEntity.class); + roleDao.updateById(roleEntity); + return ResponseDTO.succ(); + } + + /** + * 根据id获取角色数据 + * + * @param roleId + * @return ResponseDTO + */ + public ResponseDTO getRoleById(Long roleId) { + RoleEntity roleEntity = roleDao.selectById(roleId); + if (null == roleEntity) { + return ResponseDTO.wrap(RoleResponseCodeConst.ROLE_NOT_EXISTS); + } + RoleVO role = SmartBeanUtil.copy(roleEntity, RoleVO.class); + return ResponseDTO.succData(role); + } + + /** + * 获取所有角色列表 + * + * @return ResponseDTO + */ + public ResponseDTO> getAllRole() { + List roleEntityList = roleDao.selectList(null); + List roleList = SmartBeanUtil.copyList(roleEntityList, RoleVO.class); + return ResponseDTO.succData(roleList); + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/basic/domain/dto/RoleAddDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/basic/domain/dto/RoleAddDTO.java new file mode 100644 index 00000000..ba66b68e --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/basic/domain/dto/RoleAddDTO.java @@ -0,0 +1,33 @@ +package net.lab1024.smartadmin.module.system.role.basic.domain.dto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.NotNull; + +/** + * 角色添加DTO + * + * @author listen + * @date 2017/12/28 09:40 + */ +@Data +public class RoleAddDTO { + + /** + * 角色名称 + */ + @ApiModelProperty("角色名称") + @NotNull(message = "角色名称不能为空") + @Length(min = 1, max = 20, message = "角色名称(1-20)个字符") + private String roleName; + + /** + * 角色描述 + */ + @ApiModelProperty("角色描述") + @Length(max = 255, message = "角色描述最多255个字符") + private String remark; + + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/basic/domain/dto/RoleBatchDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/basic/domain/dto/RoleBatchDTO.java new file mode 100644 index 00000000..af01cf8c --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/basic/domain/dto/RoleBatchDTO.java @@ -0,0 +1,30 @@ +package net.lab1024.smartadmin.module.system.role.basic.domain.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotEmpty; +import javax.validation.constraints.NotNull; +import java.util.List; + +/** + * 批量添加角色员工DTO + * + * @author listen + * @date 2017/12/29 15:38 + */ +@Data +public class RoleBatchDTO { + + @ApiModelProperty("角色id") + @NotNull(message = "角色id不能为空") + protected Long roleId; + + /** + * 员工id集合 + */ + @ApiModelProperty(value = "员工id集合") + @NotEmpty(message = "员工id不能为空") + protected List employeeIds; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/basic/domain/dto/RoleQueryDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/basic/domain/dto/RoleQueryDTO.java new file mode 100644 index 00000000..08f2a94b --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/basic/domain/dto/RoleQueryDTO.java @@ -0,0 +1,25 @@ +package net.lab1024.smartadmin.module.system.role.basic.domain.dto; +import net.lab1024.smartadmin.common.domain.PageParamDTO; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * + * [ ] + * + * @version 1.0 + * @since JDK1.8 + * @author yandanyang + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + */ +@Data +public class RoleQueryDTO extends PageParamDTO { + + @ApiModelProperty("角色名称") + private String roleName; + + @ApiModelProperty("角色id") + private String roleId; +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/basic/domain/dto/RoleSelectedVO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/basic/domain/dto/RoleSelectedVO.java new file mode 100644 index 00000000..9a88d6d2 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/basic/domain/dto/RoleSelectedVO.java @@ -0,0 +1,21 @@ +package net.lab1024.smartadmin.module.system.role.basic.domain.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/3/27 0027 下午 15:27 + * @since JDK1.8 + */ +@Data +public class RoleSelectedVO extends RoleVO { + + @ApiModelProperty("角色名称") + private Boolean selected; +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/basic/domain/dto/RoleUpdateDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/basic/domain/dto/RoleUpdateDTO.java new file mode 100644 index 00000000..adde4749 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/basic/domain/dto/RoleUpdateDTO.java @@ -0,0 +1,24 @@ +package net.lab1024.smartadmin.module.system.role.basic.domain.dto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * 角色更新修改DTO + * + * @author listen + * @date 2017/12/28 09:40 + */ +@Data +public class RoleUpdateDTO extends RoleAddDTO { + + /** + * 角色id + */ + @ApiModelProperty("角色id") + @NotNull(message = "角色id不能为空") + protected Long id; + + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/basic/domain/dto/RoleVO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/basic/domain/dto/RoleVO.java new file mode 100644 index 00000000..9f3eed90 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/basic/domain/dto/RoleVO.java @@ -0,0 +1,27 @@ +package net.lab1024.smartadmin.module.system.role.basic.domain.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/3/27 0027 下午 15:27 + * @since JDK1.8 + */ +@Data +public class RoleVO { + + @ApiModelProperty("角色ID") + private Long id; + + @ApiModelProperty("角色名称") + private String roleName; + + @ApiModelProperty("角色备注") + private String remark; +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/basic/domain/entity/RoleEntity.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/basic/domain/entity/RoleEntity.java new file mode 100644 index 00000000..ff9d650f --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/basic/domain/entity/RoleEntity.java @@ -0,0 +1,25 @@ +package net.lab1024.smartadmin.module.system.role.basic.domain.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import net.lab1024.smartadmin.common.domain.BaseEntity; +import lombok.Data; + +/** + * [ 角色 ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/3/27 0027 下午 13:01 + * @since JDK1.8 + */ +@Data +@TableName("t_role") +public class RoleEntity extends BaseEntity { + + + private String roleName; + + private String remark; +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/roleemployee/RoleEmployeeController.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/roleemployee/RoleEmployeeController.java new file mode 100644 index 00000000..72c4e507 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/roleemployee/RoleEmployeeController.java @@ -0,0 +1,73 @@ +package net.lab1024.smartadmin.module.system.role.roleemployee; + +import net.lab1024.smartadmin.common.anno.OperateLog; +import net.lab1024.smartadmin.common.domain.PageResultDTO; +import net.lab1024.smartadmin.common.domain.ResponseDTO; +import net.lab1024.smartadmin.constant.SwaggerTagConst; +import net.lab1024.smartadmin.module.system.employee.domain.vo.EmployeeVO; +import net.lab1024.smartadmin.module.system.role.basic.domain.dto.RoleBatchDTO; +import net.lab1024.smartadmin.module.system.role.basic.domain.dto.RoleQueryDTO; +import net.lab1024.smartadmin.module.system.role.basic.domain.dto.RoleSelectedVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; +import java.util.List; + +/** + * 用户角色管理路由 + * + * @author listen + * @date 2017/12/28 10:10 + */ +@Api(tags = {SwaggerTagConst.Admin.MANAGER_ROLE_USER}) +@OperateLog +@RestController +public class RoleEmployeeController { + + @Autowired + private RoleEmployeeService roleEmployeeService; + + @ApiOperation(value = "获取角色成员-员工列表", notes = "获取角色成员-员工列表(分页)") + @PostMapping("/role/listEmployee") + public ResponseDTO> listEmployeeByName(@Valid @RequestBody RoleQueryDTO queryDTO) { + return roleEmployeeService.listEmployeeByName(queryDTO); + } + + @ApiOperation(value = "根据角色id获取角色员工列表(无分页)", notes = "根据角色id获取角色成员-员工列表") + @GetMapping("/role/listAllEmployee/{roleId}") + public ResponseDTO> listAllEmployeeRoleId(@PathVariable Long roleId) { + return roleEmployeeService.getAllEmployeeByRoleId(roleId); + } + + @ApiOperation(value = "从角色成员列表中移除员工", notes = "从角色成员列表中移除员工") + @ApiImplicitParams({@ApiImplicitParam(name = "employeeId", value = "员工id", paramType = "query", required = true), @ApiImplicitParam(name = "roleId", value = "角色id", paramType = "query", + required = true)}) + @GetMapping("/role/removeEmployee") + public ResponseDTO removeEmployee(Long employeeId, Long roleId) { + return roleEmployeeService.removeEmployeeRole(employeeId, roleId); + } + + @ApiOperation(value = "从角色成员列表中批量移除员工", notes = "从角色成员列表中批量移除员工") + @PostMapping("/role/removeEmployeeList") + public ResponseDTO removeEmployeeList(@Valid @RequestBody RoleBatchDTO removeDTO) { + return roleEmployeeService.batchRemoveEmployeeRole(removeDTO); + } + + @ApiOperation(value = "角色成员列表中批量添加员工", notes = "角色成员列表中批量添加员工") + @PostMapping("/role/addEmployeeList") + public ResponseDTO addEmployeeList(@Valid @RequestBody RoleBatchDTO addDTO) { + return roleEmployeeService.batchAddEmployeeRole(addDTO); + } + + @ApiOperation(value = "通过员工id获取所有角色以及员工具有的角色", notes = "通过员工id获取所有角色以及员工具有的角色") + @GetMapping("/role/getRoles/{employeeId}") + @ApiImplicitParams({@ApiImplicitParam(name = "employeeId", value = "员工id", paramType = "path", required = true)}) + public ResponseDTO> getRoleByEmployeeId(@PathVariable Long employeeId) { + return roleEmployeeService.getRolesByEmployeeId(employeeId); + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/roleemployee/RoleEmployeeDao.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/roleemployee/RoleEmployeeDao.java new file mode 100644 index 00000000..08a484e7 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/roleemployee/RoleEmployeeDao.java @@ -0,0 +1,80 @@ +package net.lab1024.smartadmin.module.system.role.roleemployee; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import net.lab1024.smartadmin.module.system.employee.domain.dto.EmployeeDTO; +import net.lab1024.smartadmin.module.system.role.basic.domain.dto.RoleQueryDTO; +import net.lab1024.smartadmin.module.system.role.roleemployee.domain.RoleEmployeeEntity; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/3/27 0027 下午 13:00 + * @since JDK1.8 + */ +@Mapper +@Component +public interface RoleEmployeeDao extends BaseMapper { + + /** + * 根据员工id 查询所有的角色 + * @param employeeId + * @return + */ + List selectRoleIdByEmployeeId(@Param("employeeId") Long employeeId); + + /** + * + * @param page + * @param queryDTO + * @return + */ + List selectEmployeeByNamePage(Page page, @Param("queryDTO") RoleQueryDTO queryDTO); + + /** + * + * @param roleId + * @return + */ + List selectEmployeeByRoleId(@Param("roleId") Long roleId); + /** + * 根据员工信息删除 + * @param employeeId + */ + void deleteByEmployeeId(@Param("employeeId") Long employeeId); + + /** + * 删除某个角色的所有关系 + * @param roleId + */ + void deleteByRoleId(@Param("roleId")Long roleId); + + /** + * 根据员工和 角色删除关系 + * @param employeeId + * @param roleId + */ + void deleteByEmployeeIdRoleId(@Param("employeeId") Long employeeId,@Param("roleId")Long roleId); + + /** + * 批量删除某个角色下的某批用户的关联关系 + * @param roleId + * @param employeeIds + */ + void batchDeleteEmployeeRole(@Param("roleId") Long roleId,@Param("employeeIds")List employeeIds); + + /** + * 批量新增 + * @param roleRelationList + */ + void batchInsert(List roleRelationList); +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/roleemployee/RoleEmployeeService.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/roleemployee/RoleEmployeeService.java new file mode 100644 index 00000000..cf57ed4f --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/roleemployee/RoleEmployeeService.java @@ -0,0 +1,132 @@ +package net.lab1024.smartadmin.module.system.role.roleemployee; + +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import net.lab1024.smartadmin.common.domain.PageResultDTO; +import net.lab1024.smartadmin.common.domain.ResponseDTO; +import net.lab1024.smartadmin.module.system.department.DepartmentDao; +import net.lab1024.smartadmin.module.system.department.domain.entity.DepartmentEntity; +import net.lab1024.smartadmin.module.system.employee.domain.dto.EmployeeDTO; +import net.lab1024.smartadmin.module.system.employee.domain.vo.EmployeeVO; +import net.lab1024.smartadmin.module.system.role.basic.RoleDao; +import net.lab1024.smartadmin.module.system.role.basic.RoleResponseCodeConst; +import net.lab1024.smartadmin.module.system.role.basic.domain.dto.RoleBatchDTO; +import net.lab1024.smartadmin.module.system.role.basic.domain.dto.RoleQueryDTO; +import net.lab1024.smartadmin.module.system.role.basic.domain.dto.RoleSelectedVO; +import net.lab1024.smartadmin.module.system.role.basic.domain.entity.RoleEntity; +import net.lab1024.smartadmin.module.system.role.roleemployee.domain.RoleEmployeeEntity; +import net.lab1024.smartadmin.util.SmartBeanUtil; +import net.lab1024.smartadmin.util.SmartPageUtil; +import com.google.common.collect.Lists; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + * 角色管理业务 + * + * @author zzr + * @date 2019/4/3 + */ +@Service +public class RoleEmployeeService { + + @Autowired + private RoleEmployeeDao roleEmployeeDao; + + @Autowired + private RoleDao roleDao; + + @Autowired + private DepartmentDao departmentDao; + + /** + * 通过角色id,分页获取成员员工列表 + * + * @param queryDTO + * @return + */ + public ResponseDTO> listEmployeeByName(RoleQueryDTO queryDTO) { + Page page = SmartPageUtil.convert2QueryPage(queryDTO); + List employeeDTOS = roleEmployeeDao.selectEmployeeByNamePage(page, queryDTO); + employeeDTOS.stream().filter(e -> e.getDepartmentId() != null).forEach(employeeDTO -> { + DepartmentEntity departmentEntity = departmentDao.selectById(employeeDTO.getDepartmentId()); + employeeDTO.setDepartmentName(departmentEntity.getName()); + }); + PageResultDTO pageResultDTO = SmartPageUtil.convert2PageResult(page, employeeDTOS, EmployeeVO.class); + return ResponseDTO.succData(pageResultDTO); + } + + public ResponseDTO> getAllEmployeeByRoleId(Long roleId) { + List employeeDTOS = roleEmployeeDao.selectEmployeeByRoleId(roleId); + List list = SmartBeanUtil.copyList(employeeDTOS, EmployeeVO.class); + return ResponseDTO.succData(list); + } + + /** + * 移除员工角色 + * + * @param employeeId + * @param roleId + * @return ResponseDTO + */ + @Transactional(rollbackFor = Exception.class) + public ResponseDTO removeEmployeeRole(Long employeeId, Long roleId) { + if (null == employeeId || null == roleId) { + return ResponseDTO.wrap(RoleResponseCodeConst.ERROR_PARAM); + } + roleEmployeeDao.deleteByEmployeeIdRoleId(employeeId, roleId); + return ResponseDTO.succ(); + } + + /** + * 批量删除角色的成员员工 + * + * @param removeDTO + * @return ResponseDTO + */ + @Transactional(rollbackFor = Exception.class) + public ResponseDTO batchRemoveEmployeeRole(RoleBatchDTO removeDTO) { + List employeeIdList = removeDTO.getEmployeeIds(); + roleEmployeeDao.batchDeleteEmployeeRole(removeDTO.getRoleId(), employeeIdList); + return ResponseDTO.succ(); + } + + /** + * 批量添加角色的成员员工 + * + * @param addDTO + * @return ResponseDTO + */ + @Transactional(rollbackFor = Exception.class) + public ResponseDTO batchAddEmployeeRole(RoleBatchDTO addDTO) { + Long roleId = addDTO.getRoleId(); + List employeeIdList = addDTO.getEmployeeIds(); + roleEmployeeDao.deleteByRoleId(roleId); + List roleRelationEntities = Lists.newArrayList(); + RoleEmployeeEntity employeeRoleRelationEntity; + for (Long employeeId : employeeIdList) { + employeeRoleRelationEntity = new RoleEmployeeEntity(); + employeeRoleRelationEntity.setRoleId(roleId); + employeeRoleRelationEntity.setEmployeeId(employeeId); + roleRelationEntities.add(employeeRoleRelationEntity); + } + roleEmployeeDao.batchInsert(roleRelationEntities); + return ResponseDTO.succ(); + } + + /** + * 通过员工id获取员工角色 + * + * @param employeeId + * @return + */ + public ResponseDTO> getRolesByEmployeeId(Long employeeId) { + List roleIds = roleEmployeeDao.selectRoleIdByEmployeeId(employeeId); + List roleList = roleDao.selectList(null); + List result = SmartBeanUtil.copyList(roleList, RoleSelectedVO.class); + result.stream().forEach(item -> item.setSelected(roleIds.contains(item.getId()))); + return ResponseDTO.succData(result); + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/roleemployee/domain/RoleEmployeeDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/roleemployee/domain/RoleEmployeeDTO.java new file mode 100644 index 00000000..5dc70111 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/roleemployee/domain/RoleEmployeeDTO.java @@ -0,0 +1,21 @@ +package net.lab1024.smartadmin.module.system.role.roleemployee.domain; + +import lombok.Data; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/3/27 0027 下午 15:27 + * @since JDK1.8 + */ +@Data +public class RoleEmployeeDTO { + + private Long roleId; + + private Long employeeId; +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/roleemployee/domain/RoleEmployeeEntity.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/roleemployee/domain/RoleEmployeeEntity.java new file mode 100644 index 00000000..58d16994 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/roleemployee/domain/RoleEmployeeEntity.java @@ -0,0 +1,24 @@ +package net.lab1024.smartadmin.module.system.role.roleemployee.domain; + +import com.baomidou.mybatisplus.annotation.TableName; +import net.lab1024.smartadmin.common.domain.BaseEntity; +import lombok.Data; + +/** + * [ 角色 员工关系] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/3/27 0027 下午 13:01 + * @since JDK1.8 + */ +@Data +@TableName("t_role_employee") +public class RoleEmployeeEntity extends BaseEntity { + + private Long roleId; + + private Long employeeId; +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/roleprivilege/RolePrivilegeController.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/roleprivilege/RolePrivilegeController.java new file mode 100644 index 00000000..3cb021ef --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/roleprivilege/RolePrivilegeController.java @@ -0,0 +1,45 @@ +package net.lab1024.smartadmin.module.system.role.roleprivilege; + +import net.lab1024.smartadmin.common.anno.OperateLog; +import net.lab1024.smartadmin.common.domain.ResponseDTO; +import net.lab1024.smartadmin.constant.SwaggerTagConst; +import net.lab1024.smartadmin.module.system.role.roleprivilege.domain.dto.RolePrivilegeDTO; +import net.lab1024.smartadmin.module.system.role.roleprivilege.domain.dto.RolePrivilegeTreeVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; + +/** + * [ 与员工权限相关:角色权限关系、权限列表 ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + * @since JDK1.8 + */ +@OperateLog +@RestController +@Api(tags = {SwaggerTagConst.Admin.MANAGER_ROLE_PRIVILEGE}) +public class RolePrivilegeController { + + @Autowired + private RolePrivilegeService rolePrivilegeService; + + @ApiOperation(value = "更新角色权限", notes = "更新角色权限") + @PostMapping("/privilege/updateRolePrivilege") + public ResponseDTO updateRolePrivilege(@Valid @RequestBody RolePrivilegeDTO updateDTO) { + return rolePrivilegeService.updateRolePrivilege(updateDTO); + } + + @ApiOperation(value = "获取角色可选的功能权限", notes = "获取角色可选的功能权限") + @GetMapping("/privilege/listPrivilegeByRoleId/{roleId}") + public ResponseDTO listPrivilegeByRoleId(@PathVariable("roleId") Long roleId) { + return rolePrivilegeService.listPrivilegeByRoleId(roleId); + } + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/roleprivilege/RolePrivilegeDao.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/roleprivilege/RolePrivilegeDao.java new file mode 100644 index 00000000..ebf4284b --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/roleprivilege/RolePrivilegeDao.java @@ -0,0 +1,58 @@ +package net.lab1024.smartadmin.module.system.role.roleprivilege; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import net.lab1024.smartadmin.module.system.privilege.domain.entity.PrivilegeEntity; +import net.lab1024.smartadmin.module.system.role.roleprivilege.domain.entity.RolePrivilegeEntity; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/3/28 0028 下午 12:23 + * @since JDK1.8 + */ +@Mapper +@Component +public interface RolePrivilegeDao extends BaseMapper { + + /** + * 根据角色id删除 + * @param roleId + */ + void deleteByRoleId(@Param("roleId")Long roleId); + + /** + * 删除权限所关联的角色信息 + * @param privilegeKeyList + */ + void deleteByPrivilegeKey(@Param("privilegeKeyList")List privilegeKeyList); + + + /** + * 批量添加 + * @param rolePrivilegeList + */ + void batchInsert(List rolePrivilegeList); + + /** + * 查询某批角色的权限 + * @param roleIds + * @return + */ + List listByRoleIds(@Param("roleIds")List roleIds,@Param("normalStatus")Integer normalStatus); + + /** + * 查询某个角色的权限 + * @param roleId + * @return + */ + List listByRoleId(@Param("roleId")Long roleId); +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/roleprivilege/RolePrivilegeService.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/roleprivilege/RolePrivilegeService.java new file mode 100644 index 00000000..dd39f36f --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/roleprivilege/RolePrivilegeService.java @@ -0,0 +1,129 @@ +package net.lab1024.smartadmin.module.system.role.roleprivilege; + +import net.lab1024.smartadmin.common.domain.ResponseDTO; +import net.lab1024.smartadmin.module.system.privilege.dao.PrivilegeDao; +import net.lab1024.smartadmin.module.system.privilege.domain.entity.PrivilegeEntity; +import net.lab1024.smartadmin.module.system.privilege.service.PrivilegeEmployeeService; +import net.lab1024.smartadmin.module.system.role.basic.RoleDao; +import net.lab1024.smartadmin.module.system.role.basic.RoleResponseCodeConst; +import net.lab1024.smartadmin.module.system.role.basic.domain.entity.RoleEntity; +import net.lab1024.smartadmin.module.system.role.roleprivilege.domain.dto.RolePrivilegeDTO; +import net.lab1024.smartadmin.module.system.role.roleprivilege.domain.dto.RolePrivilegeSimpleDTO; +import net.lab1024.smartadmin.module.system.role.roleprivilege.domain.dto.RolePrivilegeTreeVO; +import net.lab1024.smartadmin.module.system.role.roleprivilege.domain.entity.RolePrivilegeEntity; +import net.lab1024.smartadmin.util.SmartBeanUtil; +import com.google.common.collect.Lists; +import org.apache.commons.collections.CollectionUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Comparator; +import java.util.List; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * [ 后台员工权限 ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + * @since JDK1.8 + */ +@Service +public class RolePrivilegeService { + + @Autowired + private PrivilegeDao privilegeDao; + + @Autowired + private RoleDao roleDao; + + @Autowired + private RolePrivilegeDao rolePrivilegeDao; + + @Autowired + private PrivilegeEmployeeService privilegeEmployeeService; + + /** + * 更新角色权限 + * + * @param updateDTO + * @return ResponseDTO + */ + public ResponseDTO updateRolePrivilege(RolePrivilegeDTO updateDTO) { + Long roleId = updateDTO.getRoleId(); + RoleEntity roleEntity = roleDao.selectById(roleId); + if (null == roleEntity) { + return ResponseDTO.wrap(RoleResponseCodeConst.ROLE_NOT_EXISTS); + } + rolePrivilegeDao.deleteByRoleId(roleId); + List rolePrivilegeList = Lists.newArrayList(); + RolePrivilegeEntity rolePrivilegeEntity; + for (String privilegeKey : updateDTO.getPrivilegeKeyList()) { + rolePrivilegeEntity = new RolePrivilegeEntity(); + rolePrivilegeEntity.setRoleId(roleId); + rolePrivilegeEntity.setPrivilegeKey(privilegeKey); + rolePrivilegeList.add(rolePrivilegeEntity); + } + rolePrivilegeDao.batchInsert(rolePrivilegeList); + privilegeEmployeeService.updateOnlineEmployeePrivilegeByRoleId(roleId); + return ResponseDTO.succ(); + } + + public ResponseDTO listPrivilegeByRoleId(Long roleId) { + RolePrivilegeTreeVO rolePrivilegeTreeDTO = new RolePrivilegeTreeVO(); + rolePrivilegeTreeDTO.setRoleId(roleId); + + List privilegeDTOList = privilegeDao.selectAll(); + if (CollectionUtils.isEmpty(privilegeDTOList)) { + rolePrivilegeTreeDTO.setPrivilege(Lists.newArrayList()); + rolePrivilegeTreeDTO.setSelectedKey(Lists.newArrayList()); + return ResponseDTO.succData(rolePrivilegeTreeDTO); + } + //构造权限树 + List privilegeList = this.buildPrivilegeTree(privilegeDTOList); + //设置选中状态 + List rolePrivilegeEntityList = rolePrivilegeDao.listByRoleId(roleId); + List privilegeKeyList = rolePrivilegeEntityList.stream().map(e -> e.getKey()).collect(Collectors.toList()); + rolePrivilegeTreeDTO.setPrivilege(privilegeList); + rolePrivilegeTreeDTO.setSelectedKey(privilegeKeyList); + return ResponseDTO.succData(rolePrivilegeTreeDTO); + } + + private List buildPrivilegeTree(List privilegeEntityList) { + List privilegeTree = Lists.newArrayList(); + List rootPrivilege = privilegeEntityList.stream().filter(e -> e.getParentKey() == null).collect(Collectors.toList()); + rootPrivilege.sort(Comparator.comparing(PrivilegeEntity::getSort)); + if (CollectionUtils.isEmpty(rootPrivilege)) { + return privilegeTree; + } + privilegeTree = SmartBeanUtil.copyList(rootPrivilege, RolePrivilegeSimpleDTO.class); + privilegeTree.forEach(e -> e.setChildren(Lists.newArrayList())); + this.buildChildPrivilegeList(privilegeEntityList, privilegeTree); + return privilegeTree; + } + + private void buildChildPrivilegeList(List privilegeEntityList, List parentMenuList) { + List parentKeyList = parentMenuList.stream().map(RolePrivilegeSimpleDTO :: getKey).collect(Collectors.toList()); + List childEntityList = privilegeEntityList.stream().filter(e -> parentKeyList.contains(e.getParentKey())).collect(Collectors.toList()); + if (CollectionUtils.isEmpty(childEntityList)) { + return; + } + Map> listMap = childEntityList.stream().collect(Collectors.groupingBy(PrivilegeEntity :: getParentKey)); + for (RolePrivilegeSimpleDTO rolePrivilegeSimpleDTO : parentMenuList) { + String key = rolePrivilegeSimpleDTO.getKey(); + List privilegeEntities = listMap.get(key); + if (CollectionUtils.isEmpty(privilegeEntities)) { + continue; + } + privilegeEntities.sort(Comparator.comparing(PrivilegeEntity::getSort)); + List privilegeList = SmartBeanUtil.copyList(privilegeEntities, RolePrivilegeSimpleDTO.class); + privilegeList.forEach(e -> e.setChildren(Lists.newArrayList())); + rolePrivilegeSimpleDTO.setChildren(privilegeList); + this.buildChildPrivilegeList(privilegeEntityList, privilegeList); + } + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/roleprivilege/domain/dto/RolePrivilegeDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/roleprivilege/domain/dto/RolePrivilegeDTO.java new file mode 100644 index 00000000..261fbfd0 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/roleprivilege/domain/dto/RolePrivilegeDTO.java @@ -0,0 +1,35 @@ +package net.lab1024.smartadmin.module.system.role.roleprivilege.domain.dto; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.util.List; +/** + * + * [ ] + * + * @version 1.0 + * @since JDK1.8 + * @author yandanyang + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + */ +@Data +public class RolePrivilegeDTO { + + /** + * 角色id + */ + @ApiModelProperty("角色id") + @NotNull(message = "角色id不能为空") + private Long roleId; + + /** + * 功能权限id 集合 + */ + @ApiModelProperty("功能权限Key集合") + @NotNull(message = "功能权限集合不能为空") + private List privilegeKeyList; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/roleprivilege/domain/dto/RolePrivilegeSimpleDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/roleprivilege/domain/dto/RolePrivilegeSimpleDTO.java new file mode 100644 index 00000000..754b60f1 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/roleprivilege/domain/dto/RolePrivilegeSimpleDTO.java @@ -0,0 +1,43 @@ +package net.lab1024.smartadmin.module.system.role.roleprivilege.domain.dto; + +import net.lab1024.smartadmin.common.anno.ApiModelPropertyEnum; +import net.lab1024.smartadmin.module.system.privilege.constant.PrivilegeTypeEnum; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * 角色功能权限 + * + * @author listen + * @date 2018/01/03 08:48 + */ +@Data +public class RolePrivilegeSimpleDTO { + + @ApiModelProperty("父级Key") + private String parentKey; + /** + * 功能名称 + */ + @ApiModelProperty("名称") + private String name; + + @ApiModelPropertyEnum(enumDesc = "类型",value = PrivilegeTypeEnum.class) + private Integer type; + + @ApiModelProperty("key") + private String key; + + @ApiModelProperty("url") + private String url; + + @ApiModelProperty("排序") + private Integer sort; + + @ApiModelProperty("子级列表") + private List children; + + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/roleprivilege/domain/dto/RolePrivilegeTreeVO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/roleprivilege/domain/dto/RolePrivilegeTreeVO.java new file mode 100644 index 00000000..2d441f85 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/roleprivilege/domain/dto/RolePrivilegeTreeVO.java @@ -0,0 +1,19 @@ +package net.lab1024.smartadmin.module.system.role.roleprivilege.domain.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +@Data +public class RolePrivilegeTreeVO { + + @ApiModelProperty("角色ID") + private Long roleId; + + @ApiModelProperty("权限列表") + private List privilege; + + @ApiModelProperty("选中的权限") + private List selectedKey; +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/roleprivilege/domain/entity/RolePrivilegeEntity.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/roleprivilege/domain/entity/RolePrivilegeEntity.java new file mode 100644 index 00000000..b17c80cc --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/role/roleprivilege/domain/entity/RolePrivilegeEntity.java @@ -0,0 +1,32 @@ +package net.lab1024.smartadmin.module.system.role.roleprivilege.domain.entity; +import com.baomidou.mybatisplus.annotation.TableName; +import net.lab1024.smartadmin.common.domain.BaseEntity; +import lombok.Data; + +/** + * + * [ 角色 权限关系 ] + * + * @version 1.0 + * @since JDK1.8 + * @author yandanyang + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + */ +@Data +@TableName("t_role_privilege") +public class RolePrivilegeEntity extends BaseEntity { + + /** + * 角色 id + */ + private Long roleId; + + /** + * 功能权限 id + */ + private String privilegeKey; + + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/systemconfig/SystemConfigController.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/systemconfig/SystemConfigController.java new file mode 100644 index 00000000..efe62f4c --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/systemconfig/SystemConfigController.java @@ -0,0 +1,70 @@ +package net.lab1024.smartadmin.module.system.systemconfig; + +import net.lab1024.smartadmin.common.anno.OperateLog; +import net.lab1024.smartadmin.common.domain.PageResultDTO; +import net.lab1024.smartadmin.common.domain.ResponseDTO; +import net.lab1024.smartadmin.constant.SwaggerTagConst; +import net.lab1024.smartadmin.module.system.systemconfig.domain.dto.SystemConfigAddDTO; +import net.lab1024.smartadmin.module.system.systemconfig.domain.dto.SystemConfigQueryDTO; +import net.lab1024.smartadmin.module.system.systemconfig.domain.dto.SystemConfigUpdateDTO; +import net.lab1024.smartadmin.module.system.systemconfig.domain.dto.SystemConfigVO; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; + +import javax.validation.Valid; +import java.util.List; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + * @since JDK1.8 + */ +@Api(tags = {SwaggerTagConst.Admin.MANAGER_SYSTEM_CONFIG}) +@OperateLog +@RestController +public class SystemConfigController { + + @Autowired + private SystemConfigService systemConfigService; + + @ApiOperation(value = "分页查询所有系统配置", notes = "分页查询所有系统配置") + @PostMapping("systemConfig/getListPage") + public ResponseDTO> getSystemConfigPage(@RequestBody @Valid SystemConfigQueryDTO queryDTO) { + return systemConfigService.getSystemConfigPage(queryDTO); + } + + @ApiOperation(value = "添加配置参数", notes = "添加配置参数") + @PostMapping("systemConfig/add") + public ResponseDTO addSystemConfig(@RequestBody @Valid SystemConfigAddDTO configAddDTO) { + return systemConfigService.addSystemConfig(configAddDTO); + } + + @ApiOperation(value = "修改配置参数", notes = "修改配置参数") + @PostMapping("systemConfig/update") + public ResponseDTO updateSystemConfig(@RequestBody @Valid SystemConfigUpdateDTO updateDTO) { + return systemConfigService.updateSystemConfig(updateDTO); + } + + @ApiOperation(value = "根据分组查询所有系统配置", notes = "根据分组查询所有系统配置") + @GetMapping("systemConfig/getListByGroup") + public ResponseDTO> getListByGroup(String group) { + return systemConfigService.getListByGroup(group); + } + + @ApiOperation(value = "通过key获取对应的信息", notes = "通过key获取对应的信息") + @GetMapping("systemConfig/selectByKey") + public ResponseDTO selectByKey(String configKey) { + return systemConfigService.selectByKey(configKey); + } + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/systemconfig/SystemConfigDao.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/systemconfig/SystemConfigDao.java new file mode 100644 index 00000000..e8114f11 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/systemconfig/SystemConfigDao.java @@ -0,0 +1,62 @@ +package net.lab1024.smartadmin.module.system.systemconfig; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import net.lab1024.smartadmin.module.system.systemconfig.domain.dto.SystemConfigQueryDTO; +import net.lab1024.smartadmin.module.system.systemconfig.domain.entity.SystemConfigEntity; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * 系统参数配置 t_system_config Dao层 + * + * @author GHQ + * @date 2017-12-23 14:25 + */ +@Component +@Mapper +public interface SystemConfigDao extends BaseMapper { + + /** + * 查询所有系统配置(分页) + * + * @param page + * @return + */ + List selectSystemSettingList(Page page, @Param("queryDTO") SystemConfigQueryDTO queryDTO); + + /** + * 根据key查询获取数据 + * + * @param key + * @return + */ + SystemConfigEntity getByKey(@Param("key") String key); + + /** + * 根据key查询获取数据 排除掉某個id的数据 + * @param key + * @param excludeId + * @return + */ + SystemConfigEntity getByKeyExcludeId(@Param("key") String key,@Param("excludeId") Long excludeId); + /** + * 查询所有系统配置 + * + * @return + */ + List selectAll(); + + /** + * 根据分组查询所有系统配置 + * @param group + * @return + */ + List getListByGroup(String group); + + + SystemConfigEntity selectByKeyAndGroup(@Param("configKey") String configKey, @Param("group") String group); +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/systemconfig/SystemConfigService.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/systemconfig/SystemConfigService.java new file mode 100644 index 00000000..5dd00d65 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/systemconfig/SystemConfigService.java @@ -0,0 +1,262 @@ +package net.lab1024.smartadmin.module.system.systemconfig; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import net.lab1024.smartadmin.common.constant.JudgeEnum; +import net.lab1024.smartadmin.common.constant.ResponseCodeConst; +import net.lab1024.smartadmin.common.domain.PageResultDTO; +import net.lab1024.smartadmin.common.domain.ResponseDTO; +import net.lab1024.smartadmin.common.reload.annotation.SmartReload; +import net.lab1024.smartadmin.constant.SmartReloadTagConst; +import net.lab1024.smartadmin.module.support.smartreload.SmartReloadService; +import net.lab1024.smartadmin.module.system.systemconfig.constant.SystemConfigDataType; +import net.lab1024.smartadmin.module.system.systemconfig.constant.SystemConfigEnum; +import net.lab1024.smartadmin.module.system.systemconfig.constant.SystemConfigResponseCodeConst; +import net.lab1024.smartadmin.module.system.systemconfig.domain.dto.*; +import net.lab1024.smartadmin.module.system.systemconfig.domain.entity.SystemConfigEntity; +import net.lab1024.smartadmin.util.SmartBeanUtil; +import net.lab1024.smartadmin.util.SmartPageUtil; +import com.google.common.collect.Lists; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.annotation.PostConstruct; +import java.util.List; +import java.util.concurrent.ConcurrentHashMap; +import java.util.regex.Pattern; + +/** + * 系统配置业务类 + * + * @author GHQ + * @date 2017-12-23 15:09 + */ +@Slf4j +@Service +public class SystemConfigService { + + /** + * 系统配置缓存 + */ + private ConcurrentHashMap systemConfigMap = new ConcurrentHashMap<>(); + + @Autowired + private SystemConfigDao systemConfigDao; + + @Autowired + private SmartReloadService smartReloadService; + + /** + * 初始化系统设置缓存 + */ + @PostConstruct + private void initSystemConfigCache() { + List entityList = systemConfigDao.selectAll(); + if (CollectionUtils.isEmpty(entityList)) { + return; + } + + systemConfigMap.clear(); + entityList.forEach(entity -> this.systemConfigMap.put(entity.getConfigKey().toLowerCase(), entity)); + log.info("系统设置缓存初始化完毕:{}", systemConfigMap.size()); + + smartReloadService.register(this); + } + + @SmartReload(SmartReloadTagConst.SYSTEM_CONFIG) + public boolean reload(String args) { + this.initSystemConfigCache(); + log.warn("<> <<{}>> , args {} reload success ", SmartReloadTagConst.SYSTEM_CONFIG, args); + return true; + } + + /** + * 分页获取系统配置 + * + * @param queryDTO + * @return + */ + public ResponseDTO> getSystemConfigPage(SystemConfigQueryDTO queryDTO) { + Page page = SmartPageUtil.convert2QueryPage(queryDTO); + if(queryDTO.getKey() != null){ + queryDTO.setKey(queryDTO.getKey().toLowerCase()); + } + List entityList = systemConfigDao.selectSystemSettingList(page, queryDTO); + PageResultDTO pageResultDTO = SmartPageUtil.convert2PageResult(page, entityList, SystemConfigVO.class); + return ResponseDTO.succData(pageResultDTO); + } + + /** + * 根据参数key获得一条数据(数据库) + * + * @param configKey + * @return + */ + public ResponseDTO selectByKey(String configKey) { + if(configKey != null){ + configKey = configKey.toLowerCase(); + } + SystemConfigEntity entity = systemConfigDao.getByKey(configKey); + if (entity == null) { + return ResponseDTO.wrap(SystemConfigResponseCodeConst.NOT_EXIST); + } + SystemConfigVO configDTO = SmartBeanUtil.copy(entity, SystemConfigVO.class); + return ResponseDTO.succData(configDTO); + } + + /** + * 根据参数key获得一条数据 并转换为 对象 + * + * @param configKey + * @param clazz + * @param + * @return + */ + public T selectByKey2Obj(String configKey, Class clazz) { + if(configKey != null){ + configKey = configKey.toLowerCase(); + } + SystemConfigEntity entity = systemConfigDao.getByKey(configKey); + if (entity == null) { + return null; + } + SystemConfigDTO configDTO = SmartBeanUtil.copy(entity, SystemConfigDTO.class); + String configValue = configDTO.getConfigValue(); + if (StringUtils.isEmpty(configValue)) { + return null; + } + T obj = JSON.parseObject(configValue, clazz); + return obj; + } + + public SystemConfigDTO getCacheByKey(SystemConfigEnum.Key key) { + SystemConfigEntity entity = this.systemConfigMap.get(key.name().toLowerCase()); + if (entity == null) { + return null; + } + return SmartBeanUtil.copy(entity, SystemConfigDTO.class); + } + + /** + * 添加系统配置 + * + * @param configAddDTO + * @return + */ + public ResponseDTO addSystemConfig(SystemConfigAddDTO configAddDTO) { + configAddDTO.setConfigKey(configAddDTO.getConfigKey().toLowerCase()); + SystemConfigEntity entity = systemConfigDao.getByKey(configAddDTO.getConfigKey()); + if (entity != null) { + return ResponseDTO.wrap(SystemConfigResponseCodeConst.ALREADY_EXIST); + } + ResponseDTO valueValid = this.configValueValid(configAddDTO.getConfigKey(),configAddDTO.getConfigValue()); + if(!valueValid.isSuccess()){ + return valueValid; + } + configAddDTO.setConfigKey(configAddDTO.getConfigKey().toLowerCase()); + SystemConfigEntity addEntity = SmartBeanUtil.copy(configAddDTO, SystemConfigEntity.class); + addEntity.setIsUsing(JudgeEnum.YES.getValue()); + systemConfigDao.insert(addEntity); + //刷新缓存 + this.initSystemConfigCache(); + return ResponseDTO.succ(); + } + + /** + * 更新系统配置 + * + * @param updateDTO + * @return + */ + public ResponseDTO updateSystemConfig(SystemConfigUpdateDTO updateDTO) { + updateDTO.setConfigKey(updateDTO.getConfigKey().toLowerCase()); + SystemConfigEntity entity = systemConfigDao.selectById(updateDTO.getId()); + //系统配置不存在 + if (entity == null) { + return ResponseDTO.wrap(SystemConfigResponseCodeConst.NOT_EXIST); + } + SystemConfigEntity alreadyEntity = systemConfigDao.getByKeyExcludeId(updateDTO.getConfigKey().toLowerCase(), updateDTO.getId()); + if (alreadyEntity != null) { + return ResponseDTO.wrap(SystemConfigResponseCodeConst.ALREADY_EXIST); + } + ResponseDTO valueValid = this.configValueValid(updateDTO.getConfigKey(),updateDTO.getConfigValue()); + if(!valueValid.isSuccess()){ + return valueValid; + } + entity = SmartBeanUtil.copy(updateDTO, SystemConfigEntity.class); + updateDTO.setConfigKey(updateDTO.getConfigKey().toLowerCase()); + systemConfigDao.updateById(entity); + + //刷新缓存 + this.initSystemConfigCache(); + return ResponseDTO.succ(); + } + + + private ResponseDTO configValueValid(String configKey , String configValue){ + SystemConfigEnum.Key configKeyEnum = SystemConfigEnum.Key.selectByKey(configKey); + if(configKeyEnum == null){ + return ResponseDTO.succ(); + } + SystemConfigDataType dataType = configKeyEnum.getDataType(); + if(dataType == null){ + return ResponseDTO.succ(); + } + if(dataType.name().equals(SystemConfigDataType.TEXT.name())){ + return ResponseDTO.succ(); + } + if(dataType.name().equals(SystemConfigDataType.JSON.name())){ + try { + JSONObject jsonStr = JSONObject.parseObject(configValue); + return ResponseDTO.succ(); + } catch (Exception e) { + return ResponseDTO.wrap(ResponseCodeConst.ERROR_PARAM,"数据格式不是JSON,请修改后提交。"); + } + } + if(StringUtils.isNotEmpty(dataType.getValid())){ + Boolean valid = Pattern.matches(dataType.getValid(), configValue); + if(valid){ + return ResponseDTO.succ(); + } + return ResponseDTO.wrap(ResponseCodeConst.ERROR_PARAM,"数据格式不是"+dataType.name().toLowerCase()+",请修改后提交。"); + } + + return ResponseDTO.succ(); + } + + /** + * 根据分组名称 获取获取系统设置 + * + * @param group + * @return + */ + public ResponseDTO> getListByGroup(String group) { + + List entityList = systemConfigDao.getListByGroup(group); + if (CollectionUtils.isEmpty(entityList)) { + return ResponseDTO.succData(Lists.newArrayList()); + } + List systemConfigList = SmartBeanUtil.copyList(entityList, SystemConfigVO.class); + return ResponseDTO.succData(systemConfigList); + } + + /** + * 根据分组名称 获取获取系统设置 + * + * @param group + * @return + */ + public List getListByGroup(SystemConfigEnum.Group group) { + List entityList = systemConfigDao.getListByGroup(group.name()); + if (CollectionUtils.isEmpty(entityList)) { + return Lists.newArrayList(); + } + List systemConfigList = SmartBeanUtil.copyList(entityList, SystemConfigDTO.class); + return systemConfigList; + } + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/systemconfig/constant/SystemConfigDataType.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/systemconfig/constant/SystemConfigDataType.java new file mode 100644 index 00000000..900256d8 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/systemconfig/constant/SystemConfigDataType.java @@ -0,0 +1,67 @@ +package net.lab1024.smartadmin.module.system.systemconfig.constant; + +import net.lab1024.smartadmin.util.SmartVerificationUtil; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/9/4 0004 上午 11:43 + * @since JDK1.8 + */ +public enum SystemConfigDataType { + /** + * 整数 + */ + INTEGER(SmartVerificationUtil.INTEGER), + /** + * 文本 + */ + TEXT(null), + /** + * url地址 + */ + URL(SmartVerificationUtil.URL), + /** + * 邮箱 + */ + EMAIL(SmartVerificationUtil.EMAIL), + /** + * JSON 字符串 + */ + JSON(null), + /** + * 2019-08 + */ + YEAR_MONTH(SmartVerificationUtil.YEAR_MONTH), + /** + * 2019-08-01 + */ + DATE(SmartVerificationUtil.DATE), + /** + * 2019-08-01 10:23 + */ + DATE_TIME(SmartVerificationUtil.DATE_TIME), + /** + * 10:23-10:56 + */ + TIME_SECTION(SmartVerificationUtil.TIME_SECTION), + /** + * 10:23 + */ + TIME(SmartVerificationUtil.TIME); + + private String valid; + + + SystemConfigDataType(String valid){ + this.valid = valid; + } + + public String getValid() { + return valid; + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/systemconfig/constant/SystemConfigEnum.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/systemconfig/constant/SystemConfigEnum.java new file mode 100644 index 00000000..9791d772 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/systemconfig/constant/SystemConfigEnum.java @@ -0,0 +1,68 @@ +package net.lab1024.smartadmin.module.system.systemconfig.constant; + + +import java.util.Arrays; +import java.util.Optional; + +/** + * [ 系统配置常量类 ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + * @since JDK1.8 + */ +public class SystemConfigEnum { + + public enum Group { + BACK, + GIT_LOG + } + + public enum Key { + /** + * 超管id + */ + EMPLOYEE_SUPERMAN(SystemConfigDataType.TEXT), + /** + * 阿里云OSS配置项 + */ + ALI_OSS(SystemConfigDataType.JSON), + /** + * 七牛云OSS配置项 + */ + QI_NIU_OSS(SystemConfigDataType.JSON), + /** + * 本地文件上传url前缀 + */ + LOCAL_UPLOAD_URL_PREFIX(SystemConfigDataType.URL), + /** + * 邮件配置 + */ + EMAIL_CONFIG(SystemConfigDataType.JSON), + /** + * git-log 插件 + */ + GIT_LOG_PLUGIN(SystemConfigDataType.JSON); + + private SystemConfigDataType dataType; + + Key(SystemConfigDataType dataType) { + this.dataType = dataType; + } + + + public SystemConfigDataType getDataType() { + return dataType; + } + + public static Key selectByKey(String key) { + Key[] values = Key.values(); + Optional first = Arrays.stream(values).filter(e -> e.name().equalsIgnoreCase(key)).findFirst(); + return !first.isPresent() ? null : first.get(); + } + } + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/systemconfig/constant/SystemConfigResponseCodeConst.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/systemconfig/constant/SystemConfigResponseCodeConst.java new file mode 100644 index 00000000..fd9fa9e4 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/systemconfig/constant/SystemConfigResponseCodeConst.java @@ -0,0 +1,29 @@ +package net.lab1024.smartadmin.module.system.systemconfig.constant; +import net.lab1024.smartadmin.common.constant.ResponseCodeConst; + +/** + * + * [ 5001-5999 ] + * + * @version 1.0 + * @since JDK1.8 + * @author yandanyang + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + */ +public class SystemConfigResponseCodeConst extends ResponseCodeConst { + + /** + * 配置参数已存在 10201 + */ + public static final SystemConfigResponseCodeConst ALREADY_EXIST = new SystemConfigResponseCodeConst(5001, "配置参数已存在"); + /** + * 配置参数不存在 10203 + */ + public static final SystemConfigResponseCodeConst NOT_EXIST = new SystemConfigResponseCodeConst(5002, "配置参数不存在"); + + public SystemConfigResponseCodeConst(int code, String msg) { + super(code, msg); + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/systemconfig/domain/dto/SystemConfigAddDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/systemconfig/domain/dto/SystemConfigAddDTO.java new file mode 100644 index 00000000..18b8a7c9 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/systemconfig/domain/dto/SystemConfigAddDTO.java @@ -0,0 +1,45 @@ +package net.lab1024.smartadmin.module.system.systemconfig.domain.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.hibernate.validator.constraints.Length; + +import javax.validation.constraints.NotBlank; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + * @since JDK1.8 + */ +@Data +public class SystemConfigAddDTO { + + @ApiModelProperty("参数key") + @NotBlank(message = "参数key不能为空") + @Length(max = 255, message = "参数key最多255个字符") + private String configKey; + + @ApiModelProperty("参数的值") + @NotBlank(message = "参数的值不能为空") + @Length(max = 65530, message = "参数的值最多65530个字符") + private String configValue; + + @ApiModelProperty("参数名称") + @NotBlank(message = "参数名称不能为空") + @Length(max = 255, message = "参数名称最多255个字符") + private String configName; + + @ApiModelProperty("参数类别") + @NotBlank(message = "参数类别不能为空") + @Length(max = 255, message = "参数类别最多255个字符") + private String configGroup; + + @ApiModelProperty("备注") + @Length(max = 255, message = "备注最多255个字符") + private String remark; +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/systemconfig/domain/dto/SystemConfigDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/systemconfig/domain/dto/SystemConfigDTO.java new file mode 100644 index 00000000..16aadef5 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/systemconfig/domain/dto/SystemConfigDTO.java @@ -0,0 +1,50 @@ +package net.lab1024.smartadmin.module.system.systemconfig.domain.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * + * [ ] + * + * @version 1.0 + * @since JDK1.8 + * @author yandanyang + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + */ +@Data +public class SystemConfigDTO { + + @ApiModelProperty("主键") + private Long id; + + @ApiModelProperty("参数key") + private String configKey; + + @ApiModelProperty("参数的值") + private String configValue; + + @ApiModelProperty("参数名称") + private String configName; + + @ApiModelProperty("参数类别") + private String configGroup; + + @ApiModelProperty("是否使用0 是 1否") + private Integer isUsing; + + @ApiModelProperty("备注") + private String remark; + + @ApiModelProperty("创建时间") + private Date createTime; + + @ApiModelProperty("上次修改时间") + private Date updateTime; + + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/systemconfig/domain/dto/SystemConfigQueryDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/systemconfig/domain/dto/SystemConfigQueryDTO.java new file mode 100644 index 00000000..458ef395 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/systemconfig/domain/dto/SystemConfigQueryDTO.java @@ -0,0 +1,29 @@ +package net.lab1024.smartadmin.module.system.systemconfig.domain.dto; + + +import net.lab1024.smartadmin.common.domain.PageParamDTO; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * + * [ ] + * + * @version 1.0 + * @since JDK1.8 + * @author yandanyang + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + */ +@Data +public class SystemConfigQueryDTO extends PageParamDTO { + + @ApiModelProperty("参数KEY") + private String key; + + @ApiModelProperty("参数类别") + private String configGroup; + + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/systemconfig/domain/dto/SystemConfigUpdateDTO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/systemconfig/domain/dto/SystemConfigUpdateDTO.java new file mode 100644 index 00000000..2fa29788 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/systemconfig/domain/dto/SystemConfigUpdateDTO.java @@ -0,0 +1,25 @@ +package net.lab1024.smartadmin.module.system.systemconfig.domain.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +/** + * + * [ ] + * + * @version 1.0 + * @since JDK1.8 + * @author yandanyang + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + */ +@Data +public class SystemConfigUpdateDTO extends SystemConfigAddDTO{ + + @ApiModelProperty("id") + @NotNull(message = "id不能为空") + private Long id; +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/systemconfig/domain/dto/SystemConfigVO.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/systemconfig/domain/dto/SystemConfigVO.java new file mode 100644 index 00000000..3b5de292 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/systemconfig/domain/dto/SystemConfigVO.java @@ -0,0 +1,48 @@ +package net.lab1024.smartadmin.module.system.systemconfig.domain.dto; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + * @since JDK1.8 + */ +@Data +public class SystemConfigVO { + + @ApiModelProperty("主键") + private Long id; + + @ApiModelProperty("参数key") + private String configKey; + + @ApiModelProperty("参数的值") + private String configValue; + + @ApiModelProperty("参数名称") + private String configName; + + @ApiModelProperty("参数类别") + private String configGroup; + + @ApiModelProperty("是否使用0 是 1否") + private Integer isUsing; + + @ApiModelProperty("备注") + private String remark; + + @ApiModelProperty("创建时间") + private Date createTime; + + @ApiModelProperty("上次修改时间") + private Date updateTime; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/systemconfig/domain/entity/SystemConfigEntity.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/systemconfig/domain/entity/SystemConfigEntity.java new file mode 100644 index 00000000..18ca1f9f --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/module/system/systemconfig/domain/entity/SystemConfigEntity.java @@ -0,0 +1,51 @@ +package net.lab1024.smartadmin.module.system.systemconfig.domain.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import net.lab1024.smartadmin.common.domain.BaseEntity; +import lombok.Data; + +import java.io.Serializable; + +/** + * 系统配置参数 实体类 + * + * @author GHQ + * @date 2017-12-23 13:41 + */ +@Data +@TableName(value = "t_system_config") +public class SystemConfigEntity extends BaseEntity implements Serializable { + + private static final long serialVersionUID = 257284726400352502L; + + /** + * 参数key + */ + private String configKey; + + /** + * 参数的值 + */ + private String configValue; + + /** + * 参数名称 + */ + private String configName; + + /** + * 参数类别 + */ + private String configGroup; + + /** + * 是否使用0 是 1否 + */ + private Integer isUsing; + + /** + * 备注 + */ + private String remark; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/third/SmartApplicationContext.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/third/SmartApplicationContext.java new file mode 100644 index 00000000..fc366789 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/third/SmartApplicationContext.java @@ -0,0 +1,80 @@ +package net.lab1024.smartadmin.third; + +import org.springframework.beans.BeansException; +import org.springframework.context.ApplicationContext; +import org.springframework.context.ApplicationContextAware; +import org.springframework.stereotype.Component; + +/** + * [ApplicationContextHelper] + * + * @author yandanyang + * @version 1.0 + * @since JDK1.8 + */ +@Component +public class SmartApplicationContext implements ApplicationContextAware { + /** + * 上下文对象实例 + */ + private static ApplicationContext applicationContext = null; + + @Override + public void setApplicationContext(ApplicationContext applicationContext) throws BeansException { + if(SmartApplicationContext.applicationContext == null){ + + SmartApplicationContext.applicationContext = applicationContext; + + } + } + + /** + * 获取applicationContext + * @return + */ + public static ApplicationContext getApplicationContext() { + return applicationContext; + } + + /** + * 通过name获取 Bean. + * @param name + * @return + */ + public static Object getBean(String name){ + ApplicationContext applicationContext = getApplicationContext(); + if(applicationContext == null){ + return null; + } + return applicationContext.getBean(name); + } + + /** + * 通过class获取Bean. + * @param clazz + * @param + * @return + */ + public static T getBean(Class clazz){ + ApplicationContext applicationContext = getApplicationContext(); + if(applicationContext == null){ + return null; + } + return applicationContext.getBean(clazz); + } + + /** + * 通过name,以及Clazz返回指定的Bean + * @param name + * @param clazz + * @param + * @return + */ + public static T getBean(String name,Class clazz){ + ApplicationContext applicationContext = getApplicationContext(); + if(applicationContext == null){ + return null; + } + return applicationContext.getBean(name, clazz); + } +} \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/third/SmartRedisService.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/third/SmartRedisService.java new file mode 100644 index 00000000..da36246a --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/third/SmartRedisService.java @@ -0,0 +1,622 @@ +package net.lab1024.smartadmin.third; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.google.common.collect.Lists; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.redis.core.*; +import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; + +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.concurrent.TimeUnit; + +/** + * [ redis 一顿操作 ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/3/26 0026 下午 18:12 + * @since JDK1.8 + */ +@Slf4j +@Component +public class SmartRedisService { + + @Autowired + private RedisTemplate redisTemplate; + + @Autowired + private ValueOperations redisValueOperations; + + @Autowired + private HashOperations redisHashOperations; + + @Autowired + private ListOperations redisListOperations; + + @Autowired + private SetOperations redisSetOperations; + + /** + * 指定缓存失效时间 + * + * @param key 键 + * @param time 时间(秒) + * @return + */ + public boolean expire(String key, long time) { + try { + if (time > 0) { + redisTemplate.expire(key, time, TimeUnit.SECONDS); + } + return true; + } catch (Exception e) { + log.error("", e); + return false; + } + } + + /** + * 根据key 获取过期时间 + * + * @param key 键 不能为null + * @return 时间(秒) 返回0代表为永久有效 + */ + public long getExpire(String key) { + return redisTemplate.getExpire(key, TimeUnit.SECONDS); + } + + /** + * 判断key是否存在 + * + * @param key 键 + * @return true 存在 false不存在 + */ + public boolean hasKey(String key) { + try { + return redisTemplate.hasKey(key); + } catch (Exception e) { + log.error("", e); + return false; + } + } + + /** + * 删除缓存 + * + * @param key 可以传一个值 或多个 + */ + @SuppressWarnings("unchecked") + public void del(String... key) { + if (key != null && key.length > 0) { + if (key.length == 1) { + redisTemplate.delete(key[0]); + } else { + redisTemplate.delete(CollectionUtils.arrayToList(key)); + } + } + } + + //============================String============================= + + /** + * 普通缓存获取 + * + * @param key 键 + * @return 值 + */ + public String get(String key) { + return key == null ? null : redisValueOperations.get(key); + } + + public T getObject(String key, Class clazz) { + Object json = this.get(key); + if (json == null) { + return null; + } + T obj = JSON.parseObject(json.toString(), clazz); + return obj; + } + + public List getList(String key, Class clz) { + Object json = this.get(key); + if (json == null) { + return Lists.newArrayList(); + } + List list = JSONObject.parseArray(json.toString(), clz); + return list; + } + + /** + * 普通缓存放入 + * + * @param key 键 + * @param value 值 + * @return true成功 false失败 + */ + public boolean set(String key, String value) { + try { + redisValueOperations.set(key, value); + return true; + } catch (Exception e) { + log.error("", e); + return false; + } + + } + + /** + * 普通缓存放入并设置时间 + * + * @param key 键 + * @param value 值 + * @param time 时间(秒) time要大于0 如果time小于等于0 将设置无限期 + * @return true成功 false 失败 + */ + public boolean set(String key, String value, long time) { + try { + if (time > 0) { + redisValueOperations.set(key, value, time, TimeUnit.SECONDS); + } else { + set(key, value); + } + return true; + } catch (Exception e) { + log.error("", e); + return false; + } + } + + /** + * 递增 + * + * @param key 键 + * @param delta 要增加几(大于0) + * @return + */ + public long incr(String key, long delta) { + if (delta < 0) { + throw new RuntimeException("递增因子必须大于0"); + } + return redisValueOperations.increment(key, delta); + } + + /** + * 递减 + * + * @param key 键 + * @param delta 要减少几(小于0) + * @return + */ + public long decr(String key, long delta) { + if (delta < 0) { + throw new RuntimeException("递减因子必须大于0"); + } + return redisValueOperations.increment(key, - delta); + } + + //================================Map================================= + + /** + * HashGet + * + * @param key 键 不能为null + * @param item 项 不能为null + * @return 值 + */ + public Object hget(String key, String item) { + return redisHashOperations.get(key, item); + } + + /** + * 获取hashKey对应的所有键值 + * + * @param key 键 + * @return 对应的多个键值 + */ + public Map hmget(String key) { + return redisHashOperations.entries(key); + } + + /** + * HashSet + * + * @param key 键 + * @param map 对应多个键值 + * @return true 成功 false 失败 + */ + public boolean hmset(String key, Map map) { + try { + redisHashOperations.putAll(key, map); + return true; + } catch (Exception e) { + log.error("", e); + return false; + } + } + + /** + * HashSet 并设置时间 + * + * @param key 键 + * @param map 对应多个键值 + * @param time 时间(秒) + * @return true成功 false失败 + */ + public boolean hmset(String key, Map map, long time) { + try { + redisHashOperations.putAll(key, map); + if (time > 0) { + expire(key, time); + } + return true; + } catch (Exception e) { + log.error("", e); + return false; + } + } + + /** + * 向一张hash表中放入数据,如果不存在将创建 + * + * @param key 键 + * @param item 项 + * @param value 值 + * @return true 成功 false失败 + */ + public boolean hset(String key, String item, Object value) { + try { + redisHashOperations.put(key, item, value); + return true; + } catch (Exception e) { + log.error("", e); + return false; + } + } + + /** + * 向一张hash表中放入数据,如果不存在将创建 + * + * @param key 键 + * @param item 项 + * @param value 值 + * @param time 时间(秒) 注意:如果已存在的hash表有时间,这里将会替换原有的时间 + * @return true 成功 false失败 + */ + public boolean hset(String key, String item, Object value, long time) { + try { + redisHashOperations.put(key, item, value); + if (time > 0) { + expire(key, time); + } + return true; + } catch (Exception e) { + log.error("", e); + return false; + } + } + + /** + * 删除hash表中的值 + * + * @param key 键 不能为null + * @param item 项 可以使多个 不能为null + */ + public void hdel(String key, Object... item) { + redisHashOperations.delete(key, item); + } + + /** + * 判断hash表中是否有该项的值 + * + * @param key 键 不能为null + * @param item 项 不能为null + * @return true 存在 false不存在 + */ + public boolean hHasKey(String key, String item) { + return redisHashOperations.hasKey(key, item); + } + + /** + * hash递增 如果不存在,就会创建一个 并把新增后的值返回 + * + * @param key 键 + * @param item 项 + * @param by 要增加几(大于0) + * @return + */ + public double hincr(String key, String item, double by) { + return redisHashOperations.increment(key, item, by); + } + + /** + * hash递减 + * + * @param key 键 + * @param item 项 + * @param by 要减少记(小于0) + * @return + */ + public double hdecr(String key, String item, double by) { + return redisHashOperations.increment(key, item, - by); + } + + //============================set============================= + + /** + * 根据key获取Set中的所有值 + * + * @param key 键 + * @return + */ + public Set sGet(String key) { + try { + return redisSetOperations.members(key); + } catch (Exception e) { + log.error("", e); + return null; + } + } + + /** + * 根据value从一个set中查询,是否存在 + * + * @param key 键 + * @param value 值 + * @return true 存在 false不存在 + */ + public boolean sHasKey(String key, Object value) { + try { + return redisSetOperations.isMember(key, value); + } catch (Exception e) { + log.error("", e); + return false; + } + } + + /** + * 将数据放入set缓存 + * + * @param key 键 + * @param values 值 可以是多个 + * @return 成功个数 + */ + public long sSet(String key, Object... values) { + try { + return redisSetOperations.add(key, values); + } catch (Exception e) { + log.error("", e); + return 0; + } + } + + /** + * 将set数据放入缓存 + * + * @param key 键 + * @param time 时间(秒) + * @param values 值 可以是多个 + * @return 成功个数 + */ + public long sSetAndTime(String key, long time, Object... values) { + try { + Long count = redisSetOperations.add(key, values); + if (time > 0) { + expire(key, time); + } + return count; + } catch (Exception e) { + log.error("", e); + return 0; + } + } + + /** + * 获取set缓存的长度 + * + * @param key 键 + * @return + */ + public long sGetSetSize(String key) { + try { + return redisSetOperations.size(key); + } catch (Exception e) { + log.error("", e); + return 0; + } + } + + /** + * 移除值为value的 + * + * @param key 键 + * @param values 值 可以是多个 + * @return 移除的个数 + */ + public long setRemove(String key, Object... values) { + try { + Long count = redisSetOperations.remove(key, values); + return count; + } catch (Exception e) { + log.error("", e); + return 0; + } + } + //===============================list================================= + + /** + * 获取list缓存的内容 + * + * @param key 键 + * @param start 开始 + * @param end 结束 0 到 -1代表所有值 + * @return + */ + public List lGet(String key, long start, long end) { + try { + return redisListOperations.range(key, start, end); + } catch (Exception e) { + log.error("", e); + return null; + } + } + + /** + * 获取list缓存的所有内容 + * + * @param key + * @return + */ + public List lGetAll(String key) { + return lGet(key, 0, - 1); + } + + /** + * 获取list缓存的长度 + * + * @param key 键 + * @return + */ + public long lGetListSize(String key) { + try { + return redisListOperations.size(key); + } catch (Exception e) { + log.error("", e); + return 0; + } + } + + /** + * 通过索引 获取list中的值 + * + * @param key 键 + * @param index 索引 index>=0时, 0 表头,1 第二个元素,依次类推;index<0时,-1,表尾,-2倒数第二个元素,依次类推 + * @return + */ + public Object lGetIndex(String key, long index) { + try { + return redisListOperations.index(key, index); + } catch (Exception e) { + log.error("", e); + return null; + } + } + + /** + * 将list放入缓存 + * + * @param key 键 + * @param value 值 + * @return + */ + public boolean lSet(String key, Object value) { + try { + redisListOperations.rightPush(key, value); + return true; + } catch (Exception e) { + log.error("", e); + return false; + } + } + + /** + * 将list放入缓存 + * + * @param key 键 + * @param value 值 + * @param time 时间(秒) + * @return + */ + public boolean lSet(String key, Object value, long time) { + try { + redisListOperations.rightPush(key, value); + if (time > 0) { + expire(key, time); + } + return true; + } catch (Exception e) { + log.error("", e); + return false; + } + } + + /** + * 将list放入缓存 + * + * @param key 键 + * @param value 值 + * @return + */ + public boolean lSet(String key, List value) { + try { + redisListOperations.rightPushAll(key, value); + return true; + } catch (Exception e) { + log.error("", e); + return false; + } + } + + /** + * 将list放入缓存 + * + * @param key 键 + * @param value 值 + * @param time 时间(秒) + * @return + */ + public boolean lSet(String key, List value, long time) { + try { + redisListOperations.rightPushAll(key, value); + if (time > 0) { + expire(key, time); + } + return true; + } catch (Exception e) { + log.error("", e); + return false; + } + } + + /** + * 根据索引修改list中的某条数据 + * + * @param key 键 + * @param index 索引 + * @param value 值 + * @return + */ + public boolean lUpdateIndex(String key, long index, Object value) { + try { + redisListOperations.set(key, index, value); + return true; + } catch (Exception e) { + log.error("", e); + return false; + } + } + + /** + * 移除N个值为value + * + * @param key 键 + * @param count 移除多少个 + * @param value 值 + * @return 移除的个数 + */ + public long lRemove(String key, long count, Object value) { + try { + Long remove = redisListOperations.remove(key, count, value); + return remove; + } catch (Exception e) { + log.error("", e); + return 0; + } + } +} \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartBaseEnumUtil.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartBaseEnumUtil.java new file mode 100644 index 00000000..e433367b --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartBaseEnumUtil.java @@ -0,0 +1,85 @@ +package net.lab1024.smartadmin.util; + +import net.lab1024.smartadmin.common.domain.BaseEnum; + +/** + * 枚举工具类 + * + * @author listen + * @date 2017/10/10 18:17 + */ +public class SmartBaseEnumUtil { + + /** + * 校验int类型的参数与枚举类比较是否合法 + * + * @param value 参数 + * @param enumClass 枚举类必须实现BaseEnum接口 + * @return boolean + * @Author listen + */ + public static boolean checkEnum(Integer value, Class enumClass) { + if (null == value) { + return false; + } + BaseEnum[] enums = enumClass.getEnumConstants(); + for (BaseEnum baseEnum : enums) { + if (baseEnum.equalsValue(value)) { + return true; + } + } + return false; + } + + /** + * 获取枚举类的说明 value : info 的形式 + * + * @param enumClass + * @return String + */ + public static String getEnumDesc(Class enumClass) { + BaseEnum[] enums = enumClass.getEnumConstants(); + // value : info 的形式 + StringBuilder sb = new StringBuilder(); + for (BaseEnum baseEnum : enums) { + sb.append(baseEnum.getValue() + ":" + baseEnum.getDesc() + ","); + } + return sb.toString(); + } + + /** + * 获取与int Code相匹配的枚举类的info + * + * @param value 参数 + * @param enumClass 枚举类必须实现BaseEnum接口 + * @return String 如无匹配枚举则返回null + */ + public static String getEnumDescByValue(Integer value, Class enumClass) { + BaseEnum[] enums = enumClass.getEnumConstants(); + for (BaseEnum baseEnum : enums) { + if (baseEnum.equalsValue(value)) { + return baseEnum.getDesc(); + } + } + return null; + } + + /** + * 根据int类型的参数与获取枚举类的实例 + * + * @param value 参数 + * @param enumClass 枚举类必须实现BaseEnum接口 + * @return BaseEnum 无匹配值返回null + * @Author listen + */ + public static T getEnumByValue(Object value, Class enumClass) { + T[] enums = enumClass.getEnumConstants(); + for (T baseEnum : enums) { + if (baseEnum.equalsValue(value)) { + return baseEnum; + } + } + return null; + } + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartBeanUtil.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartBeanUtil.java new file mode 100644 index 00000000..6d36c05b --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartBeanUtil.java @@ -0,0 +1,59 @@ +package net.lab1024.smartadmin.util; + +import org.springframework.beans.BeanUtils; + +import java.util.Collections; +import java.util.List; +import java.util.stream.Collectors; + +public class SmartBeanUtil { + + /** + * 复制bean的属性 + * + * @param source 源 要复制的对象 + * @param target 目标 复制到此对象 + */ + public static void copyProperties(Object source, Object target) { + BeanUtils.copyProperties(source, target); + } + + /** + * 复制对象 + * + * @param source 源 要复制的对象 + * @param target 目标 复制到此对象 + * @param + * @return + */ + public static T copy(Object source, Class target) { + if(source == null || target == null){ + return null; + } + try { + T newInstance = target.newInstance(); + BeanUtils.copyProperties(source, newInstance); + return newInstance; + } catch (Exception e) { + throw new RuntimeException(e); + } + } + + /** + * 复制list + * + * @param source + * @param target + * @param + * @param + * @return + */ + public static List copyList(List source, Class target) { + + if (null == source || source.isEmpty()) { + return Collections.emptyList(); + } + return source.stream().map(e -> copy(e, target)).collect(Collectors.toList()); + } + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartBigDecimalUtil.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartBigDecimalUtil.java new file mode 100644 index 00000000..651f3d4e --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartBigDecimalUtil.java @@ -0,0 +1,333 @@ +package net.lab1024.smartadmin.util; + +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.text.NumberFormat; + +/** + * 全局 BigDecimal 工具类 + * + * @author listen + * @date 2018/01/17 13:54 + */ +public class SmartBigDecimalUtil { + + /** + * 价格类型 保留小数点 2 + */ + public static final int PRICE_DECIMAL_POINT = 2; + + /** + * 价格类型 保留小数点 6 + */ + public static final int SIX_PRICE_DECIMAL_POINT = 6; + + /** + * 重量类型保留小数点 3 + */ + public static final int WEIGHT_DECIMAL_POINT = 3; + + /** + * 金额相关计算方法:四舍五入 保留2位小数点 + */ + public static class Amount { + + public static BigDecimal add(BigDecimal num1, BigDecimal num2) { + return setScale(num1.add(num2), PRICE_DECIMAL_POINT); + } + + public static BigDecimal multiply(BigDecimal num1, BigDecimal num2) { + return setScale(num1.multiply(num2), PRICE_DECIMAL_POINT); + } + + public static BigDecimal subtract(BigDecimal num1, BigDecimal num2) { + return setScale(num1.subtract(num2), PRICE_DECIMAL_POINT); + } + + public static BigDecimal divide(BigDecimal num1, BigDecimal num2) { + return setScale(num1.divide(num2, RoundingMode.HALF_UP), PRICE_DECIMAL_POINT); + } + } + + /** + * 金额相关计算方法:四舍五入 保留2位小数点 + */ + public static class AmountSix { + + public static BigDecimal add(BigDecimal num1, BigDecimal num2) { + return setScale(num1.add(num2), SIX_PRICE_DECIMAL_POINT); + } + + public static BigDecimal multiply(BigDecimal num1, BigDecimal num2) { + return setScale(num1.multiply(num2), SIX_PRICE_DECIMAL_POINT); + } + + public static BigDecimal subtract(BigDecimal num1, BigDecimal num2) { + return setScale(num1.subtract(num2), SIX_PRICE_DECIMAL_POINT); + } + + public static BigDecimal divide(BigDecimal num1, BigDecimal num2) { + return num1.divide(num2, PRICE_DECIMAL_POINT, RoundingMode.HALF_UP); + } + } + + /** + * 重量相关计算方法:四舍五入 保留3位小数点 + */ + public static class Weight { + + public static BigDecimal add(BigDecimal num1, BigDecimal num2) { + return setScale(num1.add(num2), WEIGHT_DECIMAL_POINT); + } + + public static BigDecimal multiply(BigDecimal num1, BigDecimal num2) { + return setScale(num1.multiply(num2), WEIGHT_DECIMAL_POINT); + } + + public static BigDecimal subtract(BigDecimal num1, BigDecimal num2) { + return setScale(num1.subtract(num2), WEIGHT_DECIMAL_POINT); + } + + public static BigDecimal divide(BigDecimal num1, BigDecimal num2) { + return num1.divide(num2, WEIGHT_DECIMAL_POINT, RoundingMode.HALF_UP); + } + } + + /** + * BigDecimal 加法 num1 + num2 + * 未做非空校验 + * + * @param num1 + * @param num2 + * @param point 请使用BigDecimalUtils.PRICE_DECIMAL_POINT | BigDecimalUtils.WEIGHT_DECIMAL_POINT + * @return BigDecimal + */ + public static BigDecimal add(BigDecimal num1, BigDecimal num2, int point) { + return setScale(num1.add(num2), point); + } + + /** + * BigDecimal 乘法 num1 x num2 + * 未做非空校验 + * + * @param num1 + * @param num2 + * @param point 请使用BigDecimalUtils.PRICE_DECIMAL_POINT | BigDecimalUtils.WEIGHT_DECIMAL_POINT + * @return BigDecimal + */ + public static BigDecimal multiply(BigDecimal num1, BigDecimal num2, int point) { + return setScale(num1.multiply(num2), point); + } + + /** + * BigDecimal 减法 num1 - num2 + * 未做非空校验 + * + * @param num1 + * @param num2 + * @param point 请使用BigDecimalUtils.PRICE_DECIMAL_POINT | BigDecimalUtils.WEIGHT_DECIMAL_POINT + * @return BigDecimal + */ + public static BigDecimal subtract(BigDecimal num1, BigDecimal num2, int point) { + return setScale(num1.subtract(num2), point); + } + + /** + * BigDecimal 除法 num1/num2 + * 未做非空校验 + * + * @param num1 + * @param num2 + * @param point 请使用BigDecimalUtils.PRICE_DECIMAL_POINT | BigDecimalUtils.WEIGHT_DECIMAL_POINT + * @return BigDecimal + */ + public static BigDecimal divide(BigDecimal num1, BigDecimal num2, int point) { + return num1.divide(num2, point, RoundingMode.HALF_UP); + } + + /** + * 设置小数点类型为 四舍五入 + * + * @param num + * @param point + * @return BigDecimal + */ + public static BigDecimal setScale(BigDecimal num, int point) { + return num.setScale(point, RoundingMode.HALF_UP); + } + + /** + * 比较 num1 是否大于 num2 + * + * @param num1 + * @param num2 + * @return boolean + */ + public static boolean isGreaterThan(BigDecimal num1, BigDecimal num2) { + return num1.compareTo(num2) == 1; + } + + /** + * 比较 num1 是否大于等于 num2 + * + * @param num1 + * @param num2 + * @return boolean + */ + public static boolean isGreaterOrEqual(BigDecimal num1, BigDecimal num2) { + return isGreaterThan(num1, num2) || equals(num1, num2); + } + + /** + * 比较 num1 是否小于 num2 + * + * @param num1 + * @param num2 + * @return boolean + */ + public static boolean isLessThan(BigDecimal num1, BigDecimal num2) { + return num1.compareTo(num2) == -1; + } + + /** + * 比较 num1 是否小于等于 num2 + * + * @param num1 + * @param num2 + * @return boolean + */ + public static boolean isLessOrEqual(BigDecimal num1, BigDecimal num2) { + return isLessThan(num1, num2) || equals(num1, num2); + } + + /** + * 比较 num1 是否等于 num2 + * + * @param num1 + * @param num2 + * @return + */ + public static boolean equals(BigDecimal num1, BigDecimal num2) { + return num1.compareTo(num2) == 0; + } + + /** + * 计算 num1 / num2 的百分比 + * + * @param num1 + * @param num2 + * @return String + */ + public static String getPercentage(BigDecimal num1, BigDecimal num2) { + BigDecimal result = num1.divide(num2, 4, RoundingMode.HALF_UP); + NumberFormat percent = NumberFormat.getPercentInstance(); + percent.setMaximumFractionDigits(2); + return percent.format(result.doubleValue()); + } + + /** + * 计算 num1 / num2 的百分比 + * + * @param num1 + * @param num2 + * @param point 保留几位小数 + * @return String + */ + public static BigDecimal bigDecimalPercent(Integer num1, Integer num2, int point) { + if (num1 == null || num2 == null) { + return BigDecimal.ZERO; + } + if (num2.equals(0)) { + return BigDecimal.ZERO; + } + BigDecimal bigDecimalNum1 = new BigDecimal(num1); + BigDecimal bigDecimalNum2 = new BigDecimal(num2); + return bigDecimalPercent(bigDecimalNum1, bigDecimalNum2, point); + } + + /** + * 计算 num1 / num2 的百分比 + * + * @param num1 + * @param num2 + * @param point 保留几位小数 + * @return String + */ + public static BigDecimal bigDecimalPercent(BigDecimal num1, BigDecimal num2, int point) { + if (num1 == null || num2 == null) { + return BigDecimal.ZERO; + } + if (equals(BigDecimal.ZERO, num2)) { + return BigDecimal.ZERO; + } + BigDecimal percent = num1.divide(num2, point + 2, RoundingMode.HALF_UP); + BigDecimal percent100 = percent.multiply(new BigDecimal(100)).setScale(point); + return percent100; + } + + /** + * 判断num是否为空 或者 零 + * + * @param num + * @return String + */ + public static Boolean isEmpty(BigDecimal num) { + return null == num || equals(BigDecimal.ZERO, num); + } + + /** + * 判断num是否 不等于null 并且不等于零 + * + * @param num + * @return String + */ + public static Boolean isNotEmpty(BigDecimal num) { + return !isEmpty(num); + } + + /** + * 转换为万 + * + * @param num + * @param point + * @return + */ + public static BigDecimal convertTenThousand(BigDecimal num, int point) { + return num.divide(new BigDecimal(10000), point, RoundingMode.HALF_UP); + } + + /** + * 转换为负数 + * + * @param num + * @return + */ + public static BigDecimal convertToMinusNumber(BigDecimal num) { + if (isLessOrEqual(num, BigDecimal.ZERO)) { + return num; + } + return BigDecimal.ZERO.subtract(num); + } + + /** + * 比较 num1,num2 返回最大的值 + * + * @param num1 + * @param num2 + * @return BigDecimal + */ + public static BigDecimal max(BigDecimal num1, BigDecimal num2) { + return num1.compareTo(num2) > 0 ? num1 : num2; + } + + /** + * 比较 num1,num2 返回最小的值 + * + * @param num1 + * @param num2 + * @return BigDecimal + */ + public static BigDecimal min(BigDecimal num1, BigDecimal num2) { + return num1.compareTo(num2) < 0 ? num1 : num2; + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartDateUtil.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartDateUtil.java new file mode 100644 index 00000000..1e078263 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartDateUtil.java @@ -0,0 +1,521 @@ +package net.lab1024.smartadmin.util; + +import org.apache.commons.lang3.StringUtils; +import org.apache.commons.lang3.time.DateUtils; + +import java.math.BigDecimal; +import java.math.RoundingMode; +import java.text.SimpleDateFormat; +import java.util.*; + +/** + * 线程安全的date工具类 + * + * @author jiaozi + */ +public class SmartDateUtil extends DateUtils { + + private static final ThreadLocal dateFormats = new ThreadLocal() { + @Override + protected DateFormats initialValue() { + return new DateFormats(); + } + }; + + public static final int HOUR_MIN = 60; + + public static final int DAY_MI_SECOND = 24 * 60 * 60 * 1000; + + public static String formatYMD(Date date) { + return dateFormats.get().ymd.format(date); + } + + public static String formatYMDDigital(Date date) { + return dateFormats.get().ymdDigital.format(date); + } + + public static String formatYMDHMSDigital(Date date) { + return dateFormats.get().ymdhmsDigital.format(date); + } + + public static String formatYM(Date date) { + return dateFormats.get().ym.format(date); + } + + public static String formatHMS(Date date) { + return dateFormats.get().hms.format(date); + } + + public static String formatHM(Date date) { + return dateFormats.get().hm.format(date); + } + + public static String formatYMDHM(Date date) { + return dateFormats.get().ymdhm.format(date); + } + + public static String formatYMDHMS(Date date) { + return dateFormats.get().ymdhms.format(date); + } + + public static String formatYMDChinese(Date date) { + return dateFormats.get().ymdChinese.format(date); + } + + public static String formatYMDSlash(Date date) { + return dateFormats.get().ymdSlash.format(date); + } + + public static Date parseYMD(String dateStr) { + return parse(dateFormats.get().ymd, dateStr); + } + + public static Date parseYMDDigital(String dateStr) { + return parse(dateFormats.get().ymdDigital, dateStr); + } + + public static Date parseYMDHMSDigital(String dateStr) { + return parse(dateFormats.get().ymdhmsDigital, dateStr); + } + + public static Date parseformatYMDChinese(String dateStr) { + return parse(dateFormats.get().ymdChinese, dateStr); + } + + public static Date parseYM(String dateStr) { + return parse(dateFormats.get().ym, dateStr); + } + + public static Date parseYMDHMS(String dateStr) { + + return parse(dateFormats.get().ymdhms, dateStr); + } + + public static Date parseYMDHM(String dateStr) { + return parse(dateFormats.get().ymdhm, dateStr); + } + + public static Date parseTodayHMS(String dateStr) { + String today = formatYMD(new Date()); + String todayDateStr = String.format("%s %s", today, dateStr); + return parse(dateFormats.get().ymdhms, todayDateStr); + } + + /** + * 判断当前时间是否在某段时间内 参数不区分先后顺序 + */ + public static boolean isDuringTwoDate(Date date, Date another) { + long dateTime = date.getTime(); + long anotherTime = another.getTime(); + long currentTime = System.currentTimeMillis(); + + if (currentTime > dateTime && currentTime < anotherTime) { + return true; + } else if (currentTime > anotherTime && currentTime < dateTime) { + return true; + } else { + return false; + } + } + + public static Date parse(SimpleDateFormat format, String dateStr) { + try { + Date d = format.parse(dateStr); + Calendar c = Calendar.getInstance(); + c.setTime(d); + int year = c.get(Calendar.YEAR); + if (year >= 1000 && year <= 9999) { + return d; + } else { + return null; + } + } catch (Exception ex) { + return null; + } + } + + public static long daysOffset(Date date1, Date date2) { + date1 = parseYMD(formatYMD(date1)); + date2 = parseYMD(formatYMD(date2)); + return (date1.getTime() - date2.getTime()) / DAY_MI_SECOND; + } + + /** + * 今天是星期几 , 7表示星期日 + * + * @return + */ + public static int getTodayDayOfWeek() { + Calendar now = Calendar.getInstance(); + int dayOfweek = now.get(Calendar.DAY_OF_WEEK); + dayOfweek--; + if (dayOfweek == 0) { + dayOfweek = 7; + } + return dayOfweek; + } + + public static boolean isTodaytDay(Date date) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + Calendar todayCalendar = Calendar.getInstance(); + if (calendar.get(Calendar.YEAR) != todayCalendar.get(Calendar.YEAR)) { + return false; + } else if (calendar.get(Calendar.MONTH) != todayCalendar.get(Calendar.MONTH)) { + return false; + } else if (calendar.get(Calendar.DAY_OF_MONTH) != todayCalendar.get(Calendar.DAY_OF_MONTH)) { + return false; + } + return true; + } + + /** + * 设置Calendar的小时、分钟、秒、毫秒 + * + * @param calendar 日历 + * @param hour 小时 + * @param minute 分钟 + * @param second 秒 + * @param milliSecond 毫秒 + */ + public static void setCalender(Calendar calendar, int hour, int minute, int second, int milliSecond) { + calendar.set(Calendar.HOUR_OF_DAY, hour); + calendar.set(Calendar.MINUTE, minute); + calendar.set(Calendar.SECOND, second); + calendar.set(Calendar.MILLISECOND, milliSecond); + } + + /** + * 获取指定天开始时间 + * + * @param date 日期 + * @return 获得该日期的开始 + */ + public static Date getDayBegin(Date date) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + setCalender(calendar, 0, 0, 0, 0); + return calendar.getTime(); + } + + /** + * 获取指定天结束时间 + * + * @param date 日期 + * @return 获得该日期的结束 + */ + public static Date getDayEnd(Date date) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(date); + setCalender(calendar, 23, 59, 59, 999); + return calendar.getTime(); + } + + /** + * 获取该日期当月第一天 + * + * @param date + * @return + */ + public static Date getMonthBegin(Date date) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(getDayBegin(date)); + calendar.set(Calendar.DAY_OF_MONTH, 1); + return calendar.getTime(); + } + + /** + * 获取该日期当月最后一天getAgeByBirthday + * + * @param date + * @return + */ + public static Date getMonthEnd(Date date) { + Calendar calendar = Calendar.getInstance(); + calendar.setTime(getDayEnd(date)); + calendar.add(Calendar.MONTH, 1); + calendar.set(Calendar.DAY_OF_MONTH, 1); + calendar.add(Calendar.DAY_OF_MONTH, - 1); + return calendar.getTime(); + } + + public static String timeDifference(Date endDate) { + Date nowDate = new Date(); + long nd = 1000 * 24 * 60 * 60; + long nh = 1000 * 60 * 60; + long nm = 1000 * 60; + // 获得两个时间的毫秒时间差异 + long diff = nowDate.getTime() - endDate.getTime(); + // 计算差多少天 + long day = diff / nd; + if (day > 0) { + return day + "天前"; + } + // 计算差多少小时 + long hour = diff % nd / nh; + if (hour > 0) { + return hour + "小时前"; + } + // 计算差多少分钟 + long min = diff % nd % nh / nm; + if (min > 0) { + return "1小时内"; + } + return "1小时内"; + } + + /** + * 计算所用时长 + * + * @param startDate + * @param endDate + * @return + */ + public static BigDecimal timeDifferenceMin(Date startDate, Date endDate) { + long nm = 1000 * 60; + // 获得两个时间的毫秒时间差异 + long diff = endDate.getTime() - startDate.getTime(); + BigDecimal min = BigDecimal.valueOf(diff).divide(BigDecimal.valueOf(nm), RoundingMode.HALF_UP); + return min; + } + + /** + * 功能描述: 是否为当天 + * + * @param dateStr yyyy-mm-dd + * @return + * @auther yandanyang + * @date 2018/10/16 0016 下午 17:43 + */ + public static boolean isCurrentDayYMD(String dateStr) { + if (StringUtils.isEmpty(dateStr)) { + return true; + } + String current = SmartDateUtil.formatYMD(new Date()); + if (current.equals(dateStr)) { + return true; + } + return false; + } + + /** + * 功能描述: 是否为当月 + * + * @param dateStr yyyy-mm-dd + * @return + * @auther yandanyang + * @date 2018/10/16 0016 下午 17:43 + */ + public static boolean isCurrentMonthYMD(String dateStr) { + if (StringUtils.isEmpty(dateStr)) { + return true; + } + String queryDate = SmartDateUtil.formatYM(SmartDateUtil.parseYMD(dateStr)); + String current = SmartDateUtil.formatYM(new Date()); + if (current.equals(queryDate)) { + return true; + } + return false; + } + + public static boolean isCurrentMonthYM(String dateStr) { + if (StringUtils.isEmpty(dateStr)) { + return true; + } + String current = SmartDateUtil.formatYM(new Date()); + if (current.equals(dateStr)) { + return true; + } + return false; + } + + /** + * 获取本周的开始时间 + * + * @return + */ + public static Date getBeginDayOfWeek() { + Date date = new Date(); + if (date == null) { + return null; + } + Calendar cal = Calendar.getInstance(); + cal.setTime(date); + int dayofweek = cal.get(Calendar.DAY_OF_WEEK); + if (dayofweek == 1) { + dayofweek += 7; + } + cal.add(Calendar.DATE, 2 - dayofweek); + return getDayBegin(cal.getTime()); + } + + /** + * 获取本周的结束时间 + * + * @return + */ + public static Date getEndDayOfWeek() { + Calendar cal = Calendar.getInstance(); + cal.setTime(getBeginDayOfWeek()); + cal.add(Calendar.DAY_OF_WEEK, 6); + Date weekEndSta = cal.getTime(); + return getDayEnd(weekEndSta); + } + + /** + * 获取两个日期区间的日期(包括这两个日期) + */ + public static List getiIntervalDate(String dateBegin, String dateEnd) { + List dateList = new ArrayList<>(); + Date startDate = SmartDateUtil.parseYMD(dateBegin); + Date endDate = SmartDateUtil.parseYMD(dateEnd); + Calendar cal = Calendar.getInstance(); + cal.setTime(startDate); + dateList.add(dateBegin); + while (cal.getTime().compareTo(endDate) < 0) { + cal.add(Calendar.DAY_OF_MONTH, 1); + dateList.add(SmartDateUtil.formatYMD(cal.getTime())); + } + return dateList; + } + + /** + * 返回某个日期后几天的日期 + * + * @param date + * @param i + * @return + */ + public static Date getNextDay(Date date, int i) { + Calendar cal = new GregorianCalendar(); + cal.setTime(date); + cal.set(Calendar.DATE, cal.get(Calendar.DATE) + i); + return cal.getTime(); + } + + /** + * 返回某个日期前几天的日期 + * + * @param date + * @param i + * @return + */ + public static Date getFrontDay(Date date, int i) { + Calendar cal = new GregorianCalendar(); + cal.setTime(date); + cal.set(Calendar.DATE, cal.get(Calendar.DATE) - i); + return cal.getTime(); + } + + /** + * 获取昨天的开始时间 + * + * @return + */ + public static Date getBeginDayOfYesterday() { + Calendar cal = new GregorianCalendar(); + cal.setTime(getDayBegin(new Date())); + cal.add(Calendar.DAY_OF_MONTH, - 1); + return cal.getTime(); + } + + /** + * 获取昨天的结束时间 + * + * @return + */ + public static Date getEndDayOfYesterDay() { + Calendar cal = new GregorianCalendar(); + cal.setTime(getDayEnd(new Date())); + cal.add(Calendar.DAY_OF_MONTH, - 1); + return cal.getTime(); + } + + public static Integer getDayNumOfMonth(Date date) { + Calendar c = Calendar.getInstance(); + c.setTime(date); + Integer num = c.getActualMaximum(Calendar.DAY_OF_MONTH); + return num; + } + + /** + * 转换日期(格式:年-月-日 时:分--分自定义) + */ + public static String formatYMDH(Date date, String minute) { + String ymdhm = dateFormats.get().ymdh + ":" + minute; + SimpleDateFormat format = new SimpleDateFormat(ymdhm); + return format.format(date); + } + + /** + * 获取几个月后的日期 + */ + public static Date getAfterMonth(Date inputDate, int number) { + Calendar c = Calendar.getInstance();//获得一个日历的实例 + c.setTime(inputDate);//设置日历时间 + c.add(Calendar.MONTH, number);//在日历的月份上增加月 + return c.getTime(); + } + + /** + * 计算当前月有多少天 + */ + public static int getDays(int year, int month) { + int days = 0; + if (month != 2) { + switch (month) { + case 1: + case 3: + case 5: + case 7: + case 8: + case 10: + case 12: + days = 31; + break; + case 4: + case 6: + case 9: + case 11: + days = 30; + + } + } else { + // 闰年 + if (year % 4 == 0 && year % 100 != 0 || year % 400 == 0) { + days = 29; + } else { + days = 28; + } + } + System.out.println("当月有" + days + "天!"); + return days; + } + +} + +class DateFormats { + + public final SimpleDateFormat hms = new SimpleDateFormat("HH:mm:ss"); + + public final SimpleDateFormat hm = new SimpleDateFormat("HH:mm"); + + public final SimpleDateFormat ymdhm = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + + public final SimpleDateFormat ymd = new SimpleDateFormat("yyyy-MM-dd"); + + public final SimpleDateFormat ym = new SimpleDateFormat("yyyy-MM"); + + public final SimpleDateFormat ymdhms = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + + public final SimpleDateFormat ymdChinese = new SimpleDateFormat("yyyy年MM月dd日"); + + public final SimpleDateFormat ymdSlash = new SimpleDateFormat("yyyy/MM/dd"); + + public final SimpleDateFormat ymdDigital = new SimpleDateFormat("yyyyMMdd"); + + public final SimpleDateFormat ymdhmsDigital = new SimpleDateFormat("yyyyMMddHHmmss"); + + public static final String ymdh = "yyyy-MM-dd HH"; +} + diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartDigestUtil.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartDigestUtil.java new file mode 100644 index 00000000..902d5db3 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartDigestUtil.java @@ -0,0 +1,17 @@ +package net.lab1024.smartadmin.util; + +import org.apache.commons.codec.digest.DigestUtils; + +public class SmartDigestUtil extends DigestUtils { + + /** + * md5加盐加密 + * + * @param salt + * @param password + * @return + */ + public static String encryptPassword(String salt, String password) { + return SmartDigestUtil.md5Hex(String.format(salt, password)); + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartEasyPoiExcelUtil.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartEasyPoiExcelUtil.java new file mode 100644 index 00000000..fb3860a6 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartEasyPoiExcelUtil.java @@ -0,0 +1,99 @@ +package net.lab1024.smartadmin.util; + +import cn.afterturn.easypoi.excel.ExcelExportUtil; +import cn.afterturn.easypoi.excel.ExcelImportUtil; +import cn.afterturn.easypoi.excel.entity.ExportParams; +import cn.afterturn.easypoi.excel.entity.ImportParams; +import cn.afterturn.easypoi.excel.entity.enmus.ExcelType; +import org.apache.commons.lang3.StringUtils; +import org.apache.poi.ss.usermodel.Workbook; +import org.springframework.web.multipart.MultipartFile; + +import javax.servlet.http.HttpServletResponse; +import java.io.File; +import java.io.IOException; +import java.net.URLEncoder; +import java.util.List; +import java.util.Map; +import java.util.NoSuchElementException; + +/** + * @author: zhuoda + * @create: 2020-03-30 14:27 PM from win10 + */ + +public class SmartEasyPoiExcelUtil { + public static void exportExcel(List list, String title, String sheetName, Class pojoClass, + String fileName, boolean isCreateHeader, HttpServletResponse response) throws IOException { + ExportParams exportParams = new ExportParams(title, sheetName); + exportParams.setCreateHeadRows(isCreateHeader); + defaultExport(list, pojoClass, fileName, response, exportParams); + } + + public static void exportExcel(List list, String title, String sheetName, Class pojoClass, String fileName, + HttpServletResponse response) throws IOException { + defaultExport(list, pojoClass, fileName, response, new ExportParams(title, sheetName)); + } + + public static void exportExcel(List> list, String fileName, HttpServletResponse response) throws IOException { + defaultExport(list, fileName, response); + } + + private static void defaultExport(List list, Class pojoClass, String fileName, + HttpServletResponse response, ExportParams exportParams) throws IOException { + Workbook workbook = ExcelExportUtil.exportExcel(exportParams, pojoClass, list); + if (workbook != null) ; + downLoadExcel(fileName, response, workbook); + } + + private static void downLoadExcel(String fileName, HttpServletResponse response, Workbook workbook) throws IOException { + response.setHeader("content-Type", "application/vnd.ms-excel"); + response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8")); + response.setCharacterEncoding("UTF-8"); + workbook.write(response.getOutputStream()); + } + + private static void defaultExport(List> list, String fileName, HttpServletResponse response) throws IOException { + Workbook workbook = ExcelExportUtil.exportExcel(list, ExcelType.HSSF); + if (workbook != null) ; + downLoadExcel(fileName, response, workbook); + } + + public static List importExcel(String filePath, Integer titleRows, Integer headerRows, Class pojoClass) { + if (StringUtils.isBlank(filePath)) { + return null; + } + ImportParams params = new ImportParams(); + params.setTitleRows(titleRows); + params.setHeadRows(headerRows); + List list = null; + try { + list = ExcelImportUtil.importExcel(new File(filePath), pojoClass, params); + } catch (NoSuchElementException e) { + //throw new NormalException("模板不能为空"); + } catch (Exception e) { + e.printStackTrace(); + //throw new NormalException(e.getMessage()); + } + return list; + } + + public static List importExcel(MultipartFile file, Integer titleRows, Integer headerRows, Class pojoClass) { + if (file == null) { + return null; + } + ImportParams params = new ImportParams(); + params.setTitleRows(titleRows); + params.setHeadRows(headerRows); + List list = null; + try { + list = ExcelImportUtil.importExcel(file.getInputStream(), pojoClass, params); + } catch (NoSuchElementException e) { + // throw new NormalException("excel文件不能为空"); + } catch (Exception e) { + //throw new NormalException(e.getMessage()); + System.out.println(e.getMessage()); + } + return list; + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartFileUtil.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartFileUtil.java new file mode 100644 index 00000000..45735c9a --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartFileUtil.java @@ -0,0 +1,91 @@ +package net.lab1024.smartadmin.util; + +import java.io.BufferedReader; +import java.io.BufferedWriter; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.FileOutputStream; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.OutputStreamWriter; +import java.nio.charset.Charset; + +import org.apache.commons.io.FileUtils; + +/** + * @author zhuoda + */ +public class SmartFileUtil extends FileUtils { + + public static boolean isXmlFile(File file) { + return "xml".equalsIgnoreCase(getFileExtension(file.getName())); + } + + /** + * 文件后缀名 + * + * @param fullName + * @return + */ + public static String getFileExtension(String fullName) { + String fileName = new File(fullName).getName(); + int dotIndex = fileName.lastIndexOf('.'); + return (dotIndex == -1) ? "" : fileName.substring(dotIndex + 1); + } + + /** + * 不带后缀名的文件名 + * + * @param file + * @return + */ + public static String getNameWithoutExtension(String file) { + String fileName = new File(file).getName(); + int dotIndex = fileName.lastIndexOf('.'); + return (dotIndex == -1) ? fileName : fileName.substring(0, dotIndex); + } + + public static boolean isFileExist(String filePath) { + File file = new File(filePath); + return file.exists(); + } + + /** + * 验证文件是否存在,如果不存在则抛出异常 + * + * @param filePath + * @throws IOException + */ + public static void isFileExistThrowException(String filePath) throws IOException { + File file = new File(filePath); + if (!file.exists()) { + throw new FileNotFoundException(filePath); + } + } + + public static BufferedReader newBufferedReader(File file, Charset charset) throws FileNotFoundException { + return new BufferedReader(new InputStreamReader(new FileInputStream(file), charset)); + } + + public static BufferedWriter newBufferedWriter(File file, Charset charset) throws FileNotFoundException { + return new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file), charset)); + } + + public static boolean createParentDirs(File file) throws IOException { + File parent = file.getCanonicalFile().getParentFile(); + if (parent == null) { + return false; + } + return parent.mkdirs(); + } + + public static boolean createNotExistParentDirFile(File file) throws IOException { + boolean createParentDirsRes = createParentDirs(file); + if (!createParentDirsRes) { + throw new IOException("cannot create parent Directory of " + file.getName()); + } + return file.createNewFile(); + } + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartHttpUtil.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartHttpUtil.java new file mode 100644 index 00000000..62e8ff2d --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartHttpUtil.java @@ -0,0 +1,151 @@ +package net.lab1024.smartadmin.util; + +import org.apache.commons.collections.CollectionUtils; +import org.apache.commons.lang3.StringUtils; +import org.apache.http.HttpResponse; +import org.apache.http.HttpStatus; +import org.apache.http.NameValuePair; +import org.apache.http.client.entity.UrlEncodedFormEntity; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.message.BasicNameValuePair; +import org.apache.http.util.EntityUtils; + +import java.nio.charset.Charset; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; + +/** + * [ HttpUtils ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + * @since JDK1.8 + */ +public class SmartHttpUtil { + + public static String sendGet(String url, Map params, Map header) throws Exception { + HttpGet httpGet = null; + String body = ""; + try { + CloseableHttpClient httpClient = HttpClients.createDefault(); + List mapList = new ArrayList<>(); + if (params != null) { + for (Entry entry : params.entrySet()) { + mapList.add(entry.getKey() + "=" + entry.getValue()); + } + } + if (CollectionUtils.isNotEmpty(mapList)) { + url = url + "?"; + String paramsStr = StringUtils.join(mapList, "&"); + url = url + paramsStr; + } + httpGet = new HttpGet(url); + httpGet.setHeader("Content-type", "application/json; charset=utf-8"); + httpGet.setHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)"); + if (header != null) { + for (Entry entry : header.entrySet()) { + httpGet.setHeader(entry.getKey(), entry.getValue()); + } + } + HttpResponse response = httpClient.execute(httpGet); + + int statusCode = response.getStatusLine().getStatusCode(); + if (statusCode != HttpStatus.SC_OK) { + throw new RuntimeException("请求失败"); + } else { + body = EntityUtils.toString(response.getEntity(), "UTF-8"); + } + } catch (Exception e) { + throw e; + } finally { + if (httpGet != null) { + httpGet.releaseConnection(); + } + } + return body; + } + + public static String sendPostJson(String url, String json, Map header) throws Exception { + HttpPost httpPost = null; + String body = ""; + try { + CloseableHttpClient httpClient = HttpClients.createDefault(); + httpPost = new HttpPost(url); + httpPost.setHeader("Content-type", "application/json; charset=utf-8"); + httpPost.setHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)"); + if (header != null) { + for (Entry entry : header.entrySet()) { + httpPost.setHeader(entry.getKey(), entry.getValue()); + } + } + StringEntity entity = new StringEntity(json, Charset.forName("UTF-8")); + entity.setContentEncoding("UTF-8"); + entity.setContentType("application/json"); + httpPost.setEntity(entity); + HttpResponse response = httpClient.execute(httpPost); + + int statusCode = response.getStatusLine().getStatusCode(); + if (statusCode != HttpStatus.SC_OK) { + throw new RuntimeException("请求失败"); + } else { + body = EntityUtils.toString(response.getEntity(), "UTF-8"); + } + } catch (Exception e) { + throw e; + } finally { + if (httpPost != null) { + httpPost.releaseConnection(); + } + } + return body; + } + + public static String sendPostForm(String url, Map params, Map header) throws Exception { + HttpPost httpPost = null; + String body = ""; + try { + CloseableHttpClient httpClient = HttpClients.createDefault(); + httpPost = new HttpPost(url); + httpPost.setHeader("Content-type", "application/x-www-form-urlencoded"); + httpPost.setHeader("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)"); + if (header != null) { + for (Entry entry : header.entrySet()) { + httpPost.setHeader(entry.getKey(), entry.getValue()); + } + } + List nvps = new ArrayList<>(); + if (params != null) { + for (Entry entry : params.entrySet()) { + nvps.add(new BasicNameValuePair(entry.getKey(), entry.getValue())); + } + } + //设置参数到请求对象中 + httpPost.setEntity(new UrlEncodedFormEntity(nvps, "UTF-8")); + HttpResponse response = httpClient.execute(httpPost); + + int statusCode = response.getStatusLine().getStatusCode(); + if (statusCode != HttpStatus.SC_OK) { + throw new RuntimeException("请求失败"); + } else { + body = EntityUtils.toString(response.getEntity(), "UTF-8"); + } + } catch (Exception e) { + throw e; + } finally { + if (httpPost != null) { + httpPost.releaseConnection(); + } + } + return body; + } + +} \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartIPUtil.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartIPUtil.java new file mode 100644 index 00000000..fb93cd57 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartIPUtil.java @@ -0,0 +1,159 @@ +package net.lab1024.smartadmin.util; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import org.apache.commons.lang3.StringUtils; + +import javax.servlet.http.HttpServletRequest; +import java.net.InetAddress; +import java.net.NetworkInterface; +import java.net.SocketException; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.Map; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/5/5 0005 下午 15:34 + * @since JDK1.8 + */ +public class SmartIPUtil { + + public static final String IP_URL = "http://ip.taobao.com/service/getIpInfo.php"; + + public static String getLocalHostIP() { + // 本地IP,如果没有配置外网IP则返回它 + String localIp = null; + // 外网IP + String netIp = null; + try { + Enumeration netInterfaces = NetworkInterface.getNetworkInterfaces(); + InetAddress ip = null; + // 是否找到外网IP + boolean finded = false; + while (netInterfaces.hasMoreElements() && ! finded) { + NetworkInterface ni = netInterfaces.nextElement(); + Enumeration address = ni.getInetAddresses(); + while (address.hasMoreElements()) { + ip = address.nextElement(); + // 外网IP + if (! ip.isSiteLocalAddress() && ! ip.isLoopbackAddress() && ip.getHostAddress().indexOf(":") == - 1) { + netIp = ip.getHostAddress(); + finded = true; + break; + } else if (ip.isSiteLocalAddress() && ! ip.isLoopbackAddress() && ip.getHostAddress().indexOf(":") == - 1) { + // 内网IP + localIp = ip.getHostAddress(); + } + } + } + } catch (SocketException e) { + e.getMessage(); + } + if (netIp != null && ! "".equals(netIp)) { + return netIp; + } else { + return localIp; + } + } + + public static String getRemoteIp(HttpServletRequest request) { + // 获取请求主机IP地址,如果通过代理进来,则透过防火墙获取真实IP地址 + + String ip = getXForwardedForIp(request); + if (ipValid(ip)) { + return realIp(ip); + } + ip = request.getHeader("Proxy-Client-IP"); + if (ipValid(ip)) { + return realIp(ip); + } + ip = request.getHeader("HTTP_CLIENT_IP"); + if (ipValid(ip)) { + return realIp(ip); + } + ip = request.getHeader("HTTP_X_FORWARDED_FOR"); + if (ipValid(ip)) { + return realIp(ip); + } + + ip = request.getRemoteAddr(); + return realIp(ip); + } + + private static String getXForwardedForIp(HttpServletRequest request) { + String ip = request.getHeader("x-forwarded-for"); + //ip 无效直接返回 + if (! ipValid(ip)) { + return ""; + } + if (ip.length() > 15) { + String[] ips = ip.split(","); + for (String strIp : ips) { + if (! ("unknown".equalsIgnoreCase(strIp))) { + ip = strIp; + break; + } + } + return ip; + } + return ip; + } + + private static Boolean ipValid(String ip) { + if (StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip)) { + return false; + } + return true; + } + + private static String realIp(String ip) { + if (StringUtils.isEmpty(ip)) { + return ""; + } + return "0:0:0:0:0:0:0:1".equals(ip) ? "127.0.0.1" : ip; + } + + public static String getRemoteLocation(HttpServletRequest request) { + String ip = getRemoteIp(request); + return getIpLocation(ip); + } + + public static String getIpLocation(String ip) { + String location = "未知"; + if (StringUtils.isEmpty(ip)) { + return location; + } + Map param = new HashMap<>(); + param.put("ip", ip); + + try { + String rspStr = SmartHttpUtil.sendGet(IP_URL, param, null); + if (StringUtils.isEmpty(rspStr)) { + return location; + } + JSONObject jsonObject = JSON.parseObject(rspStr); + String data = jsonObject.getString("data"); + JSONObject jsonData = JSON.parseObject(data); + String region = jsonData.getString("region"); + String city = jsonData.getString("city"); + location = region + " " + city; + if (location.contains("内网IP")) { + location = "内网(" + ip + ")"; + } + } catch (Exception e) { + + } + return location; + } + + public static void main(String[] args) { + System.out.printf(getIpLocation("172.16.0.221")); + } + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartPageUtil.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartPageUtil.java new file mode 100644 index 00000000..2e1352c6 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartPageUtil.java @@ -0,0 +1,97 @@ +package net.lab1024.smartadmin.util; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import net.lab1024.smartadmin.common.domain.OrderItemDTO; +import net.lab1024.smartadmin.common.domain.PageParamDTO; +import net.lab1024.smartadmin.common.domain.PageResultDTO; + +import java.util.List; +import java.util.stream.Collectors; + +/** + * 分页工具类 + * + * @author GHQ + * @date 2017-12-23 16:40 + */ + +public class SmartPageUtil { + + public static PageResultDTO convert2PageResult(IPage page) { + PageResultDTO result = new PageResultDTO<>(); + result.setPageNum(page.getCurrent()); + result.setPageSize(page.getSize()); + result.setTotal(page.getTotal()); + result.setPages(page.getPages()); + result.setList(page.getRecords()); + return result; + } + + public static Page convert2QueryPage(PageParamDTO baseDTO) { + Page page = new Page<>(); + + List orders = baseDTO.getOrders(); + if (orders != null && !orders.isEmpty()) { + List orderItemList = orders.stream().map(SmartPageUtil::convertOrderItem).collect(Collectors.toList()); + page.setOrders(orderItemList); + } + page.setCurrent(baseDTO.getPageNum()); + page.setSize(baseDTO.getPageSize()); + if (null != baseDTO.getSearchCount()) { + page.setSearchCount(baseDTO.getSearchCount()); + } + return page; + } + + private static com.baomidou.mybatisplus.core.metadata.OrderItem convertOrderItem(OrderItemDTO orderItemDTO) { + if (orderItemDTO.isAsc()) { + return com.baomidou.mybatisplus.core.metadata.OrderItem.asc(orderItemDTO.getColumn()); + } else { + return com.baomidou.mybatisplus.core.metadata.OrderItem.desc(orderItemDTO.getColumn()); + } + } + + /** + * 转换为 PageResultDTO 对象 + * + * @param page + * @param sourceList 原list + * @param targetClazz 目标类 + * @return + * @author yandanyang + * @date 2018年5月16日 下午6:05:28 + */ + public static PageResultDTO convert2PageResult(IPage page, List sourceList, Class targetClazz) { + PageResultDTO pageResultDTO = setPage(page); + List records = SmartBeanUtil.copyList(sourceList, targetClazz); + page.setRecords(records); + pageResultDTO.setList(records); + return pageResultDTO; + } + + /** + * 转换为 PageResultDTO 对象 + * + * @param page + * @param sourceList list + * @return + * @author yandanyang + * @date 2018年5月16日 下午6:05:28 + */ + public static PageResultDTO convert2PageResult(IPage page, List sourceList) { + PageResultDTO pageResultDTO = setPage(page); + page.setRecords(sourceList); + pageResultDTO.setList(sourceList); + return pageResultDTO; + } + + private static PageResultDTO setPage(IPage page) { + PageResultDTO pageResultDTO = new PageResultDTO(); + pageResultDTO.setPageNum(page.getCurrent()); + pageResultDTO.setPageSize(page.getSize()); + pageResultDTO.setTotal(page.getTotal()); + pageResultDTO.setPages(page.getPages()); + return pageResultDTO; + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartQuartzUtil.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartQuartzUtil.java new file mode 100644 index 00000000..14003e6d --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartQuartzUtil.java @@ -0,0 +1,43 @@ +package net.lab1024.smartadmin.util; + +import net.lab1024.smartadmin.module.support.quartz.constant.QuartzConst; +import org.apache.commons.lang3.StringUtils; +import org.quartz.JobKey; +import org.quartz.TriggerKey; + +/** + * [ ] + * + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2018 1024lab.netInc. All rights reserved. + * @date 2019/4/13 0013 下午 15:16 + * @since JDK1.8 + */ +public class SmartQuartzUtil { + + public static Long getTaskIdByJobKey(JobKey jobKey) { + String name = jobKey.getName(); + return Long.valueOf(StringUtils.replace(name, QuartzConst.JOB_KEY_PREFIX, "")); + } + + public static Integer getTaskIdByTriggerKey(TriggerKey triggerKey) { + String name = triggerKey.getName(); + return Integer.valueOf(StringUtils.replace(name, QuartzConst.TRIGGER_KEY_PREFIX, "")); + } + + /** + * 获取触发器key + */ + public static TriggerKey getTriggerKey(Long taskId) { + return TriggerKey.triggerKey(QuartzConst.TRIGGER_KEY_PREFIX + taskId); + } + + /** + * 获取jobKey + */ + public static JobKey getJobKey(Long taskId) { + return JobKey.jobKey(QuartzConst.JOB_KEY_PREFIX + taskId); + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartRequestTokenUtil.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartRequestTokenUtil.java new file mode 100644 index 00000000..7ae5f5fc --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartRequestTokenUtil.java @@ -0,0 +1,51 @@ +package net.lab1024.smartadmin.util; + +import net.lab1024.smartadmin.module.system.login.domain.RequestTokenBO; +import org.springframework.web.context.request.RequestAttributes; +import org.springframework.web.context.request.RequestContextHolder; +import org.springframework.web.context.request.ServletRequestAttributes; + +import javax.servlet.http.HttpServletRequest; +/** + * @author yandanyang + * @version 1.0 + * @company 1024lab.net + * @copyright (c) 2019 1024lab.netInc. All rights reserved. + * @date + * @since JDK1.8 + */ +public class SmartRequestTokenUtil { + + private static final String USER_KEY = "smart_admin_user"; + + private static ThreadLocal RequestUserThreadLocal = new ThreadLocal(); + + public static void setUser(HttpServletRequest request, RequestTokenBO requestToken) { + request.setAttribute(USER_KEY, requestToken); + RequestUserThreadLocal.set(requestToken); + } + + public static RequestTokenBO getThreadLocalUser() { + return RequestUserThreadLocal.get(); + } + + public static RequestTokenBO getRequestUser() { + RequestAttributes requestAttributes = RequestContextHolder.getRequestAttributes(); + if (requestAttributes != null) { + HttpServletRequest request = ((ServletRequestAttributes) requestAttributes).getRequest(); + if (request != null) { + return (RequestTokenBO) request.getAttribute(USER_KEY); + } + } + return null; + } + + public static Long getRequestUserId() { + RequestTokenBO requestUser = getRequestUser(); + if (null == requestUser) { + return null; + } + return requestUser.getRequestUserId(); + } + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartSendMailUtil.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartSendMailUtil.java new file mode 100644 index 00000000..b5bee5f6 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartSendMailUtil.java @@ -0,0 +1,243 @@ +package net.lab1024.smartadmin.util; + +import lombok.extern.slf4j.Slf4j; + +import javax.activation.DataHandler; +import javax.activation.DataSource; +import javax.mail.Authenticator; +import javax.mail.PasswordAuthentication; +import javax.mail.Session; +import javax.mail.Transport; +import javax.mail.internet.*; +import javax.mail.util.ByteArrayDataSource; +import java.io.InputStream; +import java.util.Date; +import java.util.LinkedList; +import java.util.List; +import java.util.Properties; +import java.util.regex.Pattern; + +@Slf4j +public class SmartSendMailUtil { + + /** + * 邮箱正则表达式 + */ + static final Pattern pattern = Pattern.compile("^([a-zA-Z0-9_\\-\\.]+)@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.)|(([a-zA-Z0-9\\-]+\\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$"); + + public static void main(String[] args) throws Exception { + // 发件人的 邮箱 和 密码(替换为自己的邮箱和密码) + // PS: 某些邮箱服务器为了增加邮箱本身密码的安全性,给 SMTP 客户端设置了独立密码(有的邮箱称为“授权码”), + // 对于开启了独立密码的邮箱, 这里的邮箱密码必需使用这个独立密码(授权码)。 + String myEmailAccount = "xxxxx@163.com"; + String myEmailPassword = "xxxxxx"; + // 发件人邮箱的 SMTP 服务器地址, 必须准确, 不同邮件服务器地址不同, 一般(只是一般, 绝非绝对)格式为: smtp.xxx.com + // 网易163邮箱的 SMTP 服务器地址为: smtp.163.com + String myEmailSMTPHost = "smtp.163.com"; + // 收件人邮箱(替换为自己知道的有效邮箱) + String[] toMailAccountList = new String[]{"421316927@qq.com"}; + SmartSendMailUtil.sendMail(myEmailAccount, myEmailPassword, "", toMailAccountList, "", myEmailSMTPHost, "测试发送邮件", "测试发送邮件"); + + } + + /** + * 发送文本邮件 + * + * @param sendMail 发件人邮箱 + * @param sendMailPwd 发件人密码 + * @param sendMailName 发件人昵称(可选) + * @param receiveMail 收件人邮箱 + * @param receiveMailName 收件人昵称(可选) + * @param sendSMTPHost 发件人邮箱的 SMTP 服务器地址, 必须准确, 不同邮件服务器地址不同, 一般(只是一般, 绝非绝对)格式为: smtp.xxx.com + * @param title 邮件主题 + * @param content 邮件正文 + * @author Administrator + * @date 2017年12月13日 下午1:51:38 + */ + public static void sendMail(String sendMail, String sendMailPwd, String sendMailName, String[] receiveMail, String receiveMailName, String sendSMTPHost, String title, String content) { + + Session session = createSession(sendSMTPHost); + // 3. 创建一封邮件 + MimeMessage message; + try { + message = createMimeMessage(session, sendMail, sendMailName, receiveMail, receiveMailName, title, content); + // 4. 根据 Session 获取邮件传输对象 + Transport transport = session.getTransport(); + + // 5. 使用 邮箱账号 和 密码 连接邮件服务器, 这里认证的邮箱必须与 message 中的发件人邮箱一致, 否则报错 + // + // PS_01: 成败的判断关键在此一句, 如果连接服务器失败, 都会在控制台输出相应失败原因的 log, + // 仔细查看失败原因, 有些邮箱服务器会返回错误码或查看错误类型的链接, 根据给出的错误 + // 类型到对应邮件服务器的帮助网站上查看具体失败原因。 + // + // PS_02: 连接失败的原因通常为以下几点, 仔细检查代码: + // (1) 邮箱没有开启 SMTP 服务; + // (2) 邮箱密码错误, 例如某些邮箱开启了独立密码; + // (3) 邮箱服务器要求必须要使用 SSL 安全连接; + // (4) 请求过于频繁或其他原因, 被邮件服务器拒绝服务; + // (5) 如果以上几点都确定无误, 到邮件服务器网站查找帮助。 + // + // PS_03: 仔细看log, 认真看log, 看懂log, 错误原因都在log已说明。 + transport.connect(sendMail, sendMailPwd); + // 6. 发送邮件, 发到所有的收件地址, message.getAllRecipients() 获取到的是在创建邮件对象时添加的所有收件人, 抄送人, 密送人 + transport.sendMessage(message, message.getAllRecipients()); + // 7. 关闭连接 + transport.close(); + } catch (Exception e) { + log.error("", e); + } + + } + + /** + * 发送带附件的邮件 + * + * @param sendMail 发件人邮箱 + * @param sendMailPwd 发件人密码 + * @param sendMailName 发件人昵称(可选) + * @param receiveMail 收件人邮箱 + * @param receiveMailName 收件人昵称(可选) + * @param sendSMTPHost 发件人邮箱的 SMTP 服务器地址, 必须准确, 不同邮件服务器地址不同, 一般(只是一般, 绝非绝对)格式为: smtp.xxx.com + * @param title 邮件主题 + * @param content 邮件正文 + * @author Administrator + * @date 2017年12月13日 下午1:51:38 + */ + public static void sendFileMail(String sendMail, String sendMailPwd, String sendMailName, String[] receiveMail, String receiveMailName, String sendSMTPHost, String title, String content, + InputStream is, String fileName, String port) { + + Session session = createSSLSession(sendSMTPHost, port, sendMailName, sendMailPwd); + // 3. 创建一封邮件 + MimeMessage message; + try { + message = createMimeMessage(session, sendMail, sendMailName, receiveMail, receiveMailName, title, content); + // 5. Content: 邮件正文(可以使用html标签)(内容有广告嫌疑,避免被邮件服务器误认为是滥发广告以至返回失败,请修改发送内容) + MimeMultipart mm = new MimeMultipart(); + MimeBodyPart text = new MimeBodyPart(); + text.setContent(content, "text/html;charset=UTF-8"); + mm.addBodyPart(text); + if (null != is && is.available() > 0) { + MimeBodyPart attachment = new MimeBodyPart(); + DataSource source = new ByteArrayDataSource(is, "application/msexcel"); + // 将附件数据添加到"节点" + attachment.setDataHandler(new DataHandler(source)); + // 设置附件的文件名(需要编码) + attachment.setFileName(MimeUtility.encodeText(fileName)); + // 10. 设置文本和 附件 的关系(合成一个大的混合"节点" / Multipart ) + // 如果有多个附件,可以创建多个多次添加 + mm.addBodyPart(attachment); + } + message.setContent(mm); + message.saveChanges(); + // 4. 根据 Session 获取邮件传输对象 + Transport transport = session.getTransport("smtp"); + transport.connect(sendSMTPHost, sendMail, sendMailPwd); + // // 6. 发送邮件, 发到所有的收件地址, message.getAllRecipients() 获取到的是在创建邮件对象时添加的所有收件人, 抄送人, 密送人 + transport.sendMessage(message, message.getAllRecipients()); + // 7. 关闭连接 + } catch (Exception e) { + log.error("", e); + } + + } + + /** + * 创建session + * + * @author lidoudou + * @date 2019/2/16 14:59 + */ + private static Session createSSLSession(String sendSMTPHost, String port, String userName, String pwd) { + // 1. 创建参数配置, 用于连接邮件服务器的参数配置 + Properties props = new Properties(); // 参数配置 + + props.setProperty("mail.smtp.user", userName); + props.setProperty("mail.smtp.password", pwd); + props.setProperty("mail.smtp.host", sendSMTPHost); + props.setProperty("mail.smtp.port", port); + props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); + props.setProperty("mail.smtp.socketFactory.fallback", "false"); + props.setProperty("mail.smtp.socketFactory.port", port); + props.put("mail.smtp.auth", "true"); + + // 2. 根据配置创建会话对象, 用于和邮件服务器交互 + Session session = Session.getDefaultInstance(props, new Authenticator() { + //身份认证 + @Override + protected PasswordAuthentication getPasswordAuthentication() { + return new PasswordAuthentication(userName, pwd); + } + }); + session.setDebug(true); // 设置为debug模式, 可以查看详细的发送 log + return session; + } + + /** + * 创建session + * + * @author lidoudou + * @date 2019/2/16 14:59 + */ + private static Session createSession(String sendSMTPHost) { + // 1. 创建参数配置, 用于连接邮件服务器的参数配置 + Properties props = new Properties(); // 参数配置 + props.setProperty("mail.transport.protocol", "smtp"); // 使用的协议(JavaMail规范要求) + props.setProperty("mail.smtp.host", sendSMTPHost); // 发件人的邮箱的 SMTP 服务器地址 + props.setProperty("mail.smtp.auth", "true"); // 需要请求认证 + // PS: 某些邮箱服务器要求 SMTP 连接需要使用 SSL 安全认证 (为了提高安全性, 邮箱支持SSL连接, 也可以自己开启), + // 如果无法连接邮件服务器, 仔细查看控制台打印的 log, 如果有有类似 “连接失败, 要求 SSL 安全连接” 等错误, + // 打开下面 /* ... */ 之间的注释代码, 开启 SSL 安全连接。 + /* + * // SMTP 服务器的端口 (非 SSL 连接的端口一般默认为 25, 可以不添加, 如果开启了 SSL 连接, // 需要改为对应邮箱的 SMTP 服务器的端口, + * 具体可查看对应邮箱服务的帮助, // QQ邮箱的SMTP(SLL)端口为465或587, 其他邮箱自行去查看) final String smtpPort = "465"; + * props.setProperty("mail.smtp.port", smtpPort); + * props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); + * props.setProperty("mail.smtp.socketFactory.fallback", "false"); + * props.setProperty("mail.smtp.socketFactory.port", smtpPort); + */ + // 2. 根据配置创建会话对象, 用于和邮件服务器交互 + Session session = Session.getInstance(props); + session.setDebug(true); // 设置为debug模式, 可以查看详细的发送 log + return session; + } + + /** + * 创建一封只包含文本的简单邮件 + * + * @param session 和服务器交互的会话 + * @param sendMail 发件人邮箱 + * @param sendMailName 发件人昵称 + * @param receiveMail 收件人邮箱 + * @param receiveMailName 收件人昵称 + * @param title 邮件主题 + * @param content 邮件正文 + * @return + * @throws Exception + * @author Administrator + * @date 2017年12月13日 下午1:55:45 + */ + public static MimeMessage createMimeMessage(Session session, String sendMail, String sendMailName, String[] receiveMail, String receiveMailName, String title, String content) throws Exception { + // 1. 创建一封邮件 + MimeMessage message = new MimeMessage(session); + // 2. From: 发件人(昵称有广告嫌疑,避免被邮件服务器误认为是滥发广告以至返回失败,请修改昵称) + message.setFrom(new InternetAddress(sendMail, sendMailName, "UTF-8")); + // 3. To: 收件人(可以增加多个收件人、抄送、密送) + List to = new LinkedList<>(); + for (String s : receiveMail) { + if (pattern.matcher(s).matches()) { + to.add(new InternetAddress(s)); + } + } + //Address[] addresses = new Address[]{new InternetAddress(receiveMail),new InternetAddress(receiveMail)}; + message.addRecipients(MimeMessage.RecipientType.TO, to.toArray((new InternetAddress[to.size()]))); + // 4. Subject: 邮件主题(标题有广告嫌疑,避免被邮件服务器误认为是滥发广告以至返回失败,请修改标题) + message.setSubject(title, "UTF-8"); + // 5. Content: 邮件正文(可以使用html标签)(内容有广告嫌疑,避免被邮件服务器误认为是滥发广告以至返回失败,请修改发送内容) + message.setContent(content, "text/html;charset=UTF-8"); + // 6. 设置发件时间 + message.setSentDate(new Date()); + // 7. 保存设置 + message.saveChanges(); + return message; + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartStringUtil.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartStringUtil.java new file mode 100644 index 00000000..da2e1764 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartStringUtil.java @@ -0,0 +1,311 @@ +package net.lab1024.smartadmin.util; + +import org.apache.commons.lang3.StringUtils; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +/** + * 字符串操作类,包括分割,转换,大写首字母 + * + * @author jiaozi + */ +public class SmartStringUtil extends StringUtils { + + // ===============split ======================= + + public static Set splitConvertToSet(String str, String split) { + if (isEmpty(str)) { + return new HashSet(); + } + String[] splitArr = str.split(split); + HashSet set = new HashSet(splitArr.length); + for (String string : splitArr) { + set.add(string); + } + return set; + } + + public static List splitConvertToList(String str, String split) { + if (isEmpty(str)) { + return new ArrayList(); + } + String[] splitArr = str.split(split); + ArrayList list = new ArrayList(splitArr.length); + for (String string : splitArr) { + list.add(string); + } + return list; + } + + // ===============split Integer======================= + + public static List splitConverToIntList(String str, String split, int defaultVal) { + if (isEmpty(str)) { + return new ArrayList(); + } + String[] strArr = str.split(split); + List list = new ArrayList(strArr.length); + for (int i = 0; i < strArr.length; i++) { + try { + int parseInt = Integer.parseInt(strArr[i]); + list.add(parseInt); + } catch (NumberFormatException e) { + list.add(defaultVal); + continue; + } + } + return list; + } + + public static Set splitConverToIntSet(String str, String split, int defaultVal) { + if (isEmpty(str)) { + return new HashSet(); + } + String[] strArr = str.split(split); + HashSet set = new HashSet(strArr.length); + for (int i = 0; i < strArr.length; i++) { + try { + int parseInt = Integer.parseInt(strArr[i]); + set.add(parseInt); + } catch (NumberFormatException e) { + set.add(defaultVal); + continue; + } + } + return set; + } + + public static Set splitConverToIntSet(String str, String split) { + return splitConverToIntSet(str, split, 0); + } + + public static List splitConverToIntList(String str, String split) { + return splitConverToIntList(str, split, 0); + } + + public static int[] splitConvertToIntArray(String str, String split, int defaultVal) { + if (isEmpty(str)) { + return new int[0]; + } + String[] strArr = str.split(split); + int[] result = new int[strArr.length]; + for (int i = 0; i < strArr.length; i++) { + try { + result[i] = Integer.parseInt(strArr[i]); + } catch (NumberFormatException e) { + result[i] = defaultVal; + continue; + } + } + return result; + } + + public static int[] splitConvertToIntArray(String str, String split) { + return splitConvertToIntArray(str, split, 0); + } + + // ===============split 2 Long======================= + + public static List splitConverToLongList(String str, String split, long defaultVal) { + if (isEmpty(str)) { + return new ArrayList(); + } + String[] strArr = str.split(split); + List list = new ArrayList(strArr.length); + for (int i = 0; i < strArr.length; i++) { + try { + long parseLong = Long.parseLong(strArr[i]); + list.add(parseLong); + } catch (NumberFormatException e) { + list.add(defaultVal); + continue; + } + } + return list; + } + + public static List splitConverToLongList(String str, String split) { + return splitConverToLongList(str, split, 0L); + } + + public static long[] splitConvertToLongArray(String str, String split, long defaultVal) { + if (isEmpty(str)) { + return new long[0]; + } + String[] strArr = str.split(split); + long[] result = new long[strArr.length]; + for (int i = 0; i < strArr.length; i++) { + try { + result[i] = Long.parseLong(strArr[i]); + } catch (NumberFormatException e) { + result[i] = defaultVal; + continue; + } + } + return result; + } + + public static long[] splitConvertToLongArray(String str, String split) { + return splitConvertToLongArray(str, split, 0L); + } + + // ===============split convert byte======================= + + public static List splitConverToByteList(String str, String split, byte defaultVal) { + if (isEmpty(str)) { + return new ArrayList(); + } + String[] strArr = str.split(split); + List list = new ArrayList(strArr.length); + for (int i = 0; i < strArr.length; i++) { + try { + byte parseByte = Byte.parseByte(strArr[i]); + list.add(parseByte); + } catch (NumberFormatException e) { + list.add(defaultVal); + continue; + } + } + return list; + } + + public static List splitConverToByteList(String str, String split) { + return splitConverToByteList(str, split, (byte) 0); + } + + public static byte[] splitConvertToByteArray(String str, String split, byte defaultVal) { + if (isEmpty(str)) { + return new byte[0]; + } + String[] strArr = str.split(split); + byte[] result = new byte[strArr.length]; + for (int i = 0; i < strArr.length; i++) { + try { + result[i] = Byte.parseByte(strArr[i]); + } catch (NumberFormatException e) { + result[i] = defaultVal; + continue; + } + } + return result; + } + + public static byte[] splitConvertToByteArray(String str, String split) { + return splitConvertToByteArray(str, split, (byte) 0); + } + + // ===============split convert double======================= + + public static List splitConverToDoubleList(String str, String split, double defaultVal) { + if (isEmpty(str)) { + return new ArrayList(); + } + String[] strArr = str.split(split); + List list = new ArrayList(strArr.length); + for (int i = 0; i < strArr.length; i++) { + try { + double parseByte = Double.parseDouble(strArr[i]); + list.add(parseByte); + } catch (NumberFormatException e) { + list.add(defaultVal); + continue; + } + } + return list; + } + + public static List splitConverToDoubleList(String str, String split) { + return splitConverToDoubleList(str, split, 0); + } + + public static double[] splitConvertToDoubleArray(String str, String split, double defaultVal) { + if (isEmpty(str)) { + return new double[0]; + } + String[] strArr = str.split(split); + double[] result = new double[strArr.length]; + for (int i = 0; i < strArr.length; i++) { + try { + result[i] = Double.parseDouble(strArr[i]); + } catch (NumberFormatException e) { + result[i] = defaultVal; + continue; + } + } + return result; + } + + public static double[] splitConvertToDoubleArray(String str, String split) { + return splitConvertToDoubleArray(str, split, 0); + } + + // ===============solit convert float======================= + + public static List splitConverToFloatList(String str, String split, float defaultVal) { + if (isEmpty(str)) { + return new ArrayList(); + } + String[] strArr = str.split(split); + List list = new ArrayList(strArr.length); + for (int i = 0; i < strArr.length; i++) { + try { + float parseByte = Float.parseFloat(strArr[i]); + list.add(parseByte); + } catch (NumberFormatException e) { + list.add(defaultVal); + continue; + } + } + return list; + } + + public static List splitConverToFloatList(String str, String split) { + return splitConverToFloatList(str, split, 0f); + } + + public static float[] splitConvertToFloatArray(String str, String split, float defaultVal) { + if (isEmpty(str)) { + return new float[0]; + } + String[] strArr = str.split(split); + float[] result = new float[strArr.length]; + for (int i = 0; i < strArr.length; i++) { + try { + result[i] = Float.parseFloat(strArr[i]); + } catch (NumberFormatException e) { + result[i] = defaultVal; + continue; + } + } + return result; + } + + public static float[] splitConvertToFloatArray(String str, String split) { + return splitConvertToFloatArray(str, split, 0f); + } + + // ===============upperCase======================= + + /** + * 将首字母大写 + * + * @param str + * @return + */ + public static String upperCaseFirstChar(String str) { + if (str == null || str.isEmpty()) { + return str; + } + char firstChar = str.charAt(0); + if (Character.isUpperCase(firstChar)) { + return str; + } + char[] values = str.toCharArray(); + values[0] = Character.toUpperCase(firstChar); + return new String(values); + } + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartThreadFactory.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartThreadFactory.java new file mode 100644 index 00000000..367f2b17 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartThreadFactory.java @@ -0,0 +1,44 @@ +package net.lab1024.smartadmin.util; + +import java.util.concurrent.ThreadFactory; +import java.util.concurrent.atomic.AtomicInteger; + +/** + * 拥有自己的thread facotry是为了jstack时候能看到是哪个线程 + * + * @author jiaozi + */ +public class SmartThreadFactory implements ThreadFactory { + + public static SmartThreadFactory create(String namePrefix) { + return new SmartThreadFactory(namePrefix); + } + + private final AtomicInteger poolNumber = new AtomicInteger(1); + + private final ThreadGroup group; + + private final AtomicInteger threadNumber = new AtomicInteger(1); + + private final String namePrefix; + + private SmartThreadFactory(String namePrefix) { + SecurityManager s = System.getSecurityManager(); + group = (s != null) ? s.getThreadGroup() : Thread.currentThread().getThreadGroup(); + this.namePrefix = namePrefix + " pool " + poolNumber.getAndIncrement() + "-thread-"; + } + + @Override + public Thread newThread(Runnable r) { + Thread t = new Thread(group, r, namePrefix + threadNumber.getAndIncrement(), 0); + if (t.isDaemon()) { + t.setDaemon(false); + } + + if (t.getPriority() != Thread.NORM_PRIORITY) { + t.setPriority(Thread.NORM_PRIORITY); + } + return t; + } + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartVerificationUtil.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartVerificationUtil.java new file mode 100644 index 00000000..ceb349f1 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/SmartVerificationUtil.java @@ -0,0 +1,95 @@ +package net.lab1024.smartadmin.util; + +import java.util.regex.Pattern; +/** + * 验证工具类 + * + * @author listen + * @date 2017/11/06 10:54 + */ +public class SmartVerificationUtil { + + + + /** + * 手机号码验证规则 + */ + public static final String PHONE_REGEXP = "^1[0-9]{10}"; + + /** + * 固定号码验证规则 + */ + public static final String FIXED_PHONE_REGEXP = "^0\\d{2,3}-[1-9]\\d{6,7}$"; + + /** + * 密码正则校验 + */ + public static final String PWD_REGEXP = "^[A-Za-z0-9.]{6,15}$"; + + /** + * 车牌号 + */ + public static final String CAR_NUMBER = + "([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼]{1}(([A-HJ-Z]{1}[A-HJ-NP-Z0-9]{5})|([A-HJ-Z]{1}(([DF]{1}[A-HJ-NP-Z0-9]{1}[0-9]{4})|([0-9]{5}[DF]{1})))|" + "([A-HJ-Z" + "]{1}[A-D0-9]{1}[0-9]{3}警)))|" + + "([0-9]{6}使)|((([沪粤川云桂鄂陕蒙藏黑辽渝]{1}A)|鲁B|闽D|蒙E|蒙H)[0-9]{4}领)|(WJ[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼·•]{1}[0-9]{4}[TDSHBXJ0-9]{1})|" + "([VKHBSLJNGCE]{1}[A-DJ-PR" + "-TVY]{1}[0-9]{5})"; + + /** + * 日期年月日校验 yyyy-MM-dd HH:mm:ss + */ + public static final String DATE_TIME = "^((([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9" + + "]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29))\\s+([0-1]?[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$"; + + /** + * 日期校验 yyyy-MM-dd + */ + public static final String DATE = "(([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))" + + "|(02-(0[1-9]|[1][0-9]|2[0-8])))|((([0-9]{2})(0[48]|[2468][048]|[13579][26])|((0[48]|[2468][048]|[3579][26])00))-02-29)" + "([0-9]{3}[1-9]|[0-9]{2}[1-9][0-9]{1}|[0-9]{1}[1-9][0-9]{2}|[1-9" + + "][0-9]{3})-(((0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01]))|((0[469]|11)-(0[1-9]|[12][0-9]|30))|(02-(0[1-9]|[1][0-9]|2[0-8]))))|(" + "(([0-9]{2})(0[48]|[2468][048]|[13579][26])|(" + "(0[48" + "]|[2468][048]|[3579][26])00))-02-29)"; + + /** + * 年月校验 例: 2019-10 + */ + public static final String YEAR_MONTH = "^\\d{4}-((0([1-9]))|(1(0|1|2)))$"; + + + /** + * 时间区间验证 10:23-19:00 + */ + public static final String TIME_SECTION= "^(0[0-9]|1[0-9]|2[0-3]):(0[0-9]|[1-5][0-9])-(0[0-9]|1[0-9]|2[0-3]):(0[0-9]|[1-5][0-9])$"; + + /** + * 时间验证 10:23 + */ + public static final String TIME = "^(0[0-9]|1[0-9]|2[0-3]):(0[0-9]|[1-5][0-9])$"; + + /** + * 身份证号 + */ + public static final String ID_CARD = "(^\\d{15}$)|(^\\d{18}$)|(^\\d{17}(\\d|X|x)$)"; + + /** + * URL + */ + public static final String URL = "[a-zA-z]+://[^\\s]*"; + + /** + * 邮箱 + */ + public static final String EMAIL = "[\\w!#$%&'*+/=?^_`{|}~-]+(?:\\.[\\w!#$%&'*+/=?^_`{|}~-]+)*@(?:[\\w](?:[\\w-]*[\\w])?\\.)+[\\w](?:[\\w-]*[\\w])?"; + + /** + * 整数 + */ + public static final String INTEGER = "^-?[1-9]\\d*$"; + + /** + * 小数 + */ + public static final String DOUBLE = "^-?[1-9]\\d*\\.\\d*|0\\.\\d*[1-9]\\d*$"; + + + public static void main(String[] args) { + boolean matches = Pattern.matches(INTEGER, "1"); + System.out.println(matches); + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/excel/SmartExcel.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/excel/SmartExcel.java new file mode 100644 index 00000000..47f6e8cd --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/excel/SmartExcel.java @@ -0,0 +1,83 @@ +package net.lab1024.smartadmin.util.excel; + +import java.io.FileInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; + +import org.apache.poi.hssf.usermodel.HSSFWorkbook; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; + +/** + * zhuoda + */ +public class SmartExcel { + + List sheetList = new ArrayList();; + + public SmartExcel(String fileName) { + org.apache.poi.ss.usermodel.Workbook workbook = null; + try { + workbook = fileName.endsWith(".xls") ? new HSSFWorkbook(new FileInputStream(fileName)) : new XSSFWorkbook(new FileInputStream(fileName)); + int numberOfSheets = workbook.getNumberOfSheets(); + for (int index = 0; index < numberOfSheets; index++) { + addSheet(new SmartSheet(workbook.getSheetAt(index))); + } + } catch (Throwable t) { + throw new RuntimeException(t); + } finally { + if (workbook != null) { + try { + workbook.close(); + } catch (IOException e) { + } + workbook = null; + } + } + } + + public SmartExcel(InputStream ins, SmartExcelFileType fileType) { + org.apache.poi.ss.usermodel.Workbook workbook = null; + try { + workbook = fileType == SmartExcelFileType.XLS ? new HSSFWorkbook(ins) : new XSSFWorkbook(ins); + int numberOfSheets = workbook.getNumberOfSheets(); + for (int index = 0; index < numberOfSheets; index++) { + addSheet(new SmartSheet(workbook.getSheetAt(index))); + } + } catch (Throwable t) { + throw new RuntimeException(t); + } finally { + if (workbook != null) { + try { + workbook.close(); + } catch (IOException e) { + } + workbook = null; + } + } + } + + final protected void addSheet(SmartSheet sheet) { + this.sheetList.add(sheet); + } + + final protected void addSheetList(Collection sheets) { + this.sheetList.addAll(sheets); + } + + final public List getSheetList() { + return sheetList; + } + + final public SmartSheet getSheet(String sheetName) { + for (SmartSheet sheet : sheetList) { + if (sheet.getName().equals(sheetName)) { + return sheet; + } + } + return null; + } +} + diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/excel/SmartExcelFileType.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/excel/SmartExcelFileType.java new file mode 100644 index 00000000..499e43db --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/excel/SmartExcelFileType.java @@ -0,0 +1,10 @@ +package net.lab1024.smartadmin.util.excel; + +/** + * @author zhuoda + */ +public enum SmartExcelFileType { + XLS, + XLSX + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/excel/SmartExcelReader.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/excel/SmartExcelReader.java new file mode 100644 index 00000000..e5c1ba5b --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/excel/SmartExcelReader.java @@ -0,0 +1,32 @@ +package net.lab1024.smartadmin.util.excel; + +/** + * @author zhuoda + * @Date 2020/8/10 + */ + +import net.lab1024.smartadmin.util.SmartFileUtil; + +import java.io.*; + +public class SmartExcelReader { + + public static SmartExcel openExcel(String filePath) throws IOException { + SmartFileUtil.isFileExistThrowException(filePath); + return new SmartExcel(new File(filePath).getCanonicalPath()); + } + + public static SmartExcel openExcel(File file) throws IOException { + return new SmartExcel(file.getCanonicalPath()); + } + + public static SmartExcel openExcel(InputStream ins, SmartExcelFileType fileType) throws IOException { + return new SmartExcel(ins, fileType); + } + + public static void main(String[] args) throws Exception { + SmartExcel smartExcel = openExcel(new FileInputStream(new File("F:/privilege.xlsx")), SmartExcelFileType.XLSX); + System.out.println(smartExcel.getSheetList()); + } + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/excel/SmartSheet.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/excel/SmartSheet.java new file mode 100644 index 00000000..80aed760 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/java/net/lab1024/smartadmin/util/excel/SmartSheet.java @@ -0,0 +1,113 @@ +package net.lab1024.smartadmin.util.excel; + + +import org.apache.poi.ss.usermodel.Cell; +import org.apache.poi.ss.usermodel.CellType; +import org.apache.poi.ss.usermodel.Row; +import org.apache.poi.ss.util.CellRangeAddress; + +/** + * @author zhuoda + */ +public class SmartSheet { + final String name; + + private final int rowCount; + private final int columnCount; + private final String[][] datas; + + public SmartSheet(org.apache.poi.ss.usermodel.Sheet sheet) { + this.name = sheet.getSheetName(); + this.rowCount = sheet.getLastRowNum() + 1; + // 初始化基本数据 + int maxColumnCount = 0; + this.datas = new String[rowCount][]; + for (int rowIndex = 0; rowIndex < rowCount; rowIndex++) { + Row row = sheet.getRow(rowIndex); + if (row == null) { + continue; + } + int _columnCount = row.getLastCellNum() + 1; + this.datas[rowIndex] = new String[_columnCount]; + for (int colIndex = 0; colIndex < _columnCount; colIndex++) { + this.datas[rowIndex][colIndex] = getCellContents(row.getCell(colIndex)); + } + if (maxColumnCount < _columnCount) { + maxColumnCount = _columnCount; + } + } + this.columnCount = maxColumnCount; + // 根据单元格合并情况,填充内容 + for (int index = 0; index < sheet.getNumMergedRegions(); index++) { + CellRangeAddress mergedRegion = sheet.getMergedRegion(index); + String upperLeftData = this.datas[mergedRegion.getFirstRow()][mergedRegion.getFirstColumn()]; + for (int rowIndex = mergedRegion.getFirstRow(); rowIndex <= mergedRegion.getLastRow(); rowIndex++) { + String[] _rowDatas = this.datas[rowIndex]; + if (_rowDatas == null) { + this.datas[rowIndex] = new String[mergedRegion.getLastColumn() + 1]; + } else if (_rowDatas.length < mergedRegion.getLastColumn() + 1) { + String[] newStrArray = new String[mergedRegion.getLastColumn() + 1]; + System.arraycopy(_rowDatas, 0, newStrArray, 0, _rowDatas.length); + this.datas[rowIndex] = newStrArray; + } + for (int colIndex = mergedRegion.getFirstColumn(); colIndex <= mergedRegion.getLastColumn(); colIndex++) { + this.datas[rowIndex][colIndex] = upperLeftData; + } + } + } + } + + private String getCellContents(Cell cell) { + if (cell == null) { + return null; + } + return getCellContents(cell.getCellType(), cell); + } + + private String getCellContents(CellType type, Cell cell) { + switch (type) { + case BLANK: + return ""; + case NUMERIC: + return cell.getStringCellValue(); + case STRING: + return cell.getStringCellValue(); + case FORMULA: + return getCellContents(cell.getCachedFormulaResultType(), cell); + case BOOLEAN: + return String.valueOf(cell.getBooleanCellValue()); + case ERROR: + default: + throw new IllegalArgumentException(String.format("unsupported cell type:%d, col:%d, row:%d, sheet:%s", cell.getCellType(), cell.getColumnIndex(), + cell.getRowIndex(), getName())); + } + } + + public int getRowCount() { + return rowCount; + } + + public int getColumnCount() { + return columnCount; + } + + public String getValue(int rowIndex, int columnIndex) { + if (rowIndex < 0 || rowIndex >= datas.length) { + return ""; + } + if (columnIndex < 0 || datas[rowIndex] == null || columnIndex >= datas[rowIndex].length) { + return ""; + } + String value = datas[rowIndex][columnIndex]; + return value == null ? "": value; + } + + + public String getName() { + return name; + } + + + +} + diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/banner.txt b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/banner.txt new file mode 100644 index 00000000..d3187732 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/banner.txt @@ -0,0 +1,8 @@ + / ____| | | /\ | | (_) +| (___ _ __ ___ __ _ _ __| |_ / \ __| |_ __ ___ _ _ __ + \___ \| '_ ` _ \ / _` | '__| __| / /\ \ / _` | '_ ` _ \| | '_ \ + ____) | | | | | | (_| | | | |_ / ____ \ (_| | | | | | | | | | | +|_____/|_| |_| |_|\__,_|_| \__/_/ \_\__,_|_| |_| |_|_|_| |_| + +SmartAdmin v1.2.0 + diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/dev/application.properties b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/dev/application.properties new file mode 100644 index 00000000..b4468249 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/dev/application.properties @@ -0,0 +1,123 @@ +######################### server ################### +server.servlet.context-path=/smart-admin-api +server.port=10086 +spring.profiles.active=@profiles.active@ + +######################### tomcat ################### +server.tomcat.basedir=/home/logs/smart-admin/tomcat-logs +server.tomcat.accesslog.enabled=true +server.tomcat.accesslog.pattern=%t %{X-Forwarded-For}i %a "%r" %s %D (%D ms) + +######################### jackson ######################### +spring.jackson.serialization.write-enums-using-to-string=true +spring.jackson.deserialization.read-enums-using-to-string=true +spring.jackson.deserialization.fail-on-unknown-properties=false +spring.jackson.default-property-inclusion=always +spring.jackson.date-format=yyyy-MM-dd HH:mm:ss +spring.jackson.time-zone=GMT+8 +spring.jackson.serialization.write-dates-as-timestamps=false + +######################### http file ######################### +spring.servlet.multipart.max-file-size=30MB +spring.servlet.multipart.max-request-size=30MB +file-upload-service.path=/home/upload/ + +######################### database ######################### +spring.datasource.url=jdbc:p6spy:mysql://127.0.0.1:3306/smart-admin-dev?autoReconnect=true&useServerPreparedStmts=false&rewriteBatchedStatements=true&characterEncoding=UTF-8&useSSL=false&allowMultiQueries=true&serverTimezone=UTC +spring.datasource.username=root +spring.datasource.password=Root.123 +spring.datasource.initial-size=2 +spring.datasource.min-idle=1 +spring.datasource.max-active=10 +spring.datasource.max-wait=60000 +spring.datasource.time-between-eviction-runs-millis=60000 +spring.datasource.min-evictable-idle-time-millis=300000 +spring.datasource.driver-class-name=com.p6spy.engine.spy.P6SpyDriver +spring.datasource.filters=stat +spring.datasource.druid.username=druid +spring.datasource.druid.password=123456 +spring.datasource.druid.login.enabled=false + +######################### redis ####################################### +spring.redis.database=0 +spring.redis.host=127.0.0.1 +spring.redis.port=6379 +spring.redis.timeout=10000ms +spring.redis.password= +spring.redis.lettuce.pool.max-active=10 +spring.redis.lettuce.pool.min-idle=5 +spring.redis.lettuce.pool.max-idle=10 +spring.redis.lettuce.pool.max-wait=30000ms + +########################## rest http pool ######################### +#\u6700\u5927\u8FDE\u63A5\u6570 +http.pool.max-total=10 +#\u5355\u8DEF\u7531\u6700\u5927\u8FDE\u63A5\u6570 +http.pool.default-max-per-route=5 +#\u670D\u52A1\u5668\u8FD4\u56DE\u6570\u636E(response)\u7684\u65F6\u95F4 +http.pool.socket-timeout=8000 +#\u8FDE\u63A5\u4E0A\u670D\u52A1\u5668(\u63E1\u624B\u6210\u529F)\u7684\u65F6\u95F4 +http.pool.connect-timeout=8000 +#\u4ECE\u8FDE\u63A5\u6C60\u4E2D\u83B7\u53D6\u8FDE\u63A5\u7684\u8D85\u65F6\u65F6\u95F4 +http.pool.connection-request-timeout=8000 + +######################### mybatis\u914D\u7F6E ######################### +mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl +# mybatis-plus \u5B57\u6BB5\u9A7C\u5CF0\u81EA\u52A8\u8F6C\u6362 +mybatis-plus.configuration.map-underscore-to-camel-case=true +mybatis-plus.mapper-locations=classpath:/mapper/**/*.xml +mybatis-plus.typeAliasesPackage=net.lab1024.smartadmin.*.*.domain.entity +mybatis-plus.global-config.refresh-mapper=true +mybatis-plus.global-config.db-column-underline=true + +######################### swagger ######################### +swagger.apiGroupName=smartAdmin +swagger.title=smartAdmin +swagger.description=smartAdmin +swagger.version=1.0 +swagger.serviceUrl=http://localhost:10086/smart-admin-api +swagger.packAge=net.lab1024.smartadmin.module + +######################### jwt ######################### +jwt.key=smart-admin-jwt-key + +########################## smart reload ######################### +smart-reload.thread-count=1 +smart-reload.time-interval=300 + +######################### cros ######################### +access-control-allow-origin=* + +######################### heart beat ######################### +heart-beat.delayHandlerTime=60000 +heart-beat.intervalTime=300000 + +######################### quartz ############################# +#\u8C03\u5EA6\u6807\u8BC6\u540D \u96C6\u7FA4\u4E2D\u6BCF\u4E00\u4E2A\u5B9E\u4F8B\u90FD\u5FC5\u987B\u4F7F\u7528\u76F8\u540C\u7684\u540D\u79F0 +spring.quartz.properties.org.quartz.scheduler.instanceName=devClusteredScheduler +spring.quartz.properties.org.quartz.scheduler.instanceId=AUTO +#\u8FDC\u7A0B\u7BA1\u7406\u76F8\u5173\u7684\u914D\u7F6E,\u5168\u90E8\u5173\u95ED +spring.quartz.properties.org.quartz.scheduler.rmi.export=false +spring.quartz.properties.org.quartz.scheduler.rmi.proxy=false +#\u8DF3\u8FC7quartz\u7248\u672C\u68C0\u67E5 +spring.quartz.properties.org.quartz.scheduler.skipUpdateCheck=true +#\u6570\u636E\u4FDD\u5B58\u65B9\u5F0F\u4E3A\u6301\u4E45\u5316 +spring.quartz.properties.org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX +spring.quartz.properties.org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate +spring.quartz.properties.org.quartz.jobStore.tablePrefix=QRTZ_ +spring.quartz.properties.org.quartz.jobStore.isClustered=true +#\u8C03\u5EA6\u5B9E\u4F8B\u5931\u6548\u7684\u68C0\u67E5\u65F6\u95F4\u95F4\u9694, \u5F00\u53D1\u73AF\u5883\u6539\u4E3A\u4E8660\u79D2 +spring.quartz.properties.org.quartz.jobStore.clusterCheckinInterval=60000 +spring.quartz.properties.org.quartz.jobStore.useProperties=false +#\u8C03\u5EA6\u7EBF\u7A0B +spring.quartz.properties.org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool +spring.quartz.properties.org.quartz.threadPool.threadCount=2 +spring.quartz.properties.org.quartz.threadPool.threadPriority=5 +spring.quartz.properties.org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread=true +spring.quartz.properties.org.quartz.threadPool.threadNamePrefix=quartz +spring.quartz.job-store-type=jdbc +#ALWAYS,EMBEDDED,NEVER +spring.quartz.jdbc.initialize-schema=NEVER +spring.quartz.jdbc.schema=classpath:sql/quartz_mysql_2.3.0.sql +#\u81EA\u52A8\u626B\u63CF\u4EFB\u52A1\u5355\u5E76\u53D1\u73B0\u6539\u52A8\u7684\u65F6\u95F4\u95F4\u9694,\u5355\u4F4D\u4E3A\u79D2 +org.quartz.plugin.jobInitializer.scanInterval = 300 diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/dev/log4j2.xml b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/dev/log4j2.xml new file mode 100644 index 00000000..86c514a3 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/dev/log4j2.xml @@ -0,0 +1,97 @@ + + + + + /home/logs/smart-admin/dev/logs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/dev/spy.properties b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/dev/spy.properties new file mode 100644 index 00000000..22c91d1e --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/dev/spy.properties @@ -0,0 +1,20 @@ +#modulelist=com.baomidou.mybatisplus.extension.p6spy.MybatisPlusLogFactory +# \u81EA\u5B9A\u4E49\u65E5\u5FD7\u6253\u5370 +logMessageFormat=com.baomidou.mybatisplus.extension.p6spy.P6SpyLogger +#\u65E5\u5FD7\u8F93\u51FA\u5230\u63A7\u5236\u53F0 +appender=com.baomidou.mybatisplus.extension.p6spy.StdoutLogger +# \u4F7F\u7528\u65E5\u5FD7\u7CFB\u7EDF\u8BB0\u5F55 sql +#appender=com.p6spy.engine.spy.appender.Slf4JLogger +# \u8BBE\u7F6E p6spy driver \u4EE3\u7406 +deregisterdrivers=true +# \u53D6\u6D88JDBC URL\u524D\u7F00 +useprefix=true +# \u914D\u7F6E\u8BB0\u5F55 Log \u4F8B\u5916,\u53EF\u53BB\u6389\u7684\u7ED3\u679C\u96C6\u6709error,info,batch,debug,statement,commit,rollback,result,resultset. +#excludecategories=info,debug,result,commit,resultset +# \u65E5\u671F\u683C\u5F0F +dateformat=yyyy-MM-dd HH:mm:ss + +# \u662F\u5426\u5F00\u542F\u6162SQL\u8BB0\u5F55 +outagedetection=true +# \u6162SQL\u8BB0\u5F55\u6807\u51C6 2 \u79D2 +outagedetectioninterval=2 \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/business/email/EmailMapper.xml b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/business/email/EmailMapper.xml new file mode 100644 index 00000000..6050de51 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/business/email/EmailMapper.xml @@ -0,0 +1,44 @@ + + + + + + + + + + + delete from t_email where id = #{id} + + + + delete from t_email where id in + + #{item} + + + + \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/business/log/OrderOperateLogMapper.xml b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/business/log/OrderOperateLogMapper.xml new file mode 100644 index 00000000..46f92a00 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/business/log/OrderOperateLogMapper.xml @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + INSERT INTO t_order_operate_log (order_id,order_type, operate_type, operate_content, operate_remark, employee_id, employee_name,ext_data,update_time,create_time) VALUES + + (#{item.orderId}, + #{item.orderType}, + #{item.operateType}, + #{item.operateContent}, + #{item.operateRemark}, + #{item.employeeId}, + #{item.employeeName}, + #{item.extData}, + #{item.updateTime} + #{item.createTime} + ) + + + + + diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/business/log/UserLoginLogMapper.xml b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/business/log/UserLoginLogMapper.xml new file mode 100644 index 00000000..87b0df3b --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/business/log/UserLoginLogMapper.xml @@ -0,0 +1,46 @@ + + + + + + + + + + + delete from t_user_login_log where id = #{id} + + + + delete from t_user_login_log where id in + + #{item} + + + + \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/business/log/UserOperateLogMapper.xml b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/business/log/UserOperateLogMapper.xml new file mode 100644 index 00000000..7088f2c4 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/business/log/UserOperateLogMapper.xml @@ -0,0 +1,51 @@ + + + + + + + + + + + delete from t_user_operate_log where id = #{id} + + + + delete from t_user_operate_log where id in + + #{item} + + + + \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/business/notice/NoticeMapper.xml b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/business/notice/NoticeMapper.xml new file mode 100644 index 00000000..d94c0ab7 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/business/notice/NoticeMapper.xml @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + UPDATE t_notice + set deleted = #{deletedFlag} + WHERE id =#{id} + + + + + UPDATE t_notice set deleted = #{deletedFlag} where id in + + #{item} + + + + + + + + + + + + + + \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/business/notice/NoticeReceiveRecordMapper.xml b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/business/notice/NoticeReceiveRecordMapper.xml new file mode 100644 index 00000000..66168c57 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/business/notice/NoticeReceiveRecordMapper.xml @@ -0,0 +1,39 @@ + + + + + + + + + delete from t_notice_receive_record where notice_id = #{noticeId} + + + + INSERT INTO t_notice_receive_record (notice_id, employee_id, update_time, create_time) VALUES + + ( + #{item.noticeId}, + #{item.employeeId}, + now(), + now() + ) + + + + + + + + + + \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/business/peony/PeonyMapper.xml b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/business/peony/PeonyMapper.xml new file mode 100644 index 00000000..4be1a0f5 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/business/peony/PeonyMapper.xml @@ -0,0 +1,116 @@ + + + + + + + + + + + + + + + + delete from t_peony where id = #{id} + + + + delete from t_peony where id in + + #{item} + + + + \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/support/codegenerator/TableMapper.xml b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/support/codegenerator/TableMapper.xml new file mode 100644 index 00000000..4af675b6 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/support/codegenerator/TableMapper.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/support/file/FileMapper.xml b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/support/file/FileMapper.xml new file mode 100644 index 00000000..04abb76d --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/support/file/FileMapper.xml @@ -0,0 +1,100 @@ + + + + + + + + + + INSERT INTO t_file ( + module_id, + module_type, + file_name, + file_size, + file_type, + file_path, + creater_user, + file_location_type + ) + VALUES + + (#{item.moduleId},#{item.moduleType},#{item.fileName},#{item.fileSize},#{item.fileType},#{item.filePath},#{item.createrUser},#{item.createrUserType},#{item.fileLocationType}) + + + + + INSERT INTO t_file ( + module_id, + module_type, + file_name, + file_size, + file_type, + file_path, + creater_user, + file_location_type + ) + VALUES + + (#{item.moduleId},#{item.moduleType},#{item.fileName},#{item.fileSize},#{item.fileType},#{item.filePath},#{item.createrUser},#{item.createrUserType},#{item.fileLocationType}) + + + + + DELETE FROM t_file WHERE module_id =#{moduleId} + + + + DELETE FROM t_file WHERE module_id =#{moduleId} and module_type=#{moduleType} + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/support/heartbeat/HeartBeatRecordMapper.xml b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/support/heartbeat/HeartBeatRecordMapper.xml new file mode 100644 index 00000000..27ce75e6 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/support/heartbeat/HeartBeatRecordMapper.xml @@ -0,0 +1,41 @@ + + + + + + + INSERT INTO t_heart_beat_record ( + project_path, + server_ip, + process_no, + process_start_time, + heart_beat_time + ) + VALUES + (#{projectPath}, + #{serverIp}, + #{processNo}, + #{processStartTime}, + #{heartBeatTime}) + + + + update t_heart_beat_record + set heart_beat_time = #{heartBeatTime} + + id = #{id} + + + + + + + diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/support/idgenerator/IdGeneratorMapper.xml b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/support/idgenerator/IdGeneratorMapper.xml new file mode 100644 index 00000000..df3b86c5 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/support/idgenerator/IdGeneratorMapper.xml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + update t_id_generator set last_number = #{lastNumber}, update_time = now() where id = #{generatorId} + + + + replace into `t_id_generator_record` (`generator_id`, `year`, `month`, `day`, `last_number`) values (#{generatorId}, #{year}, #{month}, #{day}, #{lastNumber}) + + + + \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/support/quartz/QuartzTaskLogMapper.xml b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/support/quartz/QuartzTaskLogMapper.xml new file mode 100644 index 00000000..43f25e05 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/support/quartz/QuartzTaskLogMapper.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + tl.id, + tl.task_id, + tl.task_name, + tl.task_params, + tl.process_status, + tl.process_duration, + tl.process_log, + tl.ip_address, + tl.update_time, + tl.create_time + + + + + + \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/support/quartz/QuartzTaskMapper.xml b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/support/quartz/QuartzTaskMapper.xml new file mode 100644 index 00000000..0bb88311 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/support/quartz/QuartzTaskMapper.xml @@ -0,0 +1,36 @@ + + + + + + + + t.id, + t.task_name, + t.task_bean, + t.task_params, + t.task_cron, + t.task_status, + t.remark, + t.update_time, + t.create_time + + + + + + + + UPDATE t_quartz_task t + set t.task_status = #{taskStatus} + WHERE t.id = #{taskId} + + + + \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/support/smartreload/ReloadItemMapper.xml b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/support/smartreload/ReloadItemMapper.xml new file mode 100644 index 00000000..03c1f67f --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/support/smartreload/ReloadItemMapper.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/support/smartreload/ReloadResultMapper.xml b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/support/smartreload/ReloadResultMapper.xml new file mode 100644 index 00000000..6c0caba1 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/support/smartreload/ReloadResultMapper.xml @@ -0,0 +1,18 @@ + + + + + + + + \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/system/datascope/DataScopeRoleMapper.xml b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/system/datascope/DataScopeRoleMapper.xml new file mode 100644 index 00000000..88bd6a9d --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/system/datascope/DataScopeRoleMapper.xml @@ -0,0 +1,36 @@ + + + + + + + + + + + + DELETE FROM t_role_data_scope + WHERE role_id = #{roleId} + + + + INSERT INTO t_role_data_scope (data_scope_type,view_type,role_id,update_time,create_time) VALUES + + ( + #{item.dataScopeType}, + #{item.viewType}, + #{item.roleId}, + now(), + now() + ) + + + + \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/system/department/DepartmentMapper.xml b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/system/department/DepartmentMapper.xml new file mode 100644 index 00000000..837a287c --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/system/department/DepartmentMapper.xml @@ -0,0 +1,54 @@ + + + + + + + + + + d.id, + d.name, + d.short_name, + d.manager_id, + d.parent_id, + d.sort, + d.update_time, + d.create_time + + + + + + + + + + + \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/system/employee/EmployeeMapper.xml b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/system/employee/EmployeeMapper.xml new file mode 100644 index 00000000..2b13a478 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/system/employee/EmployeeMapper.xml @@ -0,0 +1,186 @@ + + + + + + + + + + + e.id, + e.login_name, + e.login_pwd, + e.actual_name, + e.nick_name, + e.phone, + e.id_card, + e.birthday, + e.email, + e.department_id, + e.is_leave, + e.is_disabled, + e.remark, + e.is_delete, + e.update_time, + e.create_time + + + + + + + UPDATE t_employee e + set e.is_disabled = #{isDisabled} + WHERE id in + + #{item} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + UPDATE t_employee + SET login_pwd = #{password} + WHERE id = #{employeeId} + + + + \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/system/position/PositionMapper.xml b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/system/position/PositionMapper.xml new file mode 100644 index 00000000..a7ef4cce --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/system/position/PositionMapper.xml @@ -0,0 +1,77 @@ + + + + + + + id, + position_name, + remark, + update_time, + create_time + + + + + + + + + + INSERT INTO t_position_relation (position_id,employee_id) VALUES + + (#{item},#{batchDTO.employeeId}) + + + + + + DELETE FROM t_position_relation WHERE employee_id = #{employeeId} + + + \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/system/privilege/PrivilegeMapper.xml b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/system/privilege/PrivilegeMapper.xml new file mode 100644 index 00000000..7d224b22 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/system/privilege/PrivilegeMapper.xml @@ -0,0 +1,124 @@ + + + + + + + + p.id, + p.type, + p.name, + p.key, + p.url, + p.sort, + p.parent_key, + p.update_time, + p.create_time + + + + + + + + + + DELETE FROM t_privilege + WHERE `key` IN + + #{item} + + + + + DELETE FROM t_privilege + WHERE parent_key IN + + #{item} + + + + + INSERT INTO t_privilege (`type`, `name`, `key`,url,sort,parent_key,create_time,update_time) VALUES + + ( + #{item.type}, + #{item.name}, + #{item.key}, + #{item.url}, + #{item.sort}, + #{item.parentKey}, + now(), + now() + ) + + + + + + UPDATE t_privilege + SET `type`=#{item.type},`name`=#{item.name},url=#{item.url},sort=#{item.sort},parent_key=#{item.parentKey},update_time=now() + WHERE `key` = #{item.key} + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/system/role/RoleEmployeeMapper.xml b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/system/role/RoleEmployeeMapper.xml new file mode 100644 index 00000000..5984cb7d --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/system/role/RoleEmployeeMapper.xml @@ -0,0 +1,124 @@ + + + + + + + + + + er.id, + er.role_id, + er.employee_id, + er.update_time, + er.create_time + + + + + + + + + + + + + DELETE FROM t_role_employee + WHERE employee_id = #{employeeId} + + + + + DELETE FROM t_role_employee + WHERE role_id = #{roleId} + + + + DELETE FROM t_role_employee + WHERE role_id = #{roleId} and employee_id = #{employeeId} + + + + + DELETE FROM t_role_employee + WHERE role_id = #{roleId} and employee_id in + + #{item} + + + + + INSERT INTO t_role_employee (role_id, employee_id, update_time, create_time) VALUES + + ( + #{item.roleId}, + #{item.employeeId}, + now(), + now() + ) + + + + + \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/system/role/RoleMapper.xml b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/system/role/RoleMapper.xml new file mode 100644 index 00000000..5b7177dd --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/system/role/RoleMapper.xml @@ -0,0 +1,27 @@ + + + + + + + + + r.id, + r.role_name, + r.remark, + r.update_time, + r.create_time + + + + + + \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/system/role/RolePrivilegeMapper.xml b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/system/role/RolePrivilegeMapper.xml new file mode 100644 index 00000000..cb44911b --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/system/role/RolePrivilegeMapper.xml @@ -0,0 +1,72 @@ + + + + + + + + + + rp.id, + rp.role_id, + rp.privilege_key, + rp.update_time, + rp.create_time + + + + + DELETE FROM t_role_privilege + WHERE role_id = #{roleId} + + + + DELETE FROM t_role_privilege + WHERE privilege_key in + + #{item} + + + + + + INSERT INTO t_role_privilege (role_id, privilege_key, update_time, create_time) VALUES + + ( + #{item.roleId}, + #{item.privilegeKey}, + now(), + now() + ) + + + + + + + + + + + \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/system/systemconfig/SystemConfigMapper.xml b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/system/systemconfig/SystemConfigMapper.xml new file mode 100644 index 00000000..1cebf85b --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/mapper/system/systemconfig/SystemConfigMapper.xml @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/pre/application.properties b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/pre/application.properties new file mode 100644 index 00000000..fb3de5e5 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/pre/application.properties @@ -0,0 +1,121 @@ +######################### server ################### +server.servlet.context-path=/smart-admin-api +server.port=10086 +spring.profiles.active=@profiles.active@ + +######################### tomcat ################### +server.tomcat.basedir=/home/logs/smart-admin/tomcat-logs +server.tomcat.accesslog.enabled=true +server.tomcat.accesslog.pattern=%t %{X-Forwarded-For}i %a "%r" %s %D (%D ms) + +######################### jackson ######################### +spring.jackson.serialization.write-enums-using-to-string=true +spring.jackson.deserialization.read-enums-using-to-string=true +spring.jackson.deserialization.fail-on-unknown-properties=false +spring.jackson.default-property-inclusion=always +spring.jackson.date-format=yyyy-MM-dd HH:mm:ss +spring.jackson.time-zone=GMT+8 +spring.jackson.serialization.write-dates-as-timestamps=false + +######################### http file ######################### +spring.servlet.multipart.max-file-size=30MB +spring.servlet.multipart.max-request-size=30MB +file-upload-service.path=/home/upload/ + +######################### database ######################### +spring.datasource.url=jdbc:mysql://127.0.0.1:3306/smart-admin-dev?autoReconnect=true&useServerPreparedStmts=false&rewriteBatchedStatements=true&characterEncoding=UTF-8&useSSL=false&allowMultiQueries=true&serverTimezone=UTC +spring.datasource.username=root +spring.datasource.password=root +spring.datasource.initial-size=2 +spring.datasource.min-idle=1 +spring.datasource.max-active=10 +spring.datasource.max-wait=60000 +spring.datasource.time-between-eviction-runs-millis=60000 +spring.datasource.min-evictable-idle-time-millis=300000 +spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver +spring.datasource.filters=stat +spring.datasource.druid.username=druid +spring.datasource.druid.password=123456 +spring.datasource.druid.login.enabled=false + +######################### redis ####################################### +spring.redis.database=0 +spring.redis.host=127.0.0.1 +spring.redis.port=6379 +spring.redis.timeout=10000ms +spring.redis.password= +spring.redis.lettuce.pool.max-active=10 +spring.redis.lettuce.pool.min-idle=5 +spring.redis.lettuce.pool.max-idle=10 +spring.redis.lettuce.pool.max-wait=30000ms + +########################## rest http pool ######################### +#\u6700\u5927\u8FDE\u63A5\u6570 +http.pool.max-total=10 +#\u5355\u8DEF\u7531\u6700\u5927\u8FDE\u63A5\u6570 +http.pool.default-max-per-route=5 +#\u670D\u52A1\u5668\u8FD4\u56DE\u6570\u636E(response)\u7684\u65F6\u95F4 +http.pool.socket-timeout=8000 +#\u8FDE\u63A5\u4E0A\u670D\u52A1\u5668(\u63E1\u624B\u6210\u529F)\u7684\u65F6\u95F4 +http.pool.connect-timeout=8000 +#\u4ECE\u8FDE\u63A5\u6C60\u4E2D\u83B7\u53D6\u8FDE\u63A5\u7684\u8D85\u65F6\u65F6\u95F4 +http.pool.connection-request-timeout=8000 + +######################### mybatis\u914D\u7F6E ######################### +mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl +# mybatis-plus \u5B57\u6BB5\u9A7C\u5CF0\u81EA\u52A8\u8F6C\u6362 +mybatis-plus.configuration.map-underscore-to-camel-case=true +mybatis-plus.mapper-locations=classpath:/mapper/**/*.xml +mybatis-plus.typeAliasesPackage=net.lab1024.smartadmin.*.*.domain.entity +mybatis-plus.global-config.refresh-mapper=true +mybatis-plus.global-config.db-column-underline=true + +######################### swagger ######################### +swagger.apiGroupName=smartAdmin +swagger.title=smartAdmin +swagger.description=smartAdmin +swagger.version=1.0 +swagger.serviceUrl=http://localhost:10086/smart-admin-api +swagger.packAge=net.lab1024.smartadmin.module + +######################### jwt ######################### +jwt.key=smart-admin-jwt-key + +########################## smart reload ######################### +smart-reload.thread-count=1 +smart-reload.time-interval=30 + +######################### cros ######################### +access-control-allow-origin=* + +######################### heart beat ######################### +heart-beat.delayHandlerTime=60000 +heart-beat.intervalTime=60000 + +######################### quartz ############################# +#\u8C03\u5EA6\u6807\u8BC6\u540D \u96C6\u7FA4\u4E2D\u6BCF\u4E00\u4E2A\u5B9E\u4F8B\u90FD\u5FC5\u987B\u4F7F\u7528\u76F8\u540C\u7684\u540D\u79F0 +spring.quartz.properties.org.quartz.scheduler.instanceName=devClusteredScheduler +spring.quartz.properties.org.quartz.scheduler.instanceId=AUTO +#\u8FDC\u7A0B\u7BA1\u7406\u76F8\u5173\u7684\u914D\u7F6E,\u5168\u90E8\u5173\u95ED +spring.quartz.properties.org.quartz.scheduler.rmi.export=false +spring.quartz.properties.org.quartz.scheduler.rmi.proxy=false +#\u8DF3\u8FC7quartz\u7248\u672C\u68C0\u67E5 +spring.quartz.properties.org.quartz.scheduler.skipUpdateCheck=true +#\u6570\u636E\u4FDD\u5B58\u65B9\u5F0F\u4E3A\u6301\u4E45\u5316 +spring.quartz.properties.org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX +spring.quartz.properties.org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate +spring.quartz.properties.org.quartz.jobStore.tablePrefix=QRTZ_ +spring.quartz.properties.org.quartz.jobStore.isClustered=true +#\u8C03\u5EA6\u5B9E\u4F8B\u5931\u6548\u7684\u68C0\u67E5\u65F6\u95F4\u95F4\u9694 +spring.quartz.properties.org.quartz.jobStore.clusterCheckinInterval=10000 +spring.quartz.properties.org.quartz.jobStore.useProperties=false +#\u8C03\u5EA6\u7EBF\u7A0B +spring.quartz.properties.org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool +spring.quartz.properties.org.quartz.threadPool.threadCount=2 +spring.quartz.properties.org.quartz.threadPool.threadPriority=5 +spring.quartz.properties.org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread=true +spring.quartz.properties.org.quartz.threadPool.threadNamePrefix=quartz +spring.quartz.job-store-type=jdbc +#ALWAYS,EMBEDDED,NEVER +spring.quartz.jdbc.initialize-schema=NEVER +spring.quartz.jdbc.schema=classpath:sql/quartz_mysql_2.3.0.sql diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/pre/log4j2.xml b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/pre/log4j2.xml new file mode 100644 index 00000000..f1942baf --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/pre/log4j2.xml @@ -0,0 +1,97 @@ + + + + + /home/logs/smart-admin/dev/logs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/prod/application.properties b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/prod/application.properties new file mode 100644 index 00000000..94f75be2 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/prod/application.properties @@ -0,0 +1,120 @@ +######################### server ################### +server.servlet.context-path=/smart-admin-api +server.port=10088 +spring.profiles.active=@profiles.active@ + +######################### tomcat ################### +server.tomcat.basedir=/home/logs/smart-admin/tomcat-logs +server.tomcat.accesslog.enabled=true +server.tomcat.accesslog.pattern=%t %{X-Forwarded-For}i %a "%r" %s %D (%D ms) + +######################### jackson ######################### +spring.jackson.serialization.write-enums-using-to-string=true +spring.jackson.deserialization.read-enums-using-to-string=true +spring.jackson.deserialization.fail-on-unknown-properties=false +spring.jackson.default-property-inclusion=always +spring.jackson.date-format=yyyy-MM-dd HH:mm:ss +spring.jackson.time-zone=GMT+8 +spring.jackson.serialization.write-dates-as-timestamps=false + +######################### http file ######################### +spring.servlet.multipart.max-file-size=30MB +spring.servlet.multipart.max-request-size=30MB +file-upload-service.path=/home/upload/smart-admin-file + +######################### database ######################### +spring.datasource.url=jdbc:mysql://172.16.0.201:3306/smart-admin-prod?autoReconnect=true&useServerPreparedStmts=false&rewriteBatchedStatements=true&characterEncoding=UTF-8&useSSL=false&allowMultiQueries=true +spring.datasource.username=smart-admin +spring.datasource.password=Admin@123457 +spring.datasource.initial-size=2 +spring.datasource.min-idle=1 +spring.datasource.max-active=100 +spring.datasource.max-wait=60000 +spring.datasource.time-between-eviction-runs-millis=60000 +spring.datasource.min-evictable-idle-time-millis=300000 +spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver +spring.datasource.filters=stat +spring.datasource.druid.username=druid +spring.datasource.druid.password=druid +spring.datasource.druid.login.enabled=false + +######################### redis ####################################### +spring.redis.database=13 +spring.redis.host=127.0.0.1 +spring.redis.port=6379 +spring.redis.timeout=10000ms +spring.redis.password=Gq123456@ +spring.redis.lettuce.pool.max-active=10 +spring.redis.lettuce.pool.min-idle=5 +spring.redis.lettuce.pool.max-idle=10 +spring.redis.lettuce.pool.max-wait=30000ms + +########################## rest http pool ######################### +#\u6700\u5927\u8FDE\u63A5\u6570 +http.pool.max-total=10 +#\u5355\u8DEF\u7531\u6700\u5927\u8FDE\u63A5\u6570 +http.pool.default-max-per-route=5 +#\u670D\u52A1\u5668\u8FD4\u56DE\u6570\u636E(response)\u7684\u65F6\u95F4 +http.pool.socket-timeout=8000 +#\u8FDE\u63A5\u4E0A\u670D\u52A1\u5668(\u63E1\u624B\u6210\u529F)\u7684\u65F6\u95F4 +http.pool.connect-timeout=8000 +#\u4ECE\u8FDE\u63A5\u6C60\u4E2D\u83B7\u53D6\u8FDE\u63A5\u7684\u8D85\u65F6\u65F6\u95F4 +http.pool.connection-request-timeout=8000 + +######################### mybatis\u914D\u7F6E ######################### +mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl +# mybatis-plus \u5B57\u6BB5\u9A7C\u5CF0\u81EA\u52A8\u8F6C\u6362 +mybatis-plus.configuration.map-underscore-to-camel-case=true +mybatis-plus.mapper-locations=classpath:/mapper/**/*.xml +mybatis-plus.typeAliasesPackage=net.lab1024.smartadmin.*.*.domain.entity +mybatis-plus.global-config.refresh-mapper=true +mybatis-plus.global-config.db-column-underline=true + +######################### swagger ######################### +swagger.apiGroupName=smartAdmin +swagger.title=smartAdmin +swagger.description=smartAdmin +swagger.version=1.0 +swagger.serviceUrl=http://localhost:10086/smart-admin-api +swagger.packAge=net.lab1024.smartadmin.module + +######################### jwt ######################### +jwt.key=smart-admin-jwt-key + +########################## smart reload ######################### +smart-reload.thread-count=2 +smart-reload.time-interval=30 +######################### cros ######################### +access-control-allow-origin=preview.smartadmin.1024lab.net +######################### heart beat ######################### +heart-beat.delayHandlerTime=60000 +heart-beat.intervalTime=60000 + +######################### quartz ############################# +#\u8C03\u5EA6\u6807\u8BC6\u540D \u96C6\u7FA4\u4E2D\u6BCF\u4E00\u4E2A\u5B9E\u4F8B\u90FD\u5FC5\u987B\u4F7F\u7528\u76F8\u540C\u7684\u540D\u79F0 +spring.quartz.properties.org.quartz.scheduler.instanceName=prodClusteredScheduler +spring.quartz.properties.org.quartz.scheduler.instanceId=AUTO +#\u8FDC\u7A0B\u7BA1\u7406\u76F8\u5173\u7684\u914D\u7F6E,\u5168\u90E8\u5173\u95ED +spring.quartz.properties.org.quartz.scheduler.rmi.export=false +spring.quartz.properties.org.quartz.scheduler.rmi.proxy=false +#\u8DF3\u8FC7quartz\u7248\u672C\u68C0\u67E5 +spring.quartz.properties.org.quartz.scheduler.skipUpdateCheck=true +#\u6570\u636E\u4FDD\u5B58\u65B9\u5F0F\u4E3A\u6301\u4E45\u5316 +spring.quartz.properties.org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX +spring.quartz.properties.org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate +spring.quartz.properties.org.quartz.jobStore.tablePrefix=QRTZ_ +spring.quartz.properties.org.quartz.jobStore.isClustered=true +#\u8C03\u5EA6\u5B9E\u4F8B\u5931\u6548\u7684\u68C0\u67E5\u65F6\u95F4\u95F4\u9694 +spring.quartz.properties.org.quartz.jobStore.clusterCheckinInterval=10000 +spring.quartz.properties.org.quartz.jobStore.useProperties=false +#\u8C03\u5EA6\u7EBF\u7A0B +spring.quartz.properties.org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool +spring.quartz.properties.org.quartz.threadPool.threadCount=2 +spring.quartz.properties.org.quartz.threadPool.threadPriority=5 +spring.quartz.properties.org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread=true +spring.quartz.properties.org.quartz.threadPool.threadNamePrefix=quartz + +spring.quartz.job-store-type=jdbc +#ALWAYS,EMBEDDED,NEVER +spring.quartz.jdbc.initialize-schema=NEVER +spring.quartz.jdbc.schema=classpath:sql/quartz_mysql_2.3.0.sql diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/prod/log4j2.xml b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/prod/log4j2.xml new file mode 100644 index 00000000..4991f76e --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/prod/log4j2.xml @@ -0,0 +1,97 @@ + + + + + /home/logs/smart-admin + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/sit/application.properties b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/sit/application.properties new file mode 100644 index 00000000..c7c426cf --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/sit/application.properties @@ -0,0 +1,121 @@ +######################### server ################### +server.servlet.context-path=/smart-admin-api +server.port=10086 +spring.profiles.active=@profiles.active@ + +######################### tomcat ################### +server.tomcat.basedir=/home/logs/smart-admin/tomcat-logs +server.tomcat.accesslog.enabled=true +server.tomcat.accesslog.pattern=%t %{X-Forwarded-For}i %a "%r" %s %D (%D ms) + +######################### jackson ######################### +spring.jackson.serialization.write-enums-using-to-string=true +spring.jackson.deserialization.read-enums-using-to-string=true +spring.jackson.deserialization.fail-on-unknown-properties=false +spring.jackson.default-property-inclusion=always +spring.jackson.date-format=yyyy-MM-dd HH:mm:ss +spring.jackson.time-zone=GMT+8 +spring.jackson.serialization.write-dates-as-timestamps=false + +######################### http file ######################### +spring.servlet.multipart.max-file-size=30MB +spring.servlet.multipart.max-request-size=30MB +file-upload-service.path=/home/upload/ + +######################### database ######################### +spring.datasource.url=jdbc:p6spy:mysql://127.0.0.1:3306/smart-admin-sit?autoReconnect=true&useServerPreparedStmts=false&rewriteBatchedStatements=true&characterEncoding=UTF-8&useSSL=false&allowMultiQueries=true&serverTimezone=UTC +spring.datasource.username=root +spring.datasource.password=root +spring.datasource.initial-size=2 +spring.datasource.min-idle=1 +spring.datasource.max-active=10 +spring.datasource.max-wait=60000 +spring.datasource.time-between-eviction-runs-millis=60000 +spring.datasource.min-evictable-idle-time-millis=300000 +spring.datasource.driver-class-name=com.p6spy.engine.spy.P6SpyDriver +spring.datasource.filters=stat +spring.datasource.druid.username=druid +spring.datasource.druid.password=123456 +spring.datasource.druid.login.enabled=false + +######################### redis ####################################### +spring.redis.database=0 +spring.redis.host=127.0.0.1 +spring.redis.port=6379 +spring.redis.timeout=10000ms +spring.redis.password= +spring.redis.lettuce.pool.max-active=10 +spring.redis.lettuce.pool.min-idle=5 +spring.redis.lettuce.pool.max-idle=10 +spring.redis.lettuce.pool.max-wait=30000ms + +########################## rest http pool ######################### +#\u6700\u5927\u8FDE\u63A5\u6570 +http.pool.max-total=10 +#\u5355\u8DEF\u7531\u6700\u5927\u8FDE\u63A5\u6570 +http.pool.default-max-per-route=5 +#\u670D\u52A1\u5668\u8FD4\u56DE\u6570\u636E(response)\u7684\u65F6\u95F4 +http.pool.socket-timeout=8000 +#\u8FDE\u63A5\u4E0A\u670D\u52A1\u5668(\u63E1\u624B\u6210\u529F)\u7684\u65F6\u95F4 +http.pool.connect-timeout=8000 +#\u4ECE\u8FDE\u63A5\u6C60\u4E2D\u83B7\u53D6\u8FDE\u63A5\u7684\u8D85\u65F6\u65F6\u95F4 +http.pool.connection-request-timeout=8000 + +######################### mybatis\u914D\u7F6E ######################### +mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl +# mybatis-plus \u5B57\u6BB5\u9A7C\u5CF0\u81EA\u52A8\u8F6C\u6362 +mybatis-plus.configuration.map-underscore-to-camel-case=true +mybatis-plus.mapper-locations=classpath:/mapper/**/*.xml +mybatis-plus.typeAliasesPackage=net.lab1024.smartadmin.*.*.domain.entity +mybatis-plus.global-config.refresh-mapper=true +mybatis-plus.global-config.db-column-underline=true + +######################### swagger ######################### +swagger.apiGroupName=smartAdmin +swagger.title=smartAdmin +swagger.description=smartAdmin +swagger.version=1.0 +swagger.serviceUrl=http://localhost:10086/smart-admin-api +swagger.packAge=net.lab1024.smartadmin.module + +######################### jwt ######################### +jwt.key=smart-admin-jwt-key + +########################## smart reload ######################### +smart-reload.thread-count=1 +smart-reload.time-interval=120 + +######################### cros ######################### +access-control-allow-origin=* + +######################### heart beat ######################### +heart-beat.delayHandlerTime=60000 +heart-beat.intervalTime=300000 + +######################### quartz ############################# +#\u8C03\u5EA6\u6807\u8BC6\u540D \u96C6\u7FA4\u4E2D\u6BCF\u4E00\u4E2A\u5B9E\u4F8B\u90FD\u5FC5\u987B\u4F7F\u7528\u76F8\u540C\u7684\u540D\u79F0 +spring.quartz.properties.org.quartz.scheduler.instanceName=devClusteredScheduler +spring.quartz.properties.org.quartz.scheduler.instanceId=AUTO +#\u8FDC\u7A0B\u7BA1\u7406\u76F8\u5173\u7684\u914D\u7F6E,\u5168\u90E8\u5173\u95ED +spring.quartz.properties.org.quartz.scheduler.rmi.export=false +spring.quartz.properties.org.quartz.scheduler.rmi.proxy=false +#\u8DF3\u8FC7quartz\u7248\u672C\u68C0\u67E5 +spring.quartz.properties.org.quartz.scheduler.skipUpdateCheck=true +#\u6570\u636E\u4FDD\u5B58\u65B9\u5F0F\u4E3A\u6301\u4E45\u5316 +spring.quartz.properties.org.quartz.jobStore.class=org.quartz.impl.jdbcjobstore.JobStoreTX +spring.quartz.properties.org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.StdJDBCDelegate +spring.quartz.properties.org.quartz.jobStore.tablePrefix=QRTZ_ +spring.quartz.properties.org.quartz.jobStore.isClustered=true +#\u8C03\u5EA6\u5B9E\u4F8B\u5931\u6548\u7684\u68C0\u67E5\u65F6\u95F4\u95F4\u9694 +spring.quartz.properties.org.quartz.jobStore.clusterCheckinInterval=10000 +spring.quartz.properties.org.quartz.jobStore.useProperties=false +#\u8C03\u5EA6\u7EBF\u7A0B +spring.quartz.properties.org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool +spring.quartz.properties.org.quartz.threadPool.threadCount=2 +spring.quartz.properties.org.quartz.threadPool.threadPriority=5 +spring.quartz.properties.org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread=true +spring.quartz.properties.org.quartz.threadPool.threadNamePrefix=quartz +spring.quartz.job-store-type=jdbc +#ALWAYS,EMBEDDED,NEVER +spring.quartz.jdbc.initialize-schema=NEVER +spring.quartz.jdbc.schema=classpath:sql/quartz_mysql_2.3.0.sql diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/sit/log4j2.xml b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/sit/log4j2.xml new file mode 100644 index 00000000..ac533c99 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/sit/log4j2.xml @@ -0,0 +1,97 @@ + + + + + /home/logs/smart-admin/dev/logs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/sit/spy.properties b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/sit/spy.properties new file mode 100644 index 00000000..22c91d1e --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/sit/spy.properties @@ -0,0 +1,20 @@ +#modulelist=com.baomidou.mybatisplus.extension.p6spy.MybatisPlusLogFactory +# \u81EA\u5B9A\u4E49\u65E5\u5FD7\u6253\u5370 +logMessageFormat=com.baomidou.mybatisplus.extension.p6spy.P6SpyLogger +#\u65E5\u5FD7\u8F93\u51FA\u5230\u63A7\u5236\u53F0 +appender=com.baomidou.mybatisplus.extension.p6spy.StdoutLogger +# \u4F7F\u7528\u65E5\u5FD7\u7CFB\u7EDF\u8BB0\u5F55 sql +#appender=com.p6spy.engine.spy.appender.Slf4JLogger +# \u8BBE\u7F6E p6spy driver \u4EE3\u7406 +deregisterdrivers=true +# \u53D6\u6D88JDBC URL\u524D\u7F00 +useprefix=true +# \u914D\u7F6E\u8BB0\u5F55 Log \u4F8B\u5916,\u53EF\u53BB\u6389\u7684\u7ED3\u679C\u96C6\u6709error,info,batch,debug,statement,commit,rollback,result,resultset. +#excludecategories=info,debug,result,commit,resultset +# \u65E5\u671F\u683C\u5F0F +dateformat=yyyy-MM-dd HH:mm:ss + +# \u662F\u5426\u5F00\u542F\u6162SQL\u8BB0\u5F55 +outagedetection=true +# \u6162SQL\u8BB0\u5F55\u6807\u51C6 2 \u79D2 +outagedetectioninterval=2 \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/sql/quartz_mysql_2.3.0.sql b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/sql/quartz_mysql_2.3.0.sql new file mode 100644 index 00000000..8968c23f --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/sql/quartz_mysql_2.3.0.sql @@ -0,0 +1,179 @@ +# +# In your Quartz properties file, you'll need to set +# org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.StdJDBCDelegate +# +# +# By: Ron Cordell - roncordell +# I didn't see this anywhere, so I thought I'd post it here. This is the script from Quartz to create the tables in a MySQL database, modified to use INNODB instead of MYISAM. + +DROP TABLE IF EXISTS QRTZ_FIRED_TRIGGERS; +DROP TABLE IF EXISTS QRTZ_PAUSED_TRIGGER_GRPS; +DROP TABLE IF EXISTS QRTZ_SCHEDULER_STATE; +DROP TABLE IF EXISTS QRTZ_LOCKS; +DROP TABLE IF EXISTS QRTZ_SIMPLE_TRIGGERS; +DROP TABLE IF EXISTS QRTZ_SIMPROP_TRIGGERS; +DROP TABLE IF EXISTS QRTZ_CRON_TRIGGERS; +DROP TABLE IF EXISTS QRTZ_BLOB_TRIGGERS; +DROP TABLE IF EXISTS QRTZ_TRIGGERS; +DROP TABLE IF EXISTS QRTZ_JOB_DETAILS; +DROP TABLE IF EXISTS QRTZ_CALENDARS; + +CREATE TABLE QRTZ_JOB_DETAILS( +SCHED_NAME VARCHAR(120) NOT NULL, +JOB_NAME VARCHAR(190) NOT NULL, +JOB_GROUP VARCHAR(190) NOT NULL, +DESCRIPTION VARCHAR(250) NULL, +JOB_CLASS_NAME VARCHAR(250) NOT NULL, +IS_DURABLE VARCHAR(1) NOT NULL, +IS_NONCONCURRENT VARCHAR(1) NOT NULL, +IS_UPDATE_DATA VARCHAR(1) NOT NULL, +REQUESTS_RECOVERY VARCHAR(1) NOT NULL, +JOB_DATA BLOB NULL, +PRIMARY KEY (SCHED_NAME,JOB_NAME,JOB_GROUP)) +ENGINE=InnoDB; + +CREATE TABLE QRTZ_TRIGGERS ( +SCHED_NAME VARCHAR(120) NOT NULL, +TRIGGER_NAME VARCHAR(190) NOT NULL, +TRIGGER_GROUP VARCHAR(190) NOT NULL, +JOB_NAME VARCHAR(190) NOT NULL, +JOB_GROUP VARCHAR(190) NOT NULL, +DESCRIPTION VARCHAR(250) NULL, +NEXT_FIRE_TIME BIGINT(13) NULL, +PREV_FIRE_TIME BIGINT(13) NULL, +PRIORITY INTEGER NULL, +TRIGGER_STATE VARCHAR(16) NOT NULL, +TRIGGER_TYPE VARCHAR(8) NOT NULL, +START_TIME BIGINT(13) NOT NULL, +END_TIME BIGINT(13) NULL, +CALENDAR_NAME VARCHAR(190) NULL, +MISFIRE_INSTR SMALLINT(2) NULL, +JOB_DATA BLOB NULL, +PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), +FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP) +REFERENCES QRTZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP)) +ENGINE=InnoDB; + +CREATE TABLE QRTZ_SIMPLE_TRIGGERS ( +SCHED_NAME VARCHAR(120) NOT NULL, +TRIGGER_NAME VARCHAR(190) NOT NULL, +TRIGGER_GROUP VARCHAR(190) NOT NULL, +REPEAT_COUNT BIGINT(7) NOT NULL, +REPEAT_INTERVAL BIGINT(12) NOT NULL, +TIMES_TRIGGERED BIGINT(10) NOT NULL, +PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), +FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)) +ENGINE=InnoDB; + +CREATE TABLE QRTZ_CRON_TRIGGERS ( +SCHED_NAME VARCHAR(120) NOT NULL, +TRIGGER_NAME VARCHAR(190) NOT NULL, +TRIGGER_GROUP VARCHAR(190) NOT NULL, +CRON_EXPRESSION VARCHAR(120) NOT NULL, +TIME_ZONE_ID VARCHAR(80), +PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), +FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)) +ENGINE=InnoDB; + +CREATE TABLE QRTZ_SIMPROP_TRIGGERS + ( + SCHED_NAME VARCHAR(120) NOT NULL, + TRIGGER_NAME VARCHAR(190) NOT NULL, + TRIGGER_GROUP VARCHAR(190) NOT NULL, + STR_PROP_1 VARCHAR(512) NULL, + STR_PROP_2 VARCHAR(512) NULL, + STR_PROP_3 VARCHAR(512) NULL, + INT_PROP_1 INT NULL, + INT_PROP_2 INT NULL, + LONG_PROP_1 BIGINT NULL, + LONG_PROP_2 BIGINT NULL, + DEC_PROP_1 NUMERIC(13,4) NULL, + DEC_PROP_2 NUMERIC(13,4) NULL, + BOOL_PROP_1 VARCHAR(1) NULL, + BOOL_PROP_2 VARCHAR(1) NULL, + PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), + FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) + REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)) +ENGINE=InnoDB; + +CREATE TABLE QRTZ_BLOB_TRIGGERS ( +SCHED_NAME VARCHAR(120) NOT NULL, +TRIGGER_NAME VARCHAR(190) NOT NULL, +TRIGGER_GROUP VARCHAR(190) NOT NULL, +BLOB_DATA BLOB NULL, +PRIMARY KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP), +INDEX (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP), +FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP) +REFERENCES QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)) +ENGINE=InnoDB; + +CREATE TABLE QRTZ_CALENDARS ( +SCHED_NAME VARCHAR(120) NOT NULL, +CALENDAR_NAME VARCHAR(190) NOT NULL, +CALENDAR BLOB NOT NULL, +PRIMARY KEY (SCHED_NAME,CALENDAR_NAME)) +ENGINE=InnoDB; + +CREATE TABLE QRTZ_PAUSED_TRIGGER_GRPS ( +SCHED_NAME VARCHAR(120) NOT NULL, +TRIGGER_GROUP VARCHAR(190) NOT NULL, +PRIMARY KEY (SCHED_NAME,TRIGGER_GROUP)) +ENGINE=InnoDB; + +CREATE TABLE QRTZ_FIRED_TRIGGERS ( +SCHED_NAME VARCHAR(120) NOT NULL, +ENTRY_ID VARCHAR(95) NOT NULL, +TRIGGER_NAME VARCHAR(190) NOT NULL, +TRIGGER_GROUP VARCHAR(190) NOT NULL, +INSTANCE_NAME VARCHAR(190) NOT NULL, +FIRED_TIME BIGINT(13) NOT NULL, +SCHED_TIME BIGINT(13) NOT NULL, +PRIORITY INTEGER NOT NULL, +STATE VARCHAR(16) NOT NULL, +JOB_NAME VARCHAR(190) NULL, +JOB_GROUP VARCHAR(190) NULL, +IS_NONCONCURRENT VARCHAR(1) NULL, +REQUESTS_RECOVERY VARCHAR(1) NULL, +PRIMARY KEY (SCHED_NAME,ENTRY_ID)) +ENGINE=InnoDB; + +CREATE TABLE QRTZ_SCHEDULER_STATE ( +SCHED_NAME VARCHAR(120) NOT NULL, +INSTANCE_NAME VARCHAR(190) NOT NULL, +LAST_CHECKIN_TIME BIGINT(13) NOT NULL, +CHECKIN_INTERVAL BIGINT(13) NOT NULL, +PRIMARY KEY (SCHED_NAME,INSTANCE_NAME)) +ENGINE=InnoDB; + +CREATE TABLE QRTZ_LOCKS ( +SCHED_NAME VARCHAR(120) NOT NULL, +LOCK_NAME VARCHAR(40) NOT NULL, +PRIMARY KEY (SCHED_NAME,LOCK_NAME)) +ENGINE=InnoDB; + +CREATE INDEX IDX_QRTZ_J_REQ_RECOVERY ON QRTZ_JOB_DETAILS(SCHED_NAME,REQUESTS_RECOVERY); +CREATE INDEX IDX_QRTZ_J_GRP ON QRTZ_JOB_DETAILS(SCHED_NAME,JOB_GROUP); + +CREATE INDEX IDX_QRTZ_T_J ON QRTZ_TRIGGERS(SCHED_NAME,JOB_NAME,JOB_GROUP); +CREATE INDEX IDX_QRTZ_T_JG ON QRTZ_TRIGGERS(SCHED_NAME,JOB_GROUP); +CREATE INDEX IDX_QRTZ_T_C ON QRTZ_TRIGGERS(SCHED_NAME,CALENDAR_NAME); +CREATE INDEX IDX_QRTZ_T_G ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_GROUP); +CREATE INDEX IDX_QRTZ_T_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_STATE); +CREATE INDEX IDX_QRTZ_T_N_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP,TRIGGER_STATE); +CREATE INDEX IDX_QRTZ_T_N_G_STATE ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_GROUP,TRIGGER_STATE); +CREATE INDEX IDX_QRTZ_T_NEXT_FIRE_TIME ON QRTZ_TRIGGERS(SCHED_NAME,NEXT_FIRE_TIME); +CREATE INDEX IDX_QRTZ_T_NFT_ST ON QRTZ_TRIGGERS(SCHED_NAME,TRIGGER_STATE,NEXT_FIRE_TIME); +CREATE INDEX IDX_QRTZ_T_NFT_MISFIRE ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME); +CREATE INDEX IDX_QRTZ_T_NFT_ST_MISFIRE ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_STATE); +CREATE INDEX IDX_QRTZ_T_NFT_ST_MISFIRE_GRP ON QRTZ_TRIGGERS(SCHED_NAME,MISFIRE_INSTR,NEXT_FIRE_TIME,TRIGGER_GROUP,TRIGGER_STATE); + +CREATE INDEX IDX_QRTZ_FT_TRIG_INST_NAME ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,INSTANCE_NAME); +CREATE INDEX IDX_QRTZ_FT_INST_JOB_REQ_RCVRY ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,INSTANCE_NAME,REQUESTS_RECOVERY); +CREATE INDEX IDX_QRTZ_FT_J_G ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,JOB_NAME,JOB_GROUP); +CREATE INDEX IDX_QRTZ_FT_JG ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,JOB_GROUP); +CREATE INDEX IDX_QRTZ_FT_T_G ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP); +CREATE INDEX IDX_QRTZ_FT_TG ON QRTZ_FIRED_TRIGGERS(SCHED_NAME,TRIGGER_GROUP); + +commit; diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/sql/smart-admin.sql b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/sql/smart-admin.sql new file mode 100644 index 00000000..dfd8e8c1 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/sql/smart-admin.sql @@ -0,0 +1,1588 @@ +-- -------------------------------------------------------- +-- 主机: 127.0.0.1 +-- 服务器版本: 8.0.20 - MySQL Community Server - GPL +-- 服务器操作系统: Win64 +-- HeidiSQL 版本: 11.0.0.5919 +-- -------------------------------------------------------- + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET NAMES utf8 */; +/*!50503 SET NAMES utf8mb4 */; +/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; +/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; + + +-- 导出 smart-admin-dev 的数据库结构 +DROP DATABASE IF EXISTS `smart-admin-dev`; +CREATE DATABASE IF NOT EXISTS `smart-admin-dev` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci */ /*!80016 DEFAULT ENCRYPTION='N' */; +USE `smart-admin-dev`; + +-- 导出 表 smart-admin-dev.t_department 结构 +DROP TABLE IF EXISTS `t_department`; +CREATE TABLE IF NOT EXISTS `t_department` ( + `id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '部门主键id', + `name` varchar(50) NOT NULL COMMENT '部门名称', + `short_name` varchar(50) DEFAULT NULL COMMENT '部门简称', + `manager_id` int unsigned DEFAULT NULL COMMENT '部门负责人id', + `parent_id` int unsigned DEFAULT NULL COMMENT '部门的父级id', + `sort` int NOT NULL COMMENT '部门排序', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + PRIMARY KEY (`id`), + KEY `parent_id` (`parent_id`) +) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='部门表'; + +-- 正在导出表 smart-admin-dev.t_department 的数据:~4 rows (大约) +DELETE FROM `t_department`; +/*!40000 ALTER TABLE `t_department` DISABLE KEYS */; +INSERT INTO `t_department` (`id`, `name`, `short_name`, `manager_id`, `parent_id`, `sort`, `update_time`, `create_time`) VALUES + (1, '1024创新实验室', 'ZWGWL', 16, 0, 1, '2019-04-03 10:41:25', '2019-04-03 10:41:25'), + (2, '二级部门-2', NULL, 15, 1, 17, '2019-04-15 16:45:10', '2019-04-15 16:45:10'), + (4, '二级部门-1', '管理', 14, 1, 20, '2019-04-17 16:14:55', '2019-04-17 16:14:55'), + (8, '三级部门-1', NULL, NULL, 4, 8, '2019-04-25 12:25:52', '2019-04-25 12:25:52'), + (9, '四级部门-1', NULL, NULL, 8, 9, '2019-04-25 12:26:36', '2019-04-25 12:26:36'), + (10, '五级部门-1', NULL, NULL, 9, 10, '2019-04-25 12:26:49', '2019-04-25 12:26:49'), + (11, '六级部门-1', NULL, NULL, 10, 11, '2019-04-25 12:26:59', '2019-04-25 12:26:59'), + (12, '七级部门-1', NULL, NULL, 11, 12, '2019-04-25 12:27:18', '2019-04-25 12:27:18'), + (13, '八级部门-1', NULL, NULL, 12, 13, '2019-04-25 12:27:34', '2019-04-25 12:27:34'), + (14, '九级部门-1', NULL, NULL, 13, 14, '2019-04-25 12:27:47', '2019-04-25 12:27:47'), + (15, '十级部门-1', NULL, NULL, 14, 15, '2019-04-25 12:28:16', '2019-04-25 12:28:16'), + (16, '十一级部门部门部部门门嘻嘻哈哈-1', NULL, 13, 15, 16, '2019-04-25 14:56:40', '2019-04-25 14:56:40'), + (17, '信息中心', NULL, 16, 1, 4, '2019-04-26 11:53:50', '2019-04-26 11:53:50'), + (18, '测试部门', NULL, 16, 17, 18, '2019-04-26 11:54:06', '2019-04-26 11:54:06'), + (19, '张娇测试', NULL, NULL, 2, 22, '2019-04-26 14:36:18', '2019-04-26 14:36:18'), + (20, '子部门', NULL, NULL, 2, 23, '2019-04-26 14:36:28', '2019-04-26 14:36:28'), + (22, '张静如', NULL, 16, 1, 2, '2019-04-28 14:21:44', '2019-04-28 14:21:44'), + (23, '张静如2', NULL, 22, 4, 19, '2019-04-28 14:22:48', '2019-04-28 14:22:48'), + (24, '测试', NULL, 18, 23, 24, '2019-04-29 10:12:42', '2019-04-29 10:12:42'), + (25, '测试', NULL, 18, 23, 25, '2019-04-29 10:12:42', '2019-04-29 10:12:42'); +/*!40000 ALTER TABLE `t_department` ENABLE KEYS */; + +-- 导出 表 smart-admin-dev.t_email 结构 +DROP TABLE IF EXISTS `t_email`; +CREATE TABLE IF NOT EXISTS `t_email` ( + `id` int NOT NULL AUTO_INCREMENT, + `title` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '标题', + `to_emails` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '收件人', + `send_status` tinyint NOT NULL DEFAULT '0' COMMENT '发送状态 0未发送 1已发送', + `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '邮件内容', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=87 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- 正在导出表 smart-admin-dev.t_email 的数据:~56 rows (大约) +DELETE FROM `t_email`; +/*!40000 ALTER TABLE `t_email` DISABLE KEYS */; +INSERT INTO `t_email` (`id`, `title`, `to_emails`, `send_status`, `content`, `create_time`, `update_time`) VALUES + (20, '新增测试12345', '新增测试@11.com', 1, '

这是内容

', '2019-08-30 15:35:12', '2019-08-30 15:35:12'), + (21, 'b', 'asdf@33.com', 1, '

c

', '2019-09-06 14:25:33', '2019-09-06 14:25:33'), + (23, 'string', 'string', 0, 'string', '2019-09-06 06:55:01', '2019-09-06 06:55:01'), + (24, 'string', 'string', 0, 'string', '2019-09-06 06:55:01', '2019-09-06 06:55:01'), + (26, 'string', 'string', 0, 'string', '2019-09-06 07:01:32', '2019-09-06 07:01:32'), + (27, 'string', 'string', 0, 'string', '2019-09-06 07:01:32', '2019-09-06 07:01:32'), + (37, 'ewqwe', '适者生存@22.cc', 1, '

qweqwe

', '2019-11-09 10:00:46', '2019-11-09 10:00:46'), + (38, 'ewqwe', '适者生存@22.cc', 1, '

qweqwe

', '2019-11-09 10:00:49', '2019-11-09 10:00:49'), + (39, 'dsfds', 'dsfsd@qq.ccc', 1, '

fsdfs

', '2019-11-09 10:04:54', '2019-11-09 10:04:54'), + (40, 'dsfds', 'dsfsd@qq.ccc', 1, '

fsdfs

', '2019-11-09 10:04:57', '2019-11-09 10:04:57'), + (41, 'dsfds', 'dsfsd@qq.ccc', 1, '

fsdfs

', '2019-11-09 10:04:57', '2019-11-09 10:04:57'), + (42, 'dsfds', 'dsfsd@qq.ccc', 1, '

fsdfs

', '2019-11-09 10:04:58', '2019-11-09 10:04:58'), + (43, 'dsfds', 'dsfsd@qq.ccc', 1, '

fsdfs

', '2019-11-09 10:04:59', '2019-11-09 10:04:59'), + (44, 'dsfds', 'dsfsd@qq.ccc', 1, '

fsdfs

', '2019-11-09 10:04:59', '2019-11-09 10:04:59'), + (45, 'dsfds', 'dsfsd@qq.ccc', 1, '

fsdfs

', '2019-11-09 10:05:16', '2019-11-09 10:05:16'), + (46, 'dsfds', 'dsfsd@qq.ccc', 1, '

fsdfs

', '2019-11-09 10:06:29', '2019-11-09 10:06:29'), + (47, 'dsfds', 'dsfsd@qq.ccc', 1, '

fsdfs

', '2019-11-09 10:07:02', '2019-11-09 10:07:02'), + (48, 'dsfds', 'dsfsd@qq.ccc', 1, '

fsdfs

', '2019-11-09 10:07:16', '2019-11-09 10:07:16'), + (49, '2342', '11@ss.cc', 1, '

234234

', '2019-11-09 10:08:13', '2019-11-09 10:08:13'), + (50, '2342', '11@ss.cc', 1, '

234234

', '2019-11-09 10:08:30', '2019-11-09 10:08:30'), + (51, '2342', '11@ss.cc', 1, '

234234

', '2019-11-09 10:08:50', '2019-11-09 10:08:50'), + (52, '2342', '11@ss.cc', 1, '

234234

', '2019-11-09 10:09:09', '2019-11-09 10:09:09'), + (53, '2342', '11@ss.cc', 1, '

234234

', '2019-11-09 10:09:31', '2019-11-09 10:09:31'), + (54, '2342', '11@ss.cc', 1, '

234234

', '2019-11-09 10:12:24', '2019-11-09 10:12:24'), + (55, '2342', '11@ss.cc', 1, '

234234

', '2019-11-09 10:13:13', '2019-11-09 10:13:13'), + (56, 'asdasd', '3423@aqq.cc', 0, '

asdasd

', '2019-11-09 10:20:42', '2019-11-09 10:20:42'), + (57, 'asdasd', '3423@aqq.cc', 0, '

asdasd

', '2019-11-09 10:20:52', '2019-11-09 10:20:52'), + (58, 'asdasd', '3423@aqq.cc', 0, '

asdasd

', '2019-11-09 10:21:16', '2019-11-09 10:21:16'), + (59, 'asdasd', '3423@aqq.cc', 0, '

asdasd

', '2019-11-09 10:21:24', '2019-11-09 10:21:24'), + (60, 'asdasd', '3423@aqq.cc', 0, '

asdasd

', '2019-11-09 10:21:30', '2019-11-09 10:21:30'), + (61, 'asdasd', '3423@aqq.cc', 0, '

asdasd

', '2019-11-09 10:21:53', '2019-11-09 10:21:53'), + (62, 'a21312', '23423@qq.cc', 0, '

asdasdas

', '2019-11-09 10:23:40', '2019-11-09 10:23:40'), + (63, '11', '1234@qq.com', 0, '

23

', '2019-11-15 15:35:12', '2019-11-15 15:35:12'), + (64, '11', '1234@qq.com', 0, '

23

', '2019-11-15 15:35:15', '2019-11-15 15:35:15'), + (65, '11', '1234@qq.com', 0, '

23

', '2019-11-15 15:35:16', '2019-11-15 15:35:16'), + (66, 'eeee', '1234@qq.com', 0, '

    eee2233

', '2019-11-15 17:00:00', '2019-11-15 17:00:00'), + (67, 'eeee', '1234@qq.com', 0, '

    eee2233

', '2019-11-15 17:00:03', '2019-11-15 17:00:03'), + (68, 'eeee', '1234@qq.com', 0, '

    eee2233

', '2019-11-15 17:00:04', '2019-11-15 17:00:04'), + (69, '22223', '1017146812@qq.com', 0, '

    e34233

', '2019-11-15 17:00:33', '2019-11-15 17:00:33'), + (70, '22223', '1017146812@qq.com', 0, '

    e34233

', '2019-11-15 17:00:34', '2019-11-15 17:00:34'), + (71, '22223', '1017146812@qq.com', 0, '

    e34233

', '2019-11-15 17:00:34', '2019-11-15 17:00:34'), + (72, '22223', '12232', 0, '

    e34233

', '2019-11-15 17:00:49', '2019-11-15 17:00:49'), + (73, '22223', '12232@qq.com', 0, '

    e34233

', '2019-11-15 17:00:56', '2019-11-15 17:00:56'), + (74, 'dsasdasd', 'asdas@qq.com', 0, '

asdasd

', '2019-11-16 08:51:44', '2019-11-16 08:51:44'), + (75, 'dsasdasd', 'asdas@qq.com', 0, '

asdasd

', '2019-11-16 09:05:10', '2019-11-16 09:05:10'), + (76, 'dsasdasd', 'asdas@qq.com', 0, '

asdasd

', '2019-11-16 09:05:14', '2019-11-16 09:05:14'), + (77, 'dsasdasd', 'asdas@qq.com', 0, '

asdasd

', '2019-11-16 09:06:34', '2019-11-16 09:06:34'), + (78, 'dsasdasd', 'asdas@qq.com', 0, '

asdasd

', '2019-11-16 09:07:09', '2019-11-16 09:07:09'), + (79, 'dsasdasd', 'asdas@qq.com', 0, '

asdasd

', '2019-11-16 09:07:30', '2019-11-16 09:07:30'), + (80, 'dsasdasd', 'asdas@qq.com', 0, '

asdasd

', '2019-11-16 09:07:32', '2019-11-16 09:07:32'), + (81, 'dsasdasd', 'asdas@qq.com', 0, '

asdasd

', '2019-11-16 09:08:29', '2019-11-16 09:08:29'), + (82, 'sdfs', 'ss@ss.cc', 0, '

dsdsf

', '2019-11-16 09:08:46', '2019-11-16 09:08:46'), + (83, 'asdasd', 'asd@qq.vv', 0, '

asdas

', '2019-11-16 09:09:18', '2019-11-16 09:09:18'), + (84, 'asdasd', 'asd@qq.vv', 0, '

asdas

', '2019-11-16 09:09:42', '2019-11-16 09:09:42'), + (85, 'asdasd', 'asd@qq.vv', 0, '

asdas

', '2019-11-16 09:09:46', '2019-11-16 09:09:46'), + (86, 'dasdad', 'dasda@ss.cc', 1, '

dasasdas

', '2019-11-16 09:10:05', '2019-11-16 09:10:05'); +/*!40000 ALTER TABLE `t_email` ENABLE KEYS */; + +-- 导出 表 smart-admin-dev.t_employee 结构 +DROP TABLE IF EXISTS `t_employee`; +CREATE TABLE IF NOT EXISTS `t_employee` ( + `id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '主键', + `login_name` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '登录帐号', + `login_pwd` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '登录密码', + `actual_name` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '员工名称', + `nick_name` varchar(30) DEFAULT '' COMMENT '别名', + `phone` varchar(15) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '手机号码', + `id_card` varchar(18) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '身份证', + `birthday` date DEFAULT NULL COMMENT '出生日期', + `email` varchar(50) DEFAULT NULL COMMENT '邮箱', + `department_id` int unsigned NOT NULL COMMENT '部门id', + `is_leave` int NOT NULL DEFAULT '0' COMMENT '是否离职1是', + `is_disabled` int NOT NULL DEFAULT '0' COMMENT '是否被禁用 0否1是', + `remark` varchar(200) DEFAULT NULL COMMENT '备注', + `create_user` int unsigned NOT NULL COMMENT '创建者id', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `is_delete` int NOT NULL DEFAULT '0' COMMENT '是否删除0否 1是', + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=40 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='员工表'; + +-- 正在导出表 smart-admin-dev.t_employee 的数据:~28 rows (大约) +DELETE FROM `t_employee`; +/*!40000 ALTER TABLE `t_employee` DISABLE KEYS */; +INSERT INTO `t_employee` (`id`, `login_name`, `login_pwd`, `actual_name`, `nick_name`, `phone`, `id_card`, `birthday`, `email`, `department_id`, `is_leave`, `is_disabled`, `remark`, `create_user`, `update_time`, `create_time`, `is_delete`) VALUES + (1, 'sa', 'c655798e4648c540812a1b8f48759af7', '管理员', '15515515515', '13112312131', '410306199202020020', '1992-02-02', NULL, 1, 0, 0, NULL, 0, '2019-04-27 09:56:17', '2018-05-11 09:38:54', 0), + (11, 'role1', 'c655798e4648c540812a1b8f48759af7', '角色测试1', '', '18123245230', '', '1970-01-01', '', 4, 0, 0, NULL, 1, '2019-04-27 09:56:17', '2019-04-25 12:30:22', 0), + (12, 'role2', 'c655798e4648c540812a1b8f48759af7', '角色测试2', '', '18121451241', '', NULL, '', 4, 0, 0, NULL, 1, '2019-08-01 10:04:38', '2019-04-25 12:31:11', 0), + (13, 'lihaifan', 'c655798e4648c540812a1b8f48759af7', 'lihaifan', '', '18399485774', '', NULL, '', 1, 0, 0, NULL, 1, '2019-04-27 09:56:17', '2019-04-25 13:50:44', 0), + (14, 'lipeng', 'c655798e4648c540812a1b8f48759af7', '李鹏1', '', '13937988294', '', NULL, '', 2, 0, 0, NULL, 1, '2019-04-27 09:56:17', '2019-04-25 14:34:47', 0), + (15, 'huangwenli', 'c655798e4648c540812a1b8f48759af7', '黄文丽', '', '15515515515', '', NULL, '', 16, 0, 0, NULL, 1, '2019-04-27 09:56:17', '2019-04-26 10:05:05', 0), + (16, 'huangwenli1', 'c655798e4648c540812a1b8f48759af7', '黄文丽', '', '15515515515', '', NULL, '', 15, 0, 0, NULL, 1, '2019-04-27 14:04:19', '2019-04-26 10:25:04', 0), + (17, 'zhangjiao', 'c655798e4648c540812a1b8f48759af7', '张娇', '阿娇', '15670390391', '410305199102020020', '1991-02-02', '86484@qq.com', 19, 0, 0, NULL, 1, '2019-08-05 16:33:57', '2019-04-26 14:37:23', 0), + (18, 'zhangjiao1', 'c655798e4648c540812a1b8f48759af7', '张娇1', '', '15670390391', '', '2019-04-18', '6666@qq.com', 20, 0, 0, NULL, 1, '2019-08-05 16:33:57', '2019-04-26 14:45:55', 0), + (19, 'zhenxiaocang', 'c655798e4648c540812a1b8f48759af7', '珍小藏', '', '15670390391', '', NULL, '', 19, 0, 1, NULL, 1, '2019-09-09 08:34:35', '2019-04-26 14:46:57', 0), + (20, 'matengfei', 'c655798e4648c540812a1b8f48759af7', '马腾飞', '', '15670390393', '', NULL, '', 19, 0, 0, NULL, 1, '2019-08-05 16:33:57', '2019-04-26 14:47:24', 0), + (21, 'ceshi123', 'c655798e4648c540812a1b8f48759af7', '测试人员', '', '18829938477', '', NULL, '', 1, 0, 1, NULL, 13, '2019-04-27 09:56:17', '2019-04-27 09:38:07', 1), + (22, 'zhangjingru', 'c655798e4648c540812a1b8f48759af7', '张静如', '', '15600000000', '', NULL, '', 1, 0, 0, NULL, 1, '2019-09-04 09:06:47', '2019-04-28 14:05:03', 0), + (23, 'sdfsdfdsfsdfdsfdsf', 'c655798e4648c540812a1b8f48759af7', 'werewr', '', '15698585858', '', NULL, '', 19, 0, 0, NULL, 1, '2019-09-05 16:13:03', '2019-04-28 16:26:27', 0), + (25, 'shq2019', 'c655798e4648c540812a1b8f48759af7', 'shq', 'shq', '18798801298', '410281199309024040', '1993-09-02', '', 17, 0, 0, NULL, 1, '2019-08-05 16:33:57', '2019-05-05 09:13:41', 0), + (26, 'zhangjiao666', 'c655798e4648c540812a1b8f48759af7', 'tom我是五个字12', '', '15612345678', '', NULL, '', 18, 0, 0, NULL, 1, '2019-08-05 16:33:57', '2019-05-05 15:34:10', 0), + (28, 'dfsfgds', 'c655798e4648c540812a1b8f48759af7', 'fds', '', '15854127845', '', NULL, '', 22, 0, 1, NULL, 1, '2019-09-06 08:58:40', '2019-05-06 10:36:57', 0), + (29, 'abcabc', 'c655798e4648c540812a1b8f48759af7', 'abccba', 'aaabac', '13311112222', '', NULL, '', 17, 0, 0, NULL, 1, '2019-08-05 16:33:57', '2019-07-10 17:00:58', 0), + (30, 'gengweigang', 'c655798e4648c540812a1b8f48759af7', '耿为刚', 'geng', '15038588418', '', NULL, '', 17, 0, 0, NULL, 1, '2019-08-08 14:35:51', '2019-08-08 14:35:51', 0), + (31, 'gengweigang1', 'c655798e4648c540812a1b8f48759af7', '耿为刚1', '这是别名', '15038588418', '410322193312123232', '1933-12-12', '32@qq.com', 18, 0, 0, NULL, 30, '2019-08-23 09:27:22', '2019-08-23 09:25:50', 0), + (32, 'ceshi123', 'c655798e4648c540812a1b8f48759af7', '测试', '测试', '15670702651', '', NULL, '', 17, 0, 0, NULL, 1, '2019-09-04 09:05:48', '2019-09-03 11:48:04', 0), + (33, 'ceshi321', 'c655798e4648c540812a1b8f48759af7', '测试', '测试', '15670702651', '', NULL, '', 17, 0, 1, NULL, 1, '2019-09-03 15:51:16', '2019-09-03 11:49:17', 0), + (34, 'ceshi123321', 'c655798e4648c540812a1b8f48759af7', '123', '', '15600000000', '', NULL, '', 22, 0, 1, NULL, 1, '2019-09-06 08:58:37', '2019-09-04 09:13:54', 0), + (35, 'guoqingfeng', 'c655798e4648c540812a1b8f48759af7', '郭青枫', '', '15670702651', '', NULL, '', 18, 0, 0, NULL, 1, '2019-09-04 15:09:00', '2019-09-04 15:09:00', 0), + (36, 'li327263458', 'c655798e4648c540812a1b8f48759af7', 'lipeng', '', '13937988294', '', NULL, '', 17, 0, 0, NULL, 1, '2019-09-09 17:01:39', '2019-09-09 17:01:39', 0), + (37, 'test123', 'c655798e4648c540812a1b8f48759af7', 'test', '', '13211110201', '', NULL, '', 18, 0, 1, NULL, 1, '2019-11-14 16:08:08', '2019-11-08 09:32:39', 0), + (38, 'tiantian', 'c655798e4648c540812a1b8f48759af7', '天天管理员', '', '13574502368', '', NULL, '', 17, 0, 0, NULL, 1, '2019-11-14 02:08:08', '2019-11-08 11:09:46', 0), + (39, 'wang13211111', 'c655798e4648c540812a1b8f48759af7', 'ceshi111', 'dddd', '13244553212', '', NULL, '', 25, 0, 0, NULL, 38, '2019-11-15 17:14:34', '2019-11-15 17:03:04', 0); +/*!40000 ALTER TABLE `t_employee` ENABLE KEYS */; + +-- 导出 表 smart-admin-dev.t_file 结构 +DROP TABLE IF EXISTS `t_file`; +CREATE TABLE IF NOT EXISTS `t_file` ( + `id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID', + `module_id` varchar(50) NOT NULL COMMENT '相关业务id', + `module_type` varchar(50) NOT NULL COMMENT '相关业务类型', + `file_name` varchar(255) DEFAULT NULL COMMENT '文件名称', + `file_size` varchar(255) DEFAULT NULL COMMENT '文件大小', + `file_type` varchar(50) DEFAULT NULL COMMENT '文件类型,程序中枚举控制,文件类型:如身份证正面,三证合一等等', + `file_path` varchar(255) NOT NULL COMMENT '文件key,用于文件下载', + `file_location_type` int NOT NULL COMMENT '文件位置类型', + `creater_user` int NOT NULL COMMENT '创建人,即上传人', + `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '上次更新时间', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + PRIMARY KEY (`id`) USING BTREE, + KEY `module_id_module_type` (`module_id`,`module_type`) USING BTREE, + KEY `module_type` (`module_type`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=26 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC; + +-- 正在导出表 smart-admin-dev.t_file 的数据:~23 rows (大约) +DELETE FROM `t_file`; +/*!40000 ALTER TABLE `t_file` DISABLE KEYS */; +INSERT INTO `t_file` (`id`, `module_id`, `module_type`, `file_name`, `file_size`, `file_type`, `file_path`, `file_location_type`, `creater_user`, `update_time`, `create_time`) VALUES + (1, '1', '1', '阿里云1.jpg', NULL, NULL, 'backUser/config/d1788b717be24f14ba526f25397b936f', 2, 1, NULL, '2019-07-05 10:38:15'), + (2, '2', '1', '1.jpg', NULL, NULL, 'backUser/config/8895ec770c4e4e558c6d9b54eb00dffc', 2, 1, '2019-07-18 09:20:59', '2019-07-18 09:20:25'), + (3, '3', '1', '随笔.txt', NULL, NULL, 'backUser/config/f5cbc4c9a56f4fa7ad0ba58b0aa5d169', 2, 1, NULL, '2019-07-18 09:22:47'), + (4, '3', '1', '1.jpg', NULL, NULL, 'backUser/config/2019071809245603e0a4e449a4bf3aa28ee731c309040.jpg', 1, 1, NULL, '2019-07-18 09:24:51'), + (6, '4', '1', '1.jpg', NULL, NULL, 'backUser/config/ddcb8214ba274dec9bb2c33e0e246391', 3, 1, NULL, '2019-07-19 16:19:43'), + (7, '5', '1', 'sql.txt', NULL, NULL, 'backUser/config/cfbdf9562c894405b5b6f64f71fa812a', 3, 1, NULL, '2019-07-19 17:41:55'), + (9, '1', '1', '20190912023241a6132f5713b54e1fb490f4ea88115747.md', NULL, NULL, 'backUser/config/20190912023241a6132f5713b54e1fb490f4ea88115747.md', 1, 1, '2019-09-12 15:25:35', '2019-09-12 14:32:42'), + (10, '1', '1', '201909120232499804998573f643ff8e58189d23485629.mjs', NULL, NULL, 'backUser/config/201909120232499804998573f643ff8e58189d23485629.mjs', 1, 1, '2019-09-12 15:25:19', '2019-09-12 14:32:50'), + (11, '1', '1', '201909120326564cdc8df7b8cc49cfb273926877f047f5.json', NULL, NULL, 'backUser/config/201909120326564cdc8df7b8cc49cfb273926877f047f5.json', 1, 1, NULL, '2019-09-12 15:26:56'), + (12, '1', '1', '201909120343357104b7f1cc684f5797ada35c06aba770.json', NULL, NULL, 'backUser/config/201909120343357104b7f1cc684f5797ada35c06aba770.json', 1, 1, NULL, '2019-09-12 15:43:36'), + (13, '1', '1', '201909120343427e408141a0ea467ea2e012f7086a6265.json', NULL, NULL, 'backUser/config/201909120343427e408141a0ea467ea2e012f7086a6265.json', 1, 1, NULL, '2019-09-12 15:43:42'), + (14, '1', '1', '20190912034543b4d3a061fb2e416c899fe2ff6b9327e0.ts', NULL, NULL, 'backUser/config/20190912034543b4d3a061fb2e416c899fe2ff6b9327e0.ts', 1, 1, NULL, '2019-09-12 15:45:43'), + (15, '1', '1', '20190912034550a5dc04ce79b14a1cb2bb76545c909aa8.md', NULL, NULL, 'backUser/config/20190912034550a5dc04ce79b14a1cb2bb76545c909aa8.md', 1, 1, NULL, '2019-09-12 15:45:51'), + (16, '1', '1', 'LICENCE', NULL, NULL, 'backUser/config/cc02b99c0ec548f1a2231b70b7d569b8', 2, 1, NULL, '2019-09-12 15:47:22'), + (17, '1', '1', 'bignumber.min.js', NULL, NULL, 'backUser/config/bda49e8ad6d242fe8735b2023dfbf125', 2, 1, NULL, '2019-09-12 15:47:29'), + (18, '1', '1', '20190912034880a881fa8fbc841bfb7194ff312bd1058.json', NULL, NULL, 'backUser/config/20190912034880a881fa8fbc841bfb7194ff312bd1058.json', 1, 1, NULL, '2019-09-12 15:48:08'), + (19, '1', '1', '20190912034816ece14084acf345a79396a0f4347c4e44.md', NULL, NULL, 'backUser/config/20190912034816ece14084acf345a79396a0f4347c4e44.md', 1, 1, NULL, '2019-09-12 15:48:16'), + (20, '1', '1', '20191024054412fac4b4e04c574c6eab71f91e13a8a0b6.jpg', NULL, NULL, 'backUser/config/20191024054412fac4b4e04c574c6eab71f91e13a8a0b6.jpg', 1, 1, NULL, '2019-10-24 17:44:13'), + (21, '1', '1', '20191106042073f7ef01bde3046bd8e01928f397230bd.jpg', NULL, NULL, 'backUser/config/20191106042073f7ef01bde3046bd8e01928f397230bd.jpg', 1, 1, NULL, '2019-11-06 02:20:13'), + (22, '1', '1', '201911130802024b8a2ebf80543a98241bb464682650d.jpg', NULL, NULL, 'backUser/config/201911130802024b8a2ebf80543a98241bb464682650d.jpg', 1, 1, NULL, '2019-11-13 06:02:01'), + (23, '1', '1', '20191113080210d1d98eea46364d268b2a03fa03f7a446.jpg', NULL, NULL, 'backUser/config/20191113080210d1d98eea46364d268b2a03fa03f7a446.jpg', 1, 1, NULL, '2019-11-13 06:02:14'), + (24, '1', '1', '20191115043844e92b25e70fb140a1885614b978469ca9.jpg', NULL, NULL, 'backUser/config/20191115043844e92b25e70fb140a1885614b978469ca9.jpg', 1, 38, NULL, '2019-11-15 02:38:45'), + (25, '1', '1', '20191116060546d3a2c703cb5546b3851612907cc3786f.png', NULL, NULL, 'backUser/config/20191116060546d3a2c703cb5546b3851612907cc3786f.png', 1, 1, NULL, '2019-11-16 10:05:47'); +/*!40000 ALTER TABLE `t_file` ENABLE KEYS */; + +-- 导出 表 smart-admin-dev.t_heart_beat_record 结构 +DROP TABLE IF EXISTS `t_heart_beat_record`; +CREATE TABLE IF NOT EXISTS `t_heart_beat_record` ( + `id` int NOT NULL AUTO_INCREMENT COMMENT '自增id', + `project_path` varchar(100) DEFAULT NULL COMMENT '项目名称', + `server_ip` varchar(200) DEFAULT NULL COMMENT '服务器ip', + `process_no` int DEFAULT NULL COMMENT '进程号', + `process_start_time` datetime DEFAULT NULL COMMENT '进程开启时间', + `heart_beat_time` datetime DEFAULT NULL COMMENT '心跳时间', + PRIMARY KEY (`id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC; + +-- 正在导出表 smart-admin-dev.t_heart_beat_record 的数据:~2 rows (大约) +DELETE FROM `t_heart_beat_record`; +/*!40000 ALTER TABLE `t_heart_beat_record` DISABLE KEYS */; +INSERT INTO `t_heart_beat_record` (`id`, `project_path`, `server_ip`, `process_no`, `process_start_time`, `heart_beat_time`) VALUES + (1, '/home/server/smart-admin/dev', '192.168.122.1;172.16.0.145', 14843, '2019-11-16 03:11:50', '2019-11-16 03:58:01'), + (2, 'F:\\codespace\\idea\\gangquan360\\foundation', '172.16.1.188;192.168.56.1', 227992, '2019-11-16 10:02:39', '2019-11-16 10:06:50'), + (3, 'E:\\codespace\\zhuoda', '192.168.8.188', 17564, '2020-12-14 07:11:12', '2020-12-14 07:13:34'), + (4, 'E:\\codespace\\zhuoda', '192.168.8.188', 15568, '2020-12-14 07:13:53', '2020-12-14 07:15:00'), + (5, 'E:\\codespace\\zhuoda', '192.168.8.188', 16548, '2020-12-14 07:16:07', '2020-12-14 07:17:14'); +/*!40000 ALTER TABLE `t_heart_beat_record` ENABLE KEYS */; + +-- 导出 表 smart-admin-dev.t_id_generator 结构 +DROP TABLE IF EXISTS `t_id_generator`; +CREATE TABLE IF NOT EXISTS `t_id_generator` ( + `id` int DEFAULT NULL, + `key_name` varchar(50) NOT NULL COMMENT '英文key', + `rule_format` varchar(500) NOT NULL COMMENT '规则格式。no_cycle没有周期, year_cycle 年周期, month_cycle月周期, day_cycle 日周期', + `rule_type` varchar(50) NOT NULL COMMENT '格式[yyyy]表示年,[mm]标识月,[dd]表示日,[nnn]表示三位数字', + `init_number` int NOT NULL DEFAULT '1' COMMENT '初始值', + `last_number` int DEFAULT NULL COMMENT '上次产生的id, 默认为空', + `remark` varchar(1000) NOT NULL COMMENT '备注', + `update_time` datetime DEFAULT NULL, + `create_time` datetime NOT NULL, + UNIQUE KEY `key_name` (`key_name`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='id生成器定义表'; + +-- 正在导出表 smart-admin-dev.t_id_generator 的数据:~2 rows (大约) +DELETE FROM `t_id_generator`; +/*!40000 ALTER TABLE `t_id_generator` DISABLE KEYS */; +INSERT INTO `t_id_generator` (`id`, `key_name`, `rule_format`, `rule_type`, `init_number`, `last_number`, `remark`, `update_time`, `create_time`) VALUES + (2, 'goods_num', '[nnnnnnn]', 'NO_CYCLE', 1, NULL, '商品编号', '2019-04-09 09:48:04', '2019-03-29 14:14:12'), + (1, 'order', '[yyyy][mm][dd][nnnnn]', 'DAY_CYCLE', 1, 1, '订单编号', '2019-03-30 11:25:42', '2019-03-29 14:14:12'); +/*!40000 ALTER TABLE `t_id_generator` ENABLE KEYS */; + +-- 导出 表 smart-admin-dev.t_id_generator_record 结构 +DROP TABLE IF EXISTS `t_id_generator_record`; +CREATE TABLE IF NOT EXISTS `t_id_generator_record` ( + `generator_id` int NOT NULL, + `year` int NOT NULL, + `month` int NOT NULL, + `day` int NOT NULL, + `last_number` int NOT NULL, + PRIMARY KEY (`generator_id`,`year`,`month`,`day`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='id_generator记录表'; + +-- 正在导出表 smart-admin-dev.t_id_generator_record 的数据:~5 rows (大约) +DELETE FROM `t_id_generator_record`; +/*!40000 ALTER TABLE `t_id_generator_record` DISABLE KEYS */; +INSERT INTO `t_id_generator_record` (`generator_id`, `year`, `month`, `day`, `last_number`) VALUES + (1, 2019, 3, 30, 1), + (2, 2019, 3, 30, 1), + (2, 2019, 4, 3, 2), + (2, 2019, 4, 8, 2), + (2, 2019, 4, 9, 1); +/*!40000 ALTER TABLE `t_id_generator_record` ENABLE KEYS */; + +-- 导出 表 smart-admin-dev.t_notice 结构 +DROP TABLE IF EXISTS `t_notice`; +CREATE TABLE IF NOT EXISTS `t_notice` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `title` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '消息标题', + `content` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '消息内容', + `deleted` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '删除状态:0未删除 0删除 ', + `send_status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '发送状态 0未发送 1发送', + `create_user` bigint NOT NULL COMMENT '消息创建人', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=108 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- 正在导出表 smart-admin-dev.t_notice 的数据:~14 rows (大约) +DELETE FROM `t_notice`; +/*!40000 ALTER TABLE `t_notice` DISABLE KEYS */; +INSERT INTO `t_notice` (`id`, `title`, `content`, `deleted`, `send_status`, `create_user`, `create_time`, `update_time`) VALUES + (93, '大扫把', '晓冬吃大便', 1, 1, 1, '2019-07-13 17:54:13', '2019-07-13 17:54:21'), + (95, '4444444', '444444444444', 1, 1, 1, '2019-07-13 17:54:53', '2019-09-04 09:42:02'), + (96, '3434', '444444', 1, 1, 1, '2019-07-13 17:58:42', '2019-11-08 09:05:24'), + (97, '44444', '555555555555', 1, 1, 1, '2019-07-13 17:58:54', '2019-09-03 16:19:50'), + (98, '《青花瓷》', '素胚勾勒出青花笔锋浓转淡\n瓶身描绘的牡丹一如你初妆\n冉冉檀香透过窗心事我了然\n周杰伦 青花瓷\n周杰伦 青花瓷\n宣纸上走笔至此搁一半\n釉色渲染仕女图韵味被私藏\n而你嫣然的一笑如含苞待放\n你的美一缕飘散\n去到我去不了的地方\n天青色等烟雨 而我在等你\n炊烟袅袅升起 隔江千万里\n在瓶底书刻隶仿前朝的飘逸\n就当我为遇见你伏笔\n天青色等烟雨 而我在等你\n月色被打捞起 晕开了结局\n如传世的青花瓷自顾自美丽\n你眼带笑意\n色白花青的锦鲤跃然于碗底\n临摹宋体落款时却惦记着你\n你隐藏在窑烧里千年的秘密\n极细腻犹如绣花针落地\n篱外芭蕉惹骤雨门环惹铜绿\n而我路过那江南小镇惹了你\n在泼墨山水画里\n你从墨色深处被隐去\n天青色等烟雨 而我在等你\n炊烟袅袅升起 隔江千万里\n在瓶底书刻隶仿前朝的飘逸\n就当我为遇见你伏笔\n天青色等烟雨 而我在等你\n月色被打捞起 晕开了结局\n如传世的青花瓷自顾自美丽\n你眼带笑意\n天青色等烟雨 而我在等你\n炊烟袅袅升起 隔江千万里\n在瓶底书刻隶仿前朝的飘逸\n就当我为遇见你伏笔\n天青色等烟雨 而我在等你\n月色被打捞起 晕开了结局\n如传世的青花瓷自顾自美丽\n你眼带笑意 ', 1, 1, 1, '2019-08-05 16:36:44', '2019-09-02 17:53:12'), + (99, '1', '2', 1, 1, 30, '2019-08-08 14:53:58', '2019-08-08 14:54:07'), + (100, '呵呵', '呵呵', 1, 1, 1, '2019-08-20 16:52:53', '2019-09-02 17:46:59'), + (101, 'aa', 'bbcc', 1, 1, 30, '2019-08-23 09:51:01', '2019-08-23 09:51:28'), + (102, '1', '2', 0, 1, 1, '2019-09-05 14:28:10', '2019-09-05 14:28:10'), + (103, '12', '22', 0, 1, 1, '2019-09-05 14:29:30', '2019-09-05 14:29:30'), + (104, 'a', 'b', 1, 1, 30, '2019-09-06 14:21:18', '2019-09-06 14:24:07'), + (105, '22222222222', '1111', 0, 0, 1, '2019-11-07 19:05:56', '2019-11-07 19:05:56'), + (106, '423', '234', 0, 0, 37, '2019-11-08 21:48:19', '2019-11-08 21:48:19'), + (107, 'AAS', 's\'da\'ssdas', 1, 1, 1, '2019-11-13 19:06:55', '2019-11-14 09:07:06'); +/*!40000 ALTER TABLE `t_notice` ENABLE KEYS */; + +-- 导出 表 smart-admin-dev.t_notice_receive_record 结构 +DROP TABLE IF EXISTS `t_notice_receive_record`; +CREATE TABLE IF NOT EXISTS `t_notice_receive_record` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `notice_id` bigint NOT NULL COMMENT '消息id', + `employee_id` bigint NOT NULL COMMENT '用户id', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=141 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- 正在导出表 smart-admin-dev.t_notice_receive_record 的数据:~27 rows (大约) +DELETE FROM `t_notice_receive_record`; +/*!40000 ALTER TABLE `t_notice_receive_record` DISABLE KEYS */; +INSERT INTO `t_notice_receive_record` (`id`, `notice_id`, `employee_id`, `create_time`, `update_time`) VALUES + (114, 93, 1, '2019-07-13 17:54:16', '2019-07-13 17:54:16'), + (115, 95, 1, '2019-07-13 17:54:55', '2019-07-13 17:54:55'), + (116, 95, 22, '2019-07-13 17:58:03', '2019-07-13 17:58:03'), + (117, 93, 22, '2019-07-13 17:58:05', '2019-07-13 17:58:05'), + (118, 96, 1, '2019-07-13 17:58:44', '2019-07-13 17:58:44'), + (119, 97, 1, '2019-07-13 17:58:58', '2019-07-13 17:58:58'), + (120, 98, 1, '2019-08-05 16:37:01', '2019-08-05 16:37:01'), + (121, 99, 30, '2019-08-08 14:54:05', '2019-08-08 14:54:05'), + (122, 99, 1, '2019-08-08 15:15:44', '2019-08-08 15:15:44'), + (123, 100, 1, '2019-08-20 16:53:29', '2019-08-20 16:53:29'), + (124, 101, 30, '2019-08-23 09:51:11', '2019-08-23 09:51:11'), + (125, 101, 1, '2019-08-23 12:46:27', '2019-08-23 12:46:27'), + (126, 102, 1, '2019-09-05 14:28:32', '2019-09-05 14:28:32'), + (127, 104, 30, '2019-09-06 14:23:58', '2019-09-06 14:23:58'), + (128, 104, 1, '2019-09-06 15:25:13', '2019-09-06 15:25:13'), + (129, 101, 14, '2019-11-02 21:46:13', '2019-11-02 21:46:13'), + (130, 102, 14, '2019-11-02 21:46:14', '2019-11-02 21:46:14'), + (131, 104, 14, '2019-11-02 21:46:15', '2019-11-02 21:46:15'), + (132, 98, 14, '2019-11-02 21:46:18', '2019-11-02 21:46:18'), + (133, 103, 37, '2019-11-07 19:58:06', '2019-11-07 19:58:06'), + (134, 103, 1, '2019-11-07 20:03:54', '2019-11-07 20:03:54'), + (135, 107, 1, '2019-11-13 19:07:02', '2019-11-13 19:07:02'), + (136, 107, 38, '2019-11-15 02:11:04', '2019-11-15 02:11:04'), + (137, 104, 38, '2019-11-15 02:11:17', '2019-11-15 02:11:17'), + (138, 101, 38, '2019-11-15 02:26:33', '2019-11-15 02:26:33'), + (139, 98, 38, '2019-11-15 02:29:32', '2019-11-15 02:29:32'), + (140, 100, 38, '2019-11-15 03:19:18', '2019-11-15 03:19:18'); +/*!40000 ALTER TABLE `t_notice_receive_record` ENABLE KEYS */; + +-- 导出 表 smart-admin-dev.t_order_operate_log 结构 +DROP TABLE IF EXISTS `t_order_operate_log`; +CREATE TABLE IF NOT EXISTS `t_order_operate_log` ( + `id` bigint NOT NULL AUTO_INCREMENT, + `order_id` int NOT NULL COMMENT '各种单据的id', + `order_type` int NOT NULL COMMENT '单据类型', + `operate_type` int NOT NULL COMMENT '操作类型', + `operate_content` text NOT NULL COMMENT '操作类型 对应的中文', + `operate_remark` text COMMENT '操作备注', + `employee_id` int NOT NULL COMMENT '员工id', + `employee_name` varchar(1000) NOT NULL COMMENT '员工名称', + `ext_data` text COMMENT '额外信息', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + PRIMARY KEY (`id`) USING BTREE, + KEY `order_id_order_type` (`order_id`,`order_type`) USING BTREE +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='各种单据操作记录\r\n'; + +-- 正在导出表 smart-admin-dev.t_order_operate_log 的数据:~0 rows (大约) +DELETE FROM `t_order_operate_log`; +/*!40000 ALTER TABLE `t_order_operate_log` DISABLE KEYS */; +/*!40000 ALTER TABLE `t_order_operate_log` ENABLE KEYS */; + +-- 导出 表 smart-admin-dev.t_peony 结构 +DROP TABLE IF EXISTS `t_peony`; +CREATE TABLE IF NOT EXISTS `t_peony` ( + `id` bigint NOT NULL AUTO_INCREMENT COMMENT 'ID', + `kind` varchar(500) DEFAULT NULL COMMENT '品种', + `name` varchar(500) DEFAULT NULL COMMENT '名字', + `color` varchar(500) DEFAULT NULL COMMENT '颜色', + `image_url` text COMMENT '图片链接', + `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8 COMMENT='牡丹花'; + +-- 正在导出表 smart-admin-dev.t_peony 的数据:~3 rows (大约) +DELETE FROM `t_peony`; +/*!40000 ALTER TABLE `t_peony` DISABLE KEYS */; +INSERT INTO `t_peony` (`id`, `kind`, `name`, `color`, `image_url`, `create_time`, `update_time`) VALUES + (5, '复色类', '什样锦', '红色', 'https://bkimg.cdn.bcebos.com/pic/3c6d55fbb2fb43160ee185da2aa4462308f7d390?x-bce-process=image/watermark,g_7,image_d2F0ZXIvYmFpa2UxNTA=,xp_5,yp_5', '2020-04-06 22:02:32', '2020-04-06 22:03:30'), + (6, '绿色', '绿香球', '绿色', '11', '2020-04-06 22:14:35', '2020-04-06 22:17:51'), + (7, '墨紫色类', '冠世墨玉', '紫色', '34534534534', '2020-04-06 22:15:19', '2020-04-06 22:18:21'); +/*!40000 ALTER TABLE `t_peony` ENABLE KEYS */; + +-- 导出 表 smart-admin-dev.t_position 结构 +DROP TABLE IF EXISTS `t_position`; +CREATE TABLE IF NOT EXISTS `t_position` ( + `id` int unsigned NOT NULL AUTO_INCREMENT, + `position_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '岗位名称', + `remark` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '岗位描述', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='岗位表'; + +-- 正在导出表 smart-admin-dev.t_position 的数据:~13 rows (大约) +DELETE FROM `t_position`; +/*!40000 ALTER TABLE `t_position` DISABLE KEYS */; +INSERT INTO `t_position` (`id`, `position_name`, `remark`, `update_time`, `create_time`) VALUES + (1, 'java develop', 'java develop is good job', '2019-07-03 15:18:45', '2019-07-03 15:18:45'), + (2, 'android develop', 'android develop is good job', '2019-07-04 16:11:11', '2019-07-04 16:11:00'), + (3, '测试岗位1', '这是内容11', '2019-09-02 16:39:33', '2019-07-10 14:03:50'), + (8, '测试岗位2', '测试岗位2.。', '2019-09-04 10:19:40', '2019-09-04 10:19:32'), + (9, '测试岗位3', '测试岗位3', '2019-09-05 14:39:43', '2019-09-05 14:39:43'), + (10, '测试岗位4', '测试岗位4', '2019-09-05 14:39:48', '2019-09-05 14:39:48'), + (11, '测试岗位5', '测试岗位5', '2019-09-05 14:39:53', '2019-09-05 14:39:53'), + (12, '测试岗位6', '测试岗位6', '2019-09-05 14:39:58', '2019-09-05 14:39:58'), + (13, '测试岗位7', '测试岗位7', '2019-09-05 14:40:03', '2019-09-05 14:40:03'), + (14, '测试岗位8', '测试岗位8', '2019-09-05 14:40:09', '2019-09-05 14:40:09'), + (15, '测试岗位9', '测试岗位9', '2019-09-05 14:40:19', '2019-09-05 14:40:19'), + (16, 'aaa22222', 'ddddddddddd', '2019-11-15 17:04:29', '2019-11-06 15:58:37'), + (17, 'ddd', 'fsdef', '2019-11-15 17:04:40', '2019-11-15 17:04:40'); +/*!40000 ALTER TABLE `t_position` ENABLE KEYS */; + +-- 导出 表 smart-admin-dev.t_position_relation 结构 +DROP TABLE IF EXISTS `t_position_relation`; +CREATE TABLE IF NOT EXISTS `t_position_relation` ( + `id` int unsigned NOT NULL AUTO_INCREMENT, + `position_id` int DEFAULT NULL COMMENT '岗位ID', + `employee_id` int DEFAULT NULL COMMENT '员工ID', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + PRIMARY KEY (`id`), + KEY `job_id` (`position_id`) USING BTREE, + KEY `employee_id` (`employee_id`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=53 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='岗位关联表'; + +-- 正在导出表 smart-admin-dev.t_position_relation 的数据:~27 rows (大约) +DELETE FROM `t_position_relation`; +/*!40000 ALTER TABLE `t_position_relation` DISABLE KEYS */; +INSERT INTO `t_position_relation` (`id`, `position_id`, `employee_id`, `update_time`, `create_time`) VALUES + (14, 1, 28, '2019-07-10 16:40:14', '2019-07-10 16:40:14'), + (18, 1, 29, '2019-07-11 10:18:22', '2019-07-11 10:18:22'), + (19, 3, 29, '2019-07-11 10:18:22', '2019-07-11 10:18:22'), + (20, 2, 29, '2019-07-11 10:18:22', '2019-07-11 10:18:22'), + (21, 1, 30, '2019-08-08 14:35:51', '2019-08-08 14:35:51'), + (22, 2, 30, '2019-08-08 14:35:51', '2019-08-08 14:35:51'), + (23, 3, 30, '2019-08-08 14:35:51', '2019-08-08 14:35:51'), + (26, 2, 31, '2019-08-23 09:26:44', '2019-08-23 09:26:44'), + (27, 3, 31, '2019-08-23 09:26:44', '2019-08-23 09:26:44'), + (28, 3, 32, '2019-09-04 09:05:47', '2019-09-04 09:05:47'), + (29, 2, 32, '2019-09-04 09:05:47', '2019-09-04 09:05:47'), + (30, 3, 22, '2019-09-04 09:06:46', '2019-09-04 09:06:46'), + (31, 2, 22, '2019-09-04 09:06:46', '2019-09-04 09:06:46'), + (35, 8, 35, '2019-09-04 15:09:00', '2019-09-04 15:09:00'), + (36, 3, 35, '2019-09-04 15:09:00', '2019-09-04 15:09:00'), + (37, 15, 23, '2019-09-05 16:13:02', '2019-09-05 16:13:02'), + (38, 14, 23, '2019-09-05 16:13:02', '2019-09-05 16:13:02'), + (39, 13, 23, '2019-09-05 16:13:02', '2019-09-05 16:13:02'), + (40, 3, 34, '2019-09-06 08:55:18', '2019-09-06 08:55:18'), + (41, 2, 34, '2019-09-06 08:55:18', '2019-09-06 08:55:18'), + (42, 1, 34, '2019-09-06 08:55:18', '2019-09-06 08:55:18'), + (43, 14, 36, '2019-09-09 17:01:39', '2019-09-09 17:01:39'), + (44, 3, 37, '2019-11-08 09:32:39', '2019-11-08 09:32:39'), + (46, 8, 38, '2019-11-14 16:08:05', '2019-11-14 16:08:05'), + (50, 16, 39, '2019-11-15 17:07:04', '2019-11-15 17:07:04'), + (51, 13, 39, '2019-11-15 17:07:04', '2019-11-15 17:07:04'), + (52, 14, 39, '2019-11-15 17:07:04', '2019-11-15 17:07:04'); +/*!40000 ALTER TABLE `t_position_relation` ENABLE KEYS */; + +-- 导出 表 smart-admin-dev.t_privilege 结构 +DROP TABLE IF EXISTS `t_privilege`; +CREATE TABLE IF NOT EXISTS `t_privilege` ( + `id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '功能权限表主键id', + `type` tinyint NOT NULL COMMENT '1.菜单 2.功能点', + `name` varchar(50) NOT NULL COMMENT '菜单名称', + `key` varchar(1000) NOT NULL COMMENT '路由name 英文关键字', + `url` text COMMENT '路由path/type=3为API接口', + `sort` int NOT NULL DEFAULT '0' COMMENT '排序', + `parent_key` varchar(1000) DEFAULT NULL COMMENT '父级key', + `update_time` datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + PRIMARY KEY (`id`), + UNIQUE KEY `key` (`key`) USING BTREE, + KEY `type` (`type`) USING BTREE, + KEY `parent_key` (`parent_key`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=127 DEFAULT CHARSET=utf8 COMMENT='权限功能表'; + +-- 正在导出表 smart-admin-dev.t_privilege 的数据:~103 rows (大约) +DELETE FROM `t_privilege`; +/*!40000 ALTER TABLE `t_privilege` DISABLE KEYS */; +INSERT INTO `t_privilege` (`id`, `type`, `name`, `key`, `url`, `sort`, `parent_key`, `update_time`, `create_time`) VALUES + (1, 1, '人员管理', 'Employee', '/employee', 20, 'System', '2020-12-14 15:16:26', '2019-11-01 11:28:07'), + (2, 1, '角色管理', 'RoleManage', '/employee/role', 21, 'Employee', '2020-12-14 15:16:26', '2019-11-01 11:28:07'), + (3, 1, '岗位管理', 'PositionList', '/employee/position', 22, 'Employee', '2020-12-14 15:16:26', '2019-11-01 11:28:07'), + (4, 1, '员工管理', 'RoleEmployeeManage', '/employee/role-employee-manage', 23, 'Employee', '2020-12-14 15:16:26', '2019-11-01 11:28:07'), + (5, 1, '系统设置', 'SystemSetting', '/system-setting', 29, 'System', '2020-12-14 15:16:26', '2019-11-01 11:28:07'), + (6, 1, '系统参数', 'SystemConfig', '/system-setting/system-config', 30, 'SystemSetting', '2020-12-14 15:16:26', '2019-11-01 11:28:07'), + (8, 1, '菜单设置', 'SystemPrivilege', '/system-setting/system-privilege', 31, 'SystemSetting', '2020-12-14 15:16:26', '2019-11-01 11:28:07'), + (9, 1, '消息管理', 'Notice', '/notice', 10, 'Business', '2020-12-14 15:16:26', '2019-11-01 11:28:07'), + (10, 1, '通知管理', 'NoticeList', '/notice/notice-list', 11, 'Notice', '2020-12-14 15:16:26', '2019-11-01 11:28:07'), + (11, 1, '个人消息', 'PersonNotice', '/notice/person-notice', 12, 'Notice', '2020-12-14 15:16:26', '2019-11-01 11:28:07'), + (12, 1, '邮件管理', 'Email', '/email', 4, 'Business', '2020-12-14 15:16:26', '2019-11-01 11:28:07'), + (13, 1, '邮件管理', 'EmailList', '/email/email-list', 5, 'Email', '2020-12-14 15:16:26', '2019-11-01 11:28:07'), + (14, 1, '发送邮件', 'SendMail', '/email/send-mail', 6, 'Email', '2020-12-14 15:16:26', '2019-11-01 11:28:07'), + (15, 1, '用户日志', 'UserLog', '/user-log', 26, 'System', '2020-12-14 15:16:26', '2019-11-01 11:28:07'), + (16, 1, '用户操作日志', 'UserOperateLog', '/user-log/user-operate-log', 27, 'UserLog', '2020-12-14 15:16:26', '2019-11-01 11:28:07'), + (17, 1, '用户登录日志', 'UserLoginLog', '/user-log/user-login-log', 28, 'UserLog', '2020-12-14 15:16:26', '2019-11-01 11:28:07'), + (18, 1, '系统监控', 'Monitor', '/monitor', 37, 'Support', '2020-12-14 15:16:26', '2019-11-01 11:28:07'), + (19, 1, '在线人数', 'OnlineUser', '/monitor/online-user', 38, 'Monitor', '2020-12-14 15:16:26', '2019-11-01 11:28:07'), + (20, 1, 'SQL监控', 'Sql', '/monitor/sql', 39, 'Monitor', '2020-12-14 15:16:26', '2019-11-01 11:28:07'), + (21, 1, '定时任务', 'Task', '/task', 42, 'Support', '2020-12-14 15:16:26', '2019-11-01 11:28:07'), + (22, 1, '任务管理', 'TaskList', '/system-setting/task-list', 43, 'Task', '2020-12-14 15:16:26', '2019-11-01 11:28:07'), + (23, 1, '动态加载', 'Reload', '/reload', 40, 'Support', '2020-12-14 15:16:26', '2019-11-01 11:28:07'), + (24, 1, 'SmartReload', 'SmartReloadList', '/reload/smart-reload-list', 41, 'Reload', '2020-12-14 15:16:26', '2019-11-01 11:28:07'), + (25, 1, '接口文档', 'ApiDoc', '/api-doc', 33, 'Support', '2020-12-14 15:16:26', '2019-11-01 11:28:07'), + (26, 1, 'Swagger接口文档', 'Swagger', '/api-doc/swagger', 34, 'ApiDoc', '2020-12-14 15:16:26', '2019-11-01 11:28:07'), + (27, 1, '三级路由', 'ThreeRouter', '/three-router', 14, 'Business', '2020-12-14 15:16:26', '2019-11-01 11:28:07'), + (28, 1, '三级菜单', 'LevelTwo', '/three-router/level-two', 15, 'ThreeRouter', '2020-12-14 15:16:26', '2019-11-01 11:28:07'), + (30, 1, '三级菜单子哈', 'RoleTwoTwo', '/three-router/level-two/level-three2', 17, 'LevelTwo', '2020-12-14 15:16:26', '2019-11-01 11:28:07'), + (31, 1, '二级菜单', 'RoleOneOne', '/three-router/level-two2', 18, 'ThreeRouter', '2020-12-14 15:16:26', '2019-11-01 11:28:07'), + (32, 1, 'KeepAlive', 'KeepAlive', '/keep-alive', 7, 'Business', '2020-12-14 15:16:26', '2019-11-01 11:28:07'), + (33, 1, 'KeepAlive列表', 'KeepAliveContentList', '/keep-alive/content-list', 8, 'KeepAlive', '2020-12-14 15:16:26', '2019-11-01 11:28:07'), + (34, 1, 'KeepAlive表单', 'KeepAliveAddContent', '/keep-alive/add-content', 9, 'KeepAlive', '2020-12-14 15:16:26', '2019-11-01 11:28:07'), + (35, 1, '心跳服务', 'HeartBeat', '/heart-beat', 35, 'Support', '2020-12-14 15:16:26', '2019-11-01 11:28:07'), + (36, 1, '心跳服务', 'HeartBeatList', '/heart-beat/heart-beat-list', 36, 'HeartBeat', '2020-12-14 15:16:26', '2019-11-01 11:28:07'), + (37, 1, '文件服务', 'File', '/file', 24, 'System', '2020-12-14 15:16:26', '2019-11-01 11:28:07'), + (38, 1, '文件列表', 'FileList', '/file/file-list', 25, 'File', '2020-12-14 15:16:26', '2019-11-01 11:28:07'), + (39, 2, '添加角色', 'add-role', 'roleController.addRole', 0, 'RoleManage', '2019-11-01 11:47:29', '2019-11-01 11:47:29'), + (40, 2, '删除角色', 'delete-role', 'roleController.deleteRole', 1, 'RoleManage', '2019-11-01 11:47:43', '2019-11-01 11:47:43'), + (41, 2, '编辑角色', 'update-role', 'roleController.updateRole', 2, 'RoleManage', '2019-11-01 11:47:55', '2019-11-01 11:47:55'), + (42, 2, '修改角色权限', 'update-role-privilege', 'rolePrivilegeController.updateRolePrivilege', 3, 'RoleManage', '2019-11-01 11:48:09', '2019-11-01 11:48:09'), + (43, 2, '添加成员', 'add-employee-role', 'roleEmployeeController.addEmployeeList', 4, 'RoleManage', '2019-11-05 10:38:11', '2019-11-05 10:38:11'), + (44, 2, '查询成员', 'search-employee-list', 'roleEmployeeController.listAllEmployeeRoleId,roleEmployeeController.listEmployeeByName,roleController.getAllRole,rolePrivilegeController.listPrivilegeByRoleId', 7, 'RoleManage', '2019-11-05 10:39:04', '2019-11-05 10:39:04'), + (45, 2, '移除成员', 'delete-employee-role', 'roleEmployeeController.removeEmployee', 5, 'RoleManage', '2019-11-05 10:40:09', '2019-11-05 10:40:09'), + (46, 2, '批量移除', 'delete-employee-role-batch', 'roleEmployeeController.removeEmployeeList', 6, 'RoleManage', '2019-11-05 10:40:27', '2019-11-05 10:40:27'), + (47, 2, '查询数据范围', 'query-data-scope', 'dataScopeController.dataScopeList,dataScopeController.dataScopeListByRole,rolePrivilegeController.listPrivilegeByRoleId,privilegeController.queryAll,privilegeController.getAllUrl', 8, 'RoleManage', '2019-11-05 10:40:57', '2019-11-05 10:40:57'), + (48, 2, '更新数据范围', 'update-data-scope', 'dataScopeController.dataScopeBatchSet', 9, 'RoleManage', '2019-11-05 10:41:03', '2019-11-05 10:41:03'), + (49, 2, '查询', 'search-position', 'positionController.queryJobById,positionController.getJobPage', 0, 'PositionList', '2019-11-05 10:41:30', '2019-11-05 10:41:30'), + (50, 2, '添加', 'add-position', 'positionController.addJob', 1, 'PositionList', '2019-11-05 10:41:40', '2019-11-05 10:41:40'), + (51, 2, '修改', 'update-position', 'positionController.updateJob', 2, 'PositionList', '2019-11-05 10:41:49', '2019-11-05 10:41:49'), + (52, 2, '删除', 'delete-position', 'positionController.removeJob', 3, 'PositionList', '2019-11-05 10:41:57', '2019-11-05 10:41:57'), + (53, 2, '添加部门', 'add-department', 'departmentController.addDepartment', 0, 'RoleEmployeeManage', '2019-11-05 11:11:18', '2019-11-05 11:11:18'), + (54, 2, '编辑部门', 'update-department', 'departmentController.updateDepartment', 1, 'RoleEmployeeManage', '2019-11-05 11:11:29', '2019-11-05 11:11:29'), + (55, 2, '删除部门', 'delete-department', 'departmentController.delDepartment', 2, 'RoleEmployeeManage', '2019-11-05 11:11:48', '2019-11-05 11:11:48'), + (56, 2, '查询', 'search-department', 'departmentController.listAll,departmentController.getDepartment,departmentController.listDepartmentEmployee,departmentController.listDepartment,employeeController.query', 3, 'RoleEmployeeManage', '2019-11-05 11:12:09', '2019-11-05 11:12:09'), + (57, 2, '添加成员', 'add-employee', 'employeeController.addEmployee', 4, 'RoleEmployeeManage', '2019-11-05 17:06:23', '2019-11-05 17:06:23'), + (58, 2, '编辑成员', 'update-employee', 'employeeController.updateEmployee', 5, 'RoleEmployeeManage', '2019-11-05 17:06:57', '2019-11-05 17:06:57'), + (59, 2, '禁用', 'disabled-employee', 'employeeController.updateStatus', 6, 'RoleEmployeeManage', '2019-11-05 17:14:35', '2019-11-05 17:14:35'), + (60, 2, '批量操作', 'disabled-employee-batch', 'employeeController.batchUpdateStatus', 7, 'RoleEmployeeManage', '2019-11-05 17:19:23', '2019-11-05 17:19:23'), + (61, 2, '员工角色编辑', 'update-employee-role', 'employeeController.updateRoles', 8, 'RoleEmployeeManage', '2019-11-05 17:21:15', '2019-11-05 17:21:15'), + (62, 2, '重置密码', 'reset-employee-password', 'employeeController.resetPasswd', 10, 'RoleEmployeeManage', '2019-11-05 17:22:13', '2019-11-05 17:22:13'), + (63, 2, '删除员工', 'delete-employee', 'employeeController.deleteEmployeeById', 9, 'RoleEmployeeManage', '2019-11-05 17:22:27', '2019-11-05 17:22:27'), + (64, 2, '查询系统参数', 'system-params-search', 'systemConfigController.selectByKey,systemConfigController.getListByGroup,systemConfigController.getSystemConfigPage', 0, 'SystemConfig', '2019-11-05 17:23:41', '2019-11-05 17:23:41'), + (65, 2, '添加系统参数', 'system-params-add', 'systemConfigController.addSystemConfig', 1, 'SystemConfig', '2019-11-05 17:26:00', '2019-11-05 17:26:00'), + (66, 2, '修改系统参数', 'system-config-update', 'systemConfigController.updateSystemConfig', 2, 'SystemConfig', '2019-11-05 17:26:07', '2019-11-05 17:26:07'), + (67, 2, '搜索系统参数', 'system-config-search', 'systemConfigController.selectByKey,systemConfigController.getListByGroup,systemConfigController.getSystemConfigPage', 3, 'SystemConfig', '2019-11-05 17:26:44', '2019-11-05 17:26:44'), + (69, 2, '编辑', 'privilege-main-update', 'privilegeController.menuBatchSave,privilegeController.functionSaveOrUpdate', 1, 'SystemPrivilege', '2020-12-14 15:17:11', '2019-11-05 17:27:28'), + (70, 2, '查询', 'privilege-main-search', 'privilegeController.queryAll,privilegeController.getAllUrl,privilegeController.functionQuery', 3, 'SystemPrivilege', '2020-12-14 15:17:11', '2019-11-05 17:28:45'), + (71, 2, '查询', 'notice-query', 'noticeController.queryReceiveByPage,noticeController.queryUnreadByPage,noticeController.queryByPage,noticeController.detail', 0, 'NoticeList', '2019-11-05 17:30:16', '2019-11-05 17:30:16'), + (72, 2, '添加', 'notice-add', 'noticeController.add', 1, 'NoticeList', '2019-11-05 17:30:28', '2019-11-05 17:30:28'), + (73, 2, '修改', 'notice-edit', 'noticeController.update', 2, 'NoticeList', '2019-11-05 17:31:24', '2019-11-05 17:31:24'), + (74, 2, '删除', 'notice-delete', 'noticeController.delete', 3, 'NoticeList', '2019-11-06 11:12:32', '2019-11-06 11:12:32'), + (75, 2, '详情', 'notice-detail', 'noticeController.detail', 4, 'NoticeList', '2019-11-06 11:12:44', '2019-11-06 11:12:44'), + (76, 2, '发送', 'notice-send', 'noticeController.send', 5, 'NoticeList', '2019-11-06 11:12:51', '2019-11-06 11:12:51'), + (77, 2, '查询', 'person-notice-query', 'noticeController.queryReceiveByPage,noticeController.queryUnreadByPage,noticeController.queryByPage', 0, 'PersonNotice', '2019-11-06 11:13:27', '2019-11-06 11:13:27'), + (78, 2, '详情', 'person-notice-detail', 'noticeController.detail', 1, 'PersonNotice', '2019-11-06 11:13:35', '2019-11-06 11:13:35'), + (79, 2, '查询', 'email-query', 'emailController.queryByPage,emailController.detail', 0, 'EmailList', '2019-11-06 11:13:49', '2019-11-06 11:13:49'), + (80, 2, '新增', 'email-add', 'emailController.add', 1, 'EmailList', '2019-11-06 11:14:02', '2019-11-06 11:14:02'), + (81, 2, '编辑', 'email-update', 'emailController.update', 2, 'EmailList', '2019-11-06 11:14:08', '2019-11-06 11:14:08'), + (82, 2, '删除', 'email-delete', 'emailController.delete', 3, 'EmailList', '2019-11-06 11:14:16', '2019-11-06 11:14:16'), + (83, 2, '发送', 'email-send', 'emailController.send', 0, 'SendMail', '2019-11-06 11:14:40', '2019-11-06 11:14:40'), + (84, 2, '查询', 'user-operate-log-search', 'userOperateLogController.queryByPage', 0, 'UserOperateLog', '2019-11-06 11:15:04', '2019-11-06 11:15:04'), + (85, 2, '详情', 'user-operate-log-detail', 'userOperateLogController.detail', 1, 'UserOperateLog', '2019-11-06 11:15:16', '2019-11-06 11:15:16'), + (86, 2, '删除', 'user-operate-log-delete', 'userOperateLogController.delete', 2, 'UserOperateLog', '2019-11-06 11:15:25', '2019-11-06 11:15:25'), + (87, 2, '查询', 'user-login-log-search', 'userLoginLogController.queryByPage', 0, 'UserLoginLog', '2019-11-06 11:15:43', '2019-11-06 11:15:43'), + (88, 2, '删除', 'user-login-log-delete', 'userLoginLogController.delete', 1, 'UserLoginLog', '2019-11-06 11:15:49', '2019-11-06 11:15:49'), + (89, 2, '查询', 'online-user-search', 'userLoginLogController.queryUserOnLine', 0, 'OnlineUser', '2019-11-06 11:16:05', '2019-11-06 11:16:05'), + (90, 2, '查询任务', 'task-search', 'quartzController.query', 0, 'TaskList', '2019-11-06 11:16:24', '2019-11-06 11:16:24'), + (91, 2, '刷新任务', 'task-refresh', 'quartzController.query', 1, 'TaskList', '2019-11-06 11:16:50', '2019-11-06 11:16:50'), + (92, 2, '添加任务', 'task-add', 'quartzController.saveOrUpdateTask', 2, 'TaskList', '2019-11-06 11:17:04', '2019-11-06 11:17:04'), + (93, 2, '编辑任务', 'task-update', 'quartzController.saveOrUpdateTask', 3, 'TaskList', '2019-11-06 11:17:17', '2019-11-06 11:17:17'), + (94, 2, '暂停任务', 'task-pause', 'quartzController.pauseTask', 4, 'TaskList', '2019-11-06 11:17:25', '2019-11-06 11:17:25'), + (95, 2, '恢复任务', 'task-resume', 'quartzController.resumeTask', 5, 'TaskList', '2019-11-06 11:17:31', '2019-11-06 11:17:31'), + (96, 2, '立即运行任务', 'task-run', 'quartzController.runTask', 6, 'TaskList', '2019-11-06 11:17:38', '2019-11-06 11:17:38'), + (97, 2, '查看任务日志', 'task-query-log', 'quartzController.queryLog', 7, 'TaskList', '2019-11-06 11:17:47', '2019-11-06 11:17:47'), + (98, 2, '删除任务', 'task-delete', 'quartzController.deleteTask', 8, 'TaskList', '2019-11-06 11:17:53', '2019-11-06 11:17:53'), + (99, 2, '查询', 'smart-reload-search', 'smartReloadController.listAllReloadItem', 0, 'SmartReloadList', '2019-11-06 11:18:06', '2019-11-06 11:18:06'), + (100, 2, '执行reload', 'smart-reload-update', 'smartReloadController.updateByTag', 1, 'SmartReloadList', '2019-11-06 11:18:14', '2019-11-06 11:18:14'), + (101, 2, '查看执行结果', 'smart-reload-result', 'smartReloadController.queryReloadResult', 2, 'SmartReloadList', '2019-11-06 11:18:19', '2019-11-06 11:18:19'), + (102, 2, '查询任务', 'heart-beat-query', 'heartBeatController.query', 0, 'HeartBeatList', '2019-11-06 11:18:38', '2019-11-06 11:18:38'), + (103, 2, '查询', 'file-filePage-query', 'fileController.queryListByPage,fileController.localGetFile,fileController.downLoadById', 0, 'FileList', '2019-11-06 11:19:06', '2019-11-06 11:19:06'), + (104, 2, '上传', 'file-filePage-upload', 'fileController.qiNiuUpload,fileController.localUpload,fileController.aliYunUpload,fileController.saveFile', 1, 'FileList', '2019-11-06 11:19:36', '2019-11-06 11:19:36'), + (105, 2, '下载', 'file-filePage-download', 'fileController.downLoadById', 2, 'FileList', '2019-11-16 10:05:02', '2019-11-16 10:05:02'), + (106, 1, '业务功能', 'Business', '/business', 0, NULL, '2020-12-14 15:16:26', '2020-12-14 15:16:26'), + (107, 1, '牡丹管理', 'Peony', '/peony', 1, 'Business', '2020-12-14 15:16:26', '2020-12-14 15:16:26'), + (108, 1, '牡丹花列表', 'PeonyList', '/peony/peony-list', 2, 'Peony', '2020-12-14 15:16:26', '2020-12-14 15:16:26'), + (109, 1, '牡丹花列表1', 'PeonyList1', '/peony/peony-list1', 3, 'Peony', '2020-12-14 15:16:26', '2020-12-14 15:16:26'), + (110, 1, '消息详情', 'NoticeDetail', '/notice/notice-detail', 13, 'Notice', '2020-12-14 15:16:26', '2020-12-14 15:16:26'), + (111, 1, '三级菜单子颗粒', 'ThreeLevelRouterView', '/three-router/level-two/level-three1', 16, 'LevelTwo', '2020-12-14 15:16:26', '2020-12-14 15:16:26'), + (112, 1, '系统设置', 'System', '/system', 19, NULL, '2020-12-14 15:16:26', '2020-12-14 15:16:26'), + (113, 1, '开发专用', 'Support', '/support', 32, NULL, '2020-12-14 15:16:26', '2020-12-14 15:16:26'), + (114, 2, '查询', 'peony-list-query', '', 1, 'PeonyList', '2020-12-14 15:16:30', '2020-12-14 15:16:30'), + (115, 2, '新增', 'peony-list-add', '', 2, 'PeonyList', '2020-12-14 15:16:30', '2020-12-14 15:16:30'), + (116, 2, '编辑', 'peony-list-update', '', 3, 'PeonyList', '2020-12-14 15:16:30', '2020-12-14 15:16:30'), + (117, 2, '批量删除', 'peony-list-batch-delete', '', 4, 'PeonyList', '2020-12-14 15:16:30', '2020-12-14 15:16:30'), + (118, 2, '批量导出', 'peony-list-batch-export', '', 5, 'PeonyList', '2020-12-14 15:16:30', '2020-12-14 15:16:30'), + (119, 2, '导出全部', 'peony-list-export-all', '', 6, 'PeonyList', '2020-12-14 15:16:30', '2020-12-14 15:16:30'), + (120, 2, '查询', 'peony1-list-query', '', 1, 'PeonyList1', '2020-12-14 15:16:33', '2020-12-14 15:16:33'), + (121, 2, '新增', 'peony1-list-add', '', 2, 'PeonyList1', '2020-12-14 15:16:33', '2020-12-14 15:16:33'), + (122, 2, '编辑', 'peony1-list-update', '', 3, 'PeonyList1', '2020-12-14 15:16:33', '2020-12-14 15:16:33'), + (123, 2, '批量删除', 'peony1-list-batch-delete', '', 4, 'PeonyList1', '2020-12-14 15:16:33', '2020-12-14 15:16:33'), + (124, 2, '批量导出', 'peony1-list-batch-export', '', 5, 'PeonyList1', '2020-12-14 15:16:33', '2020-12-14 15:16:33'), + (125, 2, '导出全部', 'peony1-list-export-all', '', 6, 'PeonyList1', '2020-12-14 15:16:33', '2020-12-14 15:16:33'), + (126, 2, '批量保存功能点', 'privilege-batch-save-points', 'privilegeController.functionSaveOrUpdate', 1, 'SystemPrivilege', '2020-12-14 15:17:11', '2020-12-14 15:17:11'); +/*!40000 ALTER TABLE `t_privilege` ENABLE KEYS */; + +-- 导出 表 smart-admin-dev.t_quartz_task 结构 +DROP TABLE IF EXISTS `t_quartz_task`; +CREATE TABLE IF NOT EXISTS `t_quartz_task` ( + `id` int NOT NULL AUTO_INCREMENT, + `task_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '任务名称', + `task_bean` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT 'spring bean名称', + `task_params` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '任务参数', + `task_cron` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '运行cron表达式', + `task_status` tinyint NOT NULL DEFAULT '0' COMMENT '任务状态0:正常,1:暂停', + `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- 正在导出表 smart-admin-dev.t_quartz_task 的数据:~5 rows (大约) +DELETE FROM `t_quartz_task`; +/*!40000 ALTER TABLE `t_quartz_task` DISABLE KEYS */; +INSERT INTO `t_quartz_task` (`id`, `task_name`, `task_bean`, `task_params`, `task_cron`, `task_status`, `remark`, `update_time`, `create_time`) VALUES + (9, '2312332', 'exampleTask', '21314', '*/5 * * * * ?', 1, NULL, '2019-09-06 14:41:55', '2019-04-19 15:24:26'), + (13, '567', 'exampleTask', 'ads', '*/5 * * * * ?', 1, NULL, '2019-09-04 16:37:25', '2019-04-23 15:32:17'), + (21, '11', 'exampleTask', '11', '*/5 * * * * ?', 1, NULL, '2019-09-04 16:37:30', '2019-04-26 17:29:21'), + (22, '33', 'exampleTask', '333', '*/5 * * * * ?', 1, NULL, '2019-04-26 17:29:36', '2019-04-26 17:29:36'), + (23, '1', 'exampleTask', '3', '*/5 * * * * ?', 0, NULL, '2019-09-05 17:21:12', '2019-04-26 17:29:50'); +/*!40000 ALTER TABLE `t_quartz_task` ENABLE KEYS */; + +-- 导出 表 smart-admin-dev.t_quartz_task_log 结构 +DROP TABLE IF EXISTS `t_quartz_task_log`; +CREATE TABLE IF NOT EXISTS `t_quartz_task_log` ( + `id` int NOT NULL AUTO_INCREMENT, + `task_id` int NOT NULL COMMENT '任务id', + `task_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '任务名称', + `task_params` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '任务参数', + `process_status` tinyint NOT NULL COMMENT '任务处理状态0:成功,1:失败', + `process_duration` bigint NOT NULL DEFAULT '0' COMMENT '运行时长', + `process_log` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '日志', + `ip_address` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '运行主机ip', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=732881 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- 正在导出表 smart-admin-dev.t_quartz_task_log 的数据:~11 rows (大约) +DELETE FROM `t_quartz_task_log`; +/*!40000 ALTER TABLE `t_quartz_task_log` DISABLE KEYS */; +INSERT INTO `t_quartz_task_log` (`id`, `task_id`, `task_name`, `task_params`, `process_status`, `process_duration`, `process_log`, `ip_address`, `update_time`, `create_time`) VALUES + (732870, 9, '231233', '2131', 0, 5, NULL, '127.0.0.1', '2019-05-05 15:28:01', '2019-05-05 15:28:01'), + (732871, 9, '231233', '2131', 0, 32, NULL, '172.16.0.145', '2019-05-05 15:54:40', '2019-05-05 15:54:40'), + (732872, 22, '33', '333', 0, 31, NULL, '172.16.0.145', '2019-05-07 16:20:31', '2019-05-07 16:20:31'), + (732873, 9, '231233', '2131', 0, 304, NULL, '172.16.0.145', '2019-08-02 09:29:36', '2019-08-02 09:29:36'), + (732874, 9, '231233', '2131', 0, 24, NULL, '172.16.0.145', '2019-08-08 16:48:49', '2019-08-08 16:48:49'), + (732875, 9, '231233', '2131', 0, 147, NULL, '172.16.0.145', '2019-08-23 09:41:08', '2019-08-23 09:41:08'), + (732876, 9, '231233', '2131', 0, 610, NULL, '172.16.0.145', '2019-08-26 16:16:34', '2019-08-26 16:16:34'), + (732877, 9, '2312332', '2131', 0, 27, NULL, '172.16.0.145', '2019-09-05 14:34:51', '2019-09-05 14:34:51'), + (732878, 9, '2312332', '2131', 0, 5, NULL, '172.16.0.145', '2019-09-05 17:18:17', '2019-09-05 17:18:17'), + (732879, 9, '2312332', '2131', 0, 1, NULL, '172.16.0.145', '2019-09-05 17:20:15', '2019-09-05 17:20:15'), + (732880, 9, '2312332', '2131', 0, 5, NULL, '172.16.0.145', '2019-09-06 14:42:04', '2019-09-06 14:42:04'); +/*!40000 ALTER TABLE `t_quartz_task_log` ENABLE KEYS */; + +-- 导出 表 smart-admin-dev.t_reload_item 结构 +DROP TABLE IF EXISTS `t_reload_item`; +CREATE TABLE IF NOT EXISTS `t_reload_item` ( + `tag` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '项名称', + `args` varchar(255) DEFAULT NULL COMMENT '参数 可选', + `identification` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '运行标识', + `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, + PRIMARY KEY (`tag`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- 正在导出表 smart-admin-dev.t_reload_item 的数据:~0 rows (大约) +DELETE FROM `t_reload_item`; +/*!40000 ALTER TABLE `t_reload_item` DISABLE KEYS */; +INSERT INTO `t_reload_item` (`tag`, `args`, `identification`, `update_time`, `create_time`) VALUES + ('system_config', '234', 'xxxx', '2019-11-14 16:46:21', '2019-04-18 11:48:27'); +/*!40000 ALTER TABLE `t_reload_item` ENABLE KEYS */; + +-- 导出 表 smart-admin-dev.t_reload_result 结构 +DROP TABLE IF EXISTS `t_reload_result`; +CREATE TABLE IF NOT EXISTS `t_reload_result` ( + `tag` varchar(255) NOT NULL, + `identification` varchar(255) NOT NULL COMMENT '运行标识', + `args` varchar(255) DEFAULT NULL, + `result` tinyint unsigned NOT NULL COMMENT '是否成功 ', + `exception` text, + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP +) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- 正在导出表 smart-admin-dev.t_reload_result 的数据:~127 rows (大约) +DELETE FROM `t_reload_result`; +/*!40000 ALTER TABLE `t_reload_result` DISABLE KEYS */; +INSERT INTO `t_reload_result` (`tag`, `identification`, `args`, `result`, `exception`, `create_time`) VALUES + ('system_config', '23', '', 1, NULL, '2019-09-07 17:26:04'), + ('system_config', '23', '', 1, NULL, '2019-09-07 17:28:16'), + ('system_config', '23', '', 1, NULL, '2019-09-07 17:35:39'), + ('system_config', '23', '', 1, NULL, '2019-09-07 17:42:58'), + ('system_config', '23', '', 1, NULL, '2019-09-09 08:30:13'), + ('system_config', '23', '', 1, NULL, '2019-09-11 10:38:19'), + ('system_config', '23', '', 1, NULL, '2019-09-11 10:42:46'), + ('system_config', '23', '', 1, NULL, '2019-09-11 10:49:27'), + ('system_config', '23', '', 1, NULL, '2019-09-11 11:09:10'), + ('system_config', '23', '', 1, NULL, '2019-09-11 11:10:06'), + ('system_config', '23', '', 1, NULL, '2019-09-11 11:18:17'), + ('system_config', '23', '', 1, NULL, '2019-09-11 11:41:18'), + ('system_config', '23', '', 1, NULL, '2019-09-11 11:45:41'), + ('system_config', '23', '', 1, NULL, '2019-09-11 11:46:37'), + ('system_config', '23', '', 1, NULL, '2019-09-11 11:50:35'), + ('system_config', '23', '', 1, NULL, '2019-09-11 14:55:00'), + ('system_config', '23', '', 1, NULL, '2019-09-11 15:26:19'), + ('system_config', '23', '', 1, NULL, '2019-09-11 15:35:51'), + ('system_config', '23', '', 1, NULL, '2019-09-11 15:36:19'), + ('system_config', '23', '', 1, NULL, '2019-09-11 15:36:53'), + ('system_config', '23', '', 1, NULL, '2019-09-11 15:37:58'), + ('system_config', '23', '', 1, NULL, '2019-09-11 15:41:37'), + ('system_config', '23', '', 1, NULL, '2019-09-16 10:12:29'), + ('system_config', '23', '', 1, NULL, '2019-09-20 17:14:08'), + ('system_config', '23', '', 1, NULL, '2019-09-20 17:18:24'), + ('system_config', '23', '', 1, NULL, '2019-09-20 17:23:07'), + ('system_config', '23', '', 1, NULL, '2019-09-20 17:24:17'), + ('system_config', '23', '', 1, NULL, '2019-09-20 17:30:17'), + ('system_config', '23', '', 1, NULL, '2019-09-20 17:31:40'), + ('system_config', '23', '', 1, NULL, '2019-09-20 17:32:34'), + ('system_config', '23', '', 1, NULL, '2019-09-20 17:52:31'), + ('system_config', '23', '', 1, NULL, '2019-09-20 17:55:10'), + ('system_config', '23', '', 1, NULL, '2019-09-20 17:55:47'), + ('system_config', '23', '', 1, NULL, '2019-09-20 17:58:49'), + ('system_config', '23', '', 1, NULL, '2019-09-21 10:53:47'), + ('system_config', '23', '', 1, NULL, '2019-09-22 18:24:21'), + ('system_config', '23', '', 1, NULL, '2019-09-24 09:04:42'), + ('system_config', '23', '', 1, NULL, '2019-10-15 11:06:12'), + ('system_config', '23', '', 1, NULL, '2019-10-15 11:22:10'), + ('system_config', '23', '', 1, NULL, '2019-10-15 16:42:16'), + ('system_config', '23', '', 1, NULL, '2019-10-19 15:18:54'), + ('system_config', '23', '', 1, NULL, '2019-10-19 16:50:10'), + ('system_config', '23', '', 1, NULL, '2019-10-21 15:52:25'), + ('system_config', '23', '', 1, NULL, '2019-10-23 10:24:38'), + ('system_config', '23', '', 1, NULL, '2019-10-23 10:28:45'), + ('system_config', '23', '', 1, NULL, '2019-10-23 16:35:45'), + ('system_config', '23', '', 1, NULL, '2019-10-23 16:38:48'), + ('system_config', '23', '', 1, NULL, '2019-10-25 08:52:22'), + ('system_config', '23', '', 1, NULL, '2019-10-28 16:04:30'), + ('system_config', '23', '', 1, NULL, '2019-10-30 19:59:24'), + ('system_config', '23', '', 1, NULL, '2019-10-31 14:29:26'), + ('system_config', '23', '', 1, NULL, '2019-10-31 14:35:38'), + ('system_config', '23', '', 1, NULL, '2019-10-31 15:58:39'), + ('system_config', '23', '', 1, NULL, '2019-10-31 17:34:48'), + ('system_config', '23', '', 1, NULL, '2019-11-01 11:23:26'), + ('system_config', '23', '', 1, NULL, '2019-11-01 14:55:34'), + ('system_config', '23', '', 1, NULL, '2019-11-02 08:49:44'), + ('system_config', '23', '', 1, NULL, '2019-11-02 09:40:52'), + ('system_config', '23', '', 1, NULL, '2019-11-02 09:42:48'), + ('system_config', '23', '', 1, NULL, '2019-11-02 09:47:38'), + ('system_config', '23', '', 1, NULL, '2019-11-02 09:50:57'), + ('system_config', '23', '', 1, NULL, '2019-11-02 09:51:32'), + ('system_config', '23', '', 1, NULL, '2019-11-02 09:51:48'), + ('system_config', '23', '', 1, NULL, '2019-11-02 15:48:21'), + ('system_config', '23', '', 1, NULL, '2019-11-02 20:48:44'), + ('system_config', '23', '', 1, NULL, '2019-11-02 21:27:50'), + ('system_config', '23', '', 1, NULL, '2019-11-03 22:10:32'), + ('system_config', '23', '', 1, NULL, '2019-11-03 22:10:32'), + ('system_config', '23', '', 1, NULL, '2019-11-04 09:10:24'), + ('system_config', '23', '4234234', 1, NULL, '2019-11-05 10:24:51'), + ('system_config', '23', '4234234', 1, NULL, '2019-11-06 11:22:42'), + ('system_config', '23', '4234234', 1, NULL, '2019-11-06 11:25:54'), + ('system_config', '23', '4234234', 1, NULL, '2019-11-06 11:27:04'), + ('system_config', '23', '4234234', 1, NULL, '2019-11-06 11:28:00'), + ('system_config', '23', '4234234', 1, NULL, '2019-11-06 11:34:06'), + ('system_config', '23', '4234234', 1, NULL, '2019-11-06 11:34:43'), + ('system_config', '23', '4234234', 1, NULL, '2019-11-06 11:53:11'), + ('system_config', '23', '4234234', 1, NULL, '2019-11-06 11:56:05'), + ('system_config', '23', '4234234', 1, NULL, '2019-11-06 13:52:39'), + ('system_config', '23', '4234234', 1, NULL, '2019-11-06 15:29:29'), + ('system_config', '23', '4234234', 1, NULL, '2019-11-06 16:05:36'), + ('system_config', '23', '4234234', 1, NULL, '2019-11-06 16:06:13'), + ('system_config', '23', '4234234', 1, NULL, '2019-11-06 16:13:22'), + ('system_config', '23', '4234234', 1, NULL, '2019-11-06 16:19:38'), + ('system_config', '23', '4234234', 1, NULL, '2019-11-06 16:21:37'), + ('system_config', '23', '4234234', 1, NULL, '2019-11-06 16:22:23'), + ('system_config', '23', '4234234', 1, NULL, '2019-11-08 08:50:08'), + ('system_config', '23', '4234234', 1, NULL, '2019-11-08 13:37:34'), + ('system_config', '23', '4234234', 1, NULL, '2019-11-09 08:35:08'), + ('system_config', '23', '4234234', 1, NULL, '2019-11-09 08:54:38'), + ('system_config', '23', '4234234', 1, NULL, '2019-11-09 09:00:32'), + ('system_config', '23', '4234234', 1, NULL, '2019-11-09 09:01:24'), + ('system_config', '23', '4234234', 1, NULL, '2019-11-09 09:24:16'), + ('system_config', '23', '4234234', 1, NULL, '2019-11-09 09:26:46'), + ('system_config', '23', '4234234', 1, NULL, '2019-11-09 09:43:13'), + ('system_config', '23', '4234234', 1, NULL, '2019-11-09 09:44:48'), + ('system_config', '23', '4234234', 1, NULL, '2019-11-09 10:28:30'), + ('system_config', '23', '4234234', 1, NULL, '2019-11-09 11:24:19'), + ('system_config', '23', '4234234', 1, NULL, '2019-11-11 09:40:42'), + ('system_config', '23', '4234234', 1, NULL, '2019-11-13 17:25:42'), + ('system_config', '23343', '2423', 1, NULL, '2019-11-13 20:29:19'), + ('system_config', '23343', '2423', 1, NULL, '2019-11-13 20:29:23'), + ('system_config', '23343', '234', 1, NULL, '2019-11-14 11:43:57'), + ('system_config', '23343', '234', 1, NULL, '2019-11-14 11:50:18'), + ('system_config', '23343', '234', 1, NULL, '2019-11-14 11:51:13'), + ('system_config', '23343', '234', 1, NULL, '2019-11-14 11:52:03'), + ('system_config', '23343', '234', 1, NULL, '2019-11-14 11:53:02'), + ('system_config', '23343', '234', 1, NULL, '2019-11-14 13:49:11'), + ('system_config', '23343', '234', 1, NULL, '2019-11-14 13:51:05'), + ('system_config', '23343', '234', 1, NULL, '2019-11-14 13:53:53'), + ('system_config', '23343', '234', 1, NULL, '2019-11-14 13:55:57'), + ('system_config', '23343', '234', 1, NULL, '2019-11-14 16:15:44'), + ('system_config', '23343', '234', 1, NULL, '2019-11-14 16:39:36'), + ('system_config', '23343234234', '234', 1, NULL, '2019-11-14 16:41:05'), + ('system_config', '23343234234', '234', 1, NULL, '2019-11-14 16:41:05'), + ('system_config', 'aaaa', '234', 1, NULL, '2019-11-14 16:41:20'), + ('system_config', 'aaaa', '234', 1, NULL, '2019-11-14 16:41:25'), + ('system_config', '111', '234', 1, NULL, '2019-11-14 16:43:20'), + ('system_config', '111', '234', 1, NULL, '2019-11-14 16:44:13'), + ('system_config', 'xxxx', '234', 1, NULL, '2019-11-14 16:46:26'), + ('system_config', 'xxxx', '234', 1, NULL, '2019-11-14 16:46:39'), + ('system_config', 'xxxx', '234', 1, NULL, '2019-11-14 16:48:47'), + ('system_config', 'xxxx', '234', 1, NULL, '2019-11-15 14:39:55'), + ('system_config', 'xxxx', '234', 1, NULL, '2019-11-16 08:47:43'), + ('system_config', 'xxxx', '234', 1, NULL, '2019-11-16 17:12:10'), + ('system_config', 'xxxx', '234', 1, NULL, '2019-11-16 18:02:57'), + ('system_config', 'xxxx', '234', 1, NULL, '2020-12-14 15:09:53'), + ('system_config', 'xxxx', '234', 1, NULL, '2020-12-14 15:13:33'), + ('system_config', 'xxxx', '234', 1, NULL, '2020-12-14 15:14:09'), + ('system_config', 'xxxx', '234', 1, NULL, '2020-12-14 15:16:23'); +/*!40000 ALTER TABLE `t_reload_result` ENABLE KEYS */; + +-- 导出 表 smart-admin-dev.t_role 结构 +DROP TABLE IF EXISTS `t_role`; +CREATE TABLE IF NOT EXISTS `t_role` ( + `id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '主键', + `role_name` varchar(20) NOT NULL COMMENT '角色名称', + `remark` varchar(255) DEFAULT NULL COMMENT '角色描述', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=50 DEFAULT CHARSET=utf8 COMMENT='角色表'; + +-- 正在导出表 smart-admin-dev.t_role 的数据:~14 rows (大约) +DELETE FROM `t_role`; +/*!40000 ALTER TABLE `t_role` DISABLE KEYS */; +INSERT INTO `t_role` (`id`, `role_name`, `remark`, `update_time`, `create_time`) VALUES + (1, '管理员', '', '2019-06-21 12:09:34', '2019-06-21 12:09:34'), + (34, '销售', '', '2019-08-30 09:30:50', '2019-08-30 09:30:50'), + (35, '总经理', '', '2019-08-30 09:31:05', '2019-08-30 09:31:05'), + (36, '董事长', '', '2019-08-30 09:31:11', '2019-08-30 09:31:11'), + (37, '财务', '', '2019-08-30 09:31:16', '2019-08-30 09:31:16'), + (38, '运营', '', '2019-08-30 09:31:22', '2019-08-30 09:31:22'), + (40, '测试角色1', '测试角色1', '2019-09-05 15:05:38', '2019-09-05 15:05:38'), + (41, '测试角色2', '测试角色2', '2019-09-05 15:05:43', '2019-09-05 15:05:43'), + (42, '测试角色3', '测试角色3', '2019-09-05 15:05:49', '2019-09-05 15:05:49'), + (43, '测试角色4', '测试角色4', '2019-09-05 15:05:56', '2019-09-05 15:05:56'), + (45, '测试角色6', '测试角色6', '2019-09-05 15:06:06', '2019-09-05 15:06:06'), + (46, '测试角色7', '测试角色7', '2019-09-05 15:06:18', '2019-09-05 15:06:18'), + (47, '测试角色8', '测试角色8', '2019-09-05 15:06:25', '2019-09-05 15:06:25'), + (48, '测试角色9', '测试角色9', '2019-11-15 17:06:11', '2019-09-05 15:06:30'); +/*!40000 ALTER TABLE `t_role` ENABLE KEYS */; + +-- 导出 表 smart-admin-dev.t_role_data_scope 结构 +DROP TABLE IF EXISTS `t_role_data_scope`; +CREATE TABLE IF NOT EXISTS `t_role_data_scope` ( + `id` int NOT NULL AUTO_INCREMENT, + `data_scope_type` int NOT NULL COMMENT '数据范围id', + `view_type` int NOT NULL COMMENT '数据范围类型', + `role_id` int NOT NULL COMMENT '角色id', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- 正在导出表 smart-admin-dev.t_role_data_scope 的数据:~4 rows (大约) +DELETE FROM `t_role_data_scope`; +/*!40000 ALTER TABLE `t_role_data_scope` DISABLE KEYS */; +INSERT INTO `t_role_data_scope` (`id`, `data_scope_type`, `view_type`, `role_id`, `update_time`, `create_time`) VALUES + (5, 0, 2, 9, '2019-04-29 15:01:04', '2019-04-29 15:01:04'), + (14, 0, 2, 40, '2019-09-05 15:25:37', '2019-09-05 15:25:37'), + (15, 0, 0, 1, '2019-09-06 08:35:45', '2019-09-06 08:35:45'), + (16, 0, 3, 34, '2019-11-06 16:08:02', '2019-11-06 16:08:02'); +/*!40000 ALTER TABLE `t_role_data_scope` ENABLE KEYS */; + +-- 导出 表 smart-admin-dev.t_role_employee 结构 +DROP TABLE IF EXISTS `t_role_employee`; +CREATE TABLE IF NOT EXISTS `t_role_employee` ( + `id` int NOT NULL AUTO_INCREMENT, + `role_id` int NOT NULL COMMENT '角色id', + `employee_id` int NOT NULL COMMENT '员工id', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=214 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='角色员工功能表'; + +-- 正在导出表 smart-admin-dev.t_role_employee 的数据:~25 rows (大约) +DELETE FROM `t_role_employee`; +/*!40000 ALTER TABLE `t_role_employee` DISABLE KEYS */; +INSERT INTO `t_role_employee` (`id`, `role_id`, `employee_id`, `update_time`, `create_time`) VALUES + (121, 38, 22, '2019-09-04 09:23:09', '2019-09-04 09:23:09'), + (130, 1, 30, '2019-09-05 15:32:40', '2019-09-05 15:32:40'), + (131, 1, 17, '2019-09-05 15:32:40', '2019-09-05 15:32:40'), + (132, 1, 26, '2019-09-05 15:32:40', '2019-09-05 15:32:40'), + (135, 1, 12, '2019-09-05 15:32:40', '2019-09-05 15:32:40'), + (136, 1, 11, '2019-09-05 15:32:40', '2019-09-05 15:32:40'), + (137, 1, 16, '2019-09-05 15:32:40', '2019-09-05 15:32:40'), + (138, 1, 18, '2019-09-05 15:32:40', '2019-09-05 15:32:40'), + (139, 1, 19, '2019-09-05 15:32:40', '2019-09-05 15:32:40'), + (140, 1, 20, '2019-09-05 15:32:40', '2019-09-05 15:32:40'), + (141, 1, 23, '2019-09-05 15:32:40', '2019-09-05 15:32:40'), + (147, 1, 35, '2019-09-06 09:00:27', '2019-09-06 09:00:27'), + (148, 40, 35, '2019-09-06 09:00:27', '2019-09-06 09:00:27'), + (165, 40, 32, '2019-11-08 10:39:35', '2019-11-08 10:39:35'), + (166, 34, 32, '2019-11-08 10:39:35', '2019-11-08 10:39:35'), + (167, 38, 32, '2019-11-08 10:39:35', '2019-11-08 10:39:35'), + (168, 38, 36, '2019-11-08 10:40:16', '2019-11-08 10:40:16'), + (169, 40, 36, '2019-11-08 10:40:16', '2019-11-08 10:40:16'), + (170, 37, 36, '2019-11-08 10:40:16', '2019-11-08 10:40:16'), + (174, 38, 37, '2019-11-08 11:05:39', '2019-11-08 11:05:39'), + (175, 42, 37, '2019-11-08 11:05:39', '2019-11-08 11:05:39'), + (188, 1, 1, '2019-11-15 16:05:33', '2019-11-15 16:05:33'), + (211, 40, 38, '2019-11-15 16:54:54', '2019-11-15 16:54:54'), + (212, 34, 29, '2019-11-16 18:04:04', '2019-11-16 18:04:04'), + (213, 45, 29, '2019-11-16 18:04:04', '2019-11-16 18:04:04'); +/*!40000 ALTER TABLE `t_role_employee` ENABLE KEYS */; + +-- 导出 表 smart-admin-dev.t_role_privilege 结构 +DROP TABLE IF EXISTS `t_role_privilege`; +CREATE TABLE IF NOT EXISTS `t_role_privilege` ( + `id` int NOT NULL AUTO_INCREMENT, + `role_id` int NOT NULL COMMENT '角色id', + `privilege_key` varchar(1000) NOT NULL COMMENT '权限key', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=10835 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='角色权限功能表'; + +-- 正在导出表 smart-admin-dev.t_role_privilege 的数据:~322 rows (大约) +DELETE FROM `t_role_privilege`; +/*!40000 ALTER TABLE `t_role_privilege` DISABLE KEYS */; +INSERT INTO `t_role_privilege` (`id`, `role_id`, `privilege_key`, `update_time`, `create_time`) VALUES + (3506, 48, 'search-position', '2019-09-06 15:28:07', '2019-09-06 15:28:07'), + (3507, 48, 'add-position', '2019-09-06 15:28:07', '2019-09-06 15:28:07'), + (3508, 48, 'update-position', '2019-09-06 15:28:07', '2019-09-06 15:28:07'), + (3509, 48, 'delete-position', '2019-09-06 15:28:07', '2019-09-06 15:28:07'), + (3510, 48, 'add-role', '2019-09-06 15:28:07', '2019-09-06 15:28:07'), + (3511, 48, 'delete-role', '2019-09-06 15:28:07', '2019-09-06 15:28:07'), + (3512, 48, 'update-role', '2019-09-06 15:28:07', '2019-09-06 15:28:07'), + (3513, 48, 'update-role-privilege', '2019-09-06 15:28:07', '2019-09-06 15:28:07'), + (3514, 48, 'add-employee-role', '2019-09-06 15:28:07', '2019-09-06 15:28:07'), + (3515, 48, 'delete-employee-role', '2019-09-06 15:28:07', '2019-09-06 15:28:07'), + (3516, 48, 'delete-employee-role-batch', '2019-09-06 15:28:07', '2019-09-06 15:28:07'), + (3517, 48, 'search-employee-list', '2019-09-06 15:28:07', '2019-09-06 15:28:07'), + (3518, 48, 'query-data-scope', '2019-09-06 15:28:07', '2019-09-06 15:28:07'), + (3519, 48, 'update-data-scope', '2019-09-06 15:28:07', '2019-09-06 15:28:07'), + (3520, 48, 'add-department', '2019-09-06 15:28:07', '2019-09-06 15:28:07'), + (3521, 48, 'update-department', '2019-09-06 15:28:07', '2019-09-06 15:28:07'), + (3522, 48, 'delete-department', '2019-09-06 15:28:07', '2019-09-06 15:28:07'), + (3523, 48, 'search-department', '2019-09-06 15:28:07', '2019-09-06 15:28:07'), + (3524, 48, 'add-employee', '2019-09-06 15:28:07', '2019-09-06 15:28:07'), + (3525, 48, 'update-employee', '2019-09-06 15:28:07', '2019-09-06 15:28:07'), + (3526, 48, 'delete-employee', '2019-09-06 15:28:07', '2019-09-06 15:28:07'), + (3527, 48, 'disabled-employee', '2019-09-06 15:28:07', '2019-09-06 15:28:07'), + (3528, 48, 'reset-employee-password', '2019-09-06 15:28:07', '2019-09-06 15:28:07'), + (3529, 48, 'set-employee-role', '2019-09-06 15:28:07', '2019-09-06 15:28:07'), + (3530, 48, 'disabled-employee-batch', '2019-09-06 15:28:07', '2019-09-06 15:28:07'), + (3531, 48, 'update-employee-role', '2019-09-06 15:28:07', '2019-09-06 15:28:07'), + (3533, 48, 'system-params-search', '2019-09-06 15:28:07', '2019-09-06 15:28:07'), + (3534, 48, 'system-params-add', '2019-09-06 15:28:07', '2019-09-06 15:28:07'), + (3535, 48, 'system-config-update', '2019-09-06 15:28:07', '2019-09-06 15:28:07'), + (3536, 48, 'system-config-search', '2019-09-06 15:28:07', '2019-09-06 15:28:07'), + (3537, 48, 'privilegeMainSearch', '2019-09-06 15:28:07', '2019-09-06 15:28:07'), + (3538, 48, 'privilegeMainUpdate', '2019-09-06 15:28:07', '2019-09-06 15:28:07'), + (3539, 48, 'task-search', '2019-09-06 15:28:07', '2019-09-06 15:28:07'), + (3540, 48, 'task-refresh', '2019-09-06 15:28:07', '2019-09-06 15:28:07'), + (3541, 48, 'task-add', '2019-09-06 15:28:07', '2019-09-06 15:28:07'), + (3542, 48, 'task-update', '2019-09-06 15:28:07', '2019-09-06 15:28:07'), + (3543, 48, 'task-pause', '2019-09-06 15:28:07', '2019-09-06 15:28:07'), + (3544, 48, 'task-resume', '2019-09-06 15:28:07', '2019-09-06 15:28:07'), + (3545, 48, 'task-run', '2019-09-06 15:28:07', '2019-09-06 15:28:07'), + (3546, 48, 'task-query-log', '2019-09-06 15:28:07', '2019-09-06 15:28:07'), + (3547, 48, 'task-delete', '2019-09-06 15:28:07', '2019-09-06 15:28:07'), + (3548, 48, 'systemCodeVersionsQuery', '2019-09-06 15:28:07', '2019-09-06 15:28:07'), + (3552, 48, 'roleOneTwo-add', '2019-09-06 15:28:07', '2019-09-06 15:28:07'), + (3555, 48, 'apiDocument', '2019-09-06 15:28:07', '2019-09-06 15:28:07'), + (3557, 48, 'reload', '2019-09-06 15:28:07', '2019-09-06 15:28:07'), + (3559, 48, 'smart-reload-search', '2019-09-06 15:28:07', '2019-09-06 15:28:07'), + (3560, 48, 'smart-reload-update', '2019-09-06 15:28:07', '2019-09-06 15:28:07'), + (3561, 48, 'smart-reload-result', '2019-09-06 15:28:07', '2019-09-06 15:28:07'), + (3575, 45, 'task-search', '2019-09-06 15:28:17', '2019-09-06 15:28:17'), + (3576, 45, 'task-refresh', '2019-09-06 15:28:17', '2019-09-06 15:28:17'), + (3577, 45, 'task-add', '2019-09-06 15:28:17', '2019-09-06 15:28:17'), + (3578, 45, 'task-update', '2019-09-06 15:28:17', '2019-09-06 15:28:17'), + (3579, 45, 'task-pause', '2019-09-06 15:28:17', '2019-09-06 15:28:17'), + (3580, 45, 'task-resume', '2019-09-06 15:28:17', '2019-09-06 15:28:17'), + (3581, 45, 'task-run', '2019-09-06 15:28:17', '2019-09-06 15:28:17'), + (3582, 45, 'task-query-log', '2019-09-06 15:28:17', '2019-09-06 15:28:17'), + (3583, 45, 'task-delete', '2019-09-06 15:28:17', '2019-09-06 15:28:17'), + (3586, 45, 'add-role', '2019-09-06 15:28:17', '2019-09-06 15:28:17'), + (3587, 45, 'delete-role', '2019-09-06 15:28:17', '2019-09-06 15:28:17'), + (3588, 45, 'update-role', '2019-09-06 15:28:17', '2019-09-06 15:28:17'), + (3589, 45, 'update-role-privilege', '2019-09-06 15:28:17', '2019-09-06 15:28:17'), + (3590, 45, 'add-employee-role', '2019-09-06 15:28:17', '2019-09-06 15:28:17'), + (3591, 45, 'delete-employee-role', '2019-09-06 15:28:17', '2019-09-06 15:28:17'), + (3592, 45, 'delete-employee-role-batch', '2019-09-06 15:28:17', '2019-09-06 15:28:17'), + (3593, 45, 'search-employee-list', '2019-09-06 15:28:17', '2019-09-06 15:28:17'), + (3594, 45, 'query-data-scope', '2019-09-06 15:28:17', '2019-09-06 15:28:17'), + (3595, 45, 'update-data-scope', '2019-09-06 15:28:17', '2019-09-06 15:28:17'), + (3597, 45, 'search-position', '2019-09-06 15:28:17', '2019-09-06 15:28:17'), + (3598, 45, 'add-position', '2019-09-06 15:28:17', '2019-09-06 15:28:17'), + (3599, 45, 'update-position', '2019-09-06 15:28:17', '2019-09-06 15:28:17'), + (3600, 45, 'delete-position', '2019-09-06 15:28:17', '2019-09-06 15:28:17'), + (3602, 45, 'add-department', '2019-09-06 15:28:17', '2019-09-06 15:28:17'), + (3603, 45, 'set-employee-role', '2019-09-06 15:28:17', '2019-09-06 15:28:17'), + (3604, 45, 'update-department', '2019-09-06 15:28:17', '2019-09-06 15:28:17'), + (3605, 45, 'delete-department', '2019-09-06 15:28:17', '2019-09-06 15:28:17'), + (3606, 45, 'search-department', '2019-09-06 15:28:17', '2019-09-06 15:28:17'), + (3607, 45, 'add-employee', '2019-09-06 15:28:17', '2019-09-06 15:28:17'), + (3608, 45, 'update-employee', '2019-09-06 15:28:17', '2019-09-06 15:28:17'), + (3609, 45, 'disabled-employee', '2019-09-06 15:28:17', '2019-09-06 15:28:17'), + (3610, 45, 'disabled-employee-batch', '2019-09-06 15:28:17', '2019-09-06 15:28:17'), + (3611, 45, 'update-employee-role', '2019-09-06 15:28:17', '2019-09-06 15:28:17'), + (3612, 45, 'delete-employee', '2019-09-06 15:28:17', '2019-09-06 15:28:17'), + (3613, 45, 'reset-employee-password', '2019-09-06 15:28:17', '2019-09-06 15:28:17'), + (8112, 41, 'SystemSetting', '2019-11-08 11:21:22', '2019-11-08 11:21:22'), + (8113, 41, 'SystemPrivilege', '2019-11-08 11:21:22', '2019-11-08 11:21:22'), + (8114, 41, 'privilege-main-update', '2019-11-08 11:21:22', '2019-11-08 11:21:22'), + (8115, 41, 'privilege-main-search', '2019-11-08 11:21:22', '2019-11-08 11:21:22'), + (8549, 35, 'SystemSetting', '2019-11-15 15:47:52', '2019-11-15 15:47:52'), + (8550, 35, 'SystemConfig', '2019-11-15 15:47:52', '2019-11-15 15:47:52'), + (8551, 35, 'SystemPrivilege', '2019-11-15 15:47:52', '2019-11-15 15:47:52'), + (8552, 35, 'Notice', '2019-11-15 15:47:52', '2019-11-15 15:47:52'), + (8553, 35, 'NoticeList', '2019-11-15 15:47:52', '2019-11-15 15:47:52'), + (8554, 35, 'PersonNotice', '2019-11-15 15:47:52', '2019-11-15 15:47:52'), + (8555, 35, 'Email', '2019-11-15 15:47:52', '2019-11-15 15:47:52'), + (8556, 35, 'EmailList', '2019-11-15 15:47:52', '2019-11-15 15:47:52'), + (8557, 35, 'UserLog', '2019-11-15 15:47:52', '2019-11-15 15:47:52'), + (8558, 35, 'UserOperateLog', '2019-11-15 15:47:52', '2019-11-15 15:47:52'), + (8559, 35, 'UserLoginLog', '2019-11-15 15:47:52', '2019-11-15 15:47:52'), + (8560, 35, 'system-config-search', '2019-11-15 15:47:52', '2019-11-15 15:47:52'), + (8561, 35, 'privilege-main-update', '2019-11-15 15:47:52', '2019-11-15 15:47:52'), + (8562, 35, 'privilege-main-search', '2019-11-15 15:47:52', '2019-11-15 15:47:52'), + (8563, 35, 'notice-query', '2019-11-15 15:47:52', '2019-11-15 15:47:52'), + (8564, 35, 'notice-add', '2019-11-15 15:47:52', '2019-11-15 15:47:52'), + (8565, 35, 'notice-edit', '2019-11-15 15:47:52', '2019-11-15 15:47:52'), + (8566, 35, 'notice-delete', '2019-11-15 15:47:52', '2019-11-15 15:47:52'), + (8567, 35, 'person-notice-query', '2019-11-15 15:47:52', '2019-11-15 15:47:52'), + (8568, 35, 'person-notice-detail', '2019-11-15 15:47:52', '2019-11-15 15:47:52'), + (8569, 35, 'email-query', '2019-11-15 15:47:52', '2019-11-15 15:47:52'), + (8570, 35, 'email-add', '2019-11-15 15:47:52', '2019-11-15 15:47:52'), + (8571, 35, 'email-update', '2019-11-15 15:47:52', '2019-11-15 15:47:52'), + (8572, 35, 'user-operate-log-search', '2019-11-15 15:47:52', '2019-11-15 15:47:52'), + (8573, 35, 'user-login-log-search', '2019-11-15 15:47:52', '2019-11-15 15:47:52'), + (8574, 35, 'system-config-update', '2019-11-15 15:47:52', '2019-11-15 15:47:52'), + (9005, 37, 'SystemSetting', '2019-11-15 16:33:09', '2019-11-15 16:33:09'), + (9006, 37, 'SystemConfig', '2019-11-15 16:33:09', '2019-11-15 16:33:09'), + (9007, 37, 'system-params-search', '2019-11-15 16:33:09', '2019-11-15 16:33:09'), + (9008, 37, 'system-params-add', '2019-11-15 16:33:09', '2019-11-15 16:33:09'), + (9009, 37, 'system-config-update', '2019-11-15 16:33:09', '2019-11-15 16:33:09'), + (9368, 34, 'SystemSetting', '2019-11-15 16:45:39', '2019-11-15 16:45:39'), + (9369, 34, 'SystemConfig', '2019-11-15 16:45:39', '2019-11-15 16:45:39'), + (9370, 34, 'SystemPrivilege', '2019-11-15 16:45:39', '2019-11-15 16:45:39'), + (9371, 34, 'system-params-search', '2019-11-15 16:45:39', '2019-11-15 16:45:39'), + (9372, 34, 'system-params-add', '2019-11-15 16:45:39', '2019-11-15 16:45:39'), + (9373, 34, 'privilege-main-search', '2019-11-15 16:45:39', '2019-11-15 16:45:39'), + (9374, 34, 'Task', '2019-11-15 16:45:39', '2019-11-15 16:45:39'), + (9375, 34, 'TaskList', '2019-11-15 16:45:39', '2019-11-15 16:45:39'), + (9376, 34, 'task-search', '2019-11-15 16:45:39', '2019-11-15 16:45:39'), + (9377, 34, 'task-refresh', '2019-11-15 16:45:39', '2019-11-15 16:45:39'), + (9378, 34, 'task-add', '2019-11-15 16:45:39', '2019-11-15 16:45:39'), + (9379, 34, 'task-update', '2019-11-15 16:45:39', '2019-11-15 16:45:39'), + (9380, 34, 'task-pause', '2019-11-15 16:45:39', '2019-11-15 16:45:39'), + (9381, 34, 'task-resume', '2019-11-15 16:45:39', '2019-11-15 16:45:39'), + (9382, 34, 'task-run', '2019-11-15 16:45:39', '2019-11-15 16:45:39'), + (9383, 34, 'task-query-log', '2019-11-15 16:45:39', '2019-11-15 16:45:39'), + (9384, 34, 'task-delete', '2019-11-15 16:45:39', '2019-11-15 16:45:39'), + (9536, 42, 'Task', '2019-11-15 16:50:40', '2019-11-15 16:50:40'), + (9537, 42, 'TaskList', '2019-11-15 16:50:40', '2019-11-15 16:50:40'), + (9538, 42, 'task-search', '2019-11-15 16:50:40', '2019-11-15 16:50:40'), + (9539, 42, 'task-add', '2019-11-15 16:50:40', '2019-11-15 16:50:40'), + (9540, 42, 'task-update', '2019-11-15 16:50:40', '2019-11-15 16:50:40'), + (9541, 42, 'task-query-log', '2019-11-15 16:50:40', '2019-11-15 16:50:40'), + (9674, 38, 'Employee', '2019-11-15 16:53:47', '2019-11-15 16:53:47'), + (9675, 38, 'PositionList', '2019-11-15 16:53:47', '2019-11-15 16:53:47'), + (9676, 38, 'SystemSetting', '2019-11-15 16:53:47', '2019-11-15 16:53:47'), + (9677, 38, 'SystemConfig', '2019-11-15 16:53:47', '2019-11-15 16:53:47'), + (9678, 38, 'Notice', '2019-11-15 16:53:47', '2019-11-15 16:53:47'), + (9679, 38, 'PersonNotice', '2019-11-15 16:53:47', '2019-11-15 16:53:47'), + (9680, 38, 'Email', '2019-11-15 16:53:47', '2019-11-15 16:53:47'), + (9681, 38, 'EmailList', '2019-11-15 16:53:47', '2019-11-15 16:53:47'), + (9682, 38, 'SendMail', '2019-11-15 16:53:47', '2019-11-15 16:53:47'), + (9683, 38, 'Monitor', '2019-11-15 16:53:47', '2019-11-15 16:53:47'), + (9684, 38, 'OnlineUser', '2019-11-15 16:53:47', '2019-11-15 16:53:47'), + (9685, 38, 'Task', '2019-11-15 16:53:47', '2019-11-15 16:53:47'), + (9686, 38, 'TaskList', '2019-11-15 16:53:47', '2019-11-15 16:53:47'), + (9687, 38, 'KeepAlive', '2019-11-15 16:53:47', '2019-11-15 16:53:47'), + (9688, 38, 'KeepAliveContentList', '2019-11-15 16:53:47', '2019-11-15 16:53:47'), + (9689, 38, 'HeartBeat', '2019-11-15 16:53:47', '2019-11-15 16:53:47'), + (9690, 38, 'HeartBeatList', '2019-11-15 16:53:47', '2019-11-15 16:53:47'), + (9691, 38, 'File', '2019-11-15 16:53:47', '2019-11-15 16:53:47'), + (9692, 38, 'FileList', '2019-11-15 16:53:47', '2019-11-15 16:53:47'), + (9693, 38, 'search-position', '2019-11-15 16:53:47', '2019-11-15 16:53:47'), + (9694, 38, 'system-params-search', '2019-11-15 16:53:47', '2019-11-15 16:53:47'), + (9695, 38, 'system-config-update', '2019-11-15 16:53:47', '2019-11-15 16:53:47'), + (9696, 38, 'system-config-search', '2019-11-15 16:53:47', '2019-11-15 16:53:47'), + (9697, 38, 'person-notice-query', '2019-11-15 16:53:47', '2019-11-15 16:53:47'), + (9698, 38, 'person-notice-detail', '2019-11-15 16:53:47', '2019-11-15 16:53:47'), + (9699, 38, 'email-query', '2019-11-15 16:53:47', '2019-11-15 16:53:47'), + (9700, 38, 'email-send', '2019-11-15 16:53:47', '2019-11-15 16:53:47'), + (9701, 38, 'online-user-search', '2019-11-15 16:53:47', '2019-11-15 16:53:47'), + (9702, 38, 'task-search', '2019-11-15 16:53:47', '2019-11-15 16:53:47'), + (9703, 38, 'heart-beat-query', '2019-11-15 16:53:47', '2019-11-15 16:53:47'), + (9704, 38, 'file-filePage-query', '2019-11-15 16:53:47', '2019-11-15 16:53:47'), + (9705, 38, 'file-filePage-upload', '2019-11-15 16:53:47', '2019-11-15 16:53:47'), + (9706, 38, 'task-refresh', '2019-11-15 16:53:47', '2019-11-15 16:53:47'), + (10585, 40, 'Employee', '2019-11-15 17:19:42', '2019-11-15 17:19:42'), + (10586, 40, 'RoleManage', '2019-11-15 17:19:42', '2019-11-15 17:19:42'), + (10587, 40, 'PositionList', '2019-11-15 17:19:42', '2019-11-15 17:19:42'), + (10588, 40, 'RoleEmployeeManage', '2019-11-15 17:19:42', '2019-11-15 17:19:42'), + (10589, 40, 'SystemSetting', '2019-11-15 17:19:42', '2019-11-15 17:19:42'), + (10590, 40, 'SystemConfig', '2019-11-15 17:19:42', '2019-11-15 17:19:42'), + (10591, 40, 'SystemPrivilege', '2019-11-15 17:19:42', '2019-11-15 17:19:42'), + (10592, 40, 'Notice', '2019-11-15 17:19:42', '2019-11-15 17:19:42'), + (10593, 40, 'NoticeList', '2019-11-15 17:19:42', '2019-11-15 17:19:42'), + (10594, 40, 'PersonNotice', '2019-11-15 17:19:42', '2019-11-15 17:19:42'), + (10595, 40, 'Email', '2019-11-15 17:19:42', '2019-11-15 17:19:42'), + (10596, 40, 'SendMail', '2019-11-15 17:19:42', '2019-11-15 17:19:42'), + (10597, 40, 'Task', '2019-11-15 17:19:42', '2019-11-15 17:19:42'), + (10598, 40, 'TaskList', '2019-11-15 17:19:42', '2019-11-15 17:19:42'), + (10599, 40, 'add-role', '2019-11-15 17:19:42', '2019-11-15 17:19:42'), + (10600, 40, 'delete-role', '2019-11-15 17:19:42', '2019-11-15 17:19:42'), + (10601, 40, 'update-role', '2019-11-15 17:19:42', '2019-11-15 17:19:42'), + (10602, 40, 'update-role-privilege', '2019-11-15 17:19:42', '2019-11-15 17:19:42'), + (10603, 40, 'add-employee-role', '2019-11-15 17:19:42', '2019-11-15 17:19:42'), + (10604, 40, 'search-employee-list', '2019-11-15 17:19:42', '2019-11-15 17:19:42'), + (10605, 40, 'delete-employee-role', '2019-11-15 17:19:42', '2019-11-15 17:19:42'), + (10606, 40, 'delete-employee-role-batch', '2019-11-15 17:19:42', '2019-11-15 17:19:42'), + (10607, 40, 'query-data-scope', '2019-11-15 17:19:42', '2019-11-15 17:19:42'), + (10608, 40, 'update-data-scope', '2019-11-15 17:19:42', '2019-11-15 17:19:42'), + (10609, 40, 'search-position', '2019-11-15 17:19:42', '2019-11-15 17:19:42'), + (10610, 40, 'add-position', '2019-11-15 17:19:42', '2019-11-15 17:19:42'), + (10611, 40, 'update-position', '2019-11-15 17:19:42', '2019-11-15 17:19:42'), + (10612, 40, 'search-department', '2019-11-15 17:19:42', '2019-11-15 17:19:42'), + (10613, 40, 'system-params-add', '2019-11-15 17:19:42', '2019-11-15 17:19:42'), + (10614, 40, 'system-config-search', '2019-11-15 17:19:42', '2019-11-15 17:19:42'), + (10615, 40, 'privilege-main-search', '2019-11-15 17:19:42', '2019-11-15 17:19:42'), + (10616, 40, 'notice-query', '2019-11-15 17:19:42', '2019-11-15 17:19:42'), + (10617, 40, 'notice-add', '2019-11-15 17:19:42', '2019-11-15 17:19:42'), + (10618, 40, 'notice-edit', '2019-11-15 17:19:42', '2019-11-15 17:19:42'), + (10619, 40, 'notice-delete', '2019-11-15 17:19:42', '2019-11-15 17:19:42'), + (10620, 40, 'notice-detail', '2019-11-15 17:19:42', '2019-11-15 17:19:42'), + (10621, 40, 'notice-send', '2019-11-15 17:19:42', '2019-11-15 17:19:42'), + (10622, 40, 'person-notice-query', '2019-11-15 17:19:42', '2019-11-15 17:19:42'), + (10623, 40, 'email-send', '2019-11-15 17:19:42', '2019-11-15 17:19:42'), + (10624, 40, 'task-search', '2019-11-15 17:19:42', '2019-11-15 17:19:42'), + (10625, 40, 'task-refresh', '2019-11-15 17:19:42', '2019-11-15 17:19:42'), + (10626, 40, 'task-add', '2019-11-15 17:19:42', '2019-11-15 17:19:42'), + (10627, 40, 'task-update', '2019-11-15 17:19:42', '2019-11-15 17:19:42'), + (10628, 40, 'task-query-log', '2019-11-15 17:19:42', '2019-11-15 17:19:42'), + (10629, 40, 'task-delete', '2019-11-15 17:19:42', '2019-11-15 17:19:42'), + (10630, 40, 'delete-department', '2019-11-15 17:19:42', '2019-11-15 17:19:42'), + (10733, 1, 'Employee', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10734, 1, 'RoleManage', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10735, 1, 'PositionList', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10736, 1, 'RoleEmployeeManage', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10737, 1, 'SystemSetting', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10738, 1, 'SystemConfig', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10739, 1, 'SystemPrivilege', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10740, 1, 'Notice', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10741, 1, 'NoticeList', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10742, 1, 'PersonNotice', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10743, 1, 'Email', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10744, 1, 'EmailList', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10745, 1, 'SendMail', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10746, 1, 'UserLog', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10747, 1, 'UserOperateLog', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10748, 1, 'UserLoginLog', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10749, 1, 'Monitor', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10750, 1, 'OnlineUser', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10751, 1, 'Sql', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10752, 1, 'Task', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10753, 1, 'TaskList', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10754, 1, 'Reload', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10755, 1, 'SmartReloadList', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10756, 1, 'ApiDoc', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10757, 1, 'Swagger', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10758, 1, 'ThreeRouter', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10759, 1, 'LevelTwo', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10761, 1, 'RoleTwoTwo', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10762, 1, 'RoleOneOne', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10763, 1, 'KeepAlive', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10764, 1, 'KeepAliveContentList', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10765, 1, 'KeepAliveAddContent', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10766, 1, 'HeartBeat', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10767, 1, 'HeartBeatList', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10768, 1, 'File', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10769, 1, 'FileList', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10770, 1, 'add-role', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10771, 1, 'delete-role', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10772, 1, 'update-role', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10773, 1, 'update-role-privilege', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10774, 1, 'add-employee-role', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10775, 1, 'search-employee-list', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10776, 1, 'delete-employee-role', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10777, 1, 'delete-employee-role-batch', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10778, 1, 'query-data-scope', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10779, 1, 'update-data-scope', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10780, 1, 'search-position', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10781, 1, 'add-position', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10782, 1, 'update-position', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10783, 1, 'delete-position', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10784, 1, 'add-department', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10785, 1, 'update-department', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10786, 1, 'delete-department', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10787, 1, 'search-department', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10788, 1, 'add-employee', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10789, 1, 'update-employee', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10790, 1, 'disabled-employee', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10791, 1, 'disabled-employee-batch', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10792, 1, 'update-employee-role', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10793, 1, 'reset-employee-password', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10794, 1, 'delete-employee', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10795, 1, 'system-params-search', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10796, 1, 'system-params-add', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10797, 1, 'system-config-update', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10798, 1, 'system-config-search', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10799, 1, 'privilege-main-update', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10800, 1, 'privilege-main-search', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10801, 1, 'notice-query', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10802, 1, 'notice-add', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10803, 1, 'notice-edit', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10804, 1, 'notice-delete', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10805, 1, 'notice-detail', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10806, 1, 'notice-send', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10807, 1, 'person-notice-query', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10808, 1, 'person-notice-detail', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10809, 1, 'email-query', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10810, 1, 'email-add', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10811, 1, 'email-update', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10812, 1, 'email-delete', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10813, 1, 'email-send', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10814, 1, 'user-operate-log-search', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10815, 1, 'user-operate-log-detail', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10816, 1, 'user-operate-log-delete', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10817, 1, 'user-login-log-search', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10818, 1, 'user-login-log-delete', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10819, 1, 'online-user-search', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10820, 1, 'task-search', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10821, 1, 'task-refresh', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10822, 1, 'task-add', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10823, 1, 'task-update', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10824, 1, 'task-pause', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10825, 1, 'task-resume', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10826, 1, 'task-run', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10827, 1, 'task-query-log', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10828, 1, 'task-delete', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10829, 1, 'smart-reload-search', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10830, 1, 'smart-reload-update', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10831, 1, 'smart-reload-result', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10832, 1, 'heart-beat-query', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10833, 1, 'file-filePage-query', '2019-11-16 18:04:10', '2019-11-16 18:04:10'), + (10834, 1, 'file-filePage-upload', '2019-11-16 18:04:10', '2019-11-16 18:04:10'); +/*!40000 ALTER TABLE `t_role_privilege` ENABLE KEYS */; + +-- 导出 表 smart-admin-dev.t_system_config 结构 +DROP TABLE IF EXISTS `t_system_config`; +CREATE TABLE IF NOT EXISTS `t_system_config` ( + `id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '主键', + `config_name` varchar(255) NOT NULL COMMENT '参数名字', + `config_key` varchar(255) NOT NULL COMMENT '参数key', + `config_value` text NOT NULL, + `config_group` varchar(255) NOT NULL COMMENT '参数类别', + `is_using` int NOT NULL COMMENT '是否使用0 否 1 是', + `remark` varchar(255) DEFAULT NULL, + `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '上次修改时间', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC; + +-- 正在导出表 smart-admin-dev.t_system_config 的数据:~8 rows (大约) +DELETE FROM `t_system_config`; +/*!40000 ALTER TABLE `t_system_config` DISABLE KEYS */; +INSERT INTO `t_system_config` (`id`, `config_name`, `config_key`, `config_value`, `config_group`, `is_using`, `remark`, `update_time`, `create_time`) VALUES + (1, '超级管理员', 'employee_superman', '12,13,1', 'employee', 1, '123r8566456', '2019-11-14 16:40:48', '2018-08-18 16:28:03'), + (13, '本地上传URL前缀', 'local_upload_url_prefix', 'http://172.16.0.145/smartAdmin/file/', 'upload', 1, '', '2019-09-04 16:23:49', '2019-04-26 17:06:53'), + (14, '阿里云上传配置', 'ali_oss', '{"accessKeyId":"","accessKeySecret":"","bucketName":"sit","endpoint":"http://oss-cn-beijing.aliyuncs.com"}', 'upload', 1, 'eefwfwfds', '2019-11-16 18:04:30', '2019-05-11 18:00:06'), + (15, '邮件发配置', 'email_config', '{"password":"smartadmin","smtpHost":"smtp.163.com","username":"smartadmin1024@163.com"}', 'email', 1, NULL, '2019-09-04 16:42:17', '2019-05-13 16:57:48'), + (16, '七牛云上传配置', 'qi_niu_oss', '{"accessKeyId":"rX7HgY1ZLpUD25JrA-uwMM_jj-","accessKeySecret":"","bucketName":"sun-smart-admin","endpoint":"http://puvpyay08.bkt.clouddn.com"}', 'upload', 1, NULL, '2019-11-16 18:04:42', '2019-07-19 16:05:56'), + (17, 'test', 'ww_1', 'ewr', '3', 1, 'testoo', '2019-11-08 09:43:36', '2019-11-08 09:27:19'), + (18, '4234', '42342', '423423', '23423', 1, '423423111111111111111111111111111111111111423423111111111111111111111111111111111111423423111111111111111111111111111111111111423423111111111111111111111111111111111111423423111111111111111111111111111111111111', '2019-11-14 14:58:39', '2019-11-14 11:22:49'), + (19, 'test323@', 'test', '123456', '11_', 1, 'gggggg', '2019-11-15 16:24:52', '2019-11-15 16:24:52'); +/*!40000 ALTER TABLE `t_system_config` ENABLE KEYS */; + +-- 导出 表 smart-admin-dev.t_user_login_log 结构 +DROP TABLE IF EXISTS `t_user_login_log`; +CREATE TABLE IF NOT EXISTS `t_user_login_log` ( + `id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '主键', + `user_id` int NOT NULL COMMENT '员工id', + `user_name` varchar(50) NOT NULL COMMENT '用户名', + `remote_ip` varchar(50) DEFAULT NULL COMMENT '用户ip', + `remote_port` int DEFAULT NULL COMMENT '用户端口', + `remote_browser` varchar(100) DEFAULT NULL COMMENT '浏览器', + `remote_os` varchar(50) DEFAULT NULL COMMENT '操作系统', + `login_status` tinyint NOT NULL COMMENT '登录状态 0 失败 1成功', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + PRIMARY KEY (`id`), + KEY `customer_id` (`user_id`) USING BTREE, + KEY `auditor_id` (`remote_browser`) USING BTREE +) ENGINE=InnoDB AUTO_INCREMENT=1743 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户登录日志'; + +-- 正在导出表 smart-admin-dev.t_user_login_log 的数据:~122 rows (大约) +DELETE FROM `t_user_login_log`; +/*!40000 ALTER TABLE `t_user_login_log` DISABLE KEYS */; +INSERT INTO `t_user_login_log` (`id`, `user_id`, `user_name`, `remote_ip`, `remote_port`, `remote_browser`, `remote_os`, `login_status`, `update_time`, `create_time`) VALUES + (1501, 30, '耿为刚', '172.16.1.234', 61406, 'Chrome', 'Windows 10', 1, '2019-09-06 14:19:47', '2019-09-06 14:19:47'), + (1502, 30, '耿为刚', '172.16.1.234', 61405, 'Chrome', 'Windows 10', 1, '2019-09-06 14:20:46', '2019-09-06 14:20:46'), + (1503, 30, '耿为刚', '172.16.1.234', 62213, 'Chrome', 'Windows 10', 1, '2019-09-06 14:28:50', '2019-09-06 14:28:50'), + (1505, 30, '耿为刚', '172.16.1.234', 62478, 'Chrome', 'Windows 10', 1, '2019-09-06 14:32:57', '2019-09-06 14:32:57'), + (1506, 1, '管理员', '127.0.0.1', 55613, 'Chrome', 'Windows 10', 1, '2019-09-06 14:35:48', '2019-09-06 14:35:48'), + (1507, 1, '管理员', '172.16.1.234', 63132, 'Chrome', 'Windows 10', 1, '2019-09-06 14:38:43', '2019-09-06 14:38:43'), + (1508, 30, '耿为刚', '172.16.1.234', 63132, 'Chrome', 'Windows 10', 1, '2019-09-06 14:41:36', '2019-09-06 14:41:36'), + (1509, 1, '管理员', '172.16.1.234', 63332, 'Chrome', 'Windows 10', 1, '2019-09-06 14:42:37', '2019-09-06 14:42:37'), + (1511, 1, '管理员', '172.16.1.166', 29923, 'Chrome', 'Windows 10', 1, '2019-09-06 15:09:22', '2019-09-06 15:09:22'), + (1512, 1, '管理员', '172.16.1.113', 58150, 'Chrome', 'Windows 7', 1, '2019-09-06 15:23:31', '2019-09-06 15:23:31'), + (1513, 1, '管理员', '172.16.1.166', 31226, 'Chrome', 'Windows 10', 1, '2019-09-06 15:24:51', '2019-09-06 15:24:51'), + (1514, 1, '管理员', '172.16.1.113', 58300, 'Chrome', 'Windows 7', 1, '2019-09-06 15:25:04', '2019-09-06 15:25:04'), + (1515, 1, '管理员', '172.16.1.113', 58300, 'Chrome', 'Windows 7', 1, '2019-09-06 15:25:26', '2019-09-06 15:25:26'), + (1516, 1, '管理员', '172.16.1.166', 31243, 'Chrome', 'Windows 10', 1, '2019-09-06 15:25:29', '2019-09-06 15:25:29'), + (1517, 1, '管理员', '172.16.1.221', 61458, 'Chrome', 'Windows 10', 1, '2019-09-06 15:27:07', '2019-09-06 15:27:07'), + (1518, 1, '管理员', '172.16.1.166', 31243, 'Chrome', 'Windows 10', 1, '2019-09-06 15:27:09', '2019-09-06 15:27:09'), + (1519, 1, '管理员', '172.16.1.113', 58300, 'Chrome', 'Windows 7', 1, '2019-09-06 15:27:10', '2019-09-06 15:27:10'), + (1520, 1, '管理员', '172.16.1.166', 31551, 'Chrome', 'Windows 10', 1, '2019-09-06 15:30:01', '2019-09-06 15:30:01'), + (1521, 1, '管理员', '172.16.4.160', 50527, 'Chrome', 'Windows 10', 1, '2019-09-06 15:50:20', '2019-09-06 15:50:20'), + (1522, 1, '管理员', '172.16.1.166', 36381, 'Chrome', 'Windows 10', 1, '2019-09-06 16:20:46', '2019-09-06 16:20:46'), + (1523, 1, '管理员', '172.16.1.166', 40039, 'Chrome', 'Windows 10', 1, '2019-09-06 17:02:33', '2019-09-06 17:02:33'), + (1524, 1, '管理员', '172.16.1.166', 41014, 'Chrome', 'Windows 10', 1, '2019-09-06 17:16:09', '2019-09-06 17:16:09'), + (1525, 1, '管理员', '172.16.1.188', 56577, 'Chrome', 'Windows 7', 1, '2019-09-07 08:36:31', '2019-09-07 08:36:31'), + (1526, 1, '管理员', '172.16.1.48', 60852, 'Chrome', 'Windows 10', 1, '2019-09-07 08:45:02', '2019-09-07 08:45:02'), + (1527, 1, '管理员', '172.16.4.85', 4818, 'Chrome', 'Windows 10', 1, '2019-09-07 09:04:44', '2019-09-07 09:04:44'), + (1528, 1, '管理员', '172.16.4.85', 5230, 'Chrome', 'Windows 10', 1, '2019-09-07 09:25:41', '2019-09-07 09:25:41'), + (1529, 1, '管理员', '172.16.1.166', 10251, 'Chrome', 'Windows 10', 1, '2019-09-07 10:15:20', '2019-09-07 10:15:20'), + (1530, 1, '管理员', '172.16.1.48', 63877, 'Chrome', 'Windows 10', 1, '2019-09-07 11:26:19', '2019-09-07 11:26:19'), + (1531, 1, '管理员', '172.16.1.166', 26667, 'Chrome', 'Windows 10', 1, '2019-09-07 14:08:15', '2019-09-07 14:08:15'), + (1532, 1, '管理员', '172.16.4.85', 10604, 'Chrome', 'Windows 10', 1, '2019-09-07 14:08:33', '2019-09-07 14:08:33'), + (1533, 1, '管理员', '172.16.4.85', 10604, 'Chrome', 'Windows 10', 1, '2019-09-07 14:08:50', '2019-09-07 14:08:50'), + (1534, 1, '管理员', '172.16.1.166', 26812, 'Chrome', 'Windows 10', 1, '2019-09-07 14:14:09', '2019-09-07 14:14:09'), + (1535, 1, '管理员', '172.16.1.188', 52924, 'Chrome', 'Windows 7', 1, '2019-09-07 14:37:16', '2019-09-07 14:37:16'), + (1536, 1, '管理员', '172.16.1.188', 56721, 'Chrome', 'Windows 7', 1, '2019-09-07 14:49:37', '2019-09-07 14:49:37'), + (1537, 1, '管理员', '172.16.1.188', 52839, 'Chrome', 'Windows 7', 1, '2019-09-07 15:33:04', '2019-09-07 15:33:04'), + (1538, 1, '管理员', '172.16.1.166', 32489, 'Chrome', 'Windows 10', 1, '2019-09-07 15:48:02', '2019-09-07 15:48:02'), + (1539, 1, '管理员', '172.16.1.166', 32847, 'Chrome', 'Windows 10', 1, '2019-09-07 15:52:25', '2019-09-07 15:52:25'), + (1540, 1, '管理员', '172.16.1.166', 33456, 'Chrome', 'Windows 10', 1, '2019-09-07 16:00:01', '2019-09-07 16:00:01'), + (1541, 1, '管理员', '172.16.1.188', 61015, 'Chrome', 'Windows 7', 1, '2019-09-07 17:05:49', '2019-09-07 17:05:49'), + (1542, 1, '管理员', '127.0.0.1', 51566, 'Chrome', 'Windows 7', 1, '2019-09-07 17:31:20', '2019-09-07 17:31:20'), + (1543, 1, '管理员', '127.0.0.1', 54228, 'Chrome', 'Windows 7', 1, '2019-09-07 17:41:12', '2019-09-07 17:41:12'), + (1544, 1, '管理员', '127.0.0.1', 54957, 'Chrome', 'Windows 7', 1, '2019-09-07 17:43:21', '2019-09-07 17:43:21'), + (1545, 1, '管理员', '172.16.4.85', 2336, 'Chrome', 'Windows 10', 1, '2019-09-07 18:25:51', '2019-09-07 18:25:51'), + (1546, 1, '管理员', '127.0.0.1', 52161, 'Chrome', 'Windows 7', 1, '2019-09-09 08:30:47', '2019-09-09 08:30:47'), + (1547, 1, '管理员', '172.16.4.85', 5903, 'Chrome', 'Windows 10', 1, '2019-09-09 08:47:47', '2019-09-09 08:47:47'), + (1548, 1, '管理员', '172.16.1.243', 55673, 'Chrome', 'Windows 10', 1, '2019-09-09 11:25:02', '2019-09-09 11:25:02'), + (1549, 1, '管理员', '172.16.4.85', 4672, 'Chrome', 'Windows 10', 1, '2019-09-09 11:25:34', '2019-09-09 11:25:34'), + (1550, 1, '管理员', '172.16.1.188', 61186, 'Chrome', 'Windows 7', 1, '2019-09-09 11:39:24', '2019-09-09 11:39:24'), + (1551, 1, '管理员', '172.16.4.85', 3032, 'Chrome', 'Windows 10', 1, '2019-09-09 14:17:53', '2019-09-09 14:17:53'), + (1552, 1, '管理员', '172.16.4.85', 5829, 'Chrome', 'Windows 10', 1, '2019-09-09 14:54:27', '2019-09-09 14:54:27'), + (1553, 1, '管理员', '172.16.1.166', 23398, 'Chrome', 'Windows 10', 1, '2019-09-09 15:06:50', '2019-09-09 15:06:50'), + (1554, 1, '管理员', '172.16.5.60', 61094, 'Chrome', 'Windows 10', 1, '2019-09-09 15:20:50', '2019-09-09 15:20:50'), + (1555, 1, '管理员', '172.16.4.85', 10566, 'Chrome', 'Windows 10', 1, '2019-09-09 15:51:22', '2019-09-09 15:51:22'), + (1556, 1, '管理员', '172.16.1.166', 32190, 'Chrome', 'Windows 10', 1, '2019-09-09 17:00:59', '2019-09-09 17:00:59'), + (1557, 1, '管理员', '172.16.5.60', 54502, 'Chrome', 'Windows 10', 1, '2019-09-10 09:10:48', '2019-09-10 09:10:48'), + (1558, 1, '管理员', '172.16.4.85', 10659, 'Chrome', 'Windows 10', 1, '2019-09-10 09:21:48', '2019-09-10 09:21:48'), + (1559, 1, '管理员', '172.16.4.85', 3363, 'Chrome', 'Windows 10', 1, '2019-09-10 10:56:23', '2019-09-10 10:56:23'), + (1560, 1, '管理员', '172.16.4.85', 4460, 'Chrome', 'Windows 10', 1, '2019-09-10 14:23:44', '2019-09-10 14:23:44'), + (1561, 1, '管理员', '172.16.4.85', 7344, 'Chrome', 'Windows 10', 1, '2019-09-10 14:59:52', '2019-09-10 14:59:52'), + (1562, 1, '管理员', '172.16.5.89', 49996, 'Chrome', 'Windows 10', 1, '2019-09-10 18:08:04', '2019-09-10 18:08:04'), + (1563, 1, '管理员', '172.16.1.38', 50152, 'Chrome', 'Windows 10', 1, '2019-09-11 10:19:27', '2019-09-11 10:19:27'), + (1564, 1, '管理员', '172.16.1.38', 50173, 'Chrome', 'Windows 10', 1, '2019-09-11 10:20:38', '2019-09-11 10:20:38'), + (1565, 1, '管理员', '172.16.4.141', 60881, 'Chrome', 'Windows 10', 1, '2019-09-11 14:52:02', '2019-09-11 14:52:02'), + (1566, 1, '管理员', '172.16.4.93', 52688, 'Chrome', 'Windows 10', 1, '2019-09-11 15:15:14', '2019-09-11 15:15:14'), + (1567, 1, '管理员', '172.16.5.127', 54993, 'Chrome', 'Windows 10', 1, '2019-09-12 14:29:58', '2019-09-12 14:29:58'), + (1568, 1, '管理员', '172.16.5.127', 57424, 'Chrome', 'Windows 10', 1, '2019-09-12 15:26:46', '2019-09-12 15:26:46'), + (1569, 1, '管理员', '172.16.5.127', 58073, 'Chrome', 'Windows 10', 1, '2019-09-12 15:41:54', '2019-09-12 15:41:54'), + (1570, 1, '管理员', '172.16.5.146', 63230, 'Chrome', 'Windows 10', 1, '2019-09-16 10:17:15', '2019-09-16 10:17:15'), + (1571, 1, '管理员', '172.16.5.146', 52857, 'Chrome', 'Windows 10', 1, '2019-09-16 11:17:18', '2019-09-16 11:17:18'), + (1572, 1, '管理员', '172.16.1.190', 64527, 'Chrome', 'Windows 10', 1, '2019-09-19 14:06:45', '2019-09-19 14:06:45'), + (1573, 1, '管理员', '127.0.0.1', 53267, 'Chrome', 'Windows 7', 1, '2019-09-20 17:24:33', '2019-09-20 17:24:33'), + (1574, 1, '管理员', '127.0.0.1', 53267, 'Chrome', 'Windows 7', 1, '2019-09-20 17:24:43', '2019-09-20 17:24:43'), + (1575, 1, '管理员', '127.0.0.1', 53267, 'Chrome', 'Windows 7', 1, '2019-09-20 17:24:59', '2019-09-20 17:24:59'), + (1576, 1, '管理员', '127.0.0.1', 53267, 'Chrome', 'Windows 7', 1, '2019-09-20 17:26:05', '2019-09-20 17:26:05'), + (1577, 1, '管理员', '127.0.0.1', 60612, 'Chrome', 'Windows 7', 1, '2019-09-20 17:56:06', '2019-09-20 17:56:06'), + (1578, 1, '管理员', '172.16.1.202', 58066, 'Chrome', 'Windows 7', 1, '2019-09-22 18:25:03', '2019-09-22 18:25:03'), + (1579, 1, '管理员', '172.16.1.48', 52290, 'Chrome', 'Windows 10', 1, '2019-09-23 16:01:16', '2019-09-23 16:01:16'), + (1580, 1, '管理员', '172.16.4.141', 60997, 'Chrome', 'Windows 10', 1, '2019-09-23 17:16:55', '2019-09-23 17:16:55'), + (1581, 1, '管理员', '172.16.5.146', 53246, 'Chrome', 'Windows 10', 1, '2019-09-23 17:54:14', '2019-09-23 17:54:14'), + (1582, 1, '管理员', '127.0.0.1', 51987, 'Chrome', 'Windows 7', 1, '2019-09-24 09:16:37', '2019-09-24 09:16:37'), + (1583, 1, '管理员', '172.16.1.202', 55724, 'Chrome', 'Windows 7', 1, '2019-09-24 12:57:39', '2019-09-24 12:57:39'), + (1584, 1, '管理员', '172.16.1.166', 51876, 'Chrome', 'Windows 10', 1, '2019-09-24 16:24:37', '2019-09-24 16:24:37'), + (1585, 1, '管理员', '172.16.1.202', 51648, 'Chrome', 'Windows 7', 1, '2019-09-24 19:26:39', '2019-09-24 19:26:39'), + (1586, 1, '管理员', '172.16.1.234', 60984, 'Chrome', 'Windows 10', 1, '2019-09-26 10:52:07', '2019-09-26 10:52:07'), + (1587, 1, '管理员', '172.16.1.234', 63440, 'Chrome', 'Windows 10', 1, '2019-09-26 11:30:54', '2019-09-26 11:30:54'), + (1588, 1, '管理员', '172.16.1.202', 51956, 'Chrome', 'Windows 7', 1, '2019-09-27 20:55:08', '2019-09-27 20:55:08'), + (1589, 1, '管理员', '172.16.1.48', 56166, 'Chrome', 'Windows 10', 1, '2019-09-30 08:59:13', '2019-09-30 08:59:13'), + (1590, 1, '管理员', '172.16.1.202', 51448, 'Chrome', 'Windows 7', 1, '2019-09-30 09:00:13', '2019-09-30 09:00:13'), + (1591, 1, '管理员', '172.16.1.188', 62679, 'Chrome', 'Windows 7', 1, '2019-10-15 11:25:26', '2019-10-15 11:25:26'), + (1592, 1, '管理员', '172.16.1.234', 54034, 'Chrome', 'Windows 10', 1, '2019-10-18 10:47:14', '2019-10-18 10:47:14'), + (1593, 1, '管理员', '172.16.1.234', 64515, 'Chrome', 'Windows 10', 1, '2019-10-18 13:32:10', '2019-10-18 13:32:10'), + (1594, 1, '管理员', '172.16.1.234', 50211, 'Chrome', 'Windows 10', 1, '2019-10-18 13:56:19', '2019-10-18 13:56:19'), + (1595, 1, '管理员', '172.16.1.234', 55469, 'Chrome', 'Windows 10', 1, '2019-10-18 14:56:24', '2019-10-18 14:56:24'), + (1596, 1, '管理员', '172.16.1.234', 56392, 'Chrome', 'Windows 10', 1, '2019-10-18 15:08:25', '2019-10-18 15:08:25'), + (1597, 1, '管理员', '172.16.1.234', 60896, 'Chrome', 'Windows 10', 1, '2019-10-18 16:14:15', '2019-10-18 16:14:15'), + (1598, 1, '管理员', '172.16.1.234', 50590, 'Chrome', 'Windows 10', 1, '2019-10-19 08:38:54', '2019-10-19 08:38:54'), + (1599, 1, '管理员', '172.16.1.166', 4879, 'Chrome', 'Windows 10', 1, '2019-10-19 09:19:08', '2019-10-19 09:19:08'), + (1600, 1, '管理员', '172.16.1.188', 62895, 'Chrome', 'Windows 7', 1, '2019-10-19 13:49:29', '2019-10-19 13:49:29'), + (1601, 1, '管理员', '172.16.1.234', 58144, 'Chrome', 'Windows 10', 1, '2019-10-19 14:55:50', '2019-10-19 14:55:50'), + (1602, 1, '管理员', '127.0.0.1', 61033, 'Chrome', 'Windows 7', 1, '2019-10-19 15:19:38', '2019-10-19 15:19:38'), + (1603, 1, '管理员', '172.16.1.188', 58944, 'Chrome', 'Windows 7', 1, '2019-10-19 16:48:49', '2019-10-19 16:48:49'), + (1604, 1, '管理员', '172.16.1.188', 63950, 'Chrome', 'Windows 7', 1, '2019-10-21 08:10:38', '2019-10-21 08:10:38'), + (1605, 1, '管理员', '172.16.1.188', 64899, 'Chrome', 'Windows 7', 1, '2019-10-21 08:17:40', '2019-10-21 08:17:40'), + (1606, 1, '管理员', '172.16.1.221', 53180, 'Chrome', 'Windows 10', 1, '2019-10-21 15:52:36', '2019-10-21 15:52:36'), + (1607, 1, '管理员', '172.16.1.221', 56067, 'Chrome', 'Windows 10', 1, '2019-10-23 10:19:39', '2019-10-23 10:19:39'), + (1608, 1, '管理员', '172.16.1.221', 57692, 'Chrome', 'Windows 10', 1, '2019-10-23 16:36:39', '2019-10-23 16:36:39'), + (1609, 1, '管理员', '172.16.1.188', 57180, 'Chrome', 'Windows 7', 1, '2019-10-24 08:26:21', '2019-10-24 08:26:21'), + (1610, 1, '管理员', '172.16.0.196', 61409, 'Chrome', 'Windows 10', 1, '2019-10-24 08:26:55', '2019-10-24 08:26:55'), + (1611, 1, '管理员', '172.16.1.234', 51906, 'Chrome', 'Windows 10', 1, '2019-10-24 15:56:50', '2019-10-24 15:56:50'), + (1612, 1, '管理员', '172.16.1.234', 56793, 'Chrome', 'Windows 10', 1, '2019-10-24 17:04:54', '2019-10-24 17:04:54'), + (1613, 30, '耿为刚', '172.16.1.234', 60368, 'Chrome', 'Windows 10', 1, '2019-10-24 17:51:13', '2019-10-24 17:51:13'), + (1614, 1, '管理员', '172.16.1.234', 60368, 'Chrome', 'Windows 10', 1, '2019-10-24 17:51:56', '2019-10-24 17:51:56'), + (1615, 30, '耿为刚', '172.16.1.234', 60589, 'Chrome 65', 'Windows 10', 1, '2019-10-24 17:52:52', '2019-10-24 17:52:52'), + (1616, 1, '管理员', '172.16.1.234', 52998, 'Chrome', 'Windows 10', 1, '2019-10-25 09:28:13', '2019-10-25 09:28:13'), + (1617, 1, '管理员', '172.16.1.234', 54948, 'Chrome', 'Windows 10', 1, '2019-10-25 10:01:34', '2019-10-25 10:01:34'), + (1618, 1, '管理员', '172.16.1.234', 56800, 'Chrome', 'Windows 10', 1, '2019-10-25 10:32:53', '2019-10-25 10:32:53'), + (1619, 1, '管理员', '127.0.0.1', 59071, 'Chrome', 'Windows 7', 1, '2019-10-28 16:05:21', '2019-10-28 16:05:21'), + (1620, 1, '管理员', '127.0.0.1', 60106, 'Chrome', 'Windows 7', 1, '2019-10-28 16:11:29', '2019-10-28 16:11:29'), + (1621, 1, '管理员', '127.0.0.1', 63479, 'Chrome', 'Windows 7', 1, '2019-10-28 16:28:59', '2019-10-28 16:28:59'), + (1622, 1, '管理员', '127.0.0.1', 63479, 'Chrome', 'Windows 7', 1, '2019-10-28 16:29:55', '2019-10-28 16:29:55'), + (1623, 1, '管理员', '127.0.0.1', 57588, 'Chrome', 'Windows 7', 1, '2019-10-29 15:37:03', '2019-10-29 15:37:03'), + (1741, 1, '管理员', '127.0.0.1', 54621, 'Chrome', 'Windows 7', 1, '2019-11-16 18:03:45', '2019-11-16 18:03:45'), + (1742, 1, '管理员', '127.0.0.1', 60932, 'Chrome 8', 'Windows 10', 1, '2020-12-14 15:14:55', '2020-12-14 15:14:55'); +/*!40000 ALTER TABLE `t_user_login_log` ENABLE KEYS */; + +-- 导出 表 smart-admin-dev.t_user_operate_log 结构 +DROP TABLE IF EXISTS `t_user_operate_log`; +CREATE TABLE IF NOT EXISTS `t_user_operate_log` ( + `id` int NOT NULL AUTO_INCREMENT COMMENT '主键', + `user_id` int NOT NULL COMMENT '用户id', + `user_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '用户名称', + `module` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '操作模块', + `content` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '操作内容', + `url` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '请求路径', + `method` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '请求方法', + `param` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '请求参数', + `result` tinyint DEFAULT NULL COMMENT '请求结果 0失败 1成功', + `fail_reason` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '失败原因', + `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', + `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', + PRIMARY KEY (`id`) +) ENGINE=InnoDB AUTO_INCREMENT=75 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- 正在导出表 smart-admin-dev.t_user_operate_log 的数据:~32 rows (大约) +DELETE FROM `t_user_operate_log`; +/*!40000 ALTER TABLE `t_user_operate_log` DISABLE KEYS */; +INSERT INTO `t_user_operate_log` (`id`, `user_id`, `user_name`, `module`, `content`, `url`, `method`, `param`, `result`, `fail_reason`, `update_time`, `create_time`) VALUES + (1, 1, '管理员', '管理端-角色权限', '获取角色可选的功能权限', '/smart-admin-api/privilege/listPrivilegeByRoleId/0', 'com.gangquan360.smartadmin.module.role.roleprivilege.RolePrivilegeController.listPrivilegeByRoleId', 'Long[0]', 1, NULL, '2019-11-01 00:00:00', '2019-11-01 00:00:00'), + (2, 1, '管理员', '管理端-角色', '获取所有角色', '/smart-admin-api/role/getAll', 'com.gangquan360.smartadmin.module.role.basic.RoleController.getAllRole', '', 1, NULL, '2019-11-01 00:00:00', '2019-11-01 00:00:00'), + (3, 1, '管理员', '管理端-角色权限', '获取角色可选的功能权限', '/smart-admin-api/privilege/listPrivilegeByRoleId/1', 'com.gangquan360.smartadmin.module.role.roleprivilege.RolePrivilegeController.listPrivilegeByRoleId', 'Long[1]', 1, NULL, '2019-11-01 00:00:00', '2019-11-01 00:00:00'), + (4, 1, '管理员', '管理端-岗位', '分页查询所有岗位', '/smart-admin-api/position/getListPage', 'com.gangquan360.smartadmin.module.position.PositionController.getJobPage', 'PositionQueryDTO[{"pageNum":1,"pageSize":10,"positionName":"","searchCount":true,"sort":false}]', 1, NULL, '2019-11-01 00:00:00', '2019-11-01 00:00:00'), + (5, 1, '管理员', '管理端-角色', '获取所有角色', '/smart-admin-api/role/getAll', 'com.gangquan360.smartadmin.module.role.basic.RoleController.getAllRole', '', 1, NULL, '2019-11-01 00:00:00', '2019-11-01 00:00:00'), + (6, 1, '管理员', '管理端-部门', '根据部门名称查询部门及员工列表', '/smart-admin-api/department/listEmployeeByDepartmentName', 'com.gangquan360.smartadmin.module.department.DepartmentController.listDepartmentEmployee', 'String[""]', 1, NULL, '2019-11-01 00:00:00', '2019-11-01 00:00:00'), + (7, 1, '管理员', '管理端-部门', '查询部门及员工列表', '/smart-admin-api/department/listEmployee', 'com.gangquan360.smartadmin.module.department.DepartmentController.listDepartmentEmployee', '', 1, NULL, '2019-11-01 00:00:00', '2019-11-01 00:00:00'), + (8, 1, '管理员', '管理端-用户', '员工管理查询', '/smart-admin-api/employee/query', 'com.gangquan360.smartadmin.module.employee.EmployeeController.query', 'EmployeeQueryDTO[{"isDelete":0,"isDisabled":0,"keyword":"","pageNum":1,"pageSize":10}]', 1, NULL, '2019-11-01 00:00:00', '2019-11-01 00:00:00'), + (9, 1, '管理员', '管理端-用户', '员工重置密码', '/smart-admin-api/employee/resetPasswd/29', 'com.gangquan360.smartadmin.module.employee.EmployeeController.resetPasswd', 'Integer[29]', 1, NULL, '2019-11-01 00:00:00', '2019-11-01 00:00:00'), + (10, 1, '管理员', '管理端-用户', '员工管理查询', '/smart-admin-api/employee/query', 'com.gangquan360.smartadmin.module.employee.EmployeeController.query', 'EmployeeQueryDTO[{"isDelete":0,"isDisabled":0,"keyword":"","pageNum":1,"pageSize":10}]', 1, NULL, '2019-11-01 00:00:00', '2019-11-01 00:00:00'), + (11, 1, '管理员', '管理端-角色用户', '通过员工id获取所有角色以及员工具有的角色', '/smart-admin-api/role/getRoles/29', 'com.gangquan360.smartadmin.module.role.roleemployee.RoleEmployeeController.getRoleByEmployeeId', 'Long[29]', 1, NULL, '2019-11-01 00:00:00', '2019-11-01 00:00:00'), + (12, 1, '管理员', '管理端-用户', '单个员工角色授权', '/smart-admin-api/employee/updateRoles', 'com.gangquan360.smartadmin.module.employee.EmployeeController.updateRoles', 'EmployeeUpdateRolesDTO[{"employeeId":29,"roleIds":[34,45]}]', 1, NULL, '2019-11-01 00:00:00', '2019-11-01 00:00:00'), + (13, 1, '管理员', '管理端-用户', '员工管理查询', '/smart-admin-api/employee/query', 'com.gangquan360.smartadmin.module.employee.EmployeeController.query', 'EmployeeQueryDTO[{"isDelete":0,"isDisabled":0,"keyword":"","pageNum":1,"pageSize":10}]', 1, NULL, '2019-11-01 00:00:00', '2019-11-01 00:00:00'), + (14, 1, '管理员', '管理端-角色权限', '更新角色权限', '/smart-admin-api/privilege/updateRolePrivilege', 'com.gangquan360.smartadmin.module.role.roleprivilege.RolePrivilegeController.updateRolePrivilege', 'RolePrivilegeDTO[{"privilegeKeyList":["Employee","RoleManage","PositionList","RoleEmployeeManage","SystemSetting","SystemConfig","SystemPrivilege","Notice","NoticeList","PersonNotice","Email","EmailList","SendMail","UserLog","UserOperateLog","UserLoginLog","Monitor","OnlineUser","Sql","Task","TaskList","Reload","SmartReloadList","ApiDoc","Swagger","ThreeRouter","LevelTwo","RoleOneTwo","RoleTwoTwo","RoleOneOne","KeepAlive","KeepAliveContentList","KeepAliveAddContent","HeartBeat","HeartBeatList","File","FileList","add-role","delete-role","update-role","update-role-privilege","add-employee-role","search-employee-list","delete-employee-role","delete-employee-role-batch","query-data-scope","update-data-scope","search-position","add-position","update-position","delete-position","add-department","update-department","delete-department","search-department","add-employee","update-employee","disabled-employee","disabled-employee-batch","update-employee-role","reset-employee-password","delete-employee","system-params-search","system-params-add","system-config-update","system-config-search","privilege-main-update","privilege-main-search","notice-query","notice-add","notice-edit","notice-delete","notice-detail","notice-send","person-notice-query","person-notice-detail","email-query","email-add","email-update","email-delete","email-send","user-operate-log-search","user-operate-log-detail","user-operate-log-delete","user-login-log-search","user-login-log-delete","online-user-search","task-search","task-refresh","task-add","task-update","task-pause","task-resume","task-run","task-query-log","task-delete","smart-reload-search","smart-reload-update","smart-reload-result","heart-beat-query","file-filePage-query","file-filePage-upload"],"roleId":1}]', 1, NULL, '2019-11-01 00:00:00', '2019-11-01 00:00:00'), + (15, 1, '管理员', '管理端-角色权限', '获取角色可选的功能权限', '/smart-admin-api/privilege/listPrivilegeByRoleId/1', 'com.gangquan360.smartadmin.module.role.roleprivilege.RolePrivilegeController.listPrivilegeByRoleId', 'Long[1]', 1, NULL, '2019-11-01 00:00:00', '2019-11-01 00:00:00'), + (16, 1, '管理员', '管理端-系统配置', '分页查询所有系统配置', '/smart-admin-api/systemConfig/getListPage', 'com.gangquan360.smartadmin.module.systemconfig.SystemConfigController.getSystemConfigPage', 'SystemConfigQueryDTO[{"key":"","pageNum":1,"pageSize":10}]', 1, NULL, '2019-11-01 00:00:00', '2019-11-01 00:00:00'), + (17, 1, '管理员', '管理端-系统配置', '修改配置参数', '/smart-admin-api/systemConfig/update', 'com.gangquan360.smartadmin.module.systemconfig.SystemConfigController.updateSystemConfig', 'SystemConfigUpdateDTO[{"configGroup":"upload","configKey":"ali_oss","configName":"阿里云上传配置","configValue":"{\\"accessKeyId\\":\\"\\",\\"accessKeySecret\\":\\"\\",\\"bucketName\\":\\"sit\\",\\"endpoint\\":\\"http://oss-cn-beijing.aliyuncs.com\\"}","id":14,"remark":"eefwfwfds"}]', 1, NULL, '2019-11-01 00:00:00', '2019-11-01 00:00:00'), + (18, 1, '管理员', '管理端-系统配置', '分页查询所有系统配置', '/smart-admin-api/systemConfig/getListPage', 'com.gangquan360.smartadmin.module.systemconfig.SystemConfigController.getSystemConfigPage', 'SystemConfigQueryDTO[{"key":"","pageNum":1,"pageSize":10}]', 1, NULL, '2019-11-01 00:00:00', '2019-11-01 00:00:00'), + (19, 1, '管理员', '管理端-系统配置', '修改配置参数', '/smart-admin-api/systemConfig/update', 'com.gangquan360.smartadmin.module.systemconfig.SystemConfigController.updateSystemConfig', 'SystemConfigUpdateDTO[{"configGroup":"upload","configKey":"qi_niu_oss","configName":"七牛云上传配置","configValue":"{\\"accessKeyId\\":\\"rX7HgY1ZLpUD25JrA-uwMM_jj-\\",\\"accessKeySecret\\":\\"\\",\\"bucketName\\":\\"sun-smart-admin\\",\\"endpoint\\":\\"http://puvpyay08.bkt.clouddn.com\\"}","id":16}]', 1, NULL, '2019-11-01 00:00:00', '2019-11-01 00:00:00'), + (20, 1, '管理员', '管理端-系统配置', '分页查询所有系统配置', '/smart-admin-api/systemConfig/getListPage', 'com.gangquan360.smartadmin.module.systemconfig.SystemConfigController.getSystemConfigPage', 'SystemConfigQueryDTO[{"key":"","pageNum":1,"pageSize":10}]', 1, NULL, '2019-11-01 00:00:00', '2019-11-01 00:00:00'), + (21, 1, '管理员', '通用-权限', '获取所有请求路径', '/smart-admin-api/privilege/getAllUrl', 'com.gangquan360.smartadmin.module.privilege.controller.PrivilegeController.getAllUrl', '', 1, NULL, '2019-11-01 00:00:00', '2019-11-01 00:00:00'), + (22, 1, '管理员', '通用-权限', '查询所有菜单项', '/smart-admin-api/privilege/menu/queryAll', 'com.gangquan360.smartadmin.module.privilege.controller.PrivilegeController.queryAll', '', 1, NULL, '2019-11-01 00:00:00', '2019-11-01 00:00:00'), + (23, 1, '管理员', '通用-权限', '查询菜单功能点', '/smart-admin-api/privilege/function/query/FileList', 'com.gangquan360.smartadmin.module.privilege.controller.PrivilegeController.functionQuery', 'String["FileList"]', 1, NULL, '2019-11-01 00:00:00', '2019-11-01 00:00:00'), + (24, 1, '管理员', '通用-权限', '保存更新功能点', '/smart-admin-api/privilege/function/saveOrUpdate', 'com.gangquan360.smartadmin.module.privilege.controller.PrivilegeController.functionSaveOrUpdate', 'PrivilegeFunctionDTO[{"functionKey":"file-filePage-download","functionName":"下载","menuKey":"FileList","sort":2,"url":"fileController.downLoadById"}]', 1, NULL, '2019-11-01 00:00:00', '2019-11-01 00:00:00'), + (25, 1, '管理员', '通用-权限', '查询菜单功能点', '/smart-admin-api/privilege/function/query/FileList', 'com.gangquan360.smartadmin.module.privilege.controller.PrivilegeController.functionQuery', 'String["FileList"]', 1, NULL, '2019-11-01 00:00:00', '2019-11-01 00:00:00'), + (26, 1, '管理员', '通用-邮件发送', '分页查询', '/smart-admin-api/email/page/query', 'com.gangquan360.smartadmin.module.email.EmailController.queryByPage', 'EmailQueryDTO[{"endDate":"","pageNum":1,"pageSize":10,"searchCount":true,"startDate":""}]', 1, NULL, '2019-11-01 00:00:00', '2019-11-01 00:00:00'), + (27, 1, '管理员', '管理端-用户操作日志', '分页查询', '/smart-admin-api/userOperateLog/page/query', 'com.gangquan360.smartadmin.module.log.useroperatelog.UserOperateLogController.queryByPage', 'UserOperateLogQueryDTO[{"endDate":"","pageNum":1,"pageSize":10,"searchCount":true,"sort":false,"startDate":"","userName":""}]', 1, NULL, '2019-11-01 00:00:00', '2019-11-01 00:00:00'), + (28, 1, '管理员', '管理端-用户登录日志', '分页查询用户登录日志', '/smart-admin-api/userLoginLog/page/query', 'com.gangquan360.smartadmin.module.log.userloginlog.UserLoginLogController.queryByPage', 'UserLoginLogQueryDTO[{"endDate":"","pageNum":1,"pageSize":10,"searchCount":true,"sort":false,"startDate":"","userName":""}]', 1, NULL, '2019-11-01 00:00:00', '2019-11-01 00:00:00'), + (29, 1, '管理员', '管理端-用户登录日志', '查询员工在线状态', '/smart-admin-api/userOnLine/query', 'com.gangquan360.smartadmin.module.log.userloginlog.UserLoginLogController.queryUserOnLine', 'EmployeeQueryDTO[{"actualName":"","employeeIds":[1],"isDelete":0,"pageNum":1,"pageSize":10}]', 1, NULL, '2019-11-01 00:00:00', '2019-11-01 00:00:00'), + (30, 1, '管理员', '管理端-任务调度', '查询任务', '/smart-admin-api/quartz/task/query', 'com.gangquan360.smartadmin.module.quartz.controller.QuartzController.query', 'QuartzQueryDTO[{"pageNum":1,"pageSize":10}]', 1, NULL, '2019-11-01 00:00:00', '2019-11-01 00:00:00'), + (31, 1, '管理员', '管理端-smart reload', '获取全部Smart-reload项', '/smart-admin-api/smartReload/all', 'com.gangquan360.smartadmin.module.smartreload.SmartReloadController.listAllReloadItem', '', 1, NULL, '2019-11-01 00:00:00', '2019-11-01 00:00:00'), + (32, 1, '管理员', '通用-心跳服务', '查询心跳记录 @author zhuoda', '/smart-admin-api/heartBeat/query', 'com.gangquan360.smartadmin.module.heartbeat.HeartBeatController.query', 'PageParamDTO[{"pageNum":1,"pageSize":10}]', 1, NULL, '2019-11-01 00:00:00', '2019-11-01 00:00:00'), + (33, 1, '管理员', '通用-权限', '获取所有请求路径', '/smart-admin-api/privilege/getAllUrl', 'net.lab1024.smartadmin.module.system.privilege.controller.PrivilegeController.getAllUrl', '', 1, NULL, '2020-12-14 15:15:06', '2020-12-14 15:15:06'), + (34, 1, '管理员', '通用-权限', '查询所有菜单项', '/smart-admin-api/privilege/menu/queryAll', 'net.lab1024.smartadmin.module.system.privilege.controller.PrivilegeController.queryAll', '', 1, NULL, '2020-12-14 15:15:06', '2020-12-14 15:15:06'), + (35, 1, '管理员', '通用-权限', '菜单批量保存', '/smart-admin-api/privilege/menu/batchSaveMenu', 'net.lab1024.smartadmin.module.system.privilege.controller.PrivilegeController.menuBatchSave', 'ValidateList[[{"menuKey":"Business","menuName":"业务功能","sort":0,"type":1,"url":"/business"},{"menuKey":"Peony","menuName":"牡丹管理","parentKey":"Business","sort":0,"type":1,"url":"/peony"},{"menuKey":"PeonyList","menuName":"牡丹花列表","parentKey":"Peony","sort":0,"type":1,"url":"/peony/peony-list"},{"menuKey":"PeonyList1","menuName":"牡丹花列表1","parentKey":"Peony","sort":0,"type":1,"url":"/peony/peony-list1"},{"menuKey":"Email","menuName":"邮件管理","parentKey":"Business","sort":0,"type":1,"url":"/email"},{"menuKey":"EmailList","menuName":"邮件管理","parentKey":"Email","sort":0,"type":1,"url":"/email/email-list"},{"menuKey":"SendMail","menuName":"发送邮件","parentKey":"Email","sort":0,"type":1,"url":"/email/send-mail"},{"menuKey":"KeepAlive","menuName":"KeepAlive","parentKey":"Business","sort":0,"type":1,"url":"/keep-alive"},{"menuKey":"KeepAliveContentList","menuName":"KeepAlive列表","parentKey":"KeepAlive","sort":0,"type":1,"url":"/keep-alive/content-list"},{"menuKey":"KeepAliveAddContent","menuName":"KeepAlive表单","parentKey":"KeepAlive","sort":0,"type":1,"url":"/keep-alive/add-content"},{"menuKey":"Notice","menuName":"消息管理","parentKey":"Business","sort":0,"type":1,"url":"/notice"},{"menuKey":"NoticeList","menuName":"通知管理","parentKey":"Notice","sort":0,"type":1,"url":"/notice/notice-list"},{"menuKey":"PersonNotice","menuName":"个人消息","parentKey":"Notice","sort":0,"type":1,"url":"/notice/person-notice"},{"menuKey":"NoticeDetail","menuName":"消息详情","parentKey":"Notice","sort":0,"type":1,"url":"/notice/notice-detail"},{"menuKey":"ThreeRouter","menuName":"三级路由","parentKey":"Business","sort":0,"type":1,"url":"/three-router"},{"menuKey":"LevelTwo","menuName":"三级菜单","parentKey":"ThreeRouter","sort":0,"type":1,"url":"/three-router/level-two"},{"menuKey":"ThreeLevelRouterView","menuName":"三级菜单子颗粒","parentKey":"LevelTwo","sort":0,"type":1,"url":"/three-router/level-two/level-three1"},{"menuKey":"RoleTwoTwo","menuName":"三级菜单子哈","parentKey":"LevelTwo","sort":0,"type":1,"url":"/three-router/level-two/level-three2"},{"menuKey":"RoleOneOne","menuName":"二级菜单","parentKey":"ThreeRouter","sort":0,"type":1,"url":"/three-router/level-two2"},{"menuKey":"System","menuName":"系统设置","sort":0,"type":1,"url":"/system"},{"menuKey":"Employee","menuName":"人员管理","parentKey":"System","sort":0,"type":1,"url":"/employee"},{"menuKey":"RoleManage","menuName":"角色管理","parentKey":"Employee","sort":0,"type":1,"url":"/employee/role"},{"menuKey":"PositionList","menuName":"岗位管理","parentKey":"Employee","sort":0,"type":1,"url":"/employee/position"},{"menuKey":"RoleEmployeeManage","menuName":"员工管理","parentKey":"Employee","sort":0,"type":1,"url":"/employee/role-employee-manage"},{"menuKey":"File","menuName":"文件服务","parentKey":"System","sort":0,"type":1,"url":"/file"},{"menuKey":"FileList","menuName":"文件列表","parentKey":"File","sort":0,"type":1,"url":"/file/file-list"},{"menuKey":"UserLog","menuName":"用户日志","parentKey":"System","sort":0,"type":1,"url":"/user-log"},{"menuKey":"UserOperateLog","menuName":"用户操作日志","parentKey":"UserLog","sort":0,"type":1,"url":"/user-log/user-operate-log"},{"menuKey":"UserLoginLog","menuName":"用户登录日志","parentKey":"UserLog","sort":0,"type":1,"url":"/user-log/user-login-log"},{"menuKey":"SystemSetting","menuName":"系统设置","parentKey":"System","sort":0,"type":1,"url":"/system-setting"},{"menuKey":"SystemConfig","menuName":"系统参数","parentKey":"SystemSetting","sort":0,"type":1,"url":"/system-setting/system-config"},{"menuKey":"SystemPrivilege","menuName":"菜单设置","parentKey":"SystemSetting","sort":0,"type":1,"url":"/system-setting/system-privilege"},{"menuKey":"Support","menuName":"开发专用","sort":0,"type":1,"url":"/support"},{"menuKey":"ApiDoc","menuName":"接口文档","parentKey":"Support","sort":0,"type":1,"url":"/api-doc"},{"menuKey":"Swagger","menuName":"Swagger接口文档","parentKey":"ApiDoc","sort":0,"type":1,"url":"/api-doc/swagger"},{"menuKey":"HeartBeat","menuName":"心跳服务","parentKey":"Support","sort":0,"type":1,"url":"/heart-beat"},{"menuKey":"HeartBeatList","menuName":"心跳服务","parentKey":"HeartBeat","sort":0,"type":1,"url":"/heart-beat/heart-beat-list"},{"menuKey":"Monitor","menuName":"系统监控","parentKey":"Support","sort":0,"type":1,"url":"/monitor"},{"menuKey":"OnlineUser","menuName":"在线人数","parentKey":"Monitor","sort":0,"type":1,"url":"/monitor/online-user"},{"menuKey":"Sql","menuName":"SQL监控","parentKey":"Monitor","sort":0,"type":1,"url":"/monitor/sql"},{"menuKey":"Reload","menuName":"动态加载","parentKey":"Support","sort":0,"type":1,"url":"/reload"},{"menuKey":"SmartReloadList","menuName":"SmartReload","parentKey":"Reload","sort":0,"type":1,"url":"/reload/smart-reload-list"},{"menuKey":"Task","menuName":"定时任务","parentKey":"Support","sort":0,"type":1,"url":"/task"},{"menuKey":"TaskList","menuName":"任务管理","parentKey":"Task","sort":0,"type":1,"url":"/system-setting/task-list"}]]', 1, NULL, '2020-12-14 15:15:07', '2020-12-14 15:15:07'), + (36, 1, '管理员', '通用-权限', '查询所有菜单项', '/smart-admin-api/privilege/menu/queryAll', 'net.lab1024.smartadmin.module.system.privilege.controller.PrivilegeController.queryAll', '', 1, NULL, '2020-12-14 15:15:07', '2020-12-14 15:15:07'), + (37, 1, '管理员', '管理端-用户登录', '获取session', '/smart-admin-api/session/get', 'net.lab1024.smartadmin.module.system.login.LoginController.getSession', '', 1, NULL, '2020-12-14 15:15:29', '2020-12-14 15:15:29'), + (38, 1, '管理员', '通用-权限', '获取所有请求路径', '/smart-admin-api/privilege/getAllUrl', 'net.lab1024.smartadmin.module.system.privilege.controller.PrivilegeController.getAllUrl', '', 1, NULL, '2020-12-14 15:16:25', '2020-12-14 15:16:25'), + (39, 1, '管理员', '通用-权限', '查询所有菜单项', '/smart-admin-api/privilege/menu/queryAll', 'net.lab1024.smartadmin.module.system.privilege.controller.PrivilegeController.queryAll', '', 1, NULL, '2020-12-14 15:16:25', '2020-12-14 15:16:25'), + (40, 1, '管理员', '通用-权限', '菜单批量保存', '/smart-admin-api/privilege/menu/batchSaveMenu', 'net.lab1024.smartadmin.module.system.privilege.controller.PrivilegeController.menuBatchSave', 'ValidateList[[{"menuKey":"Business","menuName":"业务功能","sort":0,"type":1,"url":"/business"},{"menuKey":"Peony","menuName":"牡丹管理","parentKey":"Business","sort":1,"type":1,"url":"/peony"},{"menuKey":"PeonyList","menuName":"牡丹花列表","parentKey":"Peony","sort":2,"type":1,"url":"/peony/peony-list"},{"menuKey":"PeonyList1","menuName":"牡丹花列表1","parentKey":"Peony","sort":3,"type":1,"url":"/peony/peony-list1"},{"menuKey":"Email","menuName":"邮件管理","parentKey":"Business","sort":4,"type":1,"url":"/email"},{"menuKey":"EmailList","menuName":"邮件管理","parentKey":"Email","sort":5,"type":1,"url":"/email/email-list"},{"menuKey":"SendMail","menuName":"发送邮件","parentKey":"Email","sort":6,"type":1,"url":"/email/send-mail"},{"menuKey":"KeepAlive","menuName":"KeepAlive","parentKey":"Business","sort":7,"type":1,"url":"/keep-alive"},{"menuKey":"KeepAliveContentList","menuName":"KeepAlive列表","parentKey":"KeepAlive","sort":8,"type":1,"url":"/keep-alive/content-list"},{"menuKey":"KeepAliveAddContent","menuName":"KeepAlive表单","parentKey":"KeepAlive","sort":9,"type":1,"url":"/keep-alive/add-content"},{"menuKey":"Notice","menuName":"消息管理","parentKey":"Business","sort":10,"type":1,"url":"/notice"},{"menuKey":"NoticeList","menuName":"通知管理","parentKey":"Notice","sort":11,"type":1,"url":"/notice/notice-list"},{"menuKey":"PersonNotice","menuName":"个人消息","parentKey":"Notice","sort":12,"type":1,"url":"/notice/person-notice"},{"menuKey":"NoticeDetail","menuName":"消息详情","parentKey":"Notice","sort":13,"type":1,"url":"/notice/notice-detail"},{"menuKey":"ThreeRouter","menuName":"三级路由","parentKey":"Business","sort":14,"type":1,"url":"/three-router"},{"menuKey":"LevelTwo","menuName":"三级菜单","parentKey":"ThreeRouter","sort":15,"type":1,"url":"/three-router/level-two"},{"menuKey":"ThreeLevelRouterView","menuName":"三级菜单子颗粒","parentKey":"LevelTwo","sort":16,"type":1,"url":"/three-router/level-two/level-three1"},{"menuKey":"RoleTwoTwo","menuName":"三级菜单子哈","parentKey":"LevelTwo","sort":17,"type":1,"url":"/three-router/level-two/level-three2"},{"menuKey":"RoleOneOne","menuName":"二级菜单","parentKey":"ThreeRouter","sort":18,"type":1,"url":"/three-router/level-two2"},{"menuKey":"System","menuName":"系统设置","sort":19,"type":1,"url":"/system"},{"menuKey":"Employee","menuName":"人员管理","parentKey":"System","sort":20,"type":1,"url":"/employee"},{"menuKey":"RoleManage","menuName":"角色管理","parentKey":"Employee","sort":21,"type":1,"url":"/employee/role"},{"menuKey":"PositionList","menuName":"岗位管理","parentKey":"Employee","sort":22,"type":1,"url":"/employee/position"},{"menuKey":"RoleEmployeeManage","menuName":"员工管理","parentKey":"Employee","sort":23,"type":1,"url":"/employee/role-employee-manage"},{"menuKey":"File","menuName":"文件服务","parentKey":"System","sort":24,"type":1,"url":"/file"},{"menuKey":"FileList","menuName":"文件列表","parentKey":"File","sort":25,"type":1,"url":"/file/file-list"},{"menuKey":"UserLog","menuName":"用户日志","parentKey":"System","sort":26,"type":1,"url":"/user-log"},{"menuKey":"UserOperateLog","menuName":"用户操作日志","parentKey":"UserLog","sort":27,"type":1,"url":"/user-log/user-operate-log"},{"menuKey":"UserLoginLog","menuName":"用户登录日志","parentKey":"UserLog","sort":28,"type":1,"url":"/user-log/user-login-log"},{"menuKey":"SystemSetting","menuName":"系统设置","parentKey":"System","sort":29,"type":1,"url":"/system-setting"},{"menuKey":"SystemConfig","menuName":"系统参数","parentKey":"SystemSetting","sort":30,"type":1,"url":"/system-setting/system-config"},{"menuKey":"SystemPrivilege","menuName":"菜单设置","parentKey":"SystemSetting","sort":31,"type":1,"url":"/system-setting/system-privilege"},{"menuKey":"Support","menuName":"开发专用","sort":32,"type":1,"url":"/support"},{"menuKey":"ApiDoc","menuName":"接口文档","parentKey":"Support","sort":33,"type":1,"url":"/api-doc"},{"menuKey":"Swagger","menuName":"Swagger接口文档","parentKey":"ApiDoc","sort":34,"type":1,"url":"/api-doc/swagger"},{"menuKey":"HeartBeat","menuName":"心跳服务","parentKey":"Support","sort":35,"type":1,"url":"/heart-beat"},{"menuKey":"HeartBeatList","menuName":"心跳服务","parentKey":"HeartBeat","sort":36,"type":1,"url":"/heart-beat/heart-beat-list"},{"menuKey":"Monitor","menuName":"系统监控","parentKey":"Support","sort":37,"type":1,"url":"/monitor"},{"menuKey":"OnlineUser","menuName":"在线人数","parentKey":"Monitor","sort":38,"type":1,"url":"/monitor/online-user"},{"menuKey":"Sql","menuName":"SQL监控","parentKey":"Monitor","sort":39,"type":1,"url":"/monitor/sql"},{"menuKey":"Reload","menuName":"动态加载","parentKey":"Support","sort":40,"type":1,"url":"/reload"},{"menuKey":"SmartReloadList","menuName":"SmartReload","parentKey":"Reload","sort":41,"type":1,"url":"/reload/smart-reload-list"},{"menuKey":"Task","menuName":"定时任务","parentKey":"Support","sort":42,"type":1,"url":"/task"},{"menuKey":"TaskList","menuName":"任务管理","parentKey":"Task","sort":43,"type":1,"url":"/system-setting/task-list"}]]', 1, NULL, '2020-12-14 15:16:26', '2020-12-14 15:16:26'), + (41, 1, '管理员', '通用-权限', '查询所有菜单项', '/smart-admin-api/privilege/menu/queryAll', 'net.lab1024.smartadmin.module.system.privilege.controller.PrivilegeController.queryAll', '', 1, NULL, '2020-12-14 15:16:26', '2020-12-14 15:16:26'), + (42, 1, '管理员', '通用-权限', '查询菜单功能点', '/smart-admin-api/privilege/function/query/PeonyList', 'net.lab1024.smartadmin.module.system.privilege.controller.PrivilegeController.functionQuery', 'String["PeonyList"]', 1, NULL, '2020-12-14 15:16:28', '2020-12-14 15:16:28'), + (43, 1, '管理员', '通用-权限', '批量保存功能点', '/smart-admin-api/privilege/function/batchSave', 'net.lab1024.smartadmin.module.system.privilege.controller.PrivilegeController.batchSaveFunctionList', 'ValidateList[[{"functionKey":"peony-list-query","functionName":"查询","menuKey":"PeonyList","sort":1},{"functionKey":"peony-list-add","functionName":"新增","menuKey":"PeonyList","sort":2},{"functionKey":"peony-list-update","functionName":"编辑","menuKey":"PeonyList","sort":3},{"functionKey":"peony-list-batch-delete","functionName":"批量删除","menuKey":"PeonyList","sort":4},{"functionKey":"peony-list-batch-export","functionName":"批量导出","menuKey":"PeonyList","sort":5},{"functionKey":"peony-list-export-all","functionName":"导出全部","menuKey":"PeonyList","sort":6}]]', 1, NULL, '2020-12-14 15:16:30', '2020-12-14 15:16:30'), + (44, 1, '管理员', '通用-权限', '查询菜单功能点', '/smart-admin-api/privilege/function/query/PeonyList', 'net.lab1024.smartadmin.module.system.privilege.controller.PrivilegeController.functionQuery', 'String["PeonyList"]', 1, NULL, '2020-12-14 15:16:30', '2020-12-14 15:16:30'), + (45, 1, '管理员', '通用-权限', '查询菜单功能点', '/smart-admin-api/privilege/function/query/PeonyList1', 'net.lab1024.smartadmin.module.system.privilege.controller.PrivilegeController.functionQuery', 'String["PeonyList1"]', 1, NULL, '2020-12-14 15:16:32', '2020-12-14 15:16:32'), + (46, 1, '管理员', '通用-权限', '批量保存功能点', '/smart-admin-api/privilege/function/batchSave', 'net.lab1024.smartadmin.module.system.privilege.controller.PrivilegeController.batchSaveFunctionList', 'ValidateList[[{"functionKey":"peony1-list-query","functionName":"查询","menuKey":"PeonyList1","sort":1},{"functionKey":"peony1-list-add","functionName":"新增","menuKey":"PeonyList1","sort":2},{"functionKey":"peony1-list-update","functionName":"编辑","menuKey":"PeonyList1","sort":3},{"functionKey":"peony1-list-batch-delete","functionName":"批量删除","menuKey":"PeonyList1","sort":4},{"functionKey":"peony1-list-batch-export","functionName":"批量导出","menuKey":"PeonyList1","sort":5},{"functionKey":"peony1-list-export-all","functionName":"导出全部","menuKey":"PeonyList1","sort":6}]]', 1, NULL, '2020-12-14 15:16:33', '2020-12-14 15:16:33'), + (47, 1, '管理员', '通用-权限', '查询菜单功能点', '/smart-admin-api/privilege/function/query/PeonyList1', 'net.lab1024.smartadmin.module.system.privilege.controller.PrivilegeController.functionQuery', 'String["PeonyList1"]', 1, NULL, '2020-12-14 15:16:33', '2020-12-14 15:16:33'), + (48, 1, '管理员', '通用-权限', '查询菜单功能点', '/smart-admin-api/privilege/function/query/EmailList', 'net.lab1024.smartadmin.module.system.privilege.controller.PrivilegeController.functionQuery', 'String["EmailList"]', 1, NULL, '2020-12-14 15:16:34', '2020-12-14 15:16:34'), + (49, 1, '管理员', '通用-权限', '查询菜单功能点', '/smart-admin-api/privilege/function/query/SendMail', 'net.lab1024.smartadmin.module.system.privilege.controller.PrivilegeController.functionQuery', 'String["SendMail"]', 1, NULL, '2020-12-14 15:16:36', '2020-12-14 15:16:36'), + (50, 1, '管理员', '通用-权限', '查询菜单功能点', '/smart-admin-api/privilege/function/query/KeepAliveContentList', 'net.lab1024.smartadmin.module.system.privilege.controller.PrivilegeController.functionQuery', 'String["KeepAliveContentList"]', 1, NULL, '2020-12-14 15:16:38', '2020-12-14 15:16:38'), + (51, 1, '管理员', '通用-权限', '查询菜单功能点', '/smart-admin-api/privilege/function/query/KeepAliveAddContent', 'net.lab1024.smartadmin.module.system.privilege.controller.PrivilegeController.functionQuery', 'String["KeepAliveAddContent"]', 1, NULL, '2020-12-14 15:16:38', '2020-12-14 15:16:38'), + (52, 1, '管理员', '通用-权限', '查询菜单功能点', '/smart-admin-api/privilege/function/query/NoticeList', 'net.lab1024.smartadmin.module.system.privilege.controller.PrivilegeController.functionQuery', 'String["NoticeList"]', 1, NULL, '2020-12-14 15:16:40', '2020-12-14 15:16:40'), + (53, 1, '管理员', '通用-权限', '查询菜单功能点', '/smart-admin-api/privilege/function/query/PersonNotice', 'net.lab1024.smartadmin.module.system.privilege.controller.PrivilegeController.functionQuery', 'String["PersonNotice"]', 1, NULL, '2020-12-14 15:16:41', '2020-12-14 15:16:41'), + (54, 1, '管理员', '通用-权限', '查询菜单功能点', '/smart-admin-api/privilege/function/query/NoticeDetail', 'net.lab1024.smartadmin.module.system.privilege.controller.PrivilegeController.functionQuery', 'String["NoticeDetail"]', 1, NULL, '2020-12-14 15:16:42', '2020-12-14 15:16:42'), + (55, 1, '管理员', '通用-权限', '查询菜单功能点', '/smart-admin-api/privilege/function/query/ThreeLevelRouterView', 'net.lab1024.smartadmin.module.system.privilege.controller.PrivilegeController.functionQuery', 'String["ThreeLevelRouterView"]', 1, NULL, '2020-12-14 15:16:44', '2020-12-14 15:16:44'), + (56, 1, '管理员', '通用-权限', '查询菜单功能点', '/smart-admin-api/privilege/function/query/RoleManage', 'net.lab1024.smartadmin.module.system.privilege.controller.PrivilegeController.functionQuery', 'String["RoleManage"]', 1, NULL, '2020-12-14 15:16:47', '2020-12-14 15:16:47'), + (57, 1, '管理员', '通用-权限', '查询菜单功能点', '/smart-admin-api/privilege/function/query/PositionList', 'net.lab1024.smartadmin.module.system.privilege.controller.PrivilegeController.functionQuery', 'String["PositionList"]', 1, NULL, '2020-12-14 15:16:48', '2020-12-14 15:16:48'), + (58, 1, '管理员', '通用-权限', '查询菜单功能点', '/smart-admin-api/privilege/function/query/RoleEmployeeManage', 'net.lab1024.smartadmin.module.system.privilege.controller.PrivilegeController.functionQuery', 'String["RoleEmployeeManage"]', 1, NULL, '2020-12-14 15:16:53', '2020-12-14 15:16:53'), + (59, 1, '管理员', '通用-权限', '查询菜单功能点', '/smart-admin-api/privilege/function/query/FileList', 'net.lab1024.smartadmin.module.system.privilege.controller.PrivilegeController.functionQuery', 'String["FileList"]', 1, NULL, '2020-12-14 15:17:00', '2020-12-14 15:17:00'), + (60, 1, '管理员', '通用-权限', '查询菜单功能点', '/smart-admin-api/privilege/function/query/UserOperateLog', 'net.lab1024.smartadmin.module.system.privilege.controller.PrivilegeController.functionQuery', 'String["UserOperateLog"]', 1, NULL, '2020-12-14 15:17:03', '2020-12-14 15:17:03'), + (61, 1, '管理员', '通用-权限', '查询菜单功能点', '/smart-admin-api/privilege/function/query/UserLoginLog', 'net.lab1024.smartadmin.module.system.privilege.controller.PrivilegeController.functionQuery', 'String["UserLoginLog"]', 1, NULL, '2020-12-14 15:17:03', '2020-12-14 15:17:03'), + (62, 1, '管理员', '通用-权限', '查询菜单功能点', '/smart-admin-api/privilege/function/query/SystemConfig', 'net.lab1024.smartadmin.module.system.privilege.controller.PrivilegeController.functionQuery', 'String["SystemConfig"]', 1, NULL, '2020-12-14 15:17:04', '2020-12-14 15:17:04'), + (63, 1, '管理员', '通用-权限', '查询菜单功能点', '/smart-admin-api/privilege/function/query/SystemPrivilege', 'net.lab1024.smartadmin.module.system.privilege.controller.PrivilegeController.functionQuery', 'String["SystemPrivilege"]', 1, NULL, '2020-12-14 15:17:06', '2020-12-14 15:17:06'), + (64, 1, '管理员', '通用-权限', '批量保存功能点', '/smart-admin-api/privilege/function/batchSave', 'net.lab1024.smartadmin.module.system.privilege.controller.PrivilegeController.batchSaveFunctionList', 'ValidateList[[{"functionKey":"privilege-main-update","functionName":"编辑","menuKey":"SystemPrivilege","sort":1},{"functionKey":"privilege-batch-save-points","functionName":"批量保存功能点","menuKey":"SystemPrivilege","sort":2},{"functionKey":"privilege-main-search","functionName":"查询","menuKey":"SystemPrivilege","sort":3}]]', 1, NULL, '2020-12-14 15:17:11', '2020-12-14 15:17:11'), + (65, 1, '管理员', '通用-权限', '查询菜单功能点', '/smart-admin-api/privilege/function/query/SystemPrivilege', 'net.lab1024.smartadmin.module.system.privilege.controller.PrivilegeController.functionQuery', 'String["SystemPrivilege"]', 1, NULL, '2020-12-14 15:17:11', '2020-12-14 15:17:11'), + (66, 1, '管理员', '通用-权限', '保存更新功能点', '/smart-admin-api/privilege/function/saveOrUpdate', 'net.lab1024.smartadmin.module.system.privilege.controller.PrivilegeController.functionSaveOrUpdate', 'PrivilegeFunctionDTO[{"functionKey":"privilege-batch-save-points","functionName":"批量保存功能点","menuKey":"SystemPrivilege","sort":1,"url":"privilegeController.functionSaveOrUpdate"}]', 1, NULL, '2020-12-14 15:17:30', '2020-12-14 15:17:30'), + (67, 1, '管理员', '通用-权限', '查询菜单功能点', '/smart-admin-api/privilege/function/query/SystemPrivilege', 'net.lab1024.smartadmin.module.system.privilege.controller.PrivilegeController.functionQuery', 'String["SystemPrivilege"]', 1, NULL, '2020-12-14 15:17:30', '2020-12-14 15:17:30'), + (68, 1, '管理员', '通用-权限', '查询菜单功能点', '/smart-admin-api/privilege/function/query/Swagger', 'net.lab1024.smartadmin.module.system.privilege.controller.PrivilegeController.functionQuery', 'String["Swagger"]', 1, NULL, '2020-12-14 15:17:36', '2020-12-14 15:17:36'), + (69, 1, '管理员', '通用-权限', '查询菜单功能点', '/smart-admin-api/privilege/function/query/HeartBeatList', 'net.lab1024.smartadmin.module.system.privilege.controller.PrivilegeController.functionQuery', 'String["HeartBeatList"]', 1, NULL, '2020-12-14 15:17:37', '2020-12-14 15:17:37'), + (70, 1, '管理员', '通用-权限', '查询菜单功能点', '/smart-admin-api/privilege/function/query/SmartReloadList', 'net.lab1024.smartadmin.module.system.privilege.controller.PrivilegeController.functionQuery', 'String["SmartReloadList"]', 1, NULL, '2020-12-14 15:17:42', '2020-12-14 15:17:42'), + (71, 1, '管理员', '通用-权限', '查询菜单功能点', '/smart-admin-api/privilege/function/query/TaskList', 'net.lab1024.smartadmin.module.system.privilege.controller.PrivilegeController.functionQuery', 'String["TaskList"]', 1, NULL, '2020-12-14 15:17:43', '2020-12-14 15:17:43'), + (72, 1, '管理员', '通用-邮件发送', '分页查询', '/smart-admin-api/email/page/query', 'net.lab1024.smartadmin.module.business.email.EmailController.queryByPage', 'EmailQueryDTO[{"endDate":"","pageNum":1,"pageSize":10,"searchCount":true,"startDate":""}]', 1, NULL, '2020-12-14 15:17:57', '2020-12-14 15:17:57'), + (73, 1, '管理员', '管理端-用户登录', '获取session', '/smart-admin-api/session/get', 'net.lab1024.smartadmin.module.system.login.LoginController.getSession', '', 1, NULL, '2020-12-14 15:18:14', '2020-12-14 15:18:14'), + (74, 1, '管理员', '管理端-用户登录', '获取session', '/smart-admin-api/session/get', 'net.lab1024.smartadmin.module.system.login.LoginController.getSession', '', 1, NULL, '2020-12-14 15:18:27', '2020-12-14 15:18:27'); +/*!40000 ALTER TABLE `t_user_operate_log` ENABLE KEYS */; + +/*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */; +/*!40014 SET FOREIGN_KEY_CHECKS=IF(@OLD_FOREIGN_KEY_CHECKS IS NULL, 1, @OLD_FOREIGN_KEY_CHECKS) */; +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/templates/codegenerator/java/AddDTO.java.vm b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/templates/codegenerator/java/AddDTO.java.vm new file mode 100644 index 00000000..03da7773 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/templates/codegenerator/java/AddDTO.java.vm @@ -0,0 +1,36 @@ +package ${basePackage}.module.${modulePackage}.domain.dto; + +import lombok.Data; +#foreach ($dtoImport in $dtoImports) +$dtoImport +#end +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; + +/** + * 新建 [ ${tableDesc} ] + * + * @author ${author} + * @version 1.0 + * @company ${company} + * @copyright (c) 2018 ${company}Inc. All rights reserved. + * @date ${date} + * @since JDK1.8 + */ +@Data +public class ${moduleClass}AddDTO { +#foreach ($column in $columnList) +#if($column.fieldName != 'id') +#if($column.fieldType == 'Date') + @ApiModelProperty("${column.columnDesc}") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private $column.fieldType $column.fieldName; +#else + @ApiModelProperty("${column.columnDesc}") + private $column.fieldType $column.fieldName; +#end + +#end +#end + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/templates/codegenerator/java/Controller.java.vm b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/templates/codegenerator/java/Controller.java.vm new file mode 100644 index 00000000..1dfbe2ed --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/templates/codegenerator/java/Controller.java.vm @@ -0,0 +1,88 @@ +package ${basePackage}.module.${modulePackage}.controller; + +import ${basePackage}.common.domain.PageResultDTO; +import ${basePackage}.common.controller.BaseController; +import ${basePackage}.common.domain.ResponseDTO; +import ${basePackage}.common.domain.ValidateList; +import ${basePackage}.module.${modulePackage}.domain.dto.${moduleClass}AddDTO; +import ${basePackage}.module.${modulePackage}.domain.dto.${moduleClass}UpdateDTO; +import ${basePackage}.module.${modulePackage}.domain.dto.${moduleClass}QueryDTO; +import ${basePackage}.module.${modulePackage}.domain.vo.${moduleClass}VO; +import ${basePackage}.module.${modulePackage}.domain.vo.${moduleClass}ExcelVO; +import ${basePackage}.module.${modulePackage}.service.${moduleClass}Service; +import cn.afterturn.easypoi.excel.ExcelExportUtil; +import cn.afterturn.easypoi.excel.entity.ExportParams; +import org.apache.poi.ss.usermodel.Workbook; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.List; + +/** + * [ ${tableDesc} ] + * + * @author ${author} + * @version 1.0 + * @company ${company} + * @copyright (c) ${company}Inc. All rights reserved. + * @date ${date} + * @since JDK1.8 + */ +@RestController +@Api(tags = {"${tableDesc}"}) +public class ${moduleClass}Controller extends BaseController { + + @Autowired + private ${moduleClass}Service ${moduleVar}Service; + + @ApiOperation(value = "分页查询${tableDesc}",notes = "@author ${author}") + @PostMapping("/${moduleVar}/page/query") + public ResponseDTO> queryByPage(@RequestBody ${moduleClass}QueryDTO queryDTO) { + return ${moduleVar}Service.queryByPage(queryDTO); + } + + @ApiOperation(value = "添加${tableDesc}",notes = "@author ${author}") + @PostMapping("/${moduleVar}/add") + public ResponseDTO add(@RequestBody @Validated ${moduleClass}AddDTO addTO){ + return ${moduleVar}Service.add(addTO); + } + + @ApiOperation(value="修改${tableDesc}",notes = "@author ${author}") + @PostMapping("/${moduleVar}/update") + public ResponseDTO update(@RequestBody @Validated ${moduleClass}UpdateDTO updateDTO){ + return ${moduleVar}Service.update(updateDTO); + } + + @ApiOperation(value="批量删除${tableDesc}",notes = "@author ${author}") + @PostMapping("/${moduleVar}/deleteByIds") + public ResponseDTO delete(@RequestBody @Validated ValidateList idList) { + return ${moduleVar}Service.deleteByIds(idList); + } + + @ApiOperation(value = "批量导出", notes = "@author ${author}") + @PostMapping("/${moduleVar}/export/batch") + public void batchExport(@RequestBody @Validated ValidateList idList, HttpServletResponse response) { + //查询数据 + List<${moduleClass}ExcelVO> ${moduleVar}List = ${moduleVar}Service.queryBatchExportData(idList); + //导出操作 + ExportParams ex = new ExportParams("${tableDesc}", "Sheet1"); + Workbook workbook = ExcelExportUtil.exportExcel(ex, ${moduleClass}ExcelVO.class, ${moduleVar}List); + downloadExcel("${tableDesc}", workbook, response); + } + + @ApiOperation(value = "导出全部", notes = "@author ${author}") + @PostMapping("/${moduleVar}/export/all") + public void exportAll(@RequestBody @Validated ${moduleClass}QueryDTO queryDTO, HttpServletResponse response) { + //查询数据 + List<${moduleClass}ExcelVO> ${moduleVar}List = ${moduleVar}Service.queryAllExportData(queryDTO); + //导出操作 + ExportParams ex = new ExportParams("${tableDesc}", "Sheet1"); + Workbook workbook = ExcelExportUtil.exportExcel(ex, ${moduleClass}ExcelVO.class, ${moduleVar}List); + downloadExcel("${tableDesc}", workbook, response); + } + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/templates/codegenerator/java/Dao.java.vm b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/templates/codegenerator/java/Dao.java.vm new file mode 100644 index 00000000..b19db804 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/templates/codegenerator/java/Dao.java.vm @@ -0,0 +1,64 @@ +package ${basePackage}.module.${modulePackage}.dao; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.core.metadata.IPage; +import ${basePackage}.module.${modulePackage}.domain.dto.${moduleClass}QueryDTO; +import ${basePackage}.module.${modulePackage}.domain.entity.${moduleClass}Entity; +import ${basePackage}.module.${modulePackage}.domain.vo.${moduleClass}VO; +import ${basePackage}.module.${modulePackage}.domain.vo.${moduleClass}ExcelVO; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.springframework.stereotype.Component; + +import java.util.List; + +/** + * [ ${tableDesc} ] + * + * @author ${author} + * @version 1.0 + * @company ${company} + * @copyright (c) ${company}Inc. All rights reserved. + * @date ${date} + * @since JDK1.8 + */ +@Mapper +@Component +public interface ${moduleClass}Dao extends BaseMapper<${moduleClass}Entity> { + + /** + * 分页查询 + * @param queryDTO + * @return ${moduleClass}VO + */ + IPage<${moduleClass}VO> queryByPage(Page page, @Param("queryDTO") ${moduleClass}QueryDTO queryDTO); + + /** + * 根据id删除 + * @param id + * @return + */ + void deleteById(@Param("id")Long id); + + /** + * 根据id批量删除 + * @param idList + * @return + */ + void deleteByIdList(@Param("idList") List idList); + + /** + * 查询所有导出数据 + * @param queryDTO + * @return + */ + List<${moduleClass}ExcelVO> queryAllExportData(@Param("queryDTO")${moduleClass}QueryDTO queryDTO); + + /** + * 查询批量导出数据 + * @param idList + * @return + */ + List<${moduleClass}ExcelVO> queryBatchExportData(@Param("idList")List idList); +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/templates/codegenerator/java/Dao.xml.vm b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/templates/codegenerator/java/Dao.xml.vm new file mode 100644 index 00000000..5e64e4bc --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/templates/codegenerator/java/Dao.xml.vm @@ -0,0 +1,144 @@ + + + + + + + + + + + + + + + + delete from ${tableName} where id = #{id} + + + + delete from ${tableName} where id in + + #{item} + + + + \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/templates/codegenerator/java/Entity.java.vm b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/templates/codegenerator/java/Entity.java.vm new file mode 100644 index 00000000..ca7e7e6d --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/templates/codegenerator/java/Entity.java.vm @@ -0,0 +1,33 @@ +package ${basePackage}.module.${modulePackage}.domain.entity; + +import com.baomidou.mybatisplus.annotation.TableName; +import ${basePackage}.common.domain.BaseEntity; +#foreach ($entityImport in $entityImports) +$entityImport +#end +import lombok.Data; + +/** + * [ ${tableDesc} ] + * + * @author ${author} + * @version 1.0 + * @company ${company} + * @copyright (c) ${company}Inc. All rights reserved. + * @date ${date} + * @since JDK1.8 + */ +@Data +@TableName("${tableName}") +public class ${moduleClass}Entity extends BaseEntity{ +#foreach ($column in $columnList) + +#if($column.columnName != 'id' && $column.fieldName != 'updateTime' && $column.fieldName != 'createTime') + /** + * $column.columnDesc + */ + private $column.fieldType $column.fieldName; +#end +#end + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/templates/codegenerator/java/ExcelVO.java.vm b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/templates/codegenerator/java/ExcelVO.java.vm new file mode 100644 index 00000000..fa4e7e0a --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/templates/codegenerator/java/ExcelVO.java.vm @@ -0,0 +1,33 @@ +package ${basePackage}.module.${modulePackage}.domain.vo; + +import cn.afterturn.easypoi.excel.annotation.Excel; +import lombok.Data; +#foreach ($dtoImport in $dtoImports) +$dtoImport +#end + +/** + * [ ${tableDesc} ] + * + * @author ${author} + * @version 1.0 + * @company ${company} + * @copyright (c) ${company}Inc. All rights reserved. + * @date ${date} + * @since JDK1.8 + */ +@Data +public class ${moduleClass}ExcelVO { +#foreach ($column in $columnList) +#if($column.fieldType == 'Date') + @Excel(name = "${column.columnDesc}", format = "yyyy-MM-dd HH:mm:ss") + private $column.fieldType $column.fieldName; +#else + @Excel(name = "${column.columnDesc}") + private $column.fieldType $column.fieldName; +#end + +#end + + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/templates/codegenerator/java/QueryDTO.java.vm b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/templates/codegenerator/java/QueryDTO.java.vm new file mode 100644 index 00000000..44815d4d --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/templates/codegenerator/java/QueryDTO.java.vm @@ -0,0 +1,45 @@ +package ${basePackage}.module.${modulePackage}.domain.dto; + +import ${basePackage}.common.domain.PageParamDTO; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import java.util.Date; +#foreach ($queryImport in $queryImports) +$queryImport +#end + +/** + * [ ${tableDesc} ] + * + * @author ${author} + * @version 1.0 + * @company ${company} + * @copyright (c) ${company}Inc. All rights reserved. + * @date ${date} + * @since JDK1.8 + */ +@Data +public class ${moduleClass}QueryDTO extends PageParamDTO { +#foreach ($queryField in $queryFieldList) + +#if($queryField.sqlOperate == 'in') + @ApiModelProperty("${queryField.columnDesc}") + private List<${queryField.fieldType}> ${queryField.fieldName}List; +#else + @ApiModelProperty("${queryField.columnDesc}") + private ${queryField.fieldType} ${queryField.fieldName}; +#end +#end + + @ApiModelProperty("创建时间-开始") + private Date createTimeBegin; + + @ApiModelProperty("创建时间-截止") + private Date createTimeEnd; + + @ApiModelProperty("上次更新时间-开始") + private Date updateTimeBegin; + + @ApiModelProperty("上次更新创建时间-开始") + private Date updateTimeEnd; +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/templates/codegenerator/java/Service.java.vm b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/templates/codegenerator/java/Service.java.vm new file mode 100644 index 00000000..ca3b939d --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/templates/codegenerator/java/Service.java.vm @@ -0,0 +1,108 @@ +package ${basePackage}.module.${modulePackage}.service; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import ${basePackage}.common.domain.PageResultDTO; +import ${basePackage}.common.domain.ResponseDTO; +import ${basePackage}.module.${modulePackage}.dao.${moduleClass}Dao; +import ${basePackage}.module.${modulePackage}.domain.dto.${moduleClass}AddDTO; +import ${basePackage}.module.${modulePackage}.domain.dto.${moduleClass}UpdateDTO; +import ${basePackage}.module.${modulePackage}.domain.dto.${moduleClass}QueryDTO; +import ${basePackage}.module.${modulePackage}.domain.entity.${moduleClass}Entity; +import ${basePackage}.module.${modulePackage}.domain.vo.${moduleClass}VO; +import ${basePackage}.module.${modulePackage}.domain.vo.${moduleClass}ExcelVO; +import ${basePackage}.util.SmartPageUtil; +import ${basePackage}.util.SmartBeanUtil; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; + +/** + * [ ${tableDesc} ] + * + * @author ${author} + * @version 1.0 + * @company ${company} + * @copyright (c) ${company}Inc. All rights reserved. + * @date ${date} + * @since JDK1.8 + */ +@Service +public class ${moduleClass}Service { + + @Autowired + private ${moduleClass}Dao ${moduleVar}Dao; + + /** + * 根据id查询 + */ + public ${moduleClass}Entity getById(Long id){ + return ${moduleVar}Dao.selectById(id); + } + + /** + * 分页查询 + * @author ${author} + * @date ${date} + */ + public ResponseDTO> queryByPage(${moduleClass}QueryDTO queryDTO) { + Page page = SmartPageUtil.convert2QueryPage(queryDTO); + IPage<${moduleClass}VO> voList = ${moduleVar}Dao.queryByPage(page, queryDTO); + PageResultDTO<${moduleClass}VO> pageResultDTO = SmartPageUtil.convert2PageResult(voList); + return ResponseDTO.succData(pageResultDTO); + } + + /** + * 添加 + * @author ${author} + * @date ${date} + */ + public ResponseDTO add(${moduleClass}AddDTO addDTO) { + ${moduleClass}Entity entity = SmartBeanUtil.copy(addDTO, ${moduleClass}Entity.class); + ${moduleVar}Dao.insert(entity); + return ResponseDTO.succ(); + } + + /** + * 编辑 + * @author ${author} + * @date ${date} + */ + @Transactional(rollbackFor = Exception.class) + public ResponseDTO update(${moduleClass}UpdateDTO updateDTO) { + ${moduleClass}Entity entity = SmartBeanUtil.copy(updateDTO, ${moduleClass}Entity.class); + ${moduleVar}Dao.updateById(entity); + return ResponseDTO.succ(); + } + + /** + * 删除 + * @author ${author} + * @date ${date} + */ + @Transactional(rollbackFor = Exception.class) + public ResponseDTO deleteByIds(List idList) { + ${moduleVar}Dao.deleteByIdList(idList); + return ResponseDTO.succ(); + } + + /** + * 查询全部导出对象 + * @author ${author} + * @date ${date} + */ + public List<${moduleClass}ExcelVO> queryAllExportData(${moduleClass}QueryDTO queryDTO) { + return ${moduleVar}Dao.queryAllExportData( queryDTO); + } + + /** + * 批量查询导出对象 + * @author ${author} + * @date ${date} + */ + public List<${moduleClass}ExcelVO> queryBatchExportData(List idList) { + return ${moduleVar}Dao.queryBatchExportData(idList); + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/templates/codegenerator/java/UpdateDTO.java.vm b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/templates/codegenerator/java/UpdateDTO.java.vm new file mode 100644 index 00000000..e96cc501 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/templates/codegenerator/java/UpdateDTO.java.vm @@ -0,0 +1,20 @@ +package ${basePackage}.module.${modulePackage}.domain.dto; + +import lombok.Data; + +/** + * 更新 [ ${tableDesc} ] + * + * @author ${author} + * @version 1.0 + * @company ${company} + * @copyright (c) 2018 ${company}Inc. All rights reserved. + * @date ${date} + * @since JDK1.8 + */ +@Data +public class ${moduleClass}UpdateDTO extends ${moduleClass}AddDTO { + + private Long id; + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/templates/codegenerator/java/VO.java.vm b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/templates/codegenerator/java/VO.java.vm new file mode 100644 index 00000000..b7a5ea53 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/templates/codegenerator/java/VO.java.vm @@ -0,0 +1,35 @@ +package ${basePackage}.module.${modulePackage}.domain.vo; + +import lombok.Data; +#foreach ($dtoImport in $dtoImports) +$dtoImport +#end +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; + +/** + * [ ${tableDesc} ] + * + * @author ${author} + * @version 1.0 + * @company ${company} + * @copyright (c) ${company}Inc. All rights reserved. + * @date ${date} + * @since JDK1.8 + */ +@Data +public class ${moduleClass}VO { +#foreach ($column in $columnList) +#if($column.fieldType == 'Date') + @ApiModelProperty("${column.columnDesc}") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private $column.fieldType $column.fieldName; +#else + @ApiModelProperty("${column.columnDesc}") + private $column.fieldType $column.fieldName; +#end + +#end + + +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/templates/codegenerator/web/Api.js.vm b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/templates/codegenerator/web/Api.js.vm new file mode 100644 index 00000000..858f2366 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/templates/codegenerator/web/Api.js.vm @@ -0,0 +1,28 @@ +import { postAxios, getAxios, postDownloadAxios } from '@/lib/http'; + +export const ${moduleVar}Api = { + // 添加${tableDesc} @author ${author} + add${moduleClass}: (data) => { + return postAxios('/${moduleVar}/add', data); + }, + // 分页查询${tableDesc} @author ${author} + query${moduleClass}: (data) => { + return postAxios('/${moduleVar}/page/query', data); + }, + // 批量删除${tableDesc} @author ${author} + batchDelete${moduleClass}: (idList) => { + return postAxios('/${moduleVar}/deleteByIds', idList); + }, + // 修改${tableDesc} @author ${author} + update${moduleClass}: (data) => { + return postAxios('/${moduleVar}/update',data); + }, + // 导出全部 @author ${author} + exportAll:(data)=>{ + return postDownloadAxios('/${moduleVar}/export/all',data); + }, + // 批量导出 @author ${author} + batchExport: (idList) => { + return postDownloadAxios('/${moduleVar}/export/batch', idList); + }, +}; diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/templates/codegenerator/web/List.vue.vm b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/templates/codegenerator/web/List.vue.vm new file mode 100644 index 00000000..3bc635f4 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/templates/codegenerator/web/List.vue.vm @@ -0,0 +1,439 @@ + + + diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/templates/codegenerator/web/ListForm.vue.vm b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/templates/codegenerator/web/ListForm.vue.vm new file mode 100644 index 00000000..558dfcb0 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/templates/codegenerator/web/ListForm.vue.vm @@ -0,0 +1,132 @@ + + \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/templates/codegenerator/web/Router.js.vm b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/templates/codegenerator/web/Router.js.vm new file mode 100644 index 00000000..00d5ed6c --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/main/resources/templates/codegenerator/web/Router.js.vm @@ -0,0 +1,32 @@ +import Main from '@/components/main'; +// ${tableName}路由 +export const ${moduleVar} = [ + { + path: '/${webModuleName}', + name: '${moduleClass}', + component: Main, + meta: { + title: '${tableDesc}管理', + icon: 'icon iconfont iconyoujianguanli' + }, + children: [ + // ${tableDesc}列表 + { + path: '/${webModuleName}/${webModuleName}-list', + name: '${moduleClass}List', + meta: { + title: '${tableDesc}列表', + privilege: [ + { title: '查询', name: '${webModuleName}-list-query' }, + { title: '新增', name: '${webModuleName}-list-add' }, + { title: '编辑', name: '${webModuleName}-list-update' }, + { title: '批量删除', name: '${webModuleName}-list-batch-delete' }, + { title: '批量导出', name: '${webModuleName}-list-batch-export' }, + { title: '导出全部', name: '${webModuleName}-list-export-all' } + ] + }, + component: () => import('@/views/business/${webModuleName}/${webModuleName}-list.vue') + } + ] + } +]; diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/test/java/net/lab1024/smartadmin/BaseTest.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/test/java/net/lab1024/smartadmin/BaseTest.java new file mode 100644 index 00000000..6d681a15 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/test/java/net/lab1024/smartadmin/BaseTest.java @@ -0,0 +1,28 @@ +package net.lab1024.smartadmin; + +import org.junit.After; +import org.junit.Before; +import org.junit.runner.RunWith; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +/** + * 测试基类 + * + * @author lizongliang + * @date 2017/09/29 10:54 + */ +@RunWith(SpringRunner.class) +@SpringBootTest(classes = SmartAdminApplication.class,webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) +public class BaseTest { + + @Before + public void before() { + System.out.println("测试开始------------------"); + } + + @After + public void after() { + System.out.println("测试结束------------------"); + } +} diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/test/java/net/lab1024/smartadmin/SmartAdminApplicationTests.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/test/java/net/lab1024/smartadmin/SmartAdminApplicationTests.java new file mode 100644 index 00000000..d140b88b --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/test/java/net/lab1024/smartadmin/SmartAdminApplicationTests.java @@ -0,0 +1,11 @@ +package net.lab1024.smartadmin; + +import org.junit.runner.RunWith; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.test.context.junit4.SpringRunner; + +@RunWith(SpringRunner.class) +@SpringBootTest(classes = SmartAdminApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) +public class SmartAdminApplicationTests { + +} \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-service/smart-admin-api/src/test/java/net/lab1024/smartadmin/module/support/codegenerator/CodeGeneratorServiceTest.java b/smart_admin_v1/smart-admin-service/smart-admin-api/src/test/java/net/lab1024/smartadmin/module/support/codegenerator/CodeGeneratorServiceTest.java new file mode 100644 index 00000000..e824cf51 --- /dev/null +++ b/smart_admin_v1/smart-admin-service/smart-admin-api/src/test/java/net/lab1024/smartadmin/module/support/codegenerator/CodeGeneratorServiceTest.java @@ -0,0 +1,66 @@ +package net.lab1024.smartadmin.module.support.codegenerator; + +import net.lab1024.smartadmin.BaseTest; +import net.lab1024.smartadmin.module.support.codegenerator.constant.SqlOperateTypeEnum; +import net.lab1024.smartadmin.module.support.codegenerator.domain.CodeGeneratorDTO; +import net.lab1024.smartadmin.module.support.codegenerator.domain.CodeGeneratorQueryColumnDTO; +import net.lab1024.smartadmin.module.support.codegenerator.service.CodeGeneratorService; +import com.google.common.collect.Lists; +import org.junit.Test; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.List; + +/** + * IdGeneratorService Tester. + * + * @author zhuoda + * @version 1.0 + */ +public class CodeGeneratorServiceTest extends BaseTest { + + @Autowired + private CodeGeneratorService codeGeneratorService; + + @Test + public void testGenerate() throws Exception { + /** + * !!! 所有查询条件均包含了createTime和updateTime的 范围查询 !!! + */ + + // t_peony 牡丹花表 + + //搜索字段 kind, 使用like搜索 + CodeGeneratorQueryColumnDTO kind = CodeGeneratorQueryColumnDTO.builder() + .columnName("kind") + .sqlOperate(SqlOperateTypeEnum.LIKE).build(); + //搜索字段 kind, 使用 == 搜索 + CodeGeneratorQueryColumnDTO id = CodeGeneratorQueryColumnDTO.builder() + .columnName("id") + .sqlOperate(SqlOperateTypeEnum.EQUALS).build(); + //搜索字段 name, 使用like搜索 + CodeGeneratorQueryColumnDTO name = CodeGeneratorQueryColumnDTO.builder() + .columnName("name") + .sqlOperate(SqlOperateTypeEnum.LIKE).build(); + //搜索字段 color, 使用like搜索 + CodeGeneratorQueryColumnDTO color = CodeGeneratorQueryColumnDTO.builder() + .columnName("color") + .sqlOperate(SqlOperateTypeEnum.LIKE).build(); + + List queryColumnList = Lists.newArrayList(id, kind, name, color); + + CodeGeneratorDTO codeGenerator = CodeGeneratorDTO.builder() + .author("卓大")//class 注释作者 + .company("1024创新实验室( www.1024lab.net )")//class注释公司名字 + .tableName("t_peony")//表名 + .tablePrefix("t_")//表名前缀 + .basePackage("net.lab1024.smartadmin")//包名 + .modulePackage("business.peony")//业务子包名 + .queryColumnList(queryColumnList)//加入搜搜字段 + .build();//构建 + + //当需要代码生成的时候,请将注释去掉 +// codeGeneratorService.codeGenerator(codeGenerator); + } + +} diff --git a/smart_admin_v1/smart-admin-web/.babelrc b/smart_admin_v1/smart-admin-web/.babelrc new file mode 100644 index 00000000..2a818842 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/.babelrc @@ -0,0 +1,5 @@ +{ + "presets": [ + "@vue/app" + ] +} diff --git a/smart_admin_v1/smart-admin-web/.editorconfig b/smart_admin_v1/smart-admin-web/.editorconfig new file mode 100644 index 00000000..9d08a1a8 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/.editorconfig @@ -0,0 +1,9 @@ +root = true + +[*] +charset = utf-8 +indent_style = space +indent_size = 2 +end_of_line = lf +insert_final_newline = true +trim_trailing_whitespace = true diff --git a/smart_admin_v1/smart-admin-web/.env.development b/smart_admin_v1/smart-admin-web/.env.development new file mode 100644 index 00000000..746c33a9 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/.env.development @@ -0,0 +1,4 @@ +NODE_ENV=development +VUE_APP_TYPE=dev +VUE_APP_URL=http://127.0.0.1:10086/smart-admin-api/ +VUE_APP_SOCKET_URL=ws://127.0.0.1:10086/smart-admin-api/ diff --git a/smart_admin_v1/smart-admin-web/.env.local b/smart_admin_v1/smart-admin-web/.env.local new file mode 100644 index 00000000..746c33a9 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/.env.local @@ -0,0 +1,4 @@ +NODE_ENV=development +VUE_APP_TYPE=dev +VUE_APP_URL=http://127.0.0.1:10086/smart-admin-api/ +VUE_APP_SOCKET_URL=ws://127.0.0.1:10086/smart-admin-api/ diff --git a/smart_admin_v1/smart-admin-web/.env.prod b/smart_admin_v1/smart-admin-web/.env.prod new file mode 100644 index 00000000..d90edfe9 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/.env.prod @@ -0,0 +1,8 @@ +NODE_ENV=production +VUE_APP_TYPE=prod +VUE_APP_URL=http://preview.smartadmin.1024lab.net/smart-admin-api/ +VUE_APP_SOCKET_URL=ws://preview.smartadmin.1024lab.net/smart-admin-api/ + +// VUE_APP_URL=http://127.0.0.1:10086/smart-admin-api/ +// VUE_APP_SOCKET_URL=ws://127.0.0.1:10086/smart-admin-api/ + diff --git a/smart_admin_v1/smart-admin-web/.env.sit b/smart_admin_v1/smart-admin-web/.env.sit new file mode 100644 index 00000000..ac2ac140 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/.env.sit @@ -0,0 +1,3 @@ +NODE_ENV=production +VUE_APP_TYPE=sit +VUE_APP_URL=http://172.16.0.145:10086/smart-admin-api/ diff --git a/smart-admin-web/javascript-ant-design-vue3/README.en.md b/smart_admin_v1/smart-admin-web/.eslintignore similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/README.en.md rename to smart_admin_v1/smart-admin-web/.eslintignore diff --git a/smart_admin_v1/smart-admin-web/.eslintrc.js b/smart_admin_v1/smart-admin-web/.eslintrc.js new file mode 100644 index 00000000..28180441 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/.eslintrc.js @@ -0,0 +1,34 @@ +module.exports = { + root: true, + "extends": [ + "plugin:vue/essential", + "@vue/standard" + ], + rules: { + "generator-star-spacing": "off", //生成器函数*的前后空格 + // allow debugger during development + "no-debugger": process.env.NODE_ENV === "production" ? "error" : "off", + "vue/no-parsing-error": [2, { + "x-invalid-end-tag": false + }], + "no-const-assign": 2, //禁止修改const声明的变量 + "no-unused-vars": [0, { //禁止声明变量后却不使用 + // 允许声明未使用变量 + "vars": "all", + // 参数不检查 + "args": "none" + }], + "quotes": [2, "single"], //单引号 + "singleQuote": true, + "indent": 2, //缩进量 + "no-var": 2, //禁用var,用let和const代替 + "camelcase": 2, //强制驼峰法命名 + "eqeqeq": 1, //要求使用 === 和 !== 代替 == 和 != 操作符 + "no-eq-null": 2, //禁止对null使用==或!=运算符 + "no-sequences": 0, //禁用逗号操作符 + "semi": [2, "always"] //强制分号 + }, + parserOptions: { + parser: "babel-eslint" + } +} diff --git a/smart_admin_v1/smart-admin-web/.gitignore b/smart_admin_v1/smart-admin-web/.gitignore new file mode 100644 index 00000000..a1009cf5 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/.gitignore @@ -0,0 +1,22 @@ +.DS_Store +node_modules +/dist + +/tests/e2e/videos/ +/tests/e2e/screenshots/ + +# Log files +npm-debug.log* +yarn-debug.log* +yarn-error.log* + +# Editor directories and files +.idea +.vscode +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw* + +build/env.js diff --git a/smart_admin_v1/smart-admin-web/.postcssrc.js b/smart_admin_v1/smart-admin-web/.postcssrc.js new file mode 100644 index 00000000..961986e2 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/.postcssrc.js @@ -0,0 +1,5 @@ +module.exports = { + plugins: { + autoprefixer: {} + } +} diff --git a/smart_admin_v1/smart-admin-web/.travis.yml b/smart_admin_v1/smart-admin-web/.travis.yml new file mode 100644 index 00000000..07c971f8 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/.travis.yml @@ -0,0 +1,5 @@ +language: node_js +node_js: stable +script: npm run lint +notifications: + email: false diff --git a/smart_admin_v1/smart-admin-web/README.md b/smart_admin_v1/smart-admin-web/README.md new file mode 100644 index 00000000..fe637c03 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/README.md @@ -0,0 +1,13 @@ +### 启动讲解 + +###### 配置vscode +将 /vscode/settings.json文件配置到vscode中 + +###### 启动 +1 安装依赖: + +`npm install` + +2 运行本地环境 + +`npm run local` \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-web/cypress.json b/smart_admin_v1/smart-admin-web/cypress.json new file mode 100644 index 00000000..470c7201 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/cypress.json @@ -0,0 +1,3 @@ +{ + "pluginsFile": "tests/e2e/plugins/index.js" +} diff --git a/smart_admin_v1/smart-admin-web/doc/notice.txt b/smart_admin_v1/smart-admin-web/doc/notice.txt new file mode 100644 index 00000000..8184781f --- /dev/null +++ b/smart_admin_v1/smart-admin-web/doc/notice.txt @@ -0,0 +1,2 @@ +1 login-form.vue 去掉登录帐号提示 +2 login-form.vue 修改默认登录绑定帐号 \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-web/package-lock.json b/smart_admin_v1/smart-admin-web/package-lock.json new file mode 100644 index 00000000..a1609f1f --- /dev/null +++ b/smart_admin_v1/smart-admin-web/package-lock.json @@ -0,0 +1,34184 @@ +{ + "name": "smart-admin", + "version": "1.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "smart-admin", + "version": "1.0.0", + "dependencies": { + "@antv/g2": "^3.5.8-beta.1", + "axios": "^0.18.0", + "clipboard": "^2.0.0", + "codemirror": "^5.38.0", + "core-js": "^2.0.0", + "countup": "^1.8.2", + "cropperjs": "^1.2.2", + "dayjs": "^1.7.7", + "decimal.js": "^10.1.1", + "e-guide-layer": "^0.1.1", + "echarts": "^4.0.4", + "gq-plus": "^2.1.5", + "html2canvas": "^1.0.0-alpha.12", + "jquery": "^2.2.3", + "js-cookie": "^2.2.0", + "lodash": "^4.17.15", + "mavon-editor": "^2.7.5", + "moment": "^2.24.0", + "simplemde": "^1.11.2", + "sortablejs": "^1.7.0", + "tree-table-vue": "^1.1.0", + "v-org-tree": "^1.0.6", + "view-design": "^4.0.2", + "vue": "^2.5.10", + "vue-data-loading": "^0.2.4", + "vue-enum": "1.0.5", + "vue-i18n": "^7.8.0", + "vue-infinite-loading": "^2.4.4", + "vue-json-viewer": "^2.2.0", + "vue-json-views": "^0.1.1", + "vue-router": "^3.1.3", + "vue-slick": "^1.1.15", + "vuedraggable": "^2.16.0", + "vuex": "^3.0.1", + "wangeditor": "^3.1.1", + "xlsx": "^0.13.3" + }, + "devDependencies": { + "@vue/cli-plugin-babel": "^3.0.1", + "@vue/cli-plugin-eslint": "^3.0.1", + "@vue/cli-plugin-unit-mocha": "^3.0.1", + "@vue/cli-service": "^3.0.1", + "@vue/eslint-config-standard": "^3.0.0-beta.10", + "@vue/test-utils": "^1.0.0-beta.10", + "chai": "^4.1.2", + "compression-webpack-plugin": "^3.0.0", + "eslint-plugin-cypress": "^2.0.1", + "less": "^2.7.3", + "less-loader": "^4.0.5", + "lint-staged": "^6.0.0", + "uglifyjs-webpack-plugin": "^1.2.4", + "vue-template-compiler": "^2.5.13" + } + }, + "node_modules/@antv/adjust": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/@antv/adjust/download/@antv/adjust-0.1.1.tgz", + "integrity": "sha1-4mOrDhoZQaZIhC/Ahs9lp+O3Xpg=", + "dependencies": { + "@antv/util": "~1.3.1" + } + }, + "node_modules/@antv/attr": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/@antv/attr/download/@antv/attr-0.1.2.tgz", + "integrity": "sha1-LusSL8qvhRoth0mrx8YFGdP3fjc=", + "dependencies": { + "@antv/util": "~1.3.1" + } + }, + "node_modules/@antv/component": { + "version": "0.3.9", + "resolved": "https://registry.npm.taobao.org/@antv/component/download/@antv/component-0.3.9.tgz", + "integrity": "sha1-7VYcY5t3OM4D/2OoZvWeJR3oKhc=", + "dependencies": { + "@antv/attr": "~0.1.2", + "@antv/g": "~3.3.5", + "@antv/util": "~1.3.1", + "wolfy87-eventemitter": "~5.1.0" + } + }, + "node_modules/@antv/component/node_modules/@antv/g": { + "version": "3.3.6", + "resolved": "https://registry.npm.taobao.org/@antv/g/download/@antv/g-3.3.6.tgz", + "integrity": "sha1-Ef7Z3cntTloqokS3yKu5gqAD8gE=", + "dependencies": { + "@antv/gl-matrix": "~2.7.1", + "@antv/util": "~1.3.1", + "d3-ease": "~1.0.3", + "d3-interpolate": "~1.1.5", + "d3-timer": "~1.0.6", + "wolfy87-eventemitter": "~5.1.0" + } + }, + "node_modules/@antv/coord": { + "version": "0.1.0", + "resolved": "https://registry.npm.taobao.org/@antv/coord/download/@antv/coord-0.1.0.tgz", + "integrity": "sha1-SKgK420HVS+WZX5/gJUifGPwwKk=", + "dependencies": { + "@antv/util": "~1.3.1" + } + }, + "node_modules/@antv/g": { + "version": "3.4.10", + "resolved": "https://registry.npm.taobao.org/@antv/g/download/@antv/g-3.4.10.tgz", + "integrity": "sha1-57YWqiGxesUYUNAzMypa+N6P4BU=", + "dependencies": { + "@antv/gl-matrix": "~2.7.1", + "@antv/util": "~1.3.1", + "d3-ease": "~1.0.3", + "d3-interpolate": "~1.1.5", + "d3-timer": "~1.0.6", + "detect-browser": "^5.1.0" + } + }, + "node_modules/@antv/g2": { + "version": "3.5.17", + "resolved": "https://registry.npm.taobao.org/@antv/g2/download/@antv/g2-3.5.17.tgz", + "integrity": "sha1-Asi6xhDSHSi04jYAvHbEjn9ZyRk=", + "dependencies": { + "@antv/adjust": "~0.1.0", + "@antv/attr": "~0.1.2", + "@antv/component": "~0.3.3", + "@antv/coord": "~0.1.0", + "@antv/g": "~3.4.10", + "@antv/scale": "~0.1.1", + "@antv/util": "~1.3.1", + "venn.js": "~0.2.20", + "wolfy87-eventemitter": "~5.1.0" + } + }, + "node_modules/@antv/gl-matrix": { + "version": "2.7.1", + "resolved": "https://registry.npm.taobao.org/@antv/gl-matrix/download/@antv/gl-matrix-2.7.1.tgz", + "integrity": "sha1-rLjjf3qz3wE0WrpDcteUK+QuuhQ=" + }, + "node_modules/@antv/scale": { + "version": "0.1.5", + "resolved": "https://registry.npm.taobao.org/@antv/scale/download/@antv/scale-0.1.5.tgz", + "integrity": "sha1-JDJm6LkEfPZLL9/ED5g0zwhGSW4=", + "dependencies": { + "@antv/util": "~1.3.1", + "fecha": "~2.3.3" + } + }, + "node_modules/@antv/util": { + "version": "1.3.1", + "resolved": "https://registry.npm.taobao.org/@antv/util/download/@antv/util-1.3.1.tgz", + "integrity": "sha1-MKNLIB/5Em7A1YxyyBZqnD5kTM0=", + "dependencies": { + "@antv/gl-matrix": "^2.7.1" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.10.4.tgz?cache=0&sync_timestamp=1593521174697&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcode-frame%2Fdownload%2F%40babel%2Fcode-frame-7.10.4.tgz", + "integrity": "sha1-Fo2ho26Q2miujUnA8bSMfGJJITo=", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.10.4" + } + }, + "node_modules/@babel/core": { + "version": "7.10.5", + "resolved": "https://registry.npm.taobao.org/@babel/core/download/@babel/core-7.10.5.tgz?cache=0&sync_timestamp=1594750809694&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz", + "integrity": "sha1-HxXizKitmh14o43bphL158270zA=", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.10.5", + "@babel/helper-module-transforms": "^7.10.5", + "@babel/helpers": "^7.10.4", + "@babel/parser": "^7.10.5", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.5", + "@babel/types": "^7.10.5", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/babel" + } + }, + "node_modules/@babel/core/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.1.1.tgz", + "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@babel/core/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", + "dev": true + }, + "node_modules/@babel/core/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/generator": { + "version": "7.10.5", + "resolved": "https://registry.npm.taobao.org/@babel/generator/download/@babel/generator-7.10.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fgenerator%2Fdownload%2F%40babel%2Fgenerator-7.10.5.tgz", + "integrity": "sha1-G5A1VLyMWD7o0l8eiWlzLmuCmmk=", + "dev": true, + "dependencies": { + "@babel/types": "^7.10.5", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "node_modules/@babel/generator/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/helper-annotate-as-pure": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helper-annotate-as-pure/download/@babel/helper-annotate-as-pure-7.10.4.tgz", + "integrity": "sha1-W/DUlaP3V6w72ki1vzs7ownHK6M=", + "dev": true, + "dependencies": { + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helper-builder-binary-assignment-operator-visitor/download/@babel/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", + "integrity": "sha1-uwt18xv5jL+f8UPBrleLhydK4aM=", + "dev": true, + "dependencies": { + "@babel/helper-explode-assignable-expression": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/helper-create-class-features-plugin": { + "version": "7.10.5", + "resolved": "https://registry.npm.taobao.org/@babel/helper-create-class-features-plugin/download/@babel/helper-create-class-features-plugin-7.10.5.tgz?cache=0&sync_timestamp=1594751493358&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-class-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-class-features-plugin-7.10.5.tgz", + "integrity": "sha1-n2FEa6gOgkCwpchcb9rIRZ1vJZ0=", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-member-expression-to-functions": "^7.10.5", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-create-regexp-features-plugin": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helper-create-regexp-features-plugin/download/@babel/helper-create-regexp-features-plugin-7.10.4.tgz", + "integrity": "sha1-/dYNiFJGWaC2lZwFeZJeQlcU87g=", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-regex": "^7.10.4", + "regexpu-core": "^4.7.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/helper-define-map": { + "version": "7.10.5", + "resolved": "https://registry.npm.taobao.org/@babel/helper-define-map/download/@babel/helper-define-map-7.10.5.tgz?cache=0&sync_timestamp=1594751492980&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-define-map%2Fdownload%2F%40babel%2Fhelper-define-map-7.10.5.tgz", + "integrity": "sha1-tTwQ23imQIABUmkrEzkxR6y5uzA=", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.10.4", + "@babel/types": "^7.10.5", + "lodash": "^4.17.19" + } + }, + "node_modules/@babel/helper-explode-assignable-expression": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helper-explode-assignable-expression/download/@babel/helper-explode-assignable-expression-7.10.4.tgz?cache=0&sync_timestamp=1593522841702&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-explode-assignable-expression%2Fdownload%2F%40babel%2Fhelper-explode-assignable-expression-7.10.4.tgz", + "integrity": "sha1-QKHNkXv/Eoj2malKdbN6Gi29jHw=", + "dev": true, + "dependencies": { + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helper-function-name/download/@babel/helper-function-name-7.10.4.tgz?cache=0&sync_timestamp=1593521218775&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.10.4.tgz", + "integrity": "sha1-0tOyDFmtjEcRL6fSqUvAnV74Lxo=", + "dev": true, + "dependencies": { + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/helper-get-function-arity": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.10.4.tgz?cache=0&sync_timestamp=1593522827189&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.10.4.tgz", + "integrity": "sha1-mMHL6g4jMvM/mkZhuM4VBbLBm6I=", + "dev": true, + "dependencies": { + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/helper-hoist-variables": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helper-hoist-variables/download/@babel/helper-hoist-variables-7.10.4.tgz?cache=0&sync_timestamp=1593521259807&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-hoist-variables%2Fdownload%2F%40babel%2Fhelper-hoist-variables-7.10.4.tgz", + "integrity": "sha1-1JsAHR1aaMpeZgTdoBpil/fJOB4=", + "dev": true, + "dependencies": { + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.10.5", + "resolved": "https://registry.npm.taobao.org/@babel/helper-member-expression-to-functions/download/@babel/helper-member-expression-to-functions-7.10.5.tgz?cache=0&sync_timestamp=1594751492273&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-member-expression-to-functions%2Fdownload%2F%40babel%2Fhelper-member-expression-to-functions-7.10.5.tgz", + "integrity": "sha1-Fy9W56Y+eBEvOgQFXyQ2WvcC5+4=", + "dev": true, + "dependencies": { + "@babel/types": "^7.10.5" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helper-module-imports/download/@babel/helper-module-imports-7.10.4.tgz", + "integrity": "sha1-TFxUvgS9MWcKc4J5fXW5+i5bViA=", + "dev": true, + "dependencies": { + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.10.5", + "resolved": "https://registry.npm.taobao.org/@babel/helper-module-transforms/download/@babel/helper-module-transforms-7.10.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-transforms%2Fdownload%2F%40babel%2Fhelper-module-transforms-7.10.5.tgz", + "integrity": "sha1-EgwnHAszU2c/zf2MBT2zxUSiYNY=", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4", + "@babel/helper-simple-access": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.5", + "lodash": "^4.17.19" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helper-optimise-call-expression/download/@babel/helper-optimise-call-expression-7.10.4.tgz?cache=0&sync_timestamp=1593522827576&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-optimise-call-expression%2Fdownload%2F%40babel%2Fhelper-optimise-call-expression-7.10.4.tgz", + "integrity": "sha1-UNyWQT1ZT5lad5BZBbBYk813lnM=", + "dev": true, + "dependencies": { + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", + "dev": true + }, + "node_modules/@babel/helper-regex": { + "version": "7.10.5", + "resolved": "https://registry.npm.taobao.org/@babel/helper-regex/download/@babel/helper-regex-7.10.5.tgz?cache=0&sync_timestamp=1594751487108&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-regex%2Fdownload%2F%40babel%2Fhelper-regex-7.10.5.tgz", + "integrity": "sha1-Mt+7eYmQc8QVVXBToZvQVarlCuA=", + "dev": true, + "dependencies": { + "lodash": "^4.17.19" + } + }, + "node_modules/@babel/helper-remap-async-to-generator": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helper-remap-async-to-generator/download/@babel/helper-remap-async-to-generator-7.10.4.tgz?cache=0&sync_timestamp=1593521228698&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-remap-async-to-generator%2Fdownload%2F%40babel%2Fhelper-remap-async-to-generator-7.10.4.tgz", + "integrity": "sha1-/Oi+pOlpC76SMFbe0h5UtOi2jtU=", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-wrap-function": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helper-replace-supers/download/@babel/helper-replace-supers-7.10.4.tgz", + "integrity": "sha1-1YXNk4jqBuYDHkzUS2cTy+rZ5s8=", + "dev": true, + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helper-simple-access/download/@babel/helper-simple-access-7.10.4.tgz?cache=0&sync_timestamp=1593521217867&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-simple-access%2Fdownload%2F%40babel%2Fhelper-simple-access-7.10.4.tgz", + "integrity": "sha1-D1zNopRSd6KnotOoIeFTle3PNGE=", + "dev": true, + "dependencies": { + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.10.4.tgz?cache=0&sync_timestamp=1593522826673&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-split-export-declaration%2Fdownload%2F%40babel%2Fhelper-split-export-declaration-7.10.4.tgz", + "integrity": "sha1-LHBXbqo7VgmyTLmdsoiMw/xCUdE=", + "dev": true, + "dependencies": { + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.10.4.tgz?cache=0&sync_timestamp=1593522843594&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.10.4.tgz", + "integrity": "sha1-p4x6clHgH2FlEtMbEK3PUq2l4NI=", + "dev": true + }, + "node_modules/@babel/helper-wrap-function": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helper-wrap-function/download/@babel/helper-wrap-function-7.10.4.tgz?cache=0&sync_timestamp=1593522949000&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-wrap-function%2Fdownload%2F%40babel%2Fhelper-wrap-function-7.10.4.tgz", + "integrity": "sha1-im9wHqsP8592W1oc/vQJmQ5iS4c=", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/helpers": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helpers/download/@babel/helpers-7.10.4.tgz", + "integrity": "sha1-Kr6w1yGv98Cpc3a54fb2XXpHUEQ=", + "dev": true, + "dependencies": { + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/highlight/download/@babel/highlight-7.10.4.tgz?cache=0&sync_timestamp=1593522962210&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhighlight%2Fdownload%2F%40babel%2Fhighlight-7.10.4.tgz", + "integrity": "sha1-fRvf1ldTU4+r5sOFls23bZrGAUM=", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.10.5", + "resolved": "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.10.5.tgz?cache=0&sync_timestamp=1594750823758&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.10.5.tgz", + "integrity": "sha1-58a/Wn3v+VfOyfBLVR4nYpCdgms=", + "dev": true, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-proposal-async-generator-functions": { + "version": "7.10.5", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-async-generator-functions/download/@babel/plugin-proposal-async-generator-functions-7.10.5.tgz?cache=0&sync_timestamp=1594751487997&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-async-generator-functions%2Fdownload%2F%40babel%2Fplugin-proposal-async-generator-functions-7.10.5.tgz", + "integrity": "sha1-NJHKvy98F5q4IGBs7Cf+0V4OhVg=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.10.4", + "@babel/plugin-syntax-async-generators": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-class-properties": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-class-properties/download/@babel/plugin-proposal-class-properties-7.10.4.tgz", + "integrity": "sha1-ozv2Mto5ClnHqMVwBF0RFc13iAc=", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-decorators": { + "version": "7.10.5", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-decorators/download/@babel/plugin-proposal-decorators-7.10.5.tgz?cache=0&sync_timestamp=1594751494194&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-decorators%2Fdownload%2F%40babel%2Fplugin-proposal-decorators-7.10.5.tgz", + "integrity": "sha1-QomLukeLxLGuJCpwOpU6etNQ/7Q=", + "dev": true, + "dependencies": { + "@babel/helper-create-class-features-plugin": "^7.10.5", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-decorators": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-json-strings": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-json-strings/download/@babel/plugin-proposal-json-strings-7.10.4.tgz", + "integrity": "sha1-WT5ZxjUoFgIzvTIbGuvgggwjQds=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-object-rest-spread": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-object-rest-spread/download/@babel/plugin-proposal-object-rest-spread-7.10.4.tgz", + "integrity": "sha1-UBKawha5pqVbOFP92SPnS/VTpMA=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-optional-catch-binding": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-optional-catch-binding/download/@babel/plugin-proposal-optional-catch-binding-7.10.4.tgz", + "integrity": "sha1-Mck4MJ0kp4pJ1o/av/qoY3WFVN0=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-proposal-unicode-property-regex": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-unicode-property-regex/download/@babel/plugin-proposal-unicode-property-regex-7.10.4.tgz", + "integrity": "sha1-RIPNpTBBzjQTt/4vAAImZd36p10=", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-async-generators/download/@babel/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha1-qYP7Gusuw/btBCohD2QOkOeG/g0=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-decorators": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-decorators/download/@babel/plugin-syntax-decorators-7.10.4.tgz", + "integrity": "sha1-aFMIWyxCn50yLQL1pjUBjN6yNgw=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-dynamic-import/download/@babel/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha1-Yr+Ysto80h1iYVT8lu5bPLaOrLM=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-json-strings/download/@babel/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha1-AcohtmjNghjJ5kDLbdiMVBKyyWo=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-jsx": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-jsx/download/@babel/plugin-syntax-jsx-7.10.4.tgz?cache=0&sync_timestamp=1593522939386&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-jsx%2Fdownload%2F%40babel%2Fplugin-syntax-jsx-7.10.4.tgz", + "integrity": "sha1-Oauq48v3EMQ3PYQpSE5rohNAFmw=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-object-rest-spread/download/@babel/plugin-syntax-object-rest-spread-7.8.3.tgz?cache=0&sync_timestamp=1578950070697&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-object-rest-spread%2Fdownload%2F%40babel%2Fplugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha1-YOIl7cvZimQDMqLnLdPmbxr1WHE=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-optional-catch-binding/download/@babel/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha1-YRGiZbz7Ag6579D9/X0mQCue1sE=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-arrow-functions": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-arrow-functions/download/@babel/plugin-transform-arrow-functions-7.10.4.tgz?cache=0&sync_timestamp=1593522807583&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-arrow-functions%2Fdownload%2F%40babel%2Fplugin-transform-arrow-functions-7.10.4.tgz", + "integrity": "sha1-4ilg135pfHT0HFAdRNc9v4pqZM0=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-async-to-generator": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-async-to-generator/download/@babel/plugin-transform-async-to-generator-7.10.4.tgz?cache=0&sync_timestamp=1593522851748&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-async-to-generator%2Fdownload%2F%40babel%2Fplugin-transform-async-to-generator-7.10.4.tgz", + "integrity": "sha1-QaUBfknrbzzak5KlHu8pQFskWjc=", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoped-functions": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-block-scoped-functions/download/@babel/plugin-transform-block-scoped-functions-7.10.4.tgz?cache=0&sync_timestamp=1593521910347&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-block-scoped-functions%2Fdownload%2F%40babel%2Fplugin-transform-block-scoped-functions-7.10.4.tgz", + "integrity": "sha1-GvpZV0T3XkOpGvc7DZmOz+Trwug=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-block-scoping": { + "version": "7.10.5", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-block-scoping/download/@babel/plugin-transform-block-scoping-7.10.5.tgz?cache=0&sync_timestamp=1594751488558&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-block-scoping%2Fdownload%2F%40babel%2Fplugin-transform-block-scoping-7.10.5.tgz", + "integrity": "sha1-uBuKr++/5o8PZffvOXuezmimA30=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-classes": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-classes/download/@babel/plugin-transform-classes-7.10.4.tgz?cache=0&sync_timestamp=1593521236444&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-classes%2Fdownload%2F%40babel%2Fplugin-transform-classes-7.10.4.tgz", + "integrity": "sha1-QFE2rys+IYvEoZJiKLyRerGgrcc=", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-define-map": "^7.10.4", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.10.4", + "globals": "^11.1.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-computed-properties": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-computed-properties/download/@babel/plugin-transform-computed-properties-7.10.4.tgz?cache=0&sync_timestamp=1593522921161&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-computed-properties%2Fdownload%2F%40babel%2Fplugin-transform-computed-properties-7.10.4.tgz", + "integrity": "sha1-ne2DqBboLe0o1S1LTsvdgQzfwOs=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-destructuring": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-destructuring/download/@babel/plugin-transform-destructuring-7.10.4.tgz", + "integrity": "sha1-cN3Ss9G+qD0BUJ6bsl3bOnT8heU=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-dotall-regex": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-dotall-regex/download/@babel/plugin-transform-dotall-regex-7.10.4.tgz", + "integrity": "sha1-RpwgYhBcHragQOr0+sS0iAeDle4=", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-duplicate-keys": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-duplicate-keys/download/@babel/plugin-transform-duplicate-keys-7.10.4.tgz", + "integrity": "sha1-aX5Qyf7hQ4D+hD0fMGspVhdDHkc=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-exponentiation-operator": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-exponentiation-operator/download/@babel/plugin-transform-exponentiation-operator-7.10.4.tgz?cache=0&sync_timestamp=1593521230232&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-exponentiation-operator%2Fdownload%2F%40babel%2Fplugin-transform-exponentiation-operator-7.10.4.tgz", + "integrity": "sha1-WuM4xX+M9AAb2zVgeuZrktZlry4=", + "dev": true, + "dependencies": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-for-of": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-for-of/download/@babel/plugin-transform-for-of-7.10.4.tgz", + "integrity": "sha1-wIiS6IGdOl2ykDGxFa9RHbv+uuk=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-function-name": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-function-name/download/@babel/plugin-transform-function-name-7.10.4.tgz", + "integrity": "sha1-akZ4gOD8ljhRS6NpERgR3b4mRLc=", + "dev": true, + "dependencies": { + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-literals": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-literals/download/@babel/plugin-transform-literals-7.10.4.tgz", + "integrity": "sha1-n0K6CEEQChNfInEtDjkcRi9XHzw=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-amd": { + "version": "7.10.5", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-amd/download/@babel/plugin-transform-modules-amd-7.10.5.tgz?cache=0&sync_timestamp=1594751493579&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-amd%2Fdownload%2F%40babel%2Fplugin-transform-modules-amd-7.10.5.tgz", + "integrity": "sha1-G5zdrwXZ6Is6rTOcs+RFxPAgqbE=", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.10.5", + "@babel/helper-plugin-utils": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-commonjs": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-commonjs/download/@babel/plugin-transform-modules-commonjs-7.10.4.tgz", + "integrity": "sha1-ZmZ8Pu2h6/eJbUHx8WsXEFovvKA=", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-simple-access": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-systemjs": { + "version": "7.10.5", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-systemjs/download/@babel/plugin-transform-modules-systemjs-7.10.5.tgz?cache=0&sync_timestamp=1594751492758&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-systemjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-systemjs-7.10.5.tgz", + "integrity": "sha1-YnAJnIVAZmgbrp4F+H4bnK2+jIU=", + "dev": true, + "dependencies": { + "@babel/helper-hoist-variables": "^7.10.4", + "@babel/helper-module-transforms": "^7.10.5", + "@babel/helper-plugin-utils": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-modules-umd": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-umd/download/@babel/plugin-transform-modules-umd-7.10.4.tgz?cache=0&sync_timestamp=1593522937615&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-umd%2Fdownload%2F%40babel%2Fplugin-transform-modules-umd-7.10.4.tgz", + "integrity": "sha1-moSB/oG4JGVLOgtl2j34nz0hg54=", + "dev": true, + "dependencies": { + "@babel/helper-module-transforms": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-named-capturing-groups-regex/download/@babel/plugin-transform-named-capturing-groups-regex-7.10.4.tgz", + "integrity": "sha1-eLTZeIELbzvPA/njGPL8DtQa7LY=", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0" + } + }, + "node_modules/@babel/plugin-transform-new-target": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-new-target/download/@babel/plugin-transform-new-target-7.10.4.tgz?cache=0&sync_timestamp=1593522495673&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-new-target%2Fdownload%2F%40babel%2Fplugin-transform-new-target-7.10.4.tgz", + "integrity": "sha1-kJfXU8t7Aky3OBo7LlLpUTqcaIg=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-object-super": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-object-super/download/@babel/plugin-transform-object-super-7.10.4.tgz", + "integrity": "sha1-1xRsTROUM+emUm+IjGZ+MUoJOJQ=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-parameters": { + "version": "7.10.5", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-parameters/download/@babel/plugin-transform-parameters-7.10.5.tgz?cache=0&sync_timestamp=1594751489267&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-parameters%2Fdownload%2F%40babel%2Fplugin-transform-parameters-7.10.5.tgz", + "integrity": "sha1-WdM51Y0LGVBDX0BD504lEABeLEo=", + "dev": true, + "dependencies": { + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-regenerator": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-regenerator/download/@babel/plugin-transform-regenerator-7.10.4.tgz?cache=0&sync_timestamp=1593521089707&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-regenerator%2Fdownload%2F%40babel%2Fplugin-transform-regenerator-7.10.4.tgz", + "integrity": "sha1-IBXlnYOQdOdoON4hWdtCGWb9i2M=", + "dev": true, + "dependencies": { + "regenerator-transform": "^0.14.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-runtime": { + "version": "7.10.5", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-runtime/download/@babel/plugin-transform-runtime-7.10.5.tgz?cache=0&sync_timestamp=1594751489022&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-runtime%2Fdownload%2F%40babel%2Fplugin-transform-runtime-7.10.5.tgz", + "integrity": "sha1-Ozm3skgw4MLY/3pEif5c+Z+6zoY=", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "resolve": "^1.8.1", + "semver": "^5.5.1" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-shorthand-properties": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-shorthand-properties/download/@babel/plugin-transform-shorthand-properties-7.10.4.tgz", + "integrity": "sha1-n9Jexc3VVbt/Rz5ebuHJce7eTdY=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-spread": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-spread/download/@babel/plugin-transform-spread-7.10.4.tgz?cache=0&sync_timestamp=1593522927458&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-spread%2Fdownload%2F%40babel%2Fplugin-transform-spread-7.10.4.tgz", + "integrity": "sha1-TiyF6g1quu4bJNz7uuQm/o1nTP8=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-sticky-regex": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-sticky-regex/download/@babel/plugin-transform-sticky-regex-7.10.4.tgz", + "integrity": "sha1-jziJ7oZXWBEwop2cyR18c7fEoo0=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-regex": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-template-literals": { + "version": "7.10.5", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-template-literals/download/@babel/plugin-transform-template-literals-7.10.5.tgz?cache=0&sync_timestamp=1594751489580&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-template-literals%2Fdownload%2F%40babel%2Fplugin-transform-template-literals-7.10.5.tgz", + "integrity": "sha1-eLxdYmpmQtszEtnQ8AH152Of3ow=", + "dev": true, + "dependencies": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-typeof-symbol": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-typeof-symbol/download/@babel/plugin-transform-typeof-symbol-7.10.4.tgz", + "integrity": "sha1-lQnxp+7DHE7b/+E3wWzDP/C8W/w=", + "dev": true, + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/plugin-transform-unicode-regex": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-unicode-regex/download/@babel/plugin-transform-unicode-regex-7.10.4.tgz?cache=0&sync_timestamp=1593522855498&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-unicode-regex%2Fdownload%2F%40babel%2Fplugin-transform-unicode-regex-7.10.4.tgz", + "integrity": "sha1-5W1x+SgvrG2wnIJ0IFVXbV5tgKg=", + "dev": true, + "dependencies": { + "@babel/helper-create-regexp-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/preset-env": { + "version": "7.3.4", + "resolved": "https://registry.npm.taobao.org/@babel/preset-env/download/@babel/preset-env-7.3.4.tgz", + "integrity": "sha1-iHzzi20jyC8ZtRNSmL2xYAYuM+E=", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-async-generator-functions": "^7.2.0", + "@babel/plugin-proposal-json-strings": "^7.2.0", + "@babel/plugin-proposal-object-rest-spread": "^7.3.4", + "@babel/plugin-proposal-optional-catch-binding": "^7.2.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.2.0", + "@babel/plugin-syntax-async-generators": "^7.2.0", + "@babel/plugin-syntax-json-strings": "^7.2.0", + "@babel/plugin-syntax-object-rest-spread": "^7.2.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.2.0", + "@babel/plugin-transform-arrow-functions": "^7.2.0", + "@babel/plugin-transform-async-to-generator": "^7.3.4", + "@babel/plugin-transform-block-scoped-functions": "^7.2.0", + "@babel/plugin-transform-block-scoping": "^7.3.4", + "@babel/plugin-transform-classes": "^7.3.4", + "@babel/plugin-transform-computed-properties": "^7.2.0", + "@babel/plugin-transform-destructuring": "^7.2.0", + "@babel/plugin-transform-dotall-regex": "^7.2.0", + "@babel/plugin-transform-duplicate-keys": "^7.2.0", + "@babel/plugin-transform-exponentiation-operator": "^7.2.0", + "@babel/plugin-transform-for-of": "^7.2.0", + "@babel/plugin-transform-function-name": "^7.2.0", + "@babel/plugin-transform-literals": "^7.2.0", + "@babel/plugin-transform-modules-amd": "^7.2.0", + "@babel/plugin-transform-modules-commonjs": "^7.2.0", + "@babel/plugin-transform-modules-systemjs": "^7.3.4", + "@babel/plugin-transform-modules-umd": "^7.2.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.3.0", + "@babel/plugin-transform-new-target": "^7.0.0", + "@babel/plugin-transform-object-super": "^7.2.0", + "@babel/plugin-transform-parameters": "^7.2.0", + "@babel/plugin-transform-regenerator": "^7.3.4", + "@babel/plugin-transform-shorthand-properties": "^7.2.0", + "@babel/plugin-transform-spread": "^7.2.0", + "@babel/plugin-transform-sticky-regex": "^7.2.0", + "@babel/plugin-transform-template-literals": "^7.2.0", + "@babel/plugin-transform-typeof-symbol": "^7.2.0", + "@babel/plugin-transform-unicode-regex": "^7.2.0", + "browserslist": "^4.3.4", + "invariant": "^2.2.2", + "js-levenshtein": "^1.1.3", + "semver": "^5.3.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.10.5", + "resolved": "https://registry.npm.taobao.org/@babel/runtime/download/@babel/runtime-7.10.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.10.5.tgz", + "integrity": "sha1-MD2L1EDs1aSR6uYRf9M2dphnTFw=", + "dev": true, + "dependencies": { + "regenerator-runtime": "^0.13.4" + } + }, + "node_modules/@babel/runtime-corejs2": { + "version": "7.10.5", + "resolved": "https://registry.npm.taobao.org/@babel/runtime-corejs2/download/@babel/runtime-corejs2-7.10.5.tgz?cache=0&sync_timestamp=1594751489791&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime-corejs2%2Fdownload%2F%40babel%2Fruntime-corejs2-7.10.5.tgz", + "integrity": "sha1-jaoc7MwEaOXC4V8STj9RwrMDO0k=", + "dev": true, + "dependencies": { + "core-js": "^2.6.5", + "regenerator-runtime": "^0.13.4" + } + }, + "node_modules/@babel/template": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.10.4.tgz", + "integrity": "sha1-MlGZbEIA68cdGo/EBfupQPNrong=", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "node_modules/@babel/traverse": { + "version": "7.10.5", + "resolved": "https://registry.npm.taobao.org/@babel/traverse/download/@babel/traverse-7.10.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.10.5.tgz", + "integrity": "sha1-d85GT1sli+Jlr2GNj93wU28gtWQ=", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.10.5", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.10.4", + "@babel/parser": "^7.10.5", + "@babel/types": "^7.10.5", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + } + }, + "node_modules/@babel/traverse/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.1.1.tgz", + "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@babel/traverse/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", + "dev": true + }, + "node_modules/@babel/types": { + "version": "7.10.5", + "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.10.5.tgz?cache=0&sync_timestamp=1594750825865&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz", + "integrity": "sha1-2Irn4v3oa/v+hR1Nga+nCpl7XRU=", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@hapi/address": { + "version": "2.1.4", + "resolved": "https://registry.npm.taobao.org/@hapi/address/download/@hapi/address-2.1.4.tgz?cache=0&sync_timestamp=1593993745797&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Faddress%2Fdownload%2F%40hapi%2Faddress-2.1.4.tgz", + "integrity": "sha1-XWftQ/P9QaadS5/3tW58DR0KgeU=", + "deprecated": "Moved to 'npm install @sideway/address'", + "dev": true + }, + "node_modules/@hapi/bourne": { + "version": "1.3.2", + "resolved": "https://registry.npm.taobao.org/@hapi/bourne/download/@hapi/bourne-1.3.2.tgz", + "integrity": "sha1-CnCVreoGckPOMoPhtWuKj0U7JCo=", + "deprecated": "This version has been deprecated and is no longer supported or maintained", + "dev": true + }, + "node_modules/@hapi/hoek": { + "version": "8.5.1", + "resolved": "https://registry.npm.taobao.org/@hapi/hoek/download/@hapi/hoek-8.5.1.tgz", + "integrity": "sha1-/elgZMpEbeyMVajC8TCVewcMbgY=", + "deprecated": "This version has been deprecated and is no longer supported or maintained", + "dev": true + }, + "node_modules/@hapi/joi": { + "version": "15.1.1", + "resolved": "https://registry.npm.taobao.org/@hapi/joi/download/@hapi/joi-15.1.1.tgz", + "integrity": "sha1-xnW4pxKW8Cgz+NbSQ7NMV7jOGdc=", + "deprecated": "Switch to 'npm install joi'", + "dev": true, + "dependencies": { + "@hapi/address": "2.x.x", + "@hapi/bourne": "1.x.x", + "@hapi/hoek": "8.x.x", + "@hapi/topo": "3.x.x" + } + }, + "node_modules/@hapi/topo": { + "version": "3.1.6", + "resolved": "https://registry.npm.taobao.org/@hapi/topo/download/@hapi/topo-3.1.6.tgz?cache=0&sync_timestamp=1593916080558&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Ftopo%2Fdownload%2F%40hapi%2Ftopo-3.1.6.tgz", + "integrity": "sha1-aNk1+j6uf91asNf5U/MgXYsr/Ck=", + "deprecated": "This version has been deprecated and is no longer supported or maintained", + "dev": true, + "dependencies": { + "@hapi/hoek": "^8.3.0" + } + }, + "node_modules/@intervolga/optimize-cssnano-plugin": { + "version": "1.0.6", + "resolved": "https://registry.npm.taobao.org/@intervolga/optimize-cssnano-plugin/download/@intervolga/optimize-cssnano-plugin-1.0.6.tgz", + "integrity": "sha1-vnx4RhKLiPapsdEmGgrQbrXA/fg=", + "dev": true, + "dependencies": { + "cssnano": "^4.0.0", + "cssnano-preset-default": "^4.0.0", + "postcss": "^7.0.0" + }, + "peerDependencies": { + "webpack": "^4.0.0" + } + }, + "node_modules/@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/@mrmlnc/readdir-enhanced/download/@mrmlnc/readdir-enhanced-2.2.1.tgz", + "integrity": "sha1-UkryQNGjYFJ7cwR17PoTRKpUDd4=", + "dev": true, + "dependencies": { + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/@nodelib/fs.stat/download/@nodelib/fs.stat-1.1.3.tgz", + "integrity": "sha1-K1o6s/kYzKSKjHVMCBaOPwPrphs=", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/@soda/friendly-errors-webpack-plugin": { + "version": "1.7.1", + "resolved": "https://registry.npm.taobao.org/@soda/friendly-errors-webpack-plugin/download/@soda/friendly-errors-webpack-plugin-1.7.1.tgz", + "integrity": "sha1-cG9kvLSouWQrSK46zkRMcDNNYV0=", + "dev": true, + "dependencies": { + "chalk": "^1.1.3", + "error-stack-parser": "^2.0.0", + "string-width": "^2.0.0" + }, + "peerDependencies": { + "webpack": "^2.0.0 || ^3.0.0 || ^4.0.0" + } + }, + "node_modules/@types/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/@types/color-name/download/@types/color-name-1.1.1.tgz", + "integrity": "sha1-HBJhu+qhCoBVu8XYq4S3sq/IRqA=", + "dev": true + }, + "node_modules/@types/glob": { + "version": "7.1.3", + "resolved": "https://registry.npm.taobao.org/@types/glob/download/@types/glob-7.1.3.tgz", + "integrity": "sha1-5rqA82t9qtLGhazZJmOC5omFwYM=", + "dev": true, + "dependencies": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "node_modules/@types/json-schema": { + "version": "7.0.5", + "resolved": "https://registry.npm.taobao.org/@types/json-schema/download/@types/json-schema-7.0.5.tgz?cache=0&sync_timestamp=1591720749429&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fjson-schema%2Fdownload%2F%40types%2Fjson-schema-7.0.5.tgz", + "integrity": "sha1-3M5EMOZLRDuolF8CkPtWStW6xt0=", + "dev": true + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npm.taobao.org/@types/json5/download/@types/json5-0.0.29.tgz?cache=0&sync_timestamp=1588201498029&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fjson5%2Fdownload%2F%40types%2Fjson5-0.0.29.tgz", + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", + "dev": true + }, + "node_modules/@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npm.taobao.org/@types/minimatch/download/@types/minimatch-3.0.3.tgz", + "integrity": "sha1-PcoOPzOyAPx9ETnAzZbBJoyt/Z0=", + "dev": true + }, + "node_modules/@types/node": { + "version": "14.0.24", + "resolved": "https://registry.npm.taobao.org/@types/node/download/@types/node-14.0.24.tgz?cache=0&sync_timestamp=1595281751560&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-14.0.24.tgz", + "integrity": "sha1-sPhvWFZPoCooto+LVdTN7ELjudY=", + "dev": true + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npm.taobao.org/@types/normalize-package-data/download/@types/normalize-package-data-2.4.0.tgz", + "integrity": "sha1-5IbQ2XOW15vu3QpuM/RTT/a0lz4=", + "dev": true + }, + "node_modules/@types/q": { + "version": "1.5.4", + "resolved": "https://registry.npm.taobao.org/@types/q/download/@types/q-1.5.4.tgz", + "integrity": "sha1-FZJUFOCtLNdlv+9YhC9+JqesyyQ=", + "dev": true + }, + "node_modules/@vue/babel-helper-vue-jsx-merge-props": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/@vue/babel-helper-vue-jsx-merge-props/download/@vue/babel-helper-vue-jsx-merge-props-1.0.0.tgz", + "integrity": "sha1-BI/leZWNpAj7eosqPsBQtQpmEEA=", + "dev": true + }, + "node_modules/@vue/babel-plugin-transform-vue-jsx": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/@vue/babel-plugin-transform-vue-jsx/download/@vue/babel-plugin-transform-vue-jsx-1.1.2.tgz", + "integrity": "sha1-wKPm78Ai515CR7RIqPxrhvA+kcA=", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.2.0", + "@vue/babel-helper-vue-jsx-merge-props": "^1.0.0", + "html-tags": "^2.0.0", + "lodash.kebabcase": "^4.1.1", + "svg-tags": "^1.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@vue/babel-preset-app": { + "version": "3.12.1", + "resolved": "https://registry.npm.taobao.org/@vue/babel-preset-app/download/@vue/babel-preset-app-3.12.1.tgz", + "integrity": "sha1-JMR3BS8HjzD9t3NRA7FN0fosv+E=", + "dev": true, + "dependencies": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/plugin-proposal-class-properties": "^7.0.0", + "@babel/plugin-proposal-decorators": "^7.1.0", + "@babel/plugin-syntax-dynamic-import": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.0.0", + "@babel/plugin-transform-runtime": "^7.4.0", + "@babel/preset-env": "^7.0.0 < 7.4.0", + "@babel/runtime": "^7.0.0", + "@babel/runtime-corejs2": "^7.2.0", + "@vue/babel-preset-jsx": "^1.0.0", + "babel-plugin-dynamic-import-node": "^2.2.0", + "babel-plugin-module-resolver": "3.2.0", + "core-js": "^2.6.5" + } + }, + "node_modules/@vue/babel-preset-jsx": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/@vue/babel-preset-jsx/download/@vue/babel-preset-jsx-1.1.2.tgz", + "integrity": "sha1-LhaetMIE6jfKZsLqhaiAv8mdTyA=", + "dev": true, + "dependencies": { + "@vue/babel-helper-vue-jsx-merge-props": "^1.0.0", + "@vue/babel-plugin-transform-vue-jsx": "^1.1.2", + "@vue/babel-sugar-functional-vue": "^1.1.2", + "@vue/babel-sugar-inject-h": "^1.1.2", + "@vue/babel-sugar-v-model": "^1.1.2", + "@vue/babel-sugar-v-on": "^1.1.2" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@vue/babel-sugar-functional-vue": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-functional-vue/download/@vue/babel-sugar-functional-vue-1.1.2.tgz", + "integrity": "sha1-9+JPugnm8e5wEEVgqICAV1VfGpo=", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-jsx": "^7.2.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@vue/babel-sugar-inject-h": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-inject-h/download/@vue/babel-sugar-inject-h-1.1.2.tgz", + "integrity": "sha1-ilJ2ttji7Rb/yAeKrZQjYnTm7fA=", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-jsx": "^7.2.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@vue/babel-sugar-v-model": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-v-model/download/@vue/babel-sugar-v-model-1.1.2.tgz", + "integrity": "sha1-H/b9G4ACI/ycsehNzrXlLXN6gZI=", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-jsx": "^7.2.0", + "@vue/babel-helper-vue-jsx-merge-props": "^1.0.0", + "@vue/babel-plugin-transform-vue-jsx": "^1.1.2", + "camelcase": "^5.0.0", + "html-tags": "^2.0.0", + "svg-tags": "^1.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@vue/babel-sugar-v-model/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz", + "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@vue/babel-sugar-v-on": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-v-on/download/@vue/babel-sugar-v-on-1.1.2.tgz", + "integrity": "sha1-su+ZuPL6sJ++rSWq1w70Lhz1sTs=", + "dev": true, + "dependencies": { + "@babel/plugin-syntax-jsx": "^7.2.0", + "@vue/babel-plugin-transform-vue-jsx": "^1.1.2", + "camelcase": "^5.0.0" + }, + "peerDependencies": { + "@babel/core": "^7.0.0-0" + } + }, + "node_modules/@vue/babel-sugar-v-on/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz", + "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@vue/cli-overlay": { + "version": "3.12.1", + "resolved": "https://registry.npm.taobao.org/@vue/cli-overlay/download/@vue/cli-overlay-3.12.1.tgz?cache=0&sync_timestamp=1592976328085&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fcli-overlay%2Fdownload%2F%40vue%2Fcli-overlay-3.12.1.tgz", + "integrity": "sha1-vf3o9xI1YasG5OTGC4VMxQkvWrE=", + "dev": true + }, + "node_modules/@vue/cli-plugin-babel": { + "version": "3.12.1", + "resolved": "https://registry.npm.taobao.org/@vue/cli-plugin-babel/download/@vue/cli-plugin-babel-3.12.1.tgz", + "integrity": "sha1-mnkVnejNCGsBP6bXijmDCy4uxwY=", + "dev": true, + "dependencies": { + "@babel/core": "^7.0.0", + "@vue/babel-preset-app": "^3.12.1", + "@vue/cli-shared-utils": "^3.12.1", + "babel-loader": "^8.0.5", + "webpack": "^4.0.0" + } + }, + "node_modules/@vue/cli-plugin-eslint": { + "version": "3.12.1", + "resolved": "https://registry.npm.taobao.org/@vue/cli-plugin-eslint/download/@vue/cli-plugin-eslint-3.12.1.tgz", + "integrity": "sha1-MCxGOGfzjnkLuZbq/fcVnHgtyM8=", + "dev": true, + "dependencies": { + "@vue/cli-shared-utils": "^3.12.1", + "babel-eslint": "^10.0.1", + "eslint-loader": "^2.1.2", + "globby": "^9.2.0", + "webpack": "^4.0.0", + "yorkie": "^2.0.0" + }, + "optionalDependencies": { + "eslint": "^4.19.1", + "eslint-plugin-vue": "^4.7.1" + } + }, + "node_modules/@vue/cli-plugin-unit-mocha": { + "version": "3.12.1", + "resolved": "https://registry.npm.taobao.org/@vue/cli-plugin-unit-mocha/download/@vue/cli-plugin-unit-mocha-3.12.1.tgz?cache=0&sync_timestamp=1592978125871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fcli-plugin-unit-mocha%2Fdownload%2F%40vue%2Fcli-plugin-unit-mocha-3.12.1.tgz", + "integrity": "sha1-lwxTZHW/RwqoVLDUzEFO2bJCZjY=", + "dev": true, + "dependencies": { + "@vue/cli-shared-utils": "^3.12.1", + "jsdom": "^13.2.0", + "jsdom-global": "^3.0.2", + "mocha": "^5.2.0", + "mocha-webpack": "^2.0.0-beta.0" + } + }, + "node_modules/@vue/cli-service": { + "version": "3.12.1", + "resolved": "https://registry.npm.taobao.org/@vue/cli-service/download/@vue/cli-service-3.12.1.tgz", + "integrity": "sha1-EyILHBiSVOfAAzkN8ykIb5tud+Y=", + "dev": true, + "dependencies": { + "@intervolga/optimize-cssnano-plugin": "^1.0.5", + "@soda/friendly-errors-webpack-plugin": "^1.7.1", + "@vue/cli-overlay": "^3.12.1", + "@vue/cli-shared-utils": "^3.12.1", + "@vue/component-compiler-utils": "^3.0.0", + "@vue/preload-webpack-plugin": "^1.1.0", + "@vue/web-component-wrapper": "^1.2.0", + "acorn": "^6.1.1", + "acorn-walk": "^6.1.1", + "address": "^1.0.3", + "autoprefixer": "^9.5.1", + "browserslist": "^4.5.4", + "cache-loader": "^2.0.1", + "case-sensitive-paths-webpack-plugin": "^2.2.0", + "chalk": "^2.4.2", + "cli-highlight": "^2.1.0", + "clipboardy": "^2.0.0", + "cliui": "^5.0.0", + "copy-webpack-plugin": "^4.6.0", + "css-loader": "^1.0.1", + "cssnano": "^4.1.10", + "current-script-polyfill": "^1.0.0", + "debug": "^4.1.1", + "default-gateway": "^5.0.2", + "dotenv": "^7.0.0", + "dotenv-expand": "^5.1.0", + "escape-string-regexp": "^1.0.5", + "file-loader": "^3.0.1", + "fs-extra": "^7.0.1", + "globby": "^9.2.0", + "hash-sum": "^1.0.2", + "html-webpack-plugin": "^3.2.0", + "launch-editor-middleware": "^2.2.1", + "lodash.defaultsdeep": "^4.6.1", + "lodash.mapvalues": "^4.6.0", + "lodash.transform": "^4.6.0", + "mini-css-extract-plugin": "^0.8.0", + "minimist": "^1.2.0", + "ora": "^3.4.0", + "portfinder": "^1.0.20", + "postcss-loader": "^3.0.0", + "read-pkg": "^5.0.0", + "semver": "^6.0.0", + "slash": "^2.0.0", + "source-map-url": "^0.4.0", + "ssri": "^6.0.1", + "string.prototype.padend": "^3.0.0", + "terser-webpack-plugin": "^1.2.3", + "thread-loader": "^2.1.2", + "url-loader": "^1.1.2", + "vue-loader": "^15.7.0", + "webpack": "^4.0.0", + "webpack-bundle-analyzer": "^3.3.0", + "webpack-chain": "^4.11.0", + "webpack-dev-server": "^3.4.1", + "webpack-merge": "^4.2.1" + }, + "bin": { + "vue-cli-service": "bin/vue-cli-service.js" + }, + "engines": { + "node": ">=8" + }, + "peerDependencies": { + "vue-template-compiler": "^2.0.0" + } + }, + "node_modules/@vue/cli-service/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/@vue/cli-service/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@vue/cli-service/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@vue/cli-service/node_modules/cliui": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-5.0.0.tgz", + "integrity": "sha1-3u/P2y6AB4SqNPRvoI4GhRx7u8U=", + "dev": true, + "dependencies": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "node_modules/@vue/cli-service/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.1.1.tgz", + "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/@vue/cli-service/node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-7.0.3.tgz", + "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=", + "dev": true + }, + "node_modules/@vue/cli-service/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", + "dev": true + }, + "node_modules/@vue/cli-service/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1586886301819&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@vue/cli-service/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-3.1.0.tgz", + "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@vue/cli-service/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@vue/cli-service/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@vue/cli-service/node_modules/wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-5.1.0.tgz", + "integrity": "sha1-H9H2cjXVttD+54EFYAG/tpTAOwk=", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/@vue/cli-shared-utils": { + "version": "3.12.1", + "resolved": "https://registry.npm.taobao.org/@vue/cli-shared-utils/download/@vue/cli-shared-utils-3.12.1.tgz", + "integrity": "sha1-vPB2KH3a3uu7l8anSN/p/1DsjfA=", + "dev": true, + "dependencies": { + "@hapi/joi": "^15.0.1", + "chalk": "^2.4.1", + "execa": "^1.0.0", + "launch-editor": "^2.2.1", + "lru-cache": "^5.1.1", + "node-ipc": "^9.1.1", + "open": "^6.3.0", + "ora": "^3.4.0", + "request": "^2.87.0", + "request-promise-native": "^1.0.7", + "semver": "^6.0.0", + "string.prototype.padstart": "^3.0.0" + } + }, + "node_modules/@vue/cli-shared-utils/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@vue/cli-shared-utils/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@vue/cli-shared-utils/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1586886301819&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/@vue/cli-shared-utils/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@vue/component-compiler-utils": { + "version": "3.1.2", + "resolved": "https://registry.npm.taobao.org/@vue/component-compiler-utils/download/@vue/component-compiler-utils-3.1.2.tgz", + "integrity": "sha1-ghOl/zIC+fITf+VTcPnouWVggcM=", + "dev": true, + "dependencies": { + "consolidate": "^0.15.1", + "hash-sum": "^1.0.2", + "lru-cache": "^4.1.2", + "merge-source-map": "^1.1.0", + "postcss": "^7.0.14", + "postcss-selector-parser": "^6.0.2", + "source-map": "~0.6.1", + "vue-template-es2015-compiler": "^1.9.0" + }, + "optionalDependencies": { + "prettier": "^1.18.2" + } + }, + "node_modules/@vue/component-compiler-utils/node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz?cache=0&sync_timestamp=1594427569171&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-4.1.5.tgz", + "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=", + "dev": true, + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/@vue/component-compiler-utils/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@vue/component-compiler-utils/node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + }, + "node_modules/@vue/eslint-config-standard": { + "version": "3.0.5", + "resolved": "https://registry.npm.taobao.org/@vue/eslint-config-standard/download/@vue/eslint-config-standard-3.0.5.tgz", + "integrity": "sha1-fWroCerskJk8YDPZVD9I9oe56/E=", + "dev": true, + "dependencies": { + "eslint-config-standard": "^12.0.0-alpha.0", + "eslint-plugin-import": "^2.11.0", + "eslint-plugin-node": "^6.0.1", + "eslint-plugin-promise": "^3.7.0", + "eslint-plugin-standard": "^3.1.0" + } + }, + "node_modules/@vue/preload-webpack-plugin": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/@vue/preload-webpack-plugin/download/@vue/preload-webpack-plugin-1.1.1.tgz", + "integrity": "sha1-GHI1MNME9EMCHaIpLW7JUCgmEEo=", + "dev": true, + "engines": { + "node": ">=6.0.0" + }, + "peerDependencies": { + "html-webpack-plugin": ">=2.26.0", + "webpack": ">=4.0.0" + } + }, + "node_modules/@vue/test-utils": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/@vue/test-utils/download/@vue/test-utils-1.0.3.tgz", + "integrity": "sha1-WHxN2bQktmAi8YjBm8YF2izpHG8=", + "dev": true, + "dependencies": { + "dom-event-types": "^1.0.0", + "lodash": "^4.17.15", + "pretty": "^2.0.0" + }, + "peerDependencies": { + "vue": "2.x", + "vue-template-compiler": "^2.x" + } + }, + "node_modules/@vue/web-component-wrapper": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/@vue/web-component-wrapper/download/@vue/web-component-wrapper-1.2.0.tgz", + "integrity": "sha1-uw5G8VhafiibTuYGfcxaauYvHdE=", + "dev": true + }, + "node_modules/@webassemblyjs/ast": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/ast/download/@webassemblyjs/ast-1.9.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fast%2Fdownload%2F%40webassemblyjs%2Fast-1.9.0.tgz", + "integrity": "sha1-vYUGBLQEJFmlpBzX0zjL7Wle2WQ=", + "dev": true, + "dependencies": { + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/floating-point-hex-parser/download/@webassemblyjs/floating-point-hex-parser-1.9.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Ffloating-point-hex-parser%2Fdownload%2F%40webassemblyjs%2Ffloating-point-hex-parser-1.9.0.tgz", + "integrity": "sha1-PD07Jxvd/ITesA9xNEQ4MR1S/7Q=", + "dev": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-api-error/download/@webassemblyjs/helper-api-error-1.9.0.tgz", + "integrity": "sha1-ID9nbjM7lsnaLuqzzO8zxFkotqI=", + "dev": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-buffer/download/@webassemblyjs/helper-buffer-1.9.0.tgz?cache=0&sync_timestamp=1580600188490&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-buffer%2Fdownload%2F%40webassemblyjs%2Fhelper-buffer-1.9.0.tgz", + "integrity": "sha1-oUQtJpxf6yP8vJ73WdrDVH8p3gA=", + "dev": true + }, + "node_modules/@webassemblyjs/helper-code-frame": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-code-frame/download/@webassemblyjs/helper-code-frame-1.9.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-code-frame%2Fdownload%2F%40webassemblyjs%2Fhelper-code-frame-1.9.0.tgz", + "integrity": "sha1-ZH+Iks0gQ6gqwMjF51w28dkVnyc=", + "dev": true, + "dependencies": { + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "node_modules/@webassemblyjs/helper-fsm": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-fsm/download/@webassemblyjs/helper-fsm-1.9.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-fsm%2Fdownload%2F%40webassemblyjs%2Fhelper-fsm-1.9.0.tgz", + "integrity": "sha1-wFJWtxJEIUZx9LCOwQitY7cO3bg=", + "dev": true + }, + "node_modules/@webassemblyjs/helper-module-context": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-module-context/download/@webassemblyjs/helper-module-context-1.9.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-module-context%2Fdownload%2F%40webassemblyjs%2Fhelper-module-context-1.9.0.tgz", + "integrity": "sha1-JdiIS3aDmHGgimxvgGw5ee9xLwc=", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-wasm-bytecode/download/@webassemblyjs/helper-wasm-bytecode-1.9.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-wasm-bytecode%2Fdownload%2F%40webassemblyjs%2Fhelper-wasm-bytecode-1.9.0.tgz", + "integrity": "sha1-T+2L6sm4wU+MWLcNEk1UndH+V5A=", + "dev": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-wasm-section/download/@webassemblyjs/helper-wasm-section-1.9.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-wasm-section%2Fdownload%2F%40webassemblyjs%2Fhelper-wasm-section-1.9.0.tgz", + "integrity": "sha1-WkE41aYpK6GLBMWuSXF+QWeWU0Y=", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/ieee754/download/@webassemblyjs/ieee754-1.9.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fieee754%2Fdownload%2F%40webassemblyjs%2Fieee754-1.9.0.tgz", + "integrity": "sha1-Fceg+6roP7JhQ7us9tbfFwKtOeQ=", + "dev": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/leb128/download/@webassemblyjs/leb128-1.9.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fleb128%2Fdownload%2F%40webassemblyjs%2Fleb128-1.9.0.tgz", + "integrity": "sha1-8Zygt2ptxVYjoJz/p2noOPoeHJU=", + "dev": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/utf8/download/@webassemblyjs/utf8-1.9.0.tgz", + "integrity": "sha1-BNM7Y2945qaBMifoJAL3Y3tiKas=", + "dev": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-edit/download/@webassemblyjs/wasm-edit-1.9.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-edit%2Fdownload%2F%40webassemblyjs%2Fwasm-edit-1.9.0.tgz", + "integrity": "sha1-P+bXnT8PkiGDqoYALELdJWz+6c8=", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/helper-wasm-section": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-opt": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-gen/download/@webassemblyjs/wasm-gen-1.9.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-gen%2Fdownload%2F%40webassemblyjs%2Fwasm-gen-1.9.0.tgz", + "integrity": "sha1-ULxw7Gje2OJ2OwGhQYv0NJGnpJw=", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-opt/download/@webassemblyjs/wasm-opt-1.9.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-opt%2Fdownload%2F%40webassemblyjs%2Fwasm-opt-1.9.0.tgz", + "integrity": "sha1-IhEYHlsxMmRDzIES658LkChyGmE=", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-parser/download/@webassemblyjs/wasm-parser-1.9.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-parser%2Fdownload%2F%40webassemblyjs%2Fwasm-parser-1.9.0.tgz", + "integrity": "sha1-nUjkSCbfSmWYKUqmyHRp1kL/9l4=", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "node_modules/@webassemblyjs/wast-parser": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wast-parser/download/@webassemblyjs/wast-parser-1.9.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwast-parser%2Fdownload%2F%40webassemblyjs%2Fwast-parser-1.9.0.tgz", + "integrity": "sha1-MDERXXmsW9JhVWzsw/qQo+9FGRQ=", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/floating-point-hex-parser": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-code-frame": "1.9.0", + "@webassemblyjs/helper-fsm": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wast-printer/download/@webassemblyjs/wast-printer-1.9.0.tgz?cache=0&sync_timestamp=1580599638157&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwast-printer%2Fdownload%2F%40webassemblyjs%2Fwast-printer-1.9.0.tgz", + "integrity": "sha1-STXVTIX+9jewDOn1I3dFHQDUeJk=", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/@xtuc/ieee754/download/@xtuc/ieee754-1.2.0.tgz", + "integrity": "sha1-7vAUoxRa5Hehy8AM0eVSM23Ot5A=", + "dev": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npm.taobao.org/@xtuc/long/download/@xtuc/long-4.2.2.tgz", + "integrity": "sha1-0pHGpOl5ibXGHZrPOWrk/hM6cY0=", + "dev": true + }, + "node_modules/abab": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/abab/download/abab-2.0.3.tgz", + "integrity": "sha1-Yj4gdeAustPyR15J+ZyRhGRnkHo=", + "dev": true + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/abbrev/download/abbrev-1.1.1.tgz", + "integrity": "sha1-+PLIh60Qv2f2NPAFtph/7TF5qsg=", + "dev": true + }, + "node_modules/accepts": { + "version": "1.3.7", + "resolved": "https://registry.npm.taobao.org/accepts/download/accepts-1.3.7.tgz", + "integrity": "sha1-UxvHJlF6OytB+FACHGzBXqq1B80=", + "dev": true, + "dependencies": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/acorn": { + "version": "6.4.1", + "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-6.4.1.tgz?cache=0&sync_timestamp=1591869432510&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-6.4.1.tgz", + "integrity": "sha1-Ux5Yuj9RudrLmmZGyk3r9bFMpHQ=", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals": { + "version": "4.3.4", + "resolved": "https://registry.npm.taobao.org/acorn-globals/download/acorn-globals-4.3.4.tgz", + "integrity": "sha1-n6GSat3BHJcwjE5m163Q1Awycuc=", + "dev": true, + "dependencies": { + "acorn": "^6.0.1", + "acorn-walk": "^6.0.1" + } + }, + "node_modules/acorn-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/acorn-jsx/download/acorn-jsx-3.0.1.tgz", + "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", + "dev": true, + "dependencies": { + "acorn": "^3.0.4" + } + }, + "node_modules/acorn-jsx/node_modules/acorn": { + "version": "3.3.0", + "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-3.3.0.tgz?cache=0&sync_timestamp=1591869432510&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-3.3.0.tgz", + "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "6.2.0", + "resolved": "https://registry.npm.taobao.org/acorn-walk/download/acorn-walk-6.2.0.tgz", + "integrity": "sha1-Ejy487hMIXHx9/slJhWxx4prGow=", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/address": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/address/download/address-1.1.2.tgz?cache=0&sync_timestamp=1588851806210&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faddress%2Fdownload%2Faddress-1.1.2.tgz", + "integrity": "sha1-vxEWycdYxRt6kz0pa3LCIe2UKLY=", + "dev": true, + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/adler-32": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/adler-32/download/adler-32-1.2.0.tgz", + "integrity": "sha1-aj5r8KY5ALoVZSgIyxXGgT0aXyU=", + "dependencies": { + "exit-on-epipe": "~1.0.1", + "printj": "~1.1.0" + }, + "bin": { + "adler32": "bin/adler32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/aggregate-error": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/aggregate-error/download/aggregate-error-3.0.1.tgz?cache=0&sync_timestamp=1570167911603&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faggregate-error%2Fdownload%2Faggregate-error-3.0.1.tgz", + "integrity": "sha1-2y/nJG5Tb0DZtUQqOeEX191qJOA=", + "dev": true, + "dependencies": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ajv": { + "version": "6.12.3", + "resolved": "https://registry.npm.taobao.org/ajv/download/ajv-6.12.3.tgz", + "integrity": "sha1-GMWvOKER3etPJpe9eNaKvByr1wY=", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/ajv-errors/download/ajv-errors-1.0.1.tgz", + "integrity": "sha1-81mGrOuRr63sQQL72FAUlQzvpk0=", + "dev": true, + "peerDependencies": { + "ajv": ">=5.0.0" + } + }, + "node_modules/ajv-keywords": { + "version": "3.5.1", + "resolved": "https://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-3.5.1.tgz", + "integrity": "sha1-uDyonF1C1pAx9CTK1JqtoCNsaVc=", + "dev": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/align-text": { + "version": "0.1.4", + "resolved": "https://registry.npm.taobao.org/align-text/download/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "dependencies": { + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/alphanum-sort/download/alphanum-sort-1.0.2.tgz", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", + "dev": true + }, + "node_modules/amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/amdefine/download/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "engines": { + "node": ">=0.4.2" + } + }, + "node_modules/ansi-colors": { + "version": "3.2.4", + "resolved": "https://registry.npm.taobao.org/ansi-colors/download/ansi-colors-3.2.4.tgz", + "integrity": "sha1-46PaS/uubIapwoViXeEkojQCb78=", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npm.taobao.org/ansi-escapes/download/ansi-escapes-3.2.0.tgz", + "integrity": "sha1-h4C5j/nb9WOBUtHx/lwde0RCl2s=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ansi-html": { + "version": "0.0.7", + "resolved": "https://registry.npm.taobao.org/ansi-html/download/ansi-html-0.0.7.tgz", + "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", + "dev": true, + "engines": [ + "node >= 0.8.0" + ], + "bin": { + "ansi-html": "bin/ansi-html" + } + }, + "node_modules/ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/any-observable": { + "version": "0.2.0", + "resolved": "https://registry.npm.taobao.org/any-observable/download/any-observable-0.2.0.tgz", + "integrity": "sha1-xnhwBYADV5AJCD9UrAq6+1wz0kI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/any-promise/download/any-promise-1.3.0.tgz", + "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=", + "dev": true + }, + "node_modules/anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-3.1.1.tgz", + "integrity": "sha1-xV7PAhheJGklk5kxDBc84xIzsUI=", + "dev": true, + "optional": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/app-root-path": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/app-root-path/download/app-root-path-2.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fapp-root-path%2Fdownload%2Fapp-root-path-2.2.1.tgz", + "integrity": "sha1-0N9KaC7kCCc1g9Q/b3npiSYkvJo=", + "dev": true, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/aproba": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/aproba/download/aproba-1.2.0.tgz", + "integrity": "sha1-aALmJk79GMeQobDVF/DyYnvyyUo=", + "dev": true + }, + "node_modules/arch": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/arch/download/arch-2.1.2.tgz", + "integrity": "sha1-DFK75zRLtPomDEQ9LLrZwA/y8L8=", + "dev": true, + "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/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npm.taobao.org/argparse/download/argparse-1.0.10.tgz", + "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", + "dev": true, + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/arr-diff/download/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/arr-flatten/download/arr-flatten-1.1.0.tgz", + "integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/arr-union/download/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-equal": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/array-equal/download/array-equal-1.0.0.tgz", + "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", + "dev": true + }, + "node_modules/array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/array-flatten/download/array-flatten-1.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-flatten%2Fdownload%2Farray-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true + }, + "node_modules/array-includes": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/array-includes/download/array-includes-3.1.1.tgz", + "integrity": "sha1-zdZ+aFK9+cEhVGB4ZzIlXtJFk0g=", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0", + "is-string": "^1.0.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/array-union": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/array-union/download/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "dependencies": { + "array-uniq": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/array-uniq/download/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npm.taobao.org/array-unique/download/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.2.3", + "resolved": "https://registry.npm.taobao.org/array.prototype.flat/download/array.prototype.flat-1.2.3.tgz", + "integrity": "sha1-DegrQmsDGNv9uUAInjiwQ9N/bHs=", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/asap": { + "version": "2.0.6", + "resolved": "https://registry.npm.taobao.org/asap/download/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "dev": true, + "optional": true + }, + "node_modules/asn1": { + "version": "0.2.4", + "resolved": "https://registry.npm.taobao.org/asn1/download/asn1-0.2.4.tgz", + "integrity": "sha1-jSR136tVO7M+d7VOWeiAu4ziMTY=", + "dev": true, + "dependencies": { + "safer-buffer": "~2.1.0" + } + }, + "node_modules/asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npm.taobao.org/asn1.js/download/asn1.js-4.10.1.tgz", + "integrity": "sha1-ucK/WAXx5kqt7tbfOiv6+1pz9aA=", + "dev": true, + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/asn1.js/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.9.tgz", + "integrity": "sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=", + "dev": true + }, + "node_modules/assert": { + "version": "1.5.0", + "resolved": "https://registry.npm.taobao.org/assert/download/assert-1.5.0.tgz", + "integrity": "sha1-VcEJqvbgrv2z3EtxJAxwv1dLGOs=", + "dev": true, + "dependencies": { + "object-assign": "^4.1.1", + "util": "0.10.3" + } + }, + "node_modules/assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/assert-plus/download/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/assert/node_modules/inherits": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "node_modules/assert/node_modules/util": { + "version": "0.10.3", + "resolved": "https://registry.npm.taobao.org/util/download/util-0.10.3.tgz?cache=0&sync_timestamp=1588238457176&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Futil%2Fdownload%2Futil-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "dependencies": { + "inherits": "2.0.1" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/assertion-error/download/assertion-error-1.1.0.tgz", + "integrity": "sha1-5gtrDo8wG9l+U3UhW9pAbIURjAs=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/assign-symbols/download/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/async": { + "version": "2.6.3", + "resolved": "https://registry.npm.taobao.org/async/download/async-2.6.3.tgz", + "integrity": "sha1-1yYl4jRKNlbjo61Pp0n6gymdgv8=", + "dev": true, + "dependencies": { + "lodash": "^4.17.14" + } + }, + "node_modules/async-each": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/async-each/download/async-each-1.0.3.tgz", + "integrity": "sha1-tyfb+H12UWAvBvTUrDh/R9kbDL8=", + "dev": true + }, + "node_modules/async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/async-limiter/download/async-limiter-1.0.1.tgz?cache=0&sync_timestamp=1574272018408&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync-limiter%2Fdownload%2Fasync-limiter-1.0.1.tgz", + "integrity": "sha1-3TeelPDbgxCwgpH51kwyCXZmF/0=", + "dev": true + }, + "node_modules/async-validator": { + "version": "1.12.2", + "resolved": "https://registry.npm.taobao.org/async-validator/download/async-validator-1.12.2.tgz", + "integrity": "sha1-vq5nHnF00pOLe0tp0vt+cit/1yw=" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npm.taobao.org/asynckit/download/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/atob/download/atob-2.1.2.tgz", + "integrity": "sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k=", + "dev": true, + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/autoprefixer": { + "version": "9.8.5", + "resolved": "https://registry.npm.taobao.org/autoprefixer/download/autoprefixer-9.8.5.tgz?cache=0&sync_timestamp=1594444612318&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fautoprefixer%2Fdownload%2Fautoprefixer-9.8.5.tgz", + "integrity": "sha1-LCJd4indr+HRQkwCeR0MPhDMzKo=", + "dev": true, + "dependencies": { + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001097", + "colorette": "^1.2.0", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^7.0.32", + "postcss-value-parser": "^4.1.0" + }, + "bin": { + "autoprefixer": "bin/autoprefixer" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/autoprefixer" + } + }, + "node_modules/aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npm.taobao.org/aws-sign2/download/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/aws4": { + "version": "1.10.0", + "resolved": "https://registry.npm.taobao.org/aws4/download/aws4-1.10.0.tgz", + "integrity": "sha1-oXs6jqgRBg501H0wYSJACtRJeuI=", + "dev": true + }, + "node_modules/axios": { + "version": "0.18.1", + "resolved": "https://registry.npm.taobao.org/axios/download/axios-0.18.1.tgz", + "integrity": "sha1-/z8N4ue10YDnV62YAA8Qgbh7zqM=", + "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/node_modules/is-buffer": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-2.0.4.tgz", + "integrity": "sha1-PlcvI8hBGlz9lVfISeNmXgspBiM=", + "engines": { + "node": ">=4" + } + }, + "node_modules/babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npm.taobao.org/babel-code-frame/download/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "dependencies": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + } + }, + "node_modules/babel-code-frame/node_modules/js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/js-tokens/download/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + }, + "node_modules/babel-eslint": { + "version": "10.1.0", + "resolved": "https://registry.npm.taobao.org/babel-eslint/download/babel-eslint-10.1.0.tgz", + "integrity": "sha1-aWjlaKkQt4+zd5zdi2rC9HmUMjI=", + "deprecated": "babel-eslint is now @babel/eslint-parser. This package will no longer receive updates.", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.7.0", + "@babel/traverse": "^7.7.0", + "@babel/types": "^7.7.0", + "eslint-visitor-keys": "^1.0.0", + "resolve": "^1.12.0" + }, + "engines": { + "node": ">=6" + }, + "peerDependencies": { + "eslint": ">= 4.12.1" + } + }, + "node_modules/babel-loader": { + "version": "8.1.0", + "resolved": "https://registry.npm.taobao.org/babel-loader/download/babel-loader-8.1.0.tgz", + "integrity": "sha1-xhHVESvVIJq+i5+oTD5NolJ18cM=", + "dev": true, + "dependencies": { + "find-cache-dir": "^2.1.0", + "loader-utils": "^1.4.0", + "mkdirp": "^0.5.3", + "pify": "^4.0.1", + "schema-utils": "^2.6.5" + }, + "engines": { + "node": ">= 6.9" + }, + "peerDependencies": { + "@babel/core": "^7.0.0", + "webpack": ">=2" + } + }, + "node_modules/babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npm.taobao.org/babel-plugin-dynamic-import-node/download/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha1-hP2hnJduxcbe/vV/lCez3vZuF6M=", + "dev": true, + "dependencies": { + "object.assign": "^4.1.0" + } + }, + "node_modules/babel-plugin-module-resolver": { + "version": "3.2.0", + "resolved": "https://registry.npm.taobao.org/babel-plugin-module-resolver/download/babel-plugin-module-resolver-3.2.0.tgz", + "integrity": "sha1-3fpeMB47mqEthSqZefGLN4gf9ac=", + "dev": true, + "dependencies": { + "find-babel-config": "^1.1.0", + "glob": "^7.1.2", + "pkg-up": "^2.0.0", + "reselect": "^3.0.1", + "resolve": "^1.4.0" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "dependencies": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + } + }, + "node_modules/babel-runtime/node_modules/regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.11.1.tgz?cache=0&sync_timestamp=1584052597708&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.11.1.tgz", + "integrity": "sha1-vgWtf5v30i4Fb5cmzuUBf78Z4uk=", + "dev": true + }, + "node_modules/balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "node_modules/base": { + "version": "0.11.2", + "resolved": "https://registry.npm.taobao.org/base/download/base-0.11.2.tgz", + "integrity": "sha1-e95c7RRbbVUakNuH+DxVi060io8=", + "dev": true, + "dependencies": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-6.0.3.tgz", + "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base64-arraybuffer": { + "version": "0.2.0", + "resolved": "https://registry.npm.taobao.org/base64-arraybuffer/download/base64-arraybuffer-0.2.0.tgz", + "integrity": "sha1-S5RPrAGRqlkHr+LYyZnMxXzoD0U=", + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/base64-js": { + "version": "1.3.1", + "resolved": "https://registry.npm.taobao.org/base64-js/download/base64-js-1.3.1.tgz", + "integrity": "sha1-WOzoy3XdB+ce0IxzarxfrE2/jfE=", + "dev": true + }, + "node_modules/batch": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/batch/download/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true + }, + "node_modules/batch-processor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/batch-processor/download/batch-processor-1.0.0.tgz", + "integrity": "sha1-dclcMrdI4IUNEMKxaPa9vpiRrOg=" + }, + "node_modules/bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "dependencies": { + "tweetnacl": "^0.14.3" + } + }, + "node_modules/bfj": { + "version": "6.1.2", + "resolved": "https://registry.npm.taobao.org/bfj/download/bfj-6.1.2.tgz", + "integrity": "sha1-MlyGGoIryzWKQceKM7jm4ght3n8=", + "dev": true, + "dependencies": { + "bluebird": "^3.5.5", + "check-types": "^8.0.3", + "hoopy": "^0.1.4", + "tryer": "^1.0.1" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/big.js": { + "version": "5.2.2", + "resolved": "https://registry.npm.taobao.org/big.js/download/big.js-5.2.2.tgz", + "integrity": "sha1-ZfCvOC9Xi83HQr2cKB6cstd2gyg=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-2.1.0.tgz?cache=0&sync_timestamp=1593261363626&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-2.1.0.tgz", + "integrity": "sha1-MPpAyef+B9vIlWeM0ocCTeokHdk=", + "dev": true, + "optional": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npm.taobao.org/bindings/download/bindings-1.5.0.tgz", + "integrity": "sha1-EDU8npRTNLwFEabZCzj7x8nFBN8=", + "dev": true, + "optional": true, + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npm.taobao.org/bluebird/download/bluebird-3.7.2.tgz", + "integrity": "sha1-nyKcFb4nJFT/qXOs4NvueaGww28=", + "dev": true + }, + "node_modules/bn.js": { + "version": "5.1.2", + "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-5.1.2.tgz", + "integrity": "sha1-yWhpAtPJoncp9DqxD515wgBNp7A=", + "dev": true + }, + "node_modules/body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npm.taobao.org/body-parser/download/body-parser-1.19.0.tgz", + "integrity": "sha1-lrJwnlfJxOCab9Zqj9l5hE9p8Io=", + "dev": true, + "dependencies": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/body-parser/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/body-parser/node_modules/qs": { + "version": "6.7.0", + "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.7.0.tgz", + "integrity": "sha1-QdwaAV49WB8WIXdr4xr7KHapsbw=", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npm.taobao.org/bonjour/download/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "dev": true, + "dependencies": { + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" + } + }, + "node_modules/bonjour/node_modules/array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/array-flatten/download/array-flatten-2.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-flatten%2Fdownload%2Farray-flatten-2.1.2.tgz", + "integrity": "sha1-JO+AoowaiTYX4hSbDG0NeIKTsJk=", + "dev": true + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/boolbase/download/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true + }, + "node_modules/boom": { + "version": "2.10.1", + "resolved": "https://registry.npm.taobao.org/boom/download/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "deprecated": "This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).", + "dev": true, + "optional": true, + "dependencies": { + "hoek": "2.x.x" + }, + "engines": { + "node": ">=0.10.40" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.11.tgz", + "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz", + "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", + "dev": true, + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/brorand/download/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "node_modules/browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/browser-process-hrtime/download/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha1-PJtLfXgsgSHlbxAQbYTA0P/JRiY=", + "dev": true + }, + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npm.taobao.org/browser-stdout/download/browser-stdout-1.3.1.tgz", + "integrity": "sha1-uqVZ7hTO1zRSIputcyZGfGH6vWA=", + "dev": true + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/browserify-aes/download/browserify-aes-1.2.0.tgz", + "integrity": "sha1-Mmc0ZC9APavDADIJhTu3CtQo70g=", + "dev": true, + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/browserify-cipher/download/browserify-cipher-1.0.1.tgz", + "integrity": "sha1-jWR0wbhwv9q807z8wZNKEOlPFfA=", + "dev": true, + "dependencies": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "node_modules/browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/browserify-des/download/browserify-des-1.0.2.tgz", + "integrity": "sha1-OvTx9Zg5QDVy8cZiBDdfen9wPpw=", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/browserify-rsa": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/browserify-rsa/download/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" + } + }, + "node_modules/browserify-rsa/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.9.tgz", + "integrity": "sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=", + "dev": true + }, + "node_modules/browserify-sign": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/browserify-sign/download/browserify-sign-4.2.0.tgz", + "integrity": "sha1-VF0LGwfmssmSEQgr8bEsznoLDhE=", + "dev": true, + "dependencies": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.2", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, + "node_modules/browserify-sign/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz", + "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/browserify-sign/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.1.tgz", + "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=", + "dev": true, + "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/browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npm.taobao.org/browserify-zlib/download/browserify-zlib-0.2.0.tgz", + "integrity": "sha1-KGlFnZqjviRf6P4sofRuLn9U1z8=", + "dev": true, + "dependencies": { + "pako": "~1.0.5" + } + }, + "node_modules/browserslist": { + "version": "4.13.0", + "resolved": "https://registry.npm.taobao.org/browserslist/download/browserslist-4.13.0.tgz?cache=0&sync_timestamp=1593912387376&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.13.0.tgz", + "integrity": "sha1-QlVsugEeGwondbYRy6ao7KGOlA0=", + "dev": true, + "dependencies": { + "caniuse-lite": "^1.0.30001093", + "electron-to-chromium": "^1.3.488", + "escalade": "^3.0.1", + "node-releases": "^1.1.58" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + }, + "node_modules/buffer": { + "version": "4.9.2", + "resolved": "https://registry.npm.taobao.org/buffer/download/buffer-4.9.2.tgz?cache=0&sync_timestamp=1588706716358&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbuffer%2Fdownload%2Fbuffer-4.9.2.tgz", + "integrity": "sha1-Iw6tNEACmIZEhBqwJEr4xEu+Pvg=", + "dev": true, + "dependencies": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/buffer-from/download/buffer-from-1.1.1.tgz", + "integrity": "sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8=", + "dev": true + }, + "node_modules/buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/buffer-indexof/download/buffer-indexof-1.1.1.tgz", + "integrity": "sha1-Uvq8xqYG0aADAoAmSO9o9jnaJow=", + "dev": true + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/buffer-xor/download/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "node_modules/builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/builtin-status-codes/download/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true + }, + "node_modules/bytes": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/bytes/download/bytes-3.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbytes%2Fdownload%2Fbytes-3.1.0.tgz", + "integrity": "sha1-9s95M6Ng4FiPqf3oVlHNx/gF0fY=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/cacache": { + "version": "12.0.4", + "resolved": "https://registry.npm.taobao.org/cacache/download/cacache-12.0.4.tgz?cache=0&sync_timestamp=1594429684526&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacache%2Fdownload%2Fcacache-12.0.4.tgz", + "integrity": "sha1-ZovL0QWutfHZL+JVcOyVJcj6pAw=", + "dev": true, + "dependencies": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "node_modules/cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/cache-base/download/cache-base-1.0.1.tgz", + "integrity": "sha1-Cn9GQWgxyLZi7jb+TnxZ129marI=", + "dev": true, + "dependencies": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cache-loader": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/cache-loader/download/cache-loader-2.0.1.tgz", + "integrity": "sha1-V1j0GmLXwjlB48PHAW5vrrA6ywc=", + "dev": true, + "dependencies": { + "loader-utils": "^1.1.0", + "mkdirp": "^0.5.1", + "neo-async": "^2.6.0", + "normalize-path": "^3.0.0", + "schema-utils": "^1.0.0" + }, + "engines": { + "node": ">= 6.9.0" + }, + "peerDependencies": { + "webpack": "^4.0.0" + } + }, + "node_modules/cache-loader/node_modules/schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", + "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", + "dev": true, + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/call-me-maybe/download/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true + }, + "node_modules/caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/caller-callsite/download/caller-callsite-2.0.0.tgz?cache=0&sync_timestamp=1562668933683&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaller-callsite%2Fdownload%2Fcaller-callsite-2.0.0.tgz", + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "dev": true, + "dependencies": { + "callsites": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/caller-callsite/node_modules/callsites": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/callsites/download/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/caller-path": { + "version": "0.1.0", + "resolved": "https://registry.npm.taobao.org/caller-path/download/caller-path-0.1.0.tgz", + "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", + "dev": true, + "dependencies": { + "callsites": "^0.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/callsites": { + "version": "0.2.0", + "resolved": "https://registry.npm.taobao.org/callsites/download/callsites-0.2.0.tgz", + "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/camel-case/download/camel-case-3.0.0.tgz?cache=0&sync_timestamp=1576748709736&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamel-case%2Fdownload%2Fcamel-case-3.0.0.tgz", + "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", + "dev": true, + "dependencies": { + "no-case": "^2.2.0", + "upper-case": "^1.1.1" + } + }, + "node_modules/camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/caniuse-api/download/caniuse-api-3.0.0.tgz", + "integrity": "sha1-Xk2Q4idJYdRikZl99Znj7QCO5MA=", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001104", + "resolved": "https://registry.npm.taobao.org/caniuse-lite/download/caniuse-lite-1.0.30001104.tgz?cache=0&sync_timestamp=1595226955587&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaniuse-lite%2Fdownload%2Fcaniuse-lite-1.0.30001104.tgz", + "integrity": "sha1-Tj1bOx3Tw1KfEMt/UZxiuj5Xn10=", + "dev": true + }, + "node_modules/case-sensitive-paths-webpack-plugin": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/case-sensitive-paths-webpack-plugin/download/case-sensitive-paths-webpack-plugin-2.3.0.tgz", + "integrity": "sha1-I6xhPMmoVuT4j/i7c7u16YmCXPc=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/caseless": { + "version": "0.12.0", + "resolved": "https://registry.npm.taobao.org/caseless/download/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "node_modules/center-align": { + "version": "0.1.3", + "resolved": "https://registry.npm.taobao.org/center-align/download/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "dependencies": { + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cfb": { + "version": "1.0.8", + "resolved": "https://registry.npm.taobao.org/cfb/download/cfb-1.0.8.tgz?cache=0&sync_timestamp=1594276069691&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcfb%2Fdownload%2Fcfb-1.0.8.tgz", + "integrity": "sha1-d/ITST1pfXVP2cD1UR6rWtctAs8=", + "dependencies": { + "commander": "^2.14.1", + "printj": "~1.1.2" + }, + "bin": { + "cfb": "bin/cfb.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/chai": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/chai/download/chai-4.2.0.tgz", + "integrity": "sha1-dgqnLPION5XoSxKHfODoNzeqKeU=", + "dev": true, + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.1.0", + "type-detect": "^4.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dependencies": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/chardet": { + "version": "0.4.2", + "resolved": "https://registry.npm.taobao.org/chardet/download/chardet-0.4.2.tgz?cache=0&sync_timestamp=1594010705529&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchardet%2Fdownload%2Fchardet-0.4.2.tgz", + "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", + "dev": true + }, + "node_modules/check-error": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/check-error/download/check-error-1.0.2.tgz", + "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/check-types": { + "version": "8.0.3", + "resolved": "https://registry.npm.taobao.org/check-types/download/check-types-8.0.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcheck-types%2Fdownload%2Fcheck-types-8.0.3.tgz", + "integrity": "sha1-M1bMoZyIlUTy16le1JzlCKDs9VI=", + "dev": true + }, + "node_modules/chokidar": { + "version": "3.4.1", + "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-3.4.1.tgz?cache=0&sync_timestamp=1594864731636&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-3.4.1.tgz", + "integrity": "sha1-6QW97PEOqgoLHbDGZEgcxMvCK6E=", + "dev": true, + "optional": true, + "dependencies": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.4.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.1.2" + } + }, + "node_modules/chokidar/node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/braces/download/braces-3.0.2.tgz", + "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=", + "dev": true, + "optional": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar/node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-7.0.1.tgz", + "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=", + "dev": true, + "optional": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/chokidar/node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-7.0.0.tgz", + "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/chokidar/node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-5.0.1.tgz", + "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=", + "dev": true, + "optional": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/chownr": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/chownr/download/chownr-1.1.4.tgz", + "integrity": "sha1-b8nXtC0ypYNZYzdmbn0ICE2izGs=", + "dev": true + }, + "node_modules/chrome-trace-event": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/chrome-trace-event/download/chrome-trace-event-1.0.2.tgz", + "integrity": "sha1-I0CQ7pfH1K0aLEvq4nUF3v/GCKQ=", + "dev": true, + "dependencies": { + "tslib": "^1.9.0" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/ci-info": { + "version": "1.6.0", + "resolved": "https://registry.npm.taobao.org/ci-info/download/ci-info-1.6.0.tgz", + "integrity": "sha1-LKINu5zrMtRSSmgzAzE/AwSx5Jc=", + "dev": true + }, + "node_modules/cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/cipher-base/download/cipher-base-1.0.4.tgz", + "integrity": "sha1-h2Dk7MJy9MNjUy+SbYdKriwTl94=", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/circular-json": { + "version": "0.3.3", + "resolved": "https://registry.npm.taobao.org/circular-json/download/circular-json-0.3.3.tgz", + "integrity": "sha1-gVyZ6oT2gJUp0vRXkb34JxE1LWY=", + "deprecated": "CircularJSON is in maintenance only, flatted is its successor.", + "dev": true + }, + "node_modules/class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npm.taobao.org/class-utils/download/class-utils-0.3.6.tgz", + "integrity": "sha1-+TNprouafOAv1B+q0MqDAzGQxGM=", + "dev": true, + "dependencies": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/clean-css": { + "version": "4.2.3", + "resolved": "https://registry.npm.taobao.org/clean-css/download/clean-css-4.2.3.tgz", + "integrity": "sha1-UHtd59l7SO5T2ErbAWD/YhY4D3g=", + "dev": true, + "dependencies": { + "source-map": "~0.6.0" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/clean-css/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/clean-stack/download/clean-stack-2.2.0.tgz?cache=0&sync_timestamp=1592035230294&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fclean-stack%2Fdownload%2Fclean-stack-2.2.0.tgz", + "integrity": "sha1-7oRy27Ep5yezHooQpCfe6d/kAIs=", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/cli-cursor/download/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "dependencies": { + "restore-cursor": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cli-highlight": { + "version": "2.1.4", + "resolved": "https://registry.npm.taobao.org/cli-highlight/download/cli-highlight-2.1.4.tgz?cache=0&sync_timestamp=1573948719956&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcli-highlight%2Fdownload%2Fcli-highlight-2.1.4.tgz", + "integrity": "sha1-CYy2Qs8X9CrcHBFF4H+WDsTXUis=", + "dev": true, + "dependencies": { + "chalk": "^3.0.0", + "highlight.js": "^9.6.0", + "mz": "^2.4.0", + "parse5": "^5.1.1", + "parse5-htmlparser2-tree-adapter": "^5.1.1", + "yargs": "^15.0.0" + }, + "bin": { + "highlight": "bin/highlight" + }, + "engines": { + "node": ">=8.0.0", + "npm": ">=5.0.0" + } + }, + "node_modules/cli-highlight/node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-5.0.0.tgz", + "integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U=", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-highlight/node_modules/ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.2.1.tgz", + "integrity": "sha1-kK51xCTQCNJiTFvynq0xd+v881k=", + "dev": true, + "dependencies": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/cli-highlight/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz", + "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-highlight/node_modules/chalk": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-3.0.0.tgz", + "integrity": "sha1-P3PCv1JlkfV0zEksUeJFY0n4ROQ=", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-highlight/node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-6.0.0.tgz", + "integrity": "sha1-UR1wLAxOQcoVbX0OlgIfI+EyJbE=", + "dev": true, + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/cli-highlight/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/cli-highlight/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", + "dev": true + }, + "node_modules/cli-highlight/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-4.1.0.tgz", + "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-highlight/node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npm.taobao.org/get-caller-file/download/get-caller-file-2.0.5.tgz", + "integrity": "sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/cli-highlight/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-highlight/node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-highlight/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-5.0.0.tgz", + "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-highlight/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.3.0.tgz?cache=0&sync_timestamp=1594559696906&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-2.3.0.tgz", + "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-highlight/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-4.1.0.tgz", + "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-highlight/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz", + "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-highlight/node_modules/parse5": { + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/parse5/download/parse5-5.1.1.tgz", + "integrity": "sha1-9o5OW6GFKsLK3AD0VV//bCq7YXg=", + "dev": true + }, + "node_modules/cli-highlight/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-4.0.0.tgz", + "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-highlight/node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/require-main-filename/download/require-main-filename-2.0.0.tgz", + "integrity": "sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs=", + "dev": true + }, + "node_modules/cli-highlight/node_modules/string-width": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-4.2.0.tgz", + "integrity": "sha1-lSGCxGzHssMT0VluYjmSvRY7crU=", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-highlight/node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-6.0.0.tgz", + "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-highlight/node_modules/supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.1.0.tgz", + "integrity": "sha1-aOMlkd9z4lrRxLSRCKLsUHliv9E=", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-highlight/node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-6.2.0.tgz", + "integrity": "sha1-6Tk7oHEC5skaOyIUePAlfNKFblM=", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-highlight/node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npm.taobao.org/yargs/download/yargs-15.4.1.tgz?cache=0&sync_timestamp=1594421046064&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-15.4.1.tgz", + "integrity": "sha1-DYehbeAa7p2L7Cv7909nhRcw9Pg=", + "dev": true, + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cli-highlight/node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-18.1.3.tgz?cache=0&sync_timestamp=1595125190020&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-18.1.3.tgz", + "integrity": "sha1-vmjEl1xrKr9GkjawyHA2L6sJp7A=", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/cli-spinners": { + "version": "2.4.0", + "resolved": "https://registry.npm.taobao.org/cli-spinners/download/cli-spinners-2.4.0.tgz?cache=0&sync_timestamp=1595080565423&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcli-spinners%2Fdownload%2Fcli-spinners-2.4.0.tgz", + "integrity": "sha1-xiVtsha4eM+6RyDnGc7Hz3JoXX8=", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/cli-truncate": { + "version": "0.2.1", + "resolved": "https://registry.npm.taobao.org/cli-truncate/download/cli-truncate-0.2.1.tgz", + "integrity": "sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=", + "dev": true, + "dependencies": { + "slice-ansi": "0.0.4", + "string-width": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cli-truncate/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cli-truncate/node_modules/slice-ansi": { + "version": "0.0.4", + "resolved": "https://registry.npm.taobao.org/slice-ansi/download/slice-ansi-0.0.4.tgz", + "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cli-truncate/node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cli-width": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/cli-width/download/cli-width-2.2.1.tgz", + "integrity": "sha1-sEM9C06chH7xiGik7xb9X8gnHEg=", + "dev": true + }, + "node_modules/clipboard": { + "version": "2.0.6", + "resolved": "https://registry.npm.taobao.org/clipboard/download/clipboard-2.0.6.tgz", + "integrity": "sha1-UpISlu7A/fd+rRdJQhshyWhkc3Y=", + "dependencies": { + "good-listener": "^1.2.2", + "select": "^1.1.2", + "tiny-emitter": "^2.0.0" + } + }, + "node_modules/clipboardy": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/clipboardy/download/clipboardy-2.3.0.tgz", + "integrity": "sha1-PCkDZQxo5GqRs4iYW8J3QofbopA=", + "dev": true, + "dependencies": { + "arch": "^2.1.1", + "execa": "^1.0.0", + "is-wsl": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/clipboardy/node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/is-wsl/download/is-wsl-2.2.0.tgz?cache=0&sync_timestamp=1588494180082&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-wsl%2Fdownload%2Fis-wsl-2.2.0.tgz", + "integrity": "sha1-dKTHbnfKn9P5MvKQwX6jJs0VcnE=", + "dev": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cliui": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "dependencies": { + "center-align": "^0.1.1", + "right-align": "^0.1.1", + "wordwrap": "0.0.2" + } + }, + "node_modules/clone": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/clone/download/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/clonedeep": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/clonedeep/download/clonedeep-2.0.0.tgz", + "integrity": "sha1-jOygd39He78x/oyHGq9jo5C7wnI=" + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npm.taobao.org/co/download/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true, + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/coa": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/coa/download/coa-2.0.2.tgz", + "integrity": "sha1-Q/bCEVG07yv1cYfbDXPeIp4+fsM=", + "dev": true, + "dependencies": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/coa/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/coa/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/coa/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/code-point-at/download/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/codemirror": { + "version": "5.56.0", + "resolved": "https://registry.npm.taobao.org/codemirror/download/codemirror-5.56.0.tgz", + "integrity": "sha1-Z1ZA/MeAEFzSLT+qc4tdfqZCb2E=" + }, + "node_modules/codemirror-spell-checker": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/codemirror-spell-checker/download/codemirror-spell-checker-1.1.2.tgz", + "integrity": "sha1-HGYPkIlIPMtRE7m6nKGcP0mTNx4=", + "dependencies": { + "typo-js": "*" + } + }, + "node_modules/codepage": { + "version": "1.14.0", + "resolved": "https://registry.npm.taobao.org/codepage/download/codepage-1.14.0.tgz", + "integrity": "sha1-jL4lSBMjVZ19MHVxsP/5HnodL5k=", + "dependencies": { + "commander": "~2.14.1", + "exit-on-epipe": "~1.0.1" + }, + "bin": { + "codepage": "bin/codepage.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/codepage/node_modules/commander": { + "version": "2.14.1", + "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.14.1.tgz?cache=0&sync_timestamp=1595168173997&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.14.1.tgz", + "integrity": "sha1-IjUSPjevjKPGXfRbAm29NXsBuao=" + }, + "node_modules/collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/collection-visit/download/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "dependencies": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color": { + "version": "3.1.2", + "resolved": "https://registry.npm.taobao.org/color/download/color-3.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolor%2Fdownload%2Fcolor-3.1.2.tgz", + "integrity": "sha1-aBSOf4XUGtdknF+oyBBvCY0inhA=", + "dev": true, + "dependencies": { + "color-convert": "^1.9.1", + "color-string": "^1.5.2" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz", + "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "node_modules/color-string": { + "version": "1.5.3", + "resolved": "https://registry.npm.taobao.org/color-string/download/color-string-1.5.3.tgz", + "integrity": "sha1-ybvF8BtYtUkvPWhXRZy2WQziBMw=", + "dev": true, + "dependencies": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "node_modules/colorette": { + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/colorette/download/colorette-1.2.1.tgz?cache=0&sync_timestamp=1593955829055&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolorette%2Fdownload%2Fcolorette-1.2.1.tgz", + "integrity": "sha1-TQuSEyXBT6+SYzCGpTbbbolWSxs=", + "dev": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npm.taobao.org/combined-stream/download/combined-stream-1.0.8.tgz", + "integrity": "sha1-w9RaizT9cwYxoRCoolIGgrMdWn8=", + "dev": true, + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.20.3.tgz?cache=0&sync_timestamp=1595168173997&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.20.3.tgz", + "integrity": "sha1-/UhehMA+tIgcIHIrpIA16FMa6zM=" + }, + "node_modules/commondir": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/commondir/download/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "node_modules/component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/component-emitter/download/component-emitter-1.3.0.tgz", + "integrity": "sha1-FuQHD7qK4ptnnyIVhT7hgasuq8A=", + "dev": true + }, + "node_modules/compressible": { + "version": "2.0.18", + "resolved": "https://registry.npm.taobao.org/compressible/download/compressible-2.0.18.tgz?cache=0&sync_timestamp=1578286264482&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcompressible%2Fdownload%2Fcompressible-2.0.18.tgz", + "integrity": "sha1-r1PMprBw1MPAdQ+9dyhqbXzEb7o=", + "dev": true, + "dependencies": { + "mime-db": ">= 1.43.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/compression": { + "version": "1.7.4", + "resolved": "https://registry.npm.taobao.org/compression/download/compression-1.7.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcompression%2Fdownload%2Fcompression-1.7.4.tgz", + "integrity": "sha1-lVI+/xcMpXwpoMpB5v4TH0Hlu48=", + "dev": true, + "dependencies": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/compression-webpack-plugin": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/compression-webpack-plugin/download/compression-webpack-plugin-3.1.0.tgz?cache=0&sync_timestamp=1589291140068&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcompression-webpack-plugin%2Fdownload%2Fcompression-webpack-plugin-3.1.0.tgz", + "integrity": "sha1-n1EBcqe1+uWq07ZwZS6L15l67so=", + "dev": true, + "dependencies": { + "cacache": "^13.0.1", + "find-cache-dir": "^3.0.0", + "neo-async": "^2.5.0", + "schema-utils": "^2.6.1", + "serialize-javascript": "^2.1.2", + "webpack-sources": "^1.0.1" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^4.3.0 || ^5.0.0" + } + }, + "node_modules/compression-webpack-plugin/node_modules/cacache": { + "version": "13.0.1", + "resolved": "https://registry.npm.taobao.org/cacache/download/cacache-13.0.1.tgz?cache=0&sync_timestamp=1594429684526&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacache%2Fdownload%2Fcacache-13.0.1.tgz", + "integrity": "sha1-qAAMIWlwiQgvhSh6GuxuOCAkpxw=", + "dev": true, + "dependencies": { + "chownr": "^1.1.2", + "figgy-pudding": "^3.5.1", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.2", + "infer-owner": "^1.0.4", + "lru-cache": "^5.1.1", + "minipass": "^3.0.0", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "p-map": "^3.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^2.7.1", + "ssri": "^7.0.0", + "unique-filename": "^1.1.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/compression-webpack-plugin/node_modules/find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-3.3.1.tgz", + "integrity": "sha1-ibM/rUpGcNqpT4Vff74x1thP6IA=", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/avajs/find-cache-dir?sponsor=1" + } + }, + "node_modules/compression-webpack-plugin/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-4.1.0.tgz", + "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/compression-webpack-plugin/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-5.0.0.tgz", + "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/compression-webpack-plugin/node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-3.1.0.tgz?cache=0&sync_timestamp=1587567875186&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-3.1.0.tgz", + "integrity": "sha1-QV6WcEazp/HRhSd9hKpYIDcmoT8=", + "dev": true, + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/compression-webpack-plugin/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.3.0.tgz?cache=0&sync_timestamp=1594559696906&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-2.3.0.tgz", + "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/compression-webpack-plugin/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-4.1.0.tgz", + "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/compression-webpack-plugin/node_modules/p-map": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/p-map/download/p-map-3.0.0.tgz", + "integrity": "sha1-1wTZr4orpoTiYA2aIVmD1BQal50=", + "dev": true, + "dependencies": { + "aggregate-error": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/compression-webpack-plugin/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz", + "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/compression-webpack-plugin/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-4.0.0.tgz", + "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/compression-webpack-plugin/node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-4.2.0.tgz", + "integrity": "sha1-8JkTPfft5CLoHR2ESCcO6z5CYfM=", + "dev": true, + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/compression-webpack-plugin/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1586886301819&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/compression-webpack-plugin/node_modules/serialize-javascript": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-2.1.2.tgz", + "integrity": "sha1-7OxTsOAxe9yV73arcHS3OEeF+mE=", + "dev": true + }, + "node_modules/compression-webpack-plugin/node_modules/ssri": { + "version": "7.1.0", + "resolved": "https://registry.npm.taobao.org/ssri/download/ssri-7.1.0.tgz", + "integrity": "sha1-ksJBv23oI2W1x/tL126XVSLhKU0=", + "dev": true, + "dependencies": { + "figgy-pudding": "^3.5.1", + "minipass": "^3.1.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/compression/node_modules/bytes": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/bytes/download/bytes-3.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbytes%2Fdownload%2Fbytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/compression/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npm.taobao.org/concat-stream/download/concat-stream-1.6.2.tgz", + "integrity": "sha1-kEvfGUzTEi/Gdcd/xKw9T/D9GjQ=", + "dev": true, + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/condense-newlines": { + "version": "0.2.1", + "resolved": "https://registry.npm.taobao.org/condense-newlines/download/condense-newlines-0.2.1.tgz", + "integrity": "sha1-PemFVTE5R10yUCyDsC9gaE0kxV8=", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-whitespace": "^0.3.0", + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/condense-newlines/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/config-chain": { + "version": "1.1.12", + "resolved": "https://registry.npm.taobao.org/config-chain/download/config-chain-1.1.12.tgz", + "integrity": "sha1-D96NCRIA616AjK8l/mGMAvSOTvo=", + "dev": true, + "dependencies": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "node_modules/connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npm.taobao.org/connect-history-api-fallback/download/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha1-izIIk1kwjRERFdgcrT/Oq4iPl7w=", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/console-browserify/download/console-browserify-1.2.0.tgz", + "integrity": "sha1-ZwY871fOts9Jk6KrOlWECujEkzY=", + "dev": true + }, + "node_modules/consolidate": { + "version": "0.15.1", + "resolved": "https://registry.npm.taobao.org/consolidate/download/consolidate-0.15.1.tgz", + "integrity": "sha1-IasEMjXHGgfUXZqtmFk7DbpWurc=", + "dev": true, + "dependencies": { + "bluebird": "^3.1.1" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/constants-browserify/download/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, + "node_modules/contains-path": { + "version": "0.1.0", + "resolved": "https://registry.npm.taobao.org/contains-path/download/contains-path-0.1.0.tgz", + "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npm.taobao.org/content-disposition/download/content-disposition-0.5.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcontent-disposition%2Fdownload%2Fcontent-disposition-0.5.3.tgz", + "integrity": "sha1-4TDK9+cnkIfFYWwgB9BIVpiYT70=", + "dev": true, + "dependencies": { + "safe-buffer": "5.1.2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/content-type": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/content-type/download/content-type-1.0.4.tgz", + "integrity": "sha1-4TjMdeBAxyexlm/l5fjJruJW/js=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/contour_plot": { + "version": "0.0.1", + "resolved": "https://registry.npm.taobao.org/contour_plot/download/contour_plot-0.0.1.tgz", + "integrity": "sha1-R1hw8DK44zhBKqX8UHiA8L9JXHc=" + }, + "node_modules/convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npm.taobao.org/convert-source-map/download/convert-source-map-1.7.0.tgz", + "integrity": "sha1-F6LLiC1/d9NJBYXizmxSRCSjpEI=", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/cookie": { + "version": "0.4.0", + "resolved": "https://registry.npm.taobao.org/cookie/download/cookie-0.4.0.tgz", + "integrity": "sha1-vrQ35wIrO21JAZ0IhmUwPr6cFLo=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npm.taobao.org/cookie-signature/download/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "dev": true + }, + "node_modules/copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/copy-concurrently/download/copy-concurrently-1.0.5.tgz", + "integrity": "sha1-kilzmMrjSTf8r9bsgTnBgFHwteA=", + "dev": true, + "dependencies": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "node_modules/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/copy-descriptor/download/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/copy-webpack-plugin": { + "version": "4.6.0", + "resolved": "https://registry.npm.taobao.org/copy-webpack-plugin/download/copy-webpack-plugin-4.6.0.tgz", + "integrity": "sha1-5/QN2KaEd9QF3Rt6hUquMksVi64=", + "dev": true, + "dependencies": { + "cacache": "^10.0.4", + "find-cache-dir": "^1.0.0", + "globby": "^7.1.1", + "is-glob": "^4.0.0", + "loader-utils": "^1.1.0", + "minimatch": "^3.0.4", + "p-limit": "^1.0.0", + "serialize-javascript": "^1.4.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/copy-webpack-plugin/node_modules/cacache": { + "version": "10.0.4", + "resolved": "https://registry.npm.taobao.org/cacache/download/cacache-10.0.4.tgz?cache=0&sync_timestamp=1594429684526&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacache%2Fdownload%2Fcacache-10.0.4.tgz", + "integrity": "sha1-ZFI2eZnv+dQYiu/ZoU6dfGomNGA=", + "dev": true, + "dependencies": { + "bluebird": "^3.5.1", + "chownr": "^1.0.1", + "glob": "^7.1.2", + "graceful-fs": "^4.1.11", + "lru-cache": "^4.1.1", + "mississippi": "^2.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.2", + "ssri": "^5.2.4", + "unique-filename": "^1.1.0", + "y18n": "^4.0.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/find-cache-dir": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-1.0.0.tgz", + "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/copy-webpack-plugin/node_modules/globby": { + "version": "7.1.1", + "resolved": "https://registry.npm.taobao.org/globby/download/globby-7.1.1.tgz", + "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", + "dev": true, + "dependencies": { + "array-union": "^1.0.1", + "dir-glob": "^2.0.0", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/copy-webpack-plugin/node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz?cache=0&sync_timestamp=1594427569171&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-4.1.5.tgz", + "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=", + "dev": true, + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/copy-webpack-plugin/node_modules/make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-1.3.0.tgz?cache=0&sync_timestamp=1587567875186&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-1.3.0.tgz", + "integrity": "sha1-ecEDO4BRW9bSTsmTPoYMp17ifww=", + "dev": true, + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/copy-webpack-plugin/node_modules/mississippi": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/mississippi/download/mississippi-2.0.0.tgz", + "integrity": "sha1-NEKlCPr8KFAEhv7qmUCWduTuWm8=", + "dev": true, + "dependencies": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^2.0.1", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/copy-webpack-plugin/node_modules/pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, + "dependencies": { + "find-up": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/copy-webpack-plugin/node_modules/pump": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/pump/download/pump-2.0.1.tgz", + "integrity": "sha1-Ejma3W5M91Jtlzy8i1zi4pCLOQk=", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/copy-webpack-plugin/node_modules/serialize-javascript": { + "version": "1.9.1", + "resolved": "https://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-1.9.1.tgz", + "integrity": "sha1-z8IArvd7YAxH2pu4FJyUPnmML9s=", + "dev": true + }, + "node_modules/copy-webpack-plugin/node_modules/slash": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/slash/download/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/copy-webpack-plugin/node_modules/ssri": { + "version": "5.3.0", + "resolved": "https://registry.npm.taobao.org/ssri/download/ssri-5.3.0.tgz", + "integrity": "sha1-ujhyycbTOgcEp9cf8EXl7EiZnQY=", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.1" + } + }, + "node_modules/copy-webpack-plugin/node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + }, + "node_modules/core-js": { + "version": "2.6.11", + "resolved": "https://registry.npm.taobao.org/core-js/download/core-js-2.6.11.tgz?cache=0&sync_timestamp=1586450269267&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-2.6.11.tgz", + "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=", + "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", + "hasInstallScript": true + }, + "node_modules/core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "node_modules/cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npm.taobao.org/cosmiconfig/download/cosmiconfig-5.2.1.tgz", + "integrity": "sha1-BA9yaAnFked6F8CjYmykW08Wixo=", + "dev": true, + "dependencies": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/countup": { + "version": "1.8.2", + "resolved": "https://registry.npm.taobao.org/countup/download/countup-1.8.2.tgz", + "integrity": "sha1-AhzMam+WRUDGsn7WRoGvJ/tV8BA=" + }, + "node_modules/crc-32": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/crc-32/download/crc-32-1.2.0.tgz", + "integrity": "sha1-yy224puIUI4y2d0OwWk+e0Ghggg=", + "dependencies": { + "exit-on-epipe": "~1.0.1", + "printj": "~1.1.0" + }, + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/create-ecdh": { + "version": "4.0.3", + "resolved": "https://registry.npm.taobao.org/create-ecdh/download/create-ecdh-4.0.3.tgz", + "integrity": "sha1-yREbbzMEXEaX8UR4f5JUzcd8Rf8=", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" + } + }, + "node_modules/create-ecdh/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.9.tgz", + "integrity": "sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=", + "dev": true + }, + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/create-hash/download/create-hash-1.2.0.tgz", + "integrity": "sha1-iJB4rxGmN1a8+1m9IhmWvjqe8ZY=", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npm.taobao.org/create-hmac/download/create-hmac-1.1.7.tgz", + "integrity": "sha1-aRcMeLOrlXFHsriwRXLkfq0iQ/8=", + "dev": true, + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/cropperjs": { + "version": "1.5.7", + "resolved": "https://registry.npm.taobao.org/cropperjs/download/cropperjs-1.5.7.tgz", + "integrity": "sha1-tlAZcluuHGKF6IH7ZhshQfpXAls=" + }, + "node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-6.0.5.tgz", + "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", + "dev": true, + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/cryptiles": { + "version": "2.0.5", + "resolved": "https://registry.npm.taobao.org/cryptiles/download/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "deprecated": "This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).", + "dev": true, + "optional": true, + "dependencies": { + "boom": "2.x.x" + }, + "engines": { + "node": ">=0.10.40" + } + }, + "node_modules/crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npm.taobao.org/crypto-browserify/download/crypto-browserify-3.12.0.tgz", + "integrity": "sha1-OWz58xN/A+S45TLFj2mCVOAPgOw=", + "dev": true, + "dependencies": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + }, + "engines": { + "node": "*" + } + }, + "node_modules/css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npm.taobao.org/css-color-names/download/css-color-names-0.0.4.tgz", + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/css-declaration-sorter": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/css-declaration-sorter/download/css-declaration-sorter-4.0.1.tgz", + "integrity": "sha1-wZiUD2OnbX42wecQGLABchBUyyI=", + "dev": true, + "dependencies": { + "postcss": "^7.0.1", + "timsort": "^0.3.0" + }, + "engines": { + "node": ">4" + } + }, + "node_modules/css-line-break": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/css-line-break/download/css-line-break-1.1.1.tgz", + "integrity": "sha1-1em90peEAJnrBQPHMQ/TSSegJu8=", + "dependencies": { + "base64-arraybuffer": "^0.2.0" + } + }, + "node_modules/css-loader": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/css-loader/download/css-loader-1.0.1.tgz?cache=0&sync_timestamp=1592056914630&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-loader%2Fdownload%2Fcss-loader-1.0.1.tgz", + "integrity": "sha1-aIW7UjOzXsR7AGBX2gHMZAtref4=", + "dev": true, + "dependencies": { + "babel-code-frame": "^6.26.0", + "css-selector-tokenizer": "^0.7.0", + "icss-utils": "^2.1.0", + "loader-utils": "^1.0.2", + "lodash": "^4.17.11", + "postcss": "^6.0.23", + "postcss-modules-extract-imports": "^1.2.0", + "postcss-modules-local-by-default": "^1.2.0", + "postcss-modules-scope": "^1.1.0", + "postcss-modules-values": "^1.3.0", + "postcss-value-parser": "^3.3.0", + "source-list-map": "^2.0.0" + }, + "engines": { + "node": ">= 6.9.0 <7.0.0 || >= 8.9.0" + }, + "peerDependencies": { + "webpack": "^4.0.0" + } + }, + "node_modules/css-loader/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/css-loader/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/css-loader/node_modules/postcss": { + "version": "6.0.23", + "resolved": "https://registry.npm.taobao.org/postcss/download/postcss-6.0.23.tgz?cache=0&sync_timestamp=1591102414113&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-6.0.23.tgz", + "integrity": "sha1-YcgswyisYOZ3ZF+XkFTrmLwOMyQ=", + "dev": true, + "dependencies": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/css-loader/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083210998&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + }, + "node_modules/css-loader/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-loader/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/css-select": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/css-select/download/css-select-2.1.0.tgz", + "integrity": "sha1-ajRlM1ZjWTSoG6ymjQJVQyEF2+8=", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "node_modules/css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/css-select-base-adapter/download/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha1-Oy/0lyzDYquIVhUHqVQIoUMhNdc=", + "dev": true + }, + "node_modules/css-selector-tokenizer": { + "version": "0.7.2", + "resolved": "https://registry.npm.taobao.org/css-selector-tokenizer/download/css-selector-tokenizer-0.7.2.tgz", + "integrity": "sha1-EeXifJpI2QKE8i1FBhwwPXolrYc=", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "fastparse": "^1.1.2", + "regexpu-core": "^4.6.0" + } + }, + "node_modules/css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npm.taobao.org/css-tree/download/css-tree-1.0.0-alpha.37.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-tree%2Fdownload%2Fcss-tree-1.0.0-alpha.37.tgz", + "integrity": "sha1-mL69YsTB2flg7DQM+fdSLjBwmiI=", + "dev": true, + "dependencies": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/css-tree/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/css-what": { + "version": "3.3.0", + "resolved": "https://registry.npm.taobao.org/css-what/download/css-what-3.3.0.tgz", + "integrity": "sha1-EP7Glqns4uWRrHctdZqsq6w4zTk=", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/cssesc/download/cssesc-3.0.0.tgz", + "integrity": "sha1-N3QZGZA7hoVl4cCep0dEXNGJg+4=", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/cssfilter": { + "version": "0.0.10", + "resolved": "https://registry.npm.taobao.org/cssfilter/download/cssfilter-0.0.10.tgz", + "integrity": "sha1-xtJnJjKi5cg+AT5oZKQs6N79IK4=" + }, + "node_modules/cssnano": { + "version": "4.1.10", + "resolved": "https://registry.npm.taobao.org/cssnano/download/cssnano-4.1.10.tgz", + "integrity": "sha1-CsQfCxPRPUZUh+ERt3jULaYxuLI=", + "dev": true, + "dependencies": { + "cosmiconfig": "^5.0.0", + "cssnano-preset-default": "^4.0.7", + "is-resolvable": "^1.0.0", + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-preset-default": { + "version": "4.0.7", + "resolved": "https://registry.npm.taobao.org/cssnano-preset-default/download/cssnano-preset-default-4.0.7.tgz", + "integrity": "sha1-UexmLM/KD4izltzZZ5zbkxvhf3Y=", + "dev": true, + "dependencies": { + "css-declaration-sorter": "^4.0.1", + "cssnano-util-raw-cache": "^4.0.1", + "postcss": "^7.0.0", + "postcss-calc": "^7.0.1", + "postcss-colormin": "^4.0.3", + "postcss-convert-values": "^4.0.1", + "postcss-discard-comments": "^4.0.2", + "postcss-discard-duplicates": "^4.0.2", + "postcss-discard-empty": "^4.0.1", + "postcss-discard-overridden": "^4.0.1", + "postcss-merge-longhand": "^4.0.11", + "postcss-merge-rules": "^4.0.3", + "postcss-minify-font-values": "^4.0.2", + "postcss-minify-gradients": "^4.0.2", + "postcss-minify-params": "^4.0.2", + "postcss-minify-selectors": "^4.0.2", + "postcss-normalize-charset": "^4.0.1", + "postcss-normalize-display-values": "^4.0.2", + "postcss-normalize-positions": "^4.0.2", + "postcss-normalize-repeat-style": "^4.0.2", + "postcss-normalize-string": "^4.0.2", + "postcss-normalize-timing-functions": "^4.0.2", + "postcss-normalize-unicode": "^4.0.1", + "postcss-normalize-url": "^4.0.1", + "postcss-normalize-whitespace": "^4.0.2", + "postcss-ordered-values": "^4.1.2", + "postcss-reduce-initial": "^4.0.3", + "postcss-reduce-transforms": "^4.0.2", + "postcss-svgo": "^4.0.2", + "postcss-unique-selectors": "^4.0.1" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-util-get-arguments": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/cssnano-util-get-arguments/download/cssnano-util-get-arguments-4.0.0.tgz", + "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-util-get-match": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/cssnano-util-get-match/download/cssnano-util-get-match-4.0.0.tgz", + "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-util-raw-cache": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/cssnano-util-raw-cache/download/cssnano-util-raw-cache-4.0.1.tgz", + "integrity": "sha1-sm1f1fcqEd/np4RvtMZyYPlr8oI=", + "dev": true, + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/cssnano-util-same-parent": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/cssnano-util-same-parent/download/cssnano-util-same-parent-4.0.1.tgz", + "integrity": "sha1-V0CC+yhZ0ttDOFWDXZqEVuoYu/M=", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/csso": { + "version": "4.0.3", + "resolved": "https://registry.npm.taobao.org/csso/download/csso-4.0.3.tgz?cache=0&sync_timestamp=1585052130344&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcsso%2Fdownload%2Fcsso-4.0.3.tgz", + "integrity": "sha1-DZmF3IUsfMKyys+74QeQFNGo6QM=", + "dev": true, + "dependencies": { + "css-tree": "1.0.0-alpha.39" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/css-tree": { + "version": "1.0.0-alpha.39", + "resolved": "https://registry.npm.taobao.org/css-tree/download/css-tree-1.0.0-alpha.39.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-tree%2Fdownload%2Fcss-tree-1.0.0-alpha.39.tgz", + "integrity": "sha1-K/8//huz93bPfu/ZHuXLp3oUnus=", + "dev": true, + "dependencies": { + "mdn-data": "2.0.6", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/csso/node_modules/mdn-data": { + "version": "2.0.6", + "resolved": "https://registry.npm.taobao.org/mdn-data/download/mdn-data-2.0.6.tgz?cache=0&sync_timestamp=1593510420945&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmdn-data%2Fdownload%2Fmdn-data-2.0.6.tgz", + "integrity": "sha1-hS3GD8ql2qLoz2yRicRA7T4EKXg=", + "dev": true + }, + "node_modules/csso/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npm.taobao.org/cssom/download/cssom-0.3.8.tgz?cache=0&sync_timestamp=1573719337707&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcssom%2Fdownload%2Fcssom-0.3.8.tgz", + "integrity": "sha1-nxJ29bK0Y/IRTT8sdSUK+MGjb0o=", + "dev": true + }, + "node_modules/cssstyle": { + "version": "1.4.0", + "resolved": "https://registry.npm.taobao.org/cssstyle/download/cssstyle-1.4.0.tgz?cache=0&sync_timestamp=1588171504463&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcssstyle%2Fdownload%2Fcssstyle-1.4.0.tgz", + "integrity": "sha1-nTEyginTxWXGHlhrAgQaKPzNzPE=", + "dev": true, + "dependencies": { + "cssom": "0.3.x" + } + }, + "node_modules/current-script-polyfill": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/current-script-polyfill/download/current-script-polyfill-1.0.0.tgz", + "integrity": "sha1-8xz35PPiGLBybnOMqSoC00iO9hU=", + "dev": true + }, + "node_modules/cyclist": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/cyclist/download/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", + "dev": true + }, + "node_modules/d3-color": { + "version": "1.4.1", + "resolved": "https://registry.npm.taobao.org/d3-color/download/d3-color-1.4.1.tgz", + "integrity": "sha1-xSACv4hGraRCTVXZeYL+8m6zvIo=" + }, + "node_modules/d3-dispatch": { + "version": "1.0.6", + "resolved": "https://registry.npm.taobao.org/d3-dispatch/download/d3-dispatch-1.0.6.tgz", + "integrity": "sha1-ANN7zuTdjNl3Kd2JOgrCnKq6XVg=" + }, + "node_modules/d3-ease": { + "version": "1.0.6", + "resolved": "https://registry.npm.taobao.org/d3-ease/download/d3-ease-1.0.6.tgz?cache=0&sync_timestamp=1592460740468&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fd3-ease%2Fdownload%2Fd3-ease-1.0.6.tgz", + "integrity": "sha1-69ttoi36wKIiIvLU2gb2bEFqDsA=" + }, + "node_modules/d3-interpolate": { + "version": "1.1.6", + "resolved": "https://registry.npm.taobao.org/d3-interpolate/download/d3-interpolate-1.1.6.tgz", + "integrity": "sha1-LPOVriOBgE3wiqG/dmt/l7X2j7Y=", + "dependencies": { + "d3-color": "1" + } + }, + "node_modules/d3-selection": { + "version": "1.4.1", + "resolved": "https://registry.npm.taobao.org/d3-selection/download/d3-selection-1.4.1.tgz", + "integrity": "sha1-mO7bvghfvaW6+i+ePzovTX1iKpg=" + }, + "node_modules/d3-timer": { + "version": "1.0.10", + "resolved": "https://registry.npm.taobao.org/d3-timer/download/d3-timer-1.0.10.tgz", + "integrity": "sha1-3+dripF0iDGxO22ceT/71QjdneU=" + }, + "node_modules/d3-transition": { + "version": "1.3.2", + "resolved": "https://registry.npm.taobao.org/d3-transition/download/d3-transition-1.3.2.tgz", + "integrity": "sha1-qY7yFRvo2GAFQ0NMHKgBQK4js5g=", + "dependencies": { + "d3-color": "1", + "d3-dispatch": "1", + "d3-ease": "1", + "d3-interpolate": "1", + "d3-selection": "^1.1.0", + "d3-timer": "1" + } + }, + "node_modules/dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npm.taobao.org/dashdash/download/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/data-urls": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/data-urls/download/data-urls-1.1.0.tgz", + "integrity": "sha1-Fe4Fgrql4iu1nHcUDaj5x2lju/4=", + "dev": true, + "dependencies": { + "abab": "^2.0.0", + "whatwg-mimetype": "^2.2.0", + "whatwg-url": "^7.0.0" + } + }, + "node_modules/date-fns": { + "version": "1.30.1", + "resolved": "https://registry.npm.taobao.org/date-fns/download/date-fns-1.30.1.tgz?cache=0&sync_timestamp=1594999213209&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdate-fns%2Fdownload%2Fdate-fns-1.30.1.tgz", + "integrity": "sha1-LnG/CxGRU9u0zE6I2epaz7UNwFw=", + "dev": true + }, + "node_modules/dayjs": { + "version": "1.8.29", + "resolved": "https://registry.npm.taobao.org/dayjs/download/dayjs-1.8.29.tgz?cache=0&sync_timestamp=1593707172703&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdayjs%2Fdownload%2Fdayjs-1.8.29.tgz", + "integrity": "sha1-XSPjQd5r+9IGwBE20vsPAYd4IPU=" + }, + "node_modules/de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/de-indent/download/de-indent-1.0.2.tgz", + "integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=", + "dev": true + }, + "node_modules/debug": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.1.0.tgz", + "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/decamelize/download/decamelize-1.2.0.tgz?cache=0&sync_timestamp=1580010393599&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdecamelize%2Fdownload%2Fdecamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decimal.js": { + "version": "10.2.0", + "resolved": "https://registry.npm.taobao.org/decimal.js/download/decimal.js-10.2.0.tgz", + "integrity": "sha1-OUZhE6ngNhEdAvgkibX9awte0jE=" + }, + "node_modules/decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npm.taobao.org/decode-uri-component/download/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/dedent": { + "version": "0.7.0", + "resolved": "https://registry.npm.taobao.org/dedent/download/dedent-0.7.0.tgz", + "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", + "dev": true + }, + "node_modules/deep-eql": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/deep-eql/download/deep-eql-3.0.1.tgz", + "integrity": "sha1-38lARACtHI/gI+faHfHBR8S0RN8=", + "dev": true, + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/deep-equal": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/deep-equal/download/deep-equal-1.1.1.tgz", + "integrity": "sha1-tcmMlCzv+vfLBR4k4UNKJaLmB2o=", + "dependencies": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npm.taobao.org/deep-is/download/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "node_modules/deepmerge": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/deepmerge/download/deepmerge-2.2.1.tgz", + "integrity": "sha1-XT/yKgHAD2RUBaL7wX0HeKGAEXA=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/default-gateway": { + "version": "5.0.5", + "resolved": "https://registry.npm.taobao.org/default-gateway/download/default-gateway-5.0.5.tgz?cache=0&sync_timestamp=1590419212936&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefault-gateway%2Fdownload%2Fdefault-gateway-5.0.5.tgz", + "integrity": "sha1-T9a9XShV05s0zFpZUFSG6ar8mxA=", + "dev": true, + "dependencies": { + "execa": "^3.3.0" + }, + "engines": { + "node": "^8.12.0 || >=9.7.0" + } + }, + "node_modules/default-gateway/node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-7.0.3.tgz", + "integrity": "sha1-9zqFudXUHQRVUcF34ogtSshXKKY=", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/default-gateway/node_modules/execa": { + "version": "3.4.0", + "resolved": "https://registry.npm.taobao.org/execa/download/execa-3.4.0.tgz?cache=0&sync_timestamp=1594145237072&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-3.4.0.tgz", + "integrity": "sha1-wI7UVQ72XYWPrCaf/IVyRG8364k=", + "dev": true, + "dependencies": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "p-finally": "^2.0.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": "^8.12.0 || >=9.7.0" + } + }, + "node_modules/default-gateway/node_modules/get-stream": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-5.1.0.tgz", + "integrity": "sha1-ASA83JJZf5uQkGfD5lbMH008Tck=", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/default-gateway/node_modules/is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/is-stream/download/is-stream-2.0.0.tgz", + "integrity": "sha1-venDJoDW+uBBKdasnZIc54FfeOM=", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/default-gateway/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-2.1.0.tgz", + "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/default-gateway/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/npm-run-path/download/npm-run-path-4.0.1.tgz", + "integrity": "sha1-t+zR5e1T2o43pV4cImnguX7XSOo=", + "dev": true, + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/default-gateway/node_modules/onetime": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/onetime/download/onetime-5.1.0.tgz", + "integrity": "sha1-//DzyRYX/mK7UBiWNumayKbfe+U=", + "dev": true, + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/default-gateway/node_modules/p-finally": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/p-finally/download/p-finally-2.0.1.tgz", + "integrity": "sha1-vW/KqcVZoJa2gIBvTWV7Pw8kBWE=", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/default-gateway/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/path-key/download/path-key-3.1.1.tgz?cache=0&sync_timestamp=1574441431664&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-key%2Fdownload%2Fpath-key-3.1.1.tgz", + "integrity": "sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/default-gateway/node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/shebang-command/download/shebang-command-2.0.0.tgz", + "integrity": "sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/default-gateway/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/shebang-regex/download/shebang-regex-3.0.0.tgz", + "integrity": "sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/default-gateway/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/which/download/which-2.0.2.tgz?cache=0&sync_timestamp=1574116262707&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-2.0.2.tgz", + "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/defaults": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/defaults/download/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "dev": true, + "dependencies": { + "clone": "^1.0.2" + } + }, + "node_modules/define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/define-properties/download/define-properties-1.1.3.tgz", + "integrity": "sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE=", + "dependencies": { + "object-keys": "^1.0.12" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-2.0.2.tgz", + "integrity": "sha1-1Flono1lS6d+AqgX+HENcCyxbp0=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-6.0.3.tgz", + "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/defined": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/defined/download/defined-1.0.0.tgz", + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" + }, + "node_modules/del": { + "version": "4.1.1", + "resolved": "https://registry.npm.taobao.org/del/download/del-4.1.1.tgz", + "integrity": "sha1-no8RciLqRKMf86FWwEm5kFKp8LQ=", + "dev": true, + "dependencies": { + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/del/node_modules/globby": { + "version": "6.1.0", + "resolved": "https://registry.npm.taobao.org/globby/download/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dev": true, + "dependencies": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/del/node_modules/globby/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/delayed-stream/download/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/delegate": { + "version": "3.2.0", + "resolved": "https://registry.npm.taobao.org/delegate/download/delegate-3.2.0.tgz", + "integrity": "sha1-tmtxwxWFIuirV0T3INjKDCr1kWY=" + }, + "node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/depd/download/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/des.js": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/des.js/download/des.js-1.0.1.tgz", + "integrity": "sha1-U4IULhvcU/hdhtU+X0qn3rkeCEM=", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/destroy": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/destroy/download/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "node_modules/detect-browser": { + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/detect-browser/download/detect-browser-5.1.1.tgz?cache=0&sync_timestamp=1592803473542&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdetect-browser%2Fdownload%2Fdetect-browser-5.1.1.tgz", + "integrity": "sha1-qADbkdP9YNCGFmn1mE8b6f++AJw=" + }, + "node_modules/detect-node": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/detect-node/download/detect-node-2.0.4.tgz", + "integrity": "sha1-AU7o+PZpxcWAI9pkuBecCDooxGw=", + "dev": true + }, + "node_modules/diff": { + "version": "3.5.0", + "resolved": "https://registry.npm.taobao.org/diff/download/diff-3.5.0.tgz", + "integrity": "sha1-gAwN0eCov7yVg1wgKtIg/jF+WhI=", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npm.taobao.org/diffie-hellman/download/diffie-hellman-5.0.3.tgz", + "integrity": "sha1-QOjumPVaIUlgcUaSHGPhrl89KHU=", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "node_modules/diffie-hellman/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.9.tgz", + "integrity": "sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=", + "dev": true + }, + "node_modules/dir-glob": { + "version": "2.2.2", + "resolved": "https://registry.npm.taobao.org/dir-glob/download/dir-glob-2.2.2.tgz", + "integrity": "sha1-+gnwaUFTyJGLGLoN6vrpR2n8UMQ=", + "dev": true, + "dependencies": { + "path-type": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/dns-equal/download/dns-equal-1.0.0.tgz", + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", + "dev": true + }, + "node_modules/dns-packet": { + "version": "1.3.1", + "resolved": "https://registry.npm.taobao.org/dns-packet/download/dns-packet-1.3.1.tgz", + "integrity": "sha1-EqpCaYEHW+UAuRDu3NC0fdfe2lo=", + "dev": true, + "dependencies": { + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/dns-txt/download/dns-txt-2.0.2.tgz", + "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "dev": true, + "dependencies": { + "buffer-indexof": "^1.0.0" + } + }, + "node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/doctrine/download/doctrine-2.1.0.tgz", + "integrity": "sha1-XNAfwQFiG0LEzX9dGmYkNxbT850=", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npm.taobao.org/dom-converter/download/dom-converter-0.2.0.tgz", + "integrity": "sha1-ZyGp2u4uKTaClVtq/kFncWJ7t2g=", + "dev": true, + "dependencies": { + "utila": "~0.4" + } + }, + "node_modules/dom-event-types": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/dom-event-types/download/dom-event-types-1.0.0.tgz", + "integrity": "sha1-WDCgop4b+Df+UKcM2ApZcjKBPK4=", + "dev": true + }, + "node_modules/dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npm.taobao.org/dom-serializer/download/dom-serializer-0.2.2.tgz?cache=0&sync_timestamp=1589067578490&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-serializer%2Fdownload%2Fdom-serializer-0.2.2.tgz", + "integrity": "sha1-GvuB9TNxcXXUeGVd68XjMtn5u1E=", + "dev": true, + "dependencies": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + } + }, + "node_modules/dom-serializer/node_modules/domelementtype": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/domelementtype/download/domelementtype-2.0.1.tgz", + "integrity": "sha1-H4vf6R9aeAYydOgDtL3O326U+U0=", + "dev": true + }, + "node_modules/domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/domain-browser/download/domain-browser-1.2.0.tgz", + "integrity": "sha1-PTH1AZGmdJ3RN1p/Ui6CPULlTto=", + "dev": true, + "engines": { + "node": ">=0.4", + "npm": ">=1.2" + } + }, + "node_modules/domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npm.taobao.org/domelementtype/download/domelementtype-1.3.1.tgz", + "integrity": "sha1-0EjESzew0Qp/Kj1f7j9DM9eQSB8=", + "dev": true + }, + "node_modules/domexception": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/domexception/download/domexception-1.0.1.tgz?cache=0&sync_timestamp=1576355459111&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomexception%2Fdownload%2Fdomexception-1.0.1.tgz", + "integrity": "sha1-k3RCZEymoxJh7zbj7Gd/6AVYLJA=", + "dev": true, + "dependencies": { + "webidl-conversions": "^4.0.2" + } + }, + "node_modules/domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/domhandler/download/domhandler-2.4.2.tgz", + "integrity": "sha1-iAUJfpM9ZehVRvcm1g9euItE+AM=", + "dev": true, + "dependencies": { + "domelementtype": "1" + } + }, + "node_modules/domutils": { + "version": "1.7.0", + "resolved": "https://registry.npm.taobao.org/domutils/download/domutils-1.7.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomutils%2Fdownload%2Fdomutils-1.7.0.tgz", + "integrity": "sha1-Vuo0HoNOBuZ0ivehyyXaZ+qfjCo=", + "dev": true, + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/dot-prop": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/dot-prop/download/dot-prop-5.2.0.tgz?cache=0&sync_timestamp=1572621117377&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdot-prop%2Fdownload%2Fdot-prop-5.2.0.tgz", + "integrity": "sha1-w07MKVVtxF8fTCJpe29JBODMT8s=", + "dev": true, + "dependencies": { + "is-obj": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/dotenv": { + "version": "7.0.0", + "resolved": "https://registry.npm.taobao.org/dotenv/download/dotenv-7.0.0.tgz", + "integrity": "sha1-or481Sc2ZzIG6KhftSEO6ilijnw=", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/dotenv-expand/download/dotenv-expand-5.1.0.tgz", + "integrity": "sha1-P7rwIL/XlIhAcuomsel5HUWmKfA=", + "dev": true + }, + "node_modules/dotignore": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/dotignore/download/dotignore-0.1.2.tgz", + "integrity": "sha1-+ULyIA0ow6dvvdbw7p8yV8ii6QU=", + "dependencies": { + "minimatch": "^3.0.4" + }, + "bin": { + "ignored": "bin/ignored" + } + }, + "node_modules/duplexer": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/duplexer/download/duplexer-0.1.1.tgz", + "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", + "dev": true + }, + "node_modules/duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npm.taobao.org/duplexify/download/duplexify-3.7.1.tgz", + "integrity": "sha1-Kk31MX9sz9kfhtb9JdjYoQO4gwk=", + "dev": true, + "dependencies": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/e-guide-layer": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/e-guide-layer/download/e-guide-layer-0.1.1.tgz", + "integrity": "sha1-AcGvAJqak9CQaSnWAFGrHH6I/V8=", + "dependencies": { + "core-js": "^3.6.5", + "normalize.css": "^8.0.1", + "vue": "^2.6.11" + } + }, + "node_modules/e-guide-layer/node_modules/core-js": { + "version": "3.8.1", + "resolved": "https://registry.npm.taobao.org/core-js/download/core-js-3.8.1.tgz?cache=0&sync_timestamp=1607215997560&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-3.8.1.tgz", + "integrity": "sha1-9RUjZorIopTRKFw7nbRAJf2mbUc=", + "deprecated": "core-js@<3.23.3 is no longer maintained and not recommended for usage due to the number of issues. Because of the V8 engine whims, feature detection in old core-js versions could cause a slowdown up to 100x even if nothing is polyfilled. Some versions have web compatibility issues. Please, upgrade your dependencies to the actual version of core-js.", + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/easy-stack": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/easy-stack/download/easy-stack-1.0.0.tgz", + "integrity": "sha1-EskbMIWjfwuqM26UhurEv5Tj54g=", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/ecc-jsbn/download/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "dependencies": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/echarts": { + "version": "4.8.0", + "resolved": "https://registry.npm.taobao.org/echarts/download/echarts-4.8.0.tgz", + "integrity": "sha1-ssHPuSKbE9No7hBPyO6mALV01MQ=", + "dependencies": { + "zrender": "4.3.1" + } + }, + "node_modules/editorconfig": { + "version": "0.15.3", + "resolved": "https://registry.npm.taobao.org/editorconfig/download/editorconfig-0.15.3.tgz", + "integrity": "sha1-vvhMTnX7jcsM5c7o79UcFZmb78U=", + "dev": true, + "dependencies": { + "commander": "^2.19.0", + "lru-cache": "^4.1.5", + "semver": "^5.6.0", + "sigmund": "^1.0.1" + }, + "bin": { + "editorconfig": "bin/editorconfig" + } + }, + "node_modules/editorconfig/node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz?cache=0&sync_timestamp=1594427569171&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-4.1.5.tgz", + "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=", + "dev": true, + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/editorconfig/node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/ee-first/download/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "node_modules/ejs": { + "version": "2.7.4", + "resolved": "https://registry.npm.taobao.org/ejs/download/ejs-2.7.4.tgz", + "integrity": "sha1-SGYSh1c9zFPjZsehrlLDoSDuybo=", + "dev": true, + "hasInstallScript": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.3.502", + "resolved": "https://registry.npm.taobao.org/electron-to-chromium/download/electron-to-chromium-1.3.502.tgz?cache=0&sync_timestamp=1595302504119&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Felectron-to-chromium%2Fdownload%2Felectron-to-chromium-1.3.502.tgz", + "integrity": "sha1-alXpk+9goB+9whUu9eR+4AyIXJg=", + "dev": true + }, + "node_modules/elegant-spinner": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/elegant-spinner/download/elegant-spinner-1.0.1.tgz", + "integrity": "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/element-resize-detector": { + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/element-resize-detector/download/element-resize-detector-1.2.1.tgz", + "integrity": "sha1-sDBRlER6SGMVXljxMyOgrvMIUdE=", + "dependencies": { + "batch-processor": "1.0.0" + } + }, + "node_modules/elliptic": { + "version": "6.5.3", + "resolved": "https://registry.npm.taobao.org/elliptic/download/elliptic-6.5.3.tgz?cache=0&sync_timestamp=1592492805287&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Felliptic%2Fdownload%2Felliptic-6.5.3.tgz", + "integrity": "sha1-y1nrLv2vc6C9eMzXAVpirW4Pk9Y=", + "dev": true, + "dependencies": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.9.tgz", + "integrity": "sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=", + "dev": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-8.0.0.tgz", + "integrity": "sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc=", + "dev": true + }, + "node_modules/emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/emojis-list/download/emojis-list-3.0.0.tgz", + "integrity": "sha1-VXBmIEatKeLpFucariYKvf9Pang=", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/encodeurl/download/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npm.taobao.org/end-of-stream/download/end-of-stream-1.4.4.tgz", + "integrity": "sha1-WuZKX0UFe682JuwU2gyl5LJDHrA=", + "dev": true, + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/enhanced-resolve": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/enhanced-resolve/download/enhanced-resolve-4.3.0.tgz?cache=0&sync_timestamp=1594972300336&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fenhanced-resolve%2Fdownload%2Fenhanced-resolve-4.3.0.tgz", + "integrity": "sha1-O4BvO/r8HsfeaVUe+TzKRsFwQSY=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/enhanced-resolve/node_modules/memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npm.taobao.org/memory-fs/download/memory-fs-0.5.0.tgz?cache=0&sync_timestamp=1570537491040&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmemory-fs%2Fdownload%2Fmemory-fs-0.5.0.tgz", + "integrity": "sha1-MkwBKIuIZSlm0WHbd4OHIIRajjw=", + "dev": true, + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + }, + "engines": { + "node": ">=4.3.0 <5.0.0 || >=5.10" + } + }, + "node_modules/entities": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/entities/download/entities-2.0.3.tgz?cache=0&sync_timestamp=1591227679482&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fentities%2Fdownload%2Fentities-2.0.3.tgz", + "integrity": "sha1-XEh+V0Krk8Fau12iJ1m4WQ7AO38=", + "dev": true + }, + "node_modules/errno": { + "version": "0.1.7", + "resolved": "https://registry.npm.taobao.org/errno/download/errno-0.1.7.tgz", + "integrity": "sha1-RoTXF3mtOa8Xfj8AeZb3xnyFJhg=", + "dev": true, + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npm.taobao.org/error-ex/download/error-ex-1.3.2.tgz", + "integrity": "sha1-tKxAZIEH/c3PriQvQovqihTU8b8=", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/error-stack-parser": { + "version": "2.0.6", + "resolved": "https://registry.npm.taobao.org/error-stack-parser/download/error-stack-parser-2.0.6.tgz?cache=0&sync_timestamp=1578288503034&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ferror-stack-parser%2Fdownload%2Ferror-stack-parser-2.0.6.tgz", + "integrity": "sha1-WpmnB716TFinl5AtSNgoA+3mqtg=", + "dev": true, + "dependencies": { + "stackframe": "^1.1.1" + } + }, + "node_modules/es-abstract": { + "version": "1.17.6", + "resolved": "https://registry.npm.taobao.org/es-abstract/download/es-abstract-1.17.6.tgz?cache=0&sync_timestamp=1592109199190&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.6.tgz", + "integrity": "sha1-kUIHFweFeyysx7iey2cDFsPi1So=", + "dependencies": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.0", + "is-regex": "^1.1.0", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-abstract/node_modules/is-regex": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/is-regex/download/is-regex-1.1.0.tgz", + "integrity": "sha1-7OOOOJ5JDfDcIcrqK9WW+Yf3Z/8=", + "dependencies": { + "has-symbols": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/es-to-primitive/download/es-to-primitive-1.2.1.tgz", + "integrity": "sha1-5VzUyc3BiLzvsDs2bHNjI/xciYo=", + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/escalade": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/escalade/download/escalade-3.0.2.tgz?cache=0&sync_timestamp=1594743037384&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescalade%2Fdownload%2Fescalade-3.0.2.tgz", + "integrity": "sha1-algNcO24eIDyK0yR0NVgeN9pYsQ=", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/escape-html/download/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz?cache=0&sync_timestamp=1587627107924&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-string-regexp%2Fdownload%2Fescape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npm.taobao.org/escodegen/download/escodegen-1.14.3.tgz?cache=0&sync_timestamp=1592866195968&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescodegen%2Fdownload%2Fescodegen-1.14.3.tgz", + "integrity": "sha1-TnuB+6YVgdyXWC7XjKt/Do1j9QM=", + "dev": true, + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=4.0" + }, + "optionalDependencies": { + "source-map": "~0.6.1" + } + }, + "node_modules/escodegen/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint": { + "version": "4.19.1", + "resolved": "https://registry.npm.taobao.org/eslint/download/eslint-4.19.1.tgz?cache=0&sync_timestamp=1595098868314&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint%2Fdownload%2Feslint-4.19.1.tgz", + "integrity": "sha1-MtHWU+HZBAiFS/spbwdux+GGowA=", + "dev": true, + "dependencies": { + "ajv": "^5.3.0", + "babel-code-frame": "^6.22.0", + "chalk": "^2.1.0", + "concat-stream": "^1.6.0", + "cross-spawn": "^5.1.0", + "debug": "^3.1.0", + "doctrine": "^2.1.0", + "eslint-scope": "^3.7.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^3.5.4", + "esquery": "^1.0.0", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.0.1", + "ignore": "^3.3.3", + "imurmurhash": "^0.1.4", + "inquirer": "^3.0.6", + "is-resolvable": "^1.0.0", + "js-yaml": "^3.9.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.4", + "minimatch": "^3.0.2", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "regexpp": "^1.0.1", + "require-uncached": "^1.0.3", + "semver": "^5.3.0", + "strip-ansi": "^4.0.0", + "strip-json-comments": "~2.0.1", + "table": "4.0.2", + "text-table": "~0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-config-standard": { + "version": "12.0.0", + "resolved": "https://registry.npm.taobao.org/eslint-config-standard/download/eslint-config-standard-12.0.0.tgz?cache=0&sync_timestamp=1584727519567&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-config-standard%2Fdownload%2Feslint-config-standard-12.0.0.tgz", + "integrity": "sha1-Y4tMZdsL1aQTGflruh8V3a0hB9k=", + "dev": true, + "peerDependencies": { + "eslint": ">=5.0.0", + "eslint-plugin-import": ">=2.13.0", + "eslint-plugin-node": ">=7.0.0", + "eslint-plugin-promise": ">=4.0.0", + "eslint-plugin-standard": ">=4.0.0" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.4", + "resolved": "https://registry.npm.taobao.org/eslint-import-resolver-node/download/eslint-import-resolver-node-0.3.4.tgz", + "integrity": "sha1-hf+oGULCUBLYIxCW3fZ5wDBCxxc=", + "dev": true, + "dependencies": { + "debug": "^2.6.9", + "resolve": "^1.13.1" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/eslint-loader": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/eslint-loader/download/eslint-loader-2.2.1.tgz", + "integrity": "sha1-KLnBLaVAV68IReKmEScBova/gzc=", + "deprecated": "This loader has been deprecated. Please use eslint-webpack-plugin", + "dev": true, + "dependencies": { + "loader-fs-cache": "^1.0.0", + "loader-utils": "^1.0.2", + "object-assign": "^4.0.1", + "object-hash": "^1.1.4", + "rimraf": "^2.6.1" + }, + "peerDependencies": { + "eslint": ">=1.6.0 <7.0.0", + "webpack": ">=2.0.0 <5.0.0" + } + }, + "node_modules/eslint-module-utils": { + "version": "2.6.0", + "resolved": "https://registry.npm.taobao.org/eslint-module-utils/download/eslint-module-utils-2.6.0.tgz", + "integrity": "sha1-V569CU9Wr3eX0ZyYZsnJSGYpv6Y=", + "dev": true, + "dependencies": { + "debug": "^2.6.9", + "pkg-dir": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/eslint-module-utils/node_modules/pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, + "dependencies": { + "find-up": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-plugin-cypress": { + "version": "2.11.1", + "resolved": "https://registry.npm.taobao.org/eslint-plugin-cypress/download/eslint-plugin-cypress-2.11.1.tgz", + "integrity": "sha1-qUXid0uIIR4scGoFnUMeJitcKGI=", + "dev": true, + "dependencies": { + "globals": "^11.12.0" + }, + "peerDependencies": { + "eslint": ">= 3.2.1" + } + }, + "node_modules/eslint-plugin-import": { + "version": "2.22.0", + "resolved": "https://registry.npm.taobao.org/eslint-plugin-import/download/eslint-plugin-import-2.22.0.tgz?cache=0&sync_timestamp=1593237313662&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-plugin-import%2Fdownload%2Feslint-plugin-import-2.22.0.tgz", + "integrity": "sha1-kvdzb+H94+Led2I8g43Zkv9f+34=", + "dev": true, + "dependencies": { + "array-includes": "^3.1.1", + "array.prototype.flat": "^1.2.3", + "contains-path": "^0.1.0", + "debug": "^2.6.9", + "doctrine": "1.5.0", + "eslint-import-resolver-node": "^0.3.3", + "eslint-module-utils": "^2.6.0", + "has": "^1.0.3", + "minimatch": "^3.0.4", + "object.values": "^1.1.1", + "read-pkg-up": "^2.0.0", + "resolve": "^1.17.0", + "tsconfig-paths": "^3.9.0" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "1.5.0", + "resolved": "https://registry.npm.taobao.org/doctrine/download/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "dev": true, + "dependencies": { + "esutils": "^2.0.2", + "isarray": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-node": { + "version": "6.0.1", + "resolved": "https://registry.npm.taobao.org/eslint-plugin-node/download/eslint-plugin-node-6.0.1.tgz?cache=0&sync_timestamp=1585396050025&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-plugin-node%2Fdownload%2Feslint-plugin-node-6.0.1.tgz", + "integrity": "sha1-vxlkIpgGQ3kxXXpLKnWTc3b6BeQ=", + "dev": true, + "dependencies": { + "ignore": "^3.3.6", + "minimatch": "^3.0.4", + "resolve": "^1.3.3", + "semver": "^5.4.1" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": ">=3.1.0" + } + }, + "node_modules/eslint-plugin-promise": { + "version": "3.8.0", + "resolved": "https://registry.npm.taobao.org/eslint-plugin-promise/download/eslint-plugin-promise-3.8.0.tgz", + "integrity": "sha1-ZevyeoRePB6db2pWIt3TgBaUtiE=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint-plugin-standard": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/eslint-plugin-standard/download/eslint-plugin-standard-3.1.0.tgz", + "integrity": "sha1-Kp4hJZukxHwC1TstDJE11LECLUc=", + "dev": true, + "peerDependencies": { + "eslint": ">=3.19.0" + } + }, + "node_modules/eslint-plugin-vue": { + "version": "4.7.1", + "resolved": "https://registry.npm.taobao.org/eslint-plugin-vue/download/eslint-plugin-vue-4.7.1.tgz?cache=0&sync_timestamp=1595148924086&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-plugin-vue%2Fdownload%2Feslint-plugin-vue-4.7.1.tgz", + "integrity": "sha1-yCm5/GJYLBiXtaC5Sv1E7MpRHmM=", + "dev": true, + "optional": true, + "dependencies": { + "vue-eslint-parser": "^2.0.3" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^3.18.0 || ^4.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npm.taobao.org/eslint-scope/download/eslint-scope-4.0.3.tgz", + "integrity": "sha1-ygODMxD2iJoyZHgaqC5j65z+eEg=", + "dev": true, + "dependencies": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/eslint-visitor-keys/download/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha1-MOvR73wv3/AcOk8VEESvJfqwUj4=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint/node_modules/ajv": { + "version": "5.5.2", + "resolved": "https://registry.npm.taobao.org/ajv/download/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "dependencies": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "node_modules/eslint/node_modules/ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint/node_modules/cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "dependencies": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "3.7.3", + "resolved": "https://registry.npm.taobao.org/eslint-scope/download/eslint-scope-3.7.3.tgz", + "integrity": "sha1-u1ByANPRf2AkdjYWC0gmKEsQhTU=", + "dev": true, + "dependencies": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/eslint/node_modules/fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-1.1.0.tgz?cache=0&sync_timestamp=1591599666712&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-deep-equal%2Fdownload%2Ffast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "dev": true + }, + "node_modules/eslint/node_modules/json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true + }, + "node_modules/eslint/node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz?cache=0&sync_timestamp=1594427569171&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-4.1.5.tgz", + "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=", + "dev": true, + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/eslint/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/eslint/node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + }, + "node_modules/espree": { + "version": "3.5.4", + "resolved": "https://registry.npm.taobao.org/espree/download/espree-3.5.4.tgz?cache=0&sync_timestamp=1595033675028&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fespree%2Fdownload%2Fespree-3.5.4.tgz", + "integrity": "sha1-sPRHGHyKi+2US4FaZgvd9d610ac=", + "dev": true, + "dependencies": { + "acorn": "^5.5.0", + "acorn-jsx": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/espree/node_modules/acorn": { + "version": "5.7.4", + "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-5.7.4.tgz?cache=0&sync_timestamp=1591869432510&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-5.7.4.tgz", + "integrity": "sha1-Po2KmUfQWZoXltECJddDL0pKz14=", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/esprima/download/esprima-4.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fesprima%2Fdownload%2Fesprima-4.0.1.tgz", + "integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=", + "dev": true, + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/esquery": { + "version": "1.3.1", + "resolved": "https://registry.npm.taobao.org/esquery/download/esquery-1.3.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fesquery%2Fdownload%2Fesquery-1.3.1.tgz", + "integrity": "sha1-t4tYKKqOIU4p+3TE1bdS4cAz2lc=", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/estraverse/download/estraverse-5.1.0.tgz?cache=0&sync_timestamp=1586996117385&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Festraverse%2Fdownload%2Festraverse-5.1.0.tgz", + "integrity": "sha1-N0MJ05/ZNa5QDnuS6Ka0xyDllkI=", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npm.taobao.org/esrecurse/download/esrecurse-4.2.1.tgz", + "integrity": "sha1-AHo7n9vCs7uH5IeeoZyS/b05Qs8=", + "dev": true, + "dependencies": { + "estraverse": "^4.1.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/estraverse/download/estraverse-4.3.0.tgz?cache=0&sync_timestamp=1586996117385&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Festraverse%2Fdownload%2Festraverse-4.3.0.tgz", + "integrity": "sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/esutils/download/esutils-2.0.3.tgz?cache=0&sync_timestamp=1564535492241&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fesutils%2Fdownload%2Fesutils-2.0.3.tgz", + "integrity": "sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/etag": { + "version": "1.8.1", + "resolved": "https://registry.npm.taobao.org/etag/download/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/event-pubsub": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/event-pubsub/download/event-pubsub-4.3.0.tgz", + "integrity": "sha1-9o2Ba8KfHsAsU53FjI3UDOcss24=", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.4", + "resolved": "https://registry.npm.taobao.org/eventemitter3/download/eventemitter3-4.0.4.tgz?cache=0&sync_timestamp=1589283150629&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feventemitter3%2Fdownload%2Feventemitter3-4.0.4.tgz", + "integrity": "sha1-tUY6zmNaCD0Bi9x8kXtMXxCoU4Q=", + "dev": true + }, + "node_modules/events": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/events/download/events-3.1.0.tgz?cache=0&sync_timestamp=1578498298945&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fevents%2Fdownload%2Fevents-3.1.0.tgz", + "integrity": "sha1-hCea8bNMt1qoi/X/KR9tC9mzGlk=", + "dev": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/eventsource": { + "version": "1.0.7", + "resolved": "https://registry.npm.taobao.org/eventsource/download/eventsource-1.0.7.tgz", + "integrity": "sha1-j7xyyT/NNAiAkLwKTmT0tc7m2NA=", + "dev": true, + "dependencies": { + "original": "^1.0.0" + }, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/evp_bytestokey/download/evp_bytestokey-1.0.3.tgz", + "integrity": "sha1-f8vbGY3HGVlDLv4ThCaE4FJaywI=", + "dev": true, + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/execa": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/execa/download/execa-1.0.0.tgz?cache=0&sync_timestamp=1594145237072&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-1.0.0.tgz", + "integrity": "sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg=", + "dev": true, + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/exit-hook": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/exit-hook/download/exit-hook-1.1.1.tgz", + "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/exit-on-epipe": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/exit-on-epipe/download/exit-on-epipe-1.0.1.tgz", + "integrity": "sha1-C92S6H1ShdJn2qgXHQ6wYVlolpI=", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npm.taobao.org/expand-brackets/download/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/express": { + "version": "4.17.1", + "resolved": "https://registry.npm.taobao.org/express/download/express-4.17.1.tgz?cache=0&sync_timestamp=1585185316222&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexpress%2Fdownload%2Fexpress-4.17.1.tgz", + "integrity": "sha1-RJH8OGBc9R+GKdOcK10Cb5ikwTQ=", + "dev": true, + "dependencies": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/express/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/express/node_modules/qs": { + "version": "6.7.0", + "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.7.0.tgz", + "integrity": "sha1-QdwaAV49WB8WIXdr4xr7KHapsbw=", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/extend": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/extend/download/extend-3.0.2.tgz", + "integrity": "sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo=", + "dev": true + }, + "node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extend-shallow/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz", + "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/external-editor": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/external-editor/download/external-editor-2.2.0.tgz?cache=0&sync_timestamp=1562602052556&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexternal-editor%2Fdownload%2Fexternal-editor-2.2.0.tgz", + "integrity": "sha1-BFURz9jRM/OEZnPRBHwVTiFK09U=", + "dev": true, + "dependencies": { + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/extglob/download/extglob-2.0.4.tgz", + "integrity": "sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=", + "dev": true, + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-6.0.3.tgz", + "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/extsprintf/download/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true, + "engines": [ + "node >=0.6.0" + ] + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-3.1.3.tgz?cache=0&sync_timestamp=1591599666712&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-deep-equal%2Fdownload%2Ffast-deep-equal-3.1.3.tgz", + "integrity": "sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=", + "dev": true + }, + "node_modules/fast-glob": { + "version": "2.2.7", + "resolved": "https://registry.npm.taobao.org/fast-glob/download/fast-glob-2.2.7.tgz", + "integrity": "sha1-aVOFfDr6R1//ku5gFdUtpwpM050=", + "dev": true, + "dependencies": { + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.1.2", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.3", + "micromatch": "^3.1.10" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/fast-glob/node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/fast-json-stable-stringify/download/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npm.taobao.org/fast-levenshtein/download/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "node_modules/fastparse": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/fastparse/download/fastparse-1.1.2.tgz", + "integrity": "sha1-kXKMWllC7O2FMSg8eUQe5BIsNak=", + "dev": true + }, + "node_modules/faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npm.taobao.org/faye-websocket/download/faye-websocket-0.10.0.tgz", + "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "dev": true, + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/fecha": { + "version": "2.3.3", + "resolved": "https://registry.npm.taobao.org/fecha/download/fecha-2.3.3.tgz", + "integrity": "sha1-lI50FX3xoy/RsSw6PDzctuydls0=" + }, + "node_modules/figgy-pudding": { + "version": "3.5.2", + "resolved": "https://registry.npm.taobao.org/figgy-pudding/download/figgy-pudding-3.5.2.tgz", + "integrity": "sha1-tO7oFIq7Adzx0aw0Nn1Z4S+mHW4=", + "dev": true + }, + "node_modules/figures": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/figures/download/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/file-entry-cache": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/file-entry-cache/download/file-entry-cache-2.0.0.tgz", + "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "dev": true, + "dependencies": { + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/file-loader": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/file-loader/download/file-loader-3.0.1.tgz", + "integrity": "sha1-+OC6C1mZGLUa3+RdZtHnca1WD6o=", + "dev": true, + "dependencies": { + "loader-utils": "^1.0.2", + "schema-utils": "^1.0.0" + }, + "engines": { + "node": ">= 6.9.0" + }, + "peerDependencies": { + "webpack": "^4.0.0" + } + }, + "node_modules/file-loader/node_modules/schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", + "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", + "dev": true, + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/file-uri-to-path/download/file-uri-to-path-1.0.0.tgz", + "integrity": "sha1-VTp7hEb/b2hDWcRF8eN6BdrMM90=", + "dev": true, + "optional": true + }, + "node_modules/filesize": { + "version": "3.6.1", + "resolved": "https://registry.npm.taobao.org/filesize/download/filesize-3.6.1.tgz", + "integrity": "sha1-CQuz7gG2+AGoqL6Z0xcQs0Irsxc=", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/finalhandler/download/finalhandler-1.1.2.tgz", + "integrity": "sha1-t+fQAP/RGTjQ/bBTUG9uur6fWH0=", + "dev": true, + "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.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/find-babel-config": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/find-babel-config/download/find-babel-config-1.2.0.tgz", + "integrity": "sha1-qbezF+tbmGDNqdVHQKjIM3oig6I=", + "dev": true, + "dependencies": { + "json5": "^0.5.1", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/find-babel-config/node_modules/json5": { + "version": "0.5.1", + "resolved": "https://registry.npm.taobao.org/json5/download/json5-0.5.1.tgz?cache=0&sync_timestamp=1586046271069&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-2.1.0.tgz", + "integrity": "sha1-jQ+UzRP+Q8bHwmGg2GEVypGMBfc=", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/find-parent-dir": { + "version": "0.3.0", + "resolved": "https://registry.npm.taobao.org/find-parent-dir/download/find-parent-dir-0.3.0.tgz", + "integrity": "sha1-M8RLQpqysvBkYpnF+fcY83b/jVQ=", + "dev": true + }, + "node_modules/find-up": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "dependencies": { + "locate-path": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/flat-cache": { + "version": "1.3.4", + "resolved": "https://registry.npm.taobao.org/flat-cache/download/flat-cache-1.3.4.tgz", + "integrity": "sha1-LC73dSXMKSkAff/6HdMUqpyd7m8=", + "dev": true, + "dependencies": { + "circular-json": "^0.3.1", + "graceful-fs": "^4.1.2", + "rimraf": "~2.6.2", + "write": "^0.2.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/flat-cache/node_modules/rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.6.3.tgz?cache=0&sync_timestamp=1581229865753&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.6.3.tgz", + "integrity": "sha1-stEE/g2Psnz54KHNqCYt04M8bKs=", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/flush-write-stream/download/flush-write-stream-1.1.1.tgz", + "integrity": "sha1-jdfYc6G6vCB9lOrQwuDkQnbr8ug=", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "node_modules/fmin": { + "version": "0.0.2", + "resolved": "https://registry.npm.taobao.org/fmin/download/fmin-0.0.2.tgz", + "integrity": "sha1-Wbu0DUP/3ByUzQClaMQflfGXMBc=", + "dependencies": { + "contour_plot": "^0.0.1", + "json2module": "^0.0.3", + "rollup": "^0.25.8", + "tape": "^4.5.1", + "uglify-js": "^2.6.2" + } + }, + "node_modules/follow-redirects": { + "version": "1.5.10", + "resolved": "https://registry.npm.taobao.org/follow-redirects/download/follow-redirects-1.5.10.tgz?cache=0&sync_timestamp=1592518281721&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffollow-redirects%2Fdownload%2Ffollow-redirects-1.5.10.tgz", + "integrity": "sha1-e3qfmuov3/NnhqlP9kPtB/T/Xio=", + "dependencies": { + "debug": "=3.1.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npm.taobao.org/for-each/download/for-each-0.3.3.tgz", + "integrity": "sha1-abRH6IoKXTLD5whPPxcQA0shN24=", + "dependencies": { + "is-callable": "^1.1.3" + } + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/for-in/download/for-in-1.0.2.tgz?cache=0&sync_timestamp=1573184298867&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffor-in%2Fdownload%2Ffor-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/forever-agent/download/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/form-data": { + "version": "2.3.3", + "resolved": "https://registry.npm.taobao.org/form-data/download/form-data-2.3.3.tgz", + "integrity": "sha1-3M5SwF9kTymManq5Nr1yTO/786Y=", + "dev": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/forwarded/download/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/frac": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/frac/download/frac-1.1.2.tgz", + "integrity": "sha1-PXT39keMiKG1AgMG10fcYxPHTQs=", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npm.taobao.org/fragment-cache/download/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "dependencies": { + "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fresh": { + "version": "0.5.2", + "resolved": "https://registry.npm.taobao.org/fresh/download/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/from2": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/from2/download/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "node_modules/fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npm.taobao.org/fs-extra/download/fs-extra-7.0.1.tgz", + "integrity": "sha1-TxicRKoSO4lfcigE9V6iPq3DSOk=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + }, + "engines": { + "node": ">=6 <7 || >=8" + } + }, + "node_modules/fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/fs-minipass/download/fs-minipass-2.1.0.tgz?cache=0&sync_timestamp=1579628584498&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs-minipass%2Fdownload%2Ffs-minipass-2.1.0.tgz", + "integrity": "sha1-f1A2/b8SxjwWkZDL5BmchSJx+fs=", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npm.taobao.org/fs-write-stream-atomic/download/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "node_modules/fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-2.1.3.tgz?cache=0&sync_timestamp=1588787369955&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffsevents%2Fdownload%2Ffsevents-2.1.3.tgz", + "integrity": "sha1-+3OHA66NL5/pAMM4Nt3r7ouX8j4=", + "deprecated": "\"Please update to latest v2.3 or v2.2\"", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz", + "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=" + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/functional-red-black-tree/download/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "node_modules/gensync": { + "version": "1.0.0-beta.1", + "resolved": "https://registry.npm.taobao.org/gensync/download/gensync-1.0.0-beta.1.tgz", + "integrity": "sha1-WPQ2H/mH5f9uHnohCCeqNx6qwmk=", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/get-caller-file/download/get-caller-file-1.0.3.tgz", + "integrity": "sha1-+Xj6TJDR3+f/LWvtoqUV5xO9z0o=", + "dev": true + }, + "node_modules/get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/get-func-name/download/get-func-name-2.0.0.tgz", + "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/get-own-enumerable-property-symbols/download/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha1-tf3nfyLL4185C04ImSLFC85u9mQ=", + "dev": true + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-4.1.0.tgz", + "integrity": "sha1-wbJVV189wh1Zv8ec09K0axw6VLU=", + "dev": true, + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npm.taobao.org/get-value/download/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/getpass": { + "version": "0.1.7", + "resolved": "https://registry.npm.taobao.org/getpass/download/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0" + } + }, + "node_modules/glob": { + "version": "7.1.6", + "resolved": "https://registry.npm.taobao.org/glob/download/glob-7.1.6.tgz?cache=0&sync_timestamp=1573078079496&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob%2Fdownload%2Fglob-7.1.6.tgz", + "integrity": "sha1-FB8zuBp8JJLhJVlDB0gMRmeSeKY=", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-5.1.1.tgz", + "integrity": "sha1-tsHvQXxOVmPqSY8cRa+saRa7wik=", + "dev": true, + "optional": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npm.taobao.org/glob-to-regexp/download/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npm.taobao.org/globals/download/globals-11.12.0.tgz", + "integrity": "sha1-q4eVM4hooLq9hSV1gBjCp+uVxC4=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/globby": { + "version": "9.2.0", + "resolved": "https://registry.npm.taobao.org/globby/download/globby-9.2.0.tgz", + "integrity": "sha1-/QKacGxwPSm90XD0tts6P3p8tj0=", + "dev": true, + "dependencies": { + "@types/glob": "^7.1.1", + "array-union": "^1.0.2", + "dir-glob": "^2.2.2", + "fast-glob": "^2.2.6", + "glob": "^7.1.3", + "ignore": "^4.0.3", + "pify": "^4.0.1", + "slash": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/globby/node_modules/ignore": { + "version": "4.0.6", + "resolved": "https://registry.npm.taobao.org/ignore/download/ignore-4.0.6.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fignore%2Fdownload%2Fignore-4.0.6.tgz", + "integrity": "sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/good-listener": { + "version": "1.2.2", + "resolved": "https://registry.npm.taobao.org/good-listener/download/good-listener-1.2.2.tgz", + "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=", + "dependencies": { + "delegate": "^3.1.2" + } + }, + "node_modules/gq-plus": { + "version": "2.1.5", + "resolved": "https://registry.npm.taobao.org/gq-plus/download/gq-plus-2.1.5.tgz", + "integrity": "sha1-xGkLE10oAAukXd7nuopA10RvVJM=", + "dependencies": { + "async-validator": "^1.10.0", + "axios": "^0.15.3", + "deepmerge": "^2.2.1", + "element-resize-detector": "^1.2.0", + "js-calendar": "^1.2.3", + "lodash.throttle": "^4.1.1", + "popper.js": "^1.14.6", + "tinycolor2": "^1.4.1", + "v-click-outside-x": "^3.5.6" + }, + "engines": { + "node": ">=8.9.1", + "npm": ">=5.5.1", + "yarn": ">=1.3.2" + }, + "peerDependencies": { + "vue": "^2.5.2" + } + }, + "node_modules/gq-plus/node_modules/axios": { + "version": "0.15.3", + "resolved": "https://registry.npm.taobao.org/axios/download/axios-0.15.3.tgz", + "integrity": "sha1-LJ1jiy4ZGgjqHWzJiOrda6W9wFM=", + "deprecated": "Critical security vulnerability fixed in v0.21.1. For more information, see https://github.com/axios/axios/pull/3410", + "dependencies": { + "follow-redirects": "1.0.0" + } + }, + "node_modules/gq-plus/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/gq-plus/node_modules/follow-redirects": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/follow-redirects/download/follow-redirects-1.0.0.tgz?cache=0&sync_timestamp=1592518281721&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffollow-redirects%2Fdownload%2Ffollow-redirects-1.0.0.tgz", + "integrity": "sha1-jjQpjL0uF28lTv/sdaHHjMhJ/Tc=", + "dependencies": { + "debug": "^2.2.0" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.2.4.tgz?cache=0&sync_timestamp=1588086924019&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fgraceful-fs%2Fdownload%2Fgraceful-fs-4.2.4.tgz", + "integrity": "sha1-Ila94U02MpWMRl68ltxGfKB6Kfs=", + "dev": true + }, + "node_modules/growl": { + "version": "1.10.5", + "resolved": "https://registry.npm.taobao.org/growl/download/growl-1.10.5.tgz", + "integrity": "sha1-8nNdwig2dPpnR4sQGBBZNVw2nl4=", + "dev": true, + "engines": { + "node": ">=4.x" + } + }, + "node_modules/gzip-size": { + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/gzip-size/download/gzip-size-5.1.1.tgz", + "integrity": "sha1-y5vuaS+HwGErIyhAqHOQTkwTUnQ=", + "dev": true, + "dependencies": { + "duplexer": "^0.1.1", + "pify": "^4.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/handle-thing/download/handle-thing-2.0.1.tgz", + "integrity": "sha1-hX95zjWVgMNA1DCBzGSJcNC7I04=", + "dev": true + }, + "node_modules/har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/har-schema/download/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npm.taobao.org/har-validator/download/har-validator-5.1.3.tgz", + "integrity": "sha1-HvievT5JllV2de7ZiTEQ3DUPoIA=", + "deprecated": "this library is no longer supported", + "dev": true, + "dependencies": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/has/download/has-1.0.3.tgz", + "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/has-ansi/download/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/has-symbols/download/has-symbols-1.0.1.tgz", + "integrity": "sha1-n1IUdYpEGWxAbZvXbOv4HsLdMeg=", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-value": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/has-value/download/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "dependencies": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/has-values/download/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/hash-base/download/hash-base-3.1.0.tgz", + "integrity": "sha1-VcOB2eBuHSmXqIO0o/3f5/DTrzM=", + "dev": true, + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash-base/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz", + "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/hash-base/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.1.tgz", + "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=", + "dev": true, + "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/hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/hash-sum/download/hash-sum-1.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhash-sum%2Fdownload%2Fhash-sum-1.0.2.tgz", + "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=", + "dev": true + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npm.taobao.org/hash.js/download/hash.js-1.1.7.tgz", + "integrity": "sha1-C6vKU46NTuSg+JiNaIZlN6ADz0I=", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/hawk": { + "version": "3.1.3", + "resolved": "https://registry.npm.taobao.org/hawk/download/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "deprecated": "This module moved to @hapi/hawk. Please make sure to switch over as this distribution is no longer supported and may contain bugs and critical security issues.", + "dev": true, + "optional": true, + "dependencies": { + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x", + "sntp": "1.x.x" + }, + "engines": { + "node": ">=0.10.32" + } + }, + "node_modules/he": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/he/download/he-1.1.1.tgz", + "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/hex-color-regex": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/hex-color-regex/download/hex-color-regex-1.1.0.tgz", + "integrity": "sha1-TAb8y0YC/iYCs8k9+C1+fb8aio4=", + "dev": true + }, + "node_modules/highlight.js": { + "version": "9.18.1", + "resolved": "https://registry.npm.taobao.org/highlight.js/download/highlight.js-9.18.1.tgz", + "integrity": "sha1-7SGqAB/mJSuxCj121HVzxlOf4Tw=", + "deprecated": "Version no longer supported. Upgrade to @latest", + "engines": { + "node": "*" + } + }, + "node_modules/highlight.js-async-webpack": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/highlight.js-async-webpack/download/highlight.js-async-webpack-1.0.4.tgz", + "integrity": "sha1-wGtnv5nwSQRdYrdW5YVbCRLsYWw=" + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/hmac-drbg/download/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/hoek": { + "version": "2.16.3", + "resolved": "https://registry.npm.taobao.org/hoek/download/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", + "deprecated": "This version has been deprecated in accordance with the hapi support policy (hapi.im/support). Please upgrade to the latest version to get the best features, bug fixes, and security patches. If you are unable to upgrade at this time, paid support is available for older versions (hapi.im/commercial).", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.40" + } + }, + "node_modules/hoopy": { + "version": "0.1.4", + "resolved": "https://registry.npm.taobao.org/hoopy/download/hoopy-0.1.4.tgz", + "integrity": "sha1-YJIH1mEQADOpqUAq096mdzgcGx0=", + "dev": true, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npm.taobao.org/hosted-git-info/download/hosted-git-info-2.8.8.tgz?cache=0&sync_timestamp=1594428020608&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhosted-git-info%2Fdownload%2Fhosted-git-info-2.8.8.tgz", + "integrity": "sha1-dTm9S8Hg4KiVgVouAmJCCxKFhIg=", + "dev": true + }, + "node_modules/hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npm.taobao.org/hpack.js/download/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "node_modules/hsl-regex": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/hsl-regex/download/hsl-regex-1.0.0.tgz", + "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", + "dev": true + }, + "node_modules/hsla-regex": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/hsla-regex/download/hsla-regex-1.0.0.tgz", + "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", + "dev": true + }, + "node_modules/html-comment-regex": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/html-comment-regex/download/html-comment-regex-1.1.2.tgz", + "integrity": "sha1-l9RoiutcgYhqNk+qDK0d2hTUM6c=", + "dev": true + }, + "node_modules/html-encoding-sniffer": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/html-encoding-sniffer/download/html-encoding-sniffer-1.0.2.tgz", + "integrity": "sha1-5w2EuU2lOqN14R/jo1G+ZkLKRvg=", + "dev": true, + "dependencies": { + "whatwg-encoding": "^1.0.1" + } + }, + "node_modules/html-entities": { + "version": "1.3.1", + "resolved": "https://registry.npm.taobao.org/html-entities/download/html-entities-1.3.1.tgz", + "integrity": "sha1-+5oaS1sUxdq6gtPjTGrk/nAaDkQ=", + "dev": true + }, + "node_modules/html-minifier": { + "version": "3.5.21", + "resolved": "https://registry.npm.taobao.org/html-minifier/download/html-minifier-3.5.21.tgz", + "integrity": "sha1-0AQOBUcw41TbAIRjWTGUAVIS0gw=", + "dev": true, + "dependencies": { + "camel-case": "3.0.x", + "clean-css": "4.2.x", + "commander": "2.17.x", + "he": "1.2.x", + "param-case": "2.1.x", + "relateurl": "0.2.x", + "uglify-js": "3.4.x" + }, + "bin": { + "html-minifier": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/html-minifier/node_modules/commander": { + "version": "2.17.1", + "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.17.1.tgz?cache=0&sync_timestamp=1595168173997&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.17.1.tgz", + "integrity": "sha1-vXerfebelCBc6sxy8XFtKfIKd78=", + "dev": true + }, + "node_modules/html-minifier/node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/he/download/he-1.2.0.tgz", + "integrity": "sha1-hK5l+n6vsWX922FWauFLrwVmTw8=", + "dev": true, + "bin": { + "he": "bin/he" + } + }, + "node_modules/html-minifier/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/html-minifier/node_modules/uglify-js": { + "version": "3.4.10", + "resolved": "https://registry.npm.taobao.org/uglify-js/download/uglify-js-3.4.10.tgz?cache=0&sync_timestamp=1592744803278&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fuglify-js%2Fdownload%2Fuglify-js-3.4.10.tgz", + "integrity": "sha1-mtlWPY6zrN+404WX0q8dgV9qdV8=", + "dev": true, + "dependencies": { + "commander": "~2.19.0", + "source-map": "~0.6.1" + }, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/html-minifier/node_modules/uglify-js/node_modules/commander": { + "version": "2.19.0", + "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.19.0.tgz?cache=0&sync_timestamp=1595168173997&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.19.0.tgz", + "integrity": "sha1-9hmKqE5bg8RgVLlN3tv+1e6f8So=", + "dev": true + }, + "node_modules/html-tags": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/html-tags/download/html-tags-2.0.0.tgz", + "integrity": "sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/html-webpack-plugin": { + "version": "3.2.0", + "resolved": "https://registry.npm.taobao.org/html-webpack-plugin/download/html-webpack-plugin-3.2.0.tgz?cache=0&sync_timestamp=1588268411154&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-webpack-plugin%2Fdownload%2Fhtml-webpack-plugin-3.2.0.tgz", + "integrity": "sha1-sBq71yOsqqeze2r0SS69oD2d03s=", + "deprecated": "3.x is no longer supported", + "dev": true, + "dependencies": { + "html-minifier": "^3.2.3", + "loader-utils": "^0.2.16", + "lodash": "^4.17.3", + "pretty-error": "^2.0.2", + "tapable": "^1.0.0", + "toposort": "^1.0.0", + "util.promisify": "1.0.0" + }, + "engines": { + "node": ">=6.9" + }, + "peerDependencies": { + "webpack": "^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0" + } + }, + "node_modules/html-webpack-plugin/node_modules/big.js": { + "version": "3.2.0", + "resolved": "https://registry.npm.taobao.org/big.js/download/big.js-3.2.0.tgz", + "integrity": "sha1-pfwpi4G54Nyi5FiCR4S2XFK6WI4=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/html-webpack-plugin/node_modules/emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/emojis-list/download/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/html-webpack-plugin/node_modules/json5": { + "version": "0.5.1", + "resolved": "https://registry.npm.taobao.org/json5/download/json5-0.5.1.tgz?cache=0&sync_timestamp=1586046271069&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/html-webpack-plugin/node_modules/loader-utils": { + "version": "0.2.17", + "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-0.2.17.tgz", + "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", + "dev": true, + "dependencies": { + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0", + "object-assign": "^4.0.1" + } + }, + "node_modules/html-webpack-plugin/node_modules/util.promisify": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/util.promisify/download/util.promisify-1.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Futil.promisify%2Fdownload%2Futil.promisify-1.0.0.tgz", + "integrity": "sha1-RA9xZaRZyaFtwUXrjnLzVocJcDA=", + "dev": true, + "dependencies": { + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" + } + }, + "node_modules/html2canvas": { + "version": "1.0.0-rc.5", + "resolved": "https://registry.npm.taobao.org/html2canvas/download/html2canvas-1.0.0-rc.5.tgz", + "integrity": "sha1-TuPKyfbiCg+gwvNab5nJYK5+xME=", + "dependencies": { + "css-line-break": "1.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npm.taobao.org/htmlparser2/download/htmlparser2-3.10.1.tgz", + "integrity": "sha1-vWedw/WYl7ajS7EHSchVu1OpOS8=", + "dev": true, + "dependencies": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + } + }, + "node_modules/htmlparser2/node_modules/entities": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/entities/download/entities-1.1.2.tgz?cache=0&sync_timestamp=1591227679482&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fentities%2Fdownload%2Fentities-1.1.2.tgz", + "integrity": "sha1-vfpzUplmTfr9NFKe1PhSKidf6lY=", + "dev": true + }, + "node_modules/htmlparser2/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz", + "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npm.taobao.org/http-deceiver/download/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", + "dev": true + }, + "node_modules/http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npm.taobao.org/http-errors/download/http-errors-1.7.2.tgz?cache=0&sync_timestamp=1593407710477&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.7.2.tgz", + "integrity": "sha1-T1ApzxMjnzEDblsuVSkrz7zIXI8=", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-errors/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "node_modules/http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npm.taobao.org/http-proxy/download/http-proxy-1.18.1.tgz", + "integrity": "sha1-QBVB8FNIhLv5UmAzTnL4juOXZUk=", + "dev": true, + "dependencies": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/http-proxy-middleware": { + "version": "0.19.1", + "resolved": "https://registry.npm.taobao.org/http-proxy-middleware/download/http-proxy-middleware-0.19.1.tgz?cache=0&sync_timestamp=1594312982456&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-proxy-middleware%2Fdownload%2Fhttp-proxy-middleware-0.19.1.tgz", + "integrity": "sha1-GDx9xKoUeRUDBkmMIQza+WCApDo=", + "dev": true, + "dependencies": { + "http-proxy": "^1.17.0", + "is-glob": "^4.0.0", + "lodash": "^4.17.11", + "micromatch": "^3.1.10" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/http-signature/download/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "dependencies": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/https-browserify/download/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true + }, + "node_modules/human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/human-signals/download/human-signals-1.1.1.tgz?cache=0&sync_timestamp=1584198662293&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhuman-signals%2Fdownload%2Fhuman-signals-1.1.1.tgz", + "integrity": "sha1-xbHNFPUK6uCatsWf5jujOV/k36M=", + "dev": true, + "engines": { + "node": ">=8.12.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.4.24.tgz", + "integrity": "sha1-ICK0sl+93CHS9SSXSkdKr+czkIs=", + "dev": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-replace-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/icss-replace-symbols/download/icss-replace-symbols-1.1.0.tgz", + "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", + "dev": true + }, + "node_modules/icss-utils": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/icss-utils/download/icss-utils-2.1.0.tgz", + "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", + "dev": true, + "dependencies": { + "postcss": "^6.0.1" + } + }, + "node_modules/icss-utils/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/icss-utils/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/icss-utils/node_modules/postcss": { + "version": "6.0.23", + "resolved": "https://registry.npm.taobao.org/postcss/download/postcss-6.0.23.tgz?cache=0&sync_timestamp=1591102414113&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-6.0.23.tgz", + "integrity": "sha1-YcgswyisYOZ3ZF+XkFTrmLwOMyQ=", + "dev": true, + "dependencies": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/icss-utils/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/icss-utils/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ieee754": { + "version": "1.1.13", + "resolved": "https://registry.npm.taobao.org/ieee754/download/ieee754-1.1.13.tgz", + "integrity": "sha1-7BaFWOlaoYH9h9N/VcMrvLZwi4Q=", + "dev": true + }, + "node_modules/iferr": { + "version": "0.1.5", + "resolved": "https://registry.npm.taobao.org/iferr/download/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true + }, + "node_modules/ignore": { + "version": "3.3.10", + "resolved": "https://registry.npm.taobao.org/ignore/download/ignore-3.3.10.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fignore%2Fdownload%2Fignore-3.3.10.tgz", + "integrity": "sha1-Cpf7h2mG6AgcYxFg+PnziRV/AEM=", + "dev": true + }, + "node_modules/image-size": { + "version": "0.5.5", + "resolved": "https://registry.npm.taobao.org/image-size/download/image-size-0.5.5.tgz", + "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", + "dev": true, + "optional": true, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/import-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/import-cwd/download/import-cwd-2.1.0.tgz", + "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", + "dev": true, + "dependencies": { + "import-from": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/import-fresh/download/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "dev": true, + "dependencies": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-fresh/node_modules/caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/caller-path/download/caller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "dev": true, + "dependencies": { + "caller-callsite": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-fresh/node_modules/resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-from": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/import-from/download/import-from-2.1.0.tgz", + "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", + "dev": true, + "dependencies": { + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-from/node_modules/resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/import-local": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/import-local/download/import-local-2.0.0.tgz", + "integrity": "sha1-VQcL44pZk88Y72236WH1vuXFoJ0=", + "dev": true, + "dependencies": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npm.taobao.org/imurmurhash/download/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/indent-string/download/indent-string-4.0.0.tgz", + "integrity": "sha1-Yk+PRJfWGbLZdoUx1Y9BIoVNclE=", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/indexes-of/download/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true + }, + "node_modules/infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/infer-owner/download/infer-owner-1.0.4.tgz", + "integrity": "sha1-xM78qo5RBRwqQLos6KPScpWvlGc=", + "dev": true + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.4.tgz", + "integrity": "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=" + }, + "node_modules/ini": { + "version": "1.3.5", + "resolved": "https://registry.npm.taobao.org/ini/download/ini-1.3.5.tgz", + "integrity": "sha1-7uJfVtscnsYIXgwid4CD9Zar+Sc=", + "deprecated": "Please update to ini >=1.3.6 to avoid a prototype pollution issue", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/inquirer": { + "version": "3.3.0", + "resolved": "https://registry.npm.taobao.org/inquirer/download/inquirer-3.3.0.tgz?cache=0&sync_timestamp=1594661205347&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finquirer%2Fdownload%2Finquirer-3.3.0.tgz", + "integrity": "sha1-ndLyrXZdyrH/BEO0kUQqILoifck=", + "dev": true, + "dependencies": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.4", + "figures": "^2.0.0", + "lodash": "^4.3.0", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" + } + }, + "node_modules/inquirer/node_modules/ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/inquirer/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/inquirer/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/inquirer/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/inquirer/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/internal-ip": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/internal-ip/download/internal-ip-4.3.0.tgz", + "integrity": "sha1-hFRSuq2dLKO2nGNaE3rLmg2tCQc=", + "dev": true, + "dependencies": { + "default-gateway": "^4.2.0", + "ipaddr.js": "^1.9.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/internal-ip/node_modules/default-gateway": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/default-gateway/download/default-gateway-4.2.0.tgz?cache=0&sync_timestamp=1590419212936&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefault-gateway%2Fdownload%2Fdefault-gateway-4.2.0.tgz", + "integrity": "sha1-FnEEx1AMIRX23WmwpTa7jtcgVSs=", + "dev": true, + "dependencies": { + "execa": "^1.0.0", + "ip-regex": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npm.taobao.org/interpret/download/interpret-1.4.0.tgz", + "integrity": "sha1-Zlq4vE2iendKQFhOgS4+D6RbGh4=", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/invariant": { + "version": "2.2.4", + "resolved": "https://registry.npm.taobao.org/invariant/download/invariant-2.2.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finvariant%2Fdownload%2Finvariant-2.2.4.tgz", + "integrity": "sha1-YQ88ksk1nOHbYW5TgAjSP/NRWOY=", + "dev": true, + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/invert-kv": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/invert-kv/download/invert-kv-2.0.0.tgz?cache=0&sync_timestamp=1589565904735&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finvert-kv%2Fdownload%2Finvert-kv-2.0.0.tgz", + "integrity": "sha1-c5P1r6Weyf9fZ6J2INEcIm4+7AI=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ip": { + "version": "1.1.5", + "resolved": "https://registry.npm.taobao.org/ip/download/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + }, + "node_modules/ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/ip-regex/download/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npm.taobao.org/ipaddr.js/download/ipaddr.js-1.9.1.tgz", + "integrity": "sha1-v/OFQ+64mEglB5/zoqjmy9RngbM=", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/is-absolute-url/download/is-absolute-url-2.1.0.tgz", + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-arguments": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/is-arguments/download/is-arguments-1.0.4.tgz", + "integrity": "sha1-P6+WbHy6D/Q3+zH2JQCC/PBEjPM=", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-2.1.0.tgz", + "integrity": "sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=", + "dev": true, + "optional": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz", + "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=" + }, + "node_modules/is-callable": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/is-callable/download/is-callable-1.2.0.tgz?cache=0&sync_timestamp=1591427607174&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-callable%2Fdownload%2Fis-callable-1.2.0.tgz", + "integrity": "sha1-gzNlYLVKOONeOi33r9BFTWkUaLs=", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-ci": { + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/is-ci/download/is-ci-1.2.1.tgz", + "integrity": "sha1-43ecjuF/zPQoSI9uKBGH8uYyhBw=", + "dev": true, + "dependencies": { + "ci-info": "^1.5.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-color-stop": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/is-color-stop/download/is-color-stop-1.1.0.tgz", + "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", + "dev": true, + "dependencies": { + "css-color-names": "^0.0.4", + "hex-color-regex": "^1.1.0", + "hsl-regex": "^1.0.0", + "hsla-regex": "^1.0.0", + "rgb-regex": "^1.0.1", + "rgba-regex": "^1.0.0" + } + }, + "node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/is-date-object/download/is-date-object-1.0.2.tgz?cache=0&sync_timestamp=1576729182289&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-date-object%2Fdownload%2Fis-date-object-1.0.2.tgz", + "integrity": "sha1-vac28s2P0G0yhE53Q7+nSUw7/X4=", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-0.1.6.tgz", + "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-descriptor/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-5.1.0.tgz", + "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npm.taobao.org/is-directory/download/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-docker": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/is-docker/download/is-docker-2.0.0.tgz", + "integrity": "sha1-LLDfDnXi0GT+GGTDfN6st7Lc8ls=", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/is-extendable/download/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-finite": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/is-finite/download/is-finite-1.1.0.tgz", + "integrity": "sha1-kEE1x3+0LAZB1qobzbxNqo2ggvM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-4.0.1.tgz", + "integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/is-obj/download/is-obj-2.0.0.tgz", + "integrity": "sha1-Rz+wXZc3BeP9liBUUBjKjiLvSYI=", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-observable": { + "version": "0.2.0", + "resolved": "https://registry.npm.taobao.org/is-observable/download/is-observable-0.2.0.tgz", + "integrity": "sha1-s2ExHYPG5dcmyr9eJQsCNxBvWuI=", + "dev": true, + "dependencies": { + "symbol-observable": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/is-path-cwd/download/is-path-cwd-2.2.0.tgz", + "integrity": "sha1-Z9Q7gmZKe1GR/ZEZEn6zAASKn9s=", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-in-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/is-path-in-cwd/download/is-path-in-cwd-2.1.0.tgz", + "integrity": "sha1-v+Lcomxp85cmWkAJljYCk1oFOss=", + "dev": true, + "dependencies": { + "is-path-inside": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/is-path-inside/download/is-path-inside-2.1.0.tgz", + "integrity": "sha1-fJgQWH1lmkDSe8201WFuqwWUlLI=", + "dev": true, + "dependencies": { + "path-is-inside": "^1.0.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/is-plain-obj/download/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/is-plain-object/download/is-plain-object-2.0.4.tgz?cache=0&sync_timestamp=1595290593289&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-plain-object%2Fdownload%2Fis-plain-object-2.0.4.tgz", + "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npm.taobao.org/is-promise/download/is-promise-2.2.2.tgz?cache=0&sync_timestamp=1588001830257&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-promise%2Fdownload%2Fis-promise-2.2.2.tgz", + "integrity": "sha1-OauVnMv5p3TPB597QMeib3YxNfE=", + "dev": true + }, + "node_modules/is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/is-regex/download/is-regex-1.0.5.tgz", + "integrity": "sha1-OdWJo1i/GJZ/cmlnEguPwa7XTq4=", + "dependencies": { + "has": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-regexp/download/is-regexp-1.0.0.tgz", + "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/is-resolvable/download/is-resolvable-1.1.0.tgz", + "integrity": "sha1-+xj4fOH+uSUWnJpAfBkxijIG7Yg=", + "dev": true + }, + "node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/is-stream/download/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-string": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/is-string/download/is-string-1.0.5.tgz", + "integrity": "sha1-QEk+0ZjvP/R3uMf5L2ROyCpc06Y=", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-svg": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/is-svg/download/is-svg-3.0.0.tgz", + "integrity": "sha1-kyHb0pwhLlypnE+peUxxS8r6L3U=", + "dev": true, + "dependencies": { + "html-comment-regex": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/is-symbol/download/is-symbol-1.0.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-symbol%2Fdownload%2Fis-symbol-1.0.3.tgz", + "integrity": "sha1-OOEBS55jKb4N6dJKQU/XRB7GGTc=", + "dependencies": { + "has-symbols": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "node_modules/is-whitespace": { + "version": "0.3.0", + "resolved": "https://registry.npm.taobao.org/is-whitespace/download/is-whitespace-0.3.0.tgz", + "integrity": "sha1-Fjnssb4DauxppUy7QBz77XEUq38=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/is-windows/download/is-windows-1.0.2.tgz", + "integrity": "sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/is-wsl/download/is-wsl-1.1.0.tgz?cache=0&sync_timestamp=1588494180082&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-wsl%2Fdownload%2Fis-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/isexe/download/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/isstream": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/isstream/download/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "node_modules/iview": { + "version": "3.5.4", + "resolved": "https://registry.npm.taobao.org/iview/download/iview-3.5.4.tgz", + "integrity": "sha1-1Ra5LnO2F/Lcf0WDH5kFnWmTL4I=", + "dependencies": { + "async-validator": "^1.12.2", + "deepmerge": "^2.2.1", + "element-resize-detector": "^1.2.0", + "js-calendar": "^1.2.3", + "lodash.throttle": "^4.1.1", + "popper.js": "^1.14.6", + "tinycolor2": "^1.4.1", + "v-click-outside-x": "^4.0.19" + }, + "engines": { + "node": ">=8.9.1", + "npm": ">=5.5.1", + "yarn": ">=1.3.2" + }, + "peerDependencies": { + "vue": "^2.5.2" + } + }, + "node_modules/iview/node_modules/v-click-outside-x": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/v-click-outside-x/download/v-click-outside-x-4.1.0.tgz?cache=0&sync_timestamp=1579043108278&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fv-click-outside-x%2Fdownload%2Fv-click-outside-x-4.1.0.tgz", + "integrity": "sha1-voJmgOLSVmaooYUzKSnUYkSqJEc=", + "engines": { + "node": ">=8.11.4", + "npm": ">=6.10.1" + } + }, + "node_modules/javascript-stringify": { + "version": "1.6.0", + "resolved": "https://registry.npm.taobao.org/javascript-stringify/download/javascript-stringify-1.6.0.tgz", + "integrity": "sha1-FC0RHzpuPa6PSpr9d9RYVbWpzOM=", + "dev": true + }, + "node_modules/jest-get-type": { + "version": "21.2.0", + "resolved": "https://registry.npm.taobao.org/jest-get-type/download/jest-get-type-21.2.0.tgz", + "integrity": "sha1-9jdqudtLYNgeOfMHScbEZvQNSiM=", + "dev": true + }, + "node_modules/jest-validate": { + "version": "21.2.1", + "resolved": "https://registry.npm.taobao.org/jest-validate/download/jest-validate-21.2.1.tgz?cache=0&sync_timestamp=1592925336825&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-validate%2Fdownload%2Fjest-validate-21.2.1.tgz", + "integrity": "sha1-zAy8plPNVJN7pPKhEXlndFMN08c=", + "dev": true, + "dependencies": { + "chalk": "^2.0.1", + "jest-get-type": "^21.2.0", + "leven": "^2.1.0", + "pretty-format": "^21.2.1" + } + }, + "node_modules/jest-validate/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-validate/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jest-validate/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/jquery": { + "version": "2.2.4", + "resolved": "https://registry.npm.taobao.org/jquery/download/jquery-2.2.4.tgz", + "integrity": "sha1-LInWiJterFIqfuoywUUhVZxsvwI=" + }, + "node_modules/js-beautify": { + "version": "1.11.0", + "resolved": "https://registry.npm.taobao.org/js-beautify/download/js-beautify-1.11.0.tgz", + "integrity": "sha1-r7hz3EfViYY2AJPctplR6LzV3tI=", + "dev": true, + "dependencies": { + "config-chain": "^1.1.12", + "editorconfig": "^0.15.3", + "glob": "^7.1.3", + "mkdirp": "~1.0.3", + "nopt": "^4.0.3" + }, + "bin": { + "css-beautify": "js/bin/css-beautify.js", + "html-beautify": "js/bin/html-beautify.js", + "js-beautify": "js/bin/js-beautify.js" + } + }, + "node_modules/js-beautify/node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/mkdirp/download/mkdirp-1.0.4.tgz?cache=0&sync_timestamp=1587535418745&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-1.0.4.tgz", + "integrity": "sha1-PrXtYmInVteaXw4qIh3+utdcL34=", + "dev": true, + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/js-calendar": { + "version": "1.2.3", + "resolved": "https://registry.npm.taobao.org/js-calendar/download/js-calendar-1.2.3.tgz", + "integrity": "sha1-pYOwZEtOaVujlPNE0QPbzHp6fT4=" + }, + "node_modules/js-cookie": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/js-cookie/download/js-cookie-2.2.1.tgz", + "integrity": "sha1-aeEG3F1YBolFYpAqpbrsN0Tpsrg=" + }, + "node_modules/js-levenshtein": { + "version": "1.1.6", + "resolved": "https://registry.npm.taobao.org/js-levenshtein/download/js-levenshtein-1.1.6.tgz", + "integrity": "sha1-xs7ljrNVA3LfjeuF+tXOZs4B1Z0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/js-message": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/js-message/download/js-message-1.0.5.tgz", + "integrity": "sha1-IwDSSxrwjondCVvBpMnJz8uJLRU=", + "dev": true, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/js-queue": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/js-queue/download/js-queue-2.0.0.tgz", + "integrity": "sha1-NiITz4YPRo8BJfxslqvBdCUx+Ug=", + "dev": true, + "dependencies": { + "easy-stack": "^1.0.0" + }, + "engines": { + "node": ">=1.0.0" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/js-tokens/download/js-tokens-4.0.0.tgz", + "integrity": "sha1-GSA/tZmR35jjoocFDUZHzerzJJk=", + "dev": true + }, + "node_modules/js-yaml": { + "version": "3.14.0", + "resolved": "https://registry.npm.taobao.org/js-yaml/download/js-yaml-3.14.0.tgz?cache=0&sync_timestamp=1590172122543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-yaml%2Fdownload%2Fjs-yaml-3.14.0.tgz", + "integrity": "sha1-p6NBcPJqIbsWJCTYray0ETpp5II=", + "dev": true, + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/jsbn/download/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "node_modules/jsdom": { + "version": "13.2.0", + "resolved": "https://registry.npm.taobao.org/jsdom/download/jsdom-13.2.0.tgz?cache=0&sync_timestamp=1594341172783&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsdom%2Fdownload%2Fjsdom-13.2.0.tgz", + "integrity": "sha1-saDb2twlVDUmK+jqNyPS26DX6zo=", + "dev": true, + "dependencies": { + "abab": "^2.0.0", + "acorn": "^6.0.4", + "acorn-globals": "^4.3.0", + "array-equal": "^1.0.0", + "cssom": "^0.3.4", + "cssstyle": "^1.1.1", + "data-urls": "^1.1.0", + "domexception": "^1.0.1", + "escodegen": "^1.11.0", + "html-encoding-sniffer": "^1.0.2", + "nwsapi": "^2.0.9", + "parse5": "5.1.0", + "pn": "^1.1.0", + "request": "^2.88.0", + "request-promise-native": "^1.0.5", + "saxes": "^3.1.5", + "symbol-tree": "^3.2.2", + "tough-cookie": "^2.5.0", + "w3c-hr-time": "^1.0.1", + "w3c-xmlserializer": "^1.0.1", + "webidl-conversions": "^4.0.2", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^7.0.0", + "ws": "^6.1.2", + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jsdom-global": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/jsdom-global/download/jsdom-global-3.0.2.tgz", + "integrity": "sha1-a9KZwTsMRiay2iwDk81DhdYGrLk=", + "dev": true, + "peerDependencies": { + "jsdom": ">=10.0.0" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npm.taobao.org/jsesc/download/jsesc-2.5.2.tgz", + "integrity": "sha1-gFZNLkg9rPbo7yCWUKZ98/DCg6Q=", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/json-parse-better-errors/download/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha1-u4Z8+zRQ5pEHwTHRxRS6s9yLyqk=", + "dev": true + }, + "node_modules/json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npm.taobao.org/json-schema/download/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz", + "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=", + "dev": true + }, + "node_modules/json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/json-stable-stringify/download/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "dev": true, + "optional": true, + "dependencies": { + "jsonify": "~0.0.0" + } + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/json-stable-stringify-without-jsonify/download/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npm.taobao.org/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "node_modules/json2module": { + "version": "0.0.3", + "resolved": "https://registry.npm.taobao.org/json2module/download/json2module-0.0.3.tgz", + "integrity": "sha1-APtfSpt638PwZHwpyxe80Zeb6bI=", + "dependencies": { + "rw": "^1.3.2" + }, + "bin": { + "json2module": "bin/json2module" + } + }, + "node_modules/json3": { + "version": "3.3.3", + "resolved": "https://registry.npm.taobao.org/json3/download/json3-3.3.3.tgz", + "integrity": "sha1-f8EON1/FrkLEcFpcwKpvYr4wW4E=", + "dev": true + }, + "node_modules/json5": { + "version": "2.1.3", + "resolved": "https://registry.npm.taobao.org/json5/download/json5-2.1.3.tgz?cache=0&sync_timestamp=1586046271069&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-2.1.3.tgz", + "integrity": "sha1-ybD3+pIzv+WAf+ZvzzpWF+1ZfUM=", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/jsonfile/download/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "optionalDependencies": { + "graceful-fs": "^4.1.6" + } + }, + "node_modules/jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npm.taobao.org/jsonify/download/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "dev": true, + "optional": true, + "engines": { + "node": "*" + } + }, + "node_modules/jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npm.taobao.org/jsprim/download/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "node_modules/killable": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/killable/download/killable-1.0.1.tgz", + "integrity": "sha1-TIzkQRh6Bhx0dPuHygjipjgZSJI=", + "dev": true + }, + "node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/launch-editor": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/launch-editor/download/launch-editor-2.2.1.tgz", + "integrity": "sha1-hxtaPuOdZoD8wm03kwtu7aidsMo=", + "dev": true, + "dependencies": { + "chalk": "^2.3.0", + "shell-quote": "^1.6.1" + } + }, + "node_modules/launch-editor-middleware": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/launch-editor-middleware/download/launch-editor-middleware-2.2.1.tgz", + "integrity": "sha1-4UsH5scVSwpLhqD9NFeE5FgEwVc=", + "dev": true, + "dependencies": { + "launch-editor": "^2.2.1" + } + }, + "node_modules/launch-editor/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/launch-editor/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/launch-editor/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/lazy-cache/download/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/lcid": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/lcid/download/lcid-2.0.0.tgz", + "integrity": "sha1-bvXS32DlL4LrIopMNz6NHzlyU88=", + "dev": true, + "dependencies": { + "invert-kv": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/less": { + "version": "2.7.3", + "resolved": "https://registry.npm.taobao.org/less/download/less-2.7.3.tgz?cache=0&sync_timestamp=1594913896834&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fless%2Fdownload%2Fless-2.7.3.tgz", + "integrity": "sha1-zBJg9RyQCp7A2R+2mYE54CUHtjs=", + "dev": true, + "bin": { + "lessc": "bin/lessc" + }, + "engines": { + "node": ">=0.12" + }, + "optionalDependencies": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "mime": "^1.2.11", + "mkdirp": "^0.5.0", + "promise": "^7.1.1", + "request": "2.81.0", + "source-map": "^0.5.3" + } + }, + "node_modules/less-loader": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/less-loader/download/less-loader-4.1.0.tgz?cache=0&sync_timestamp=1593787586071&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fless-loader%2Fdownload%2Fless-loader-4.1.0.tgz", + "integrity": "sha1-LBNSxbCaT4QQFJAnT9UWdN5BNj4=", + "dev": true, + "dependencies": { + "clone": "^2.1.1", + "loader-utils": "^1.1.0", + "pify": "^3.0.0" + }, + "engines": { + "node": ">= 4.8 < 5.0.0 || >= 5.10" + }, + "peerDependencies": { + "less": "^2.3.1 || ^3.0.0", + "webpack": "^2.0.0 || ^3.0.0 || ^4.0.0" + } + }, + "node_modules/less-loader/node_modules/clone": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/clone/download/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/less-loader/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/less/node_modules/ajv": { + "version": "4.11.8", + "resolved": "https://registry.npm.taobao.org/ajv/download/ajv-4.11.8.tgz", + "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "dev": true, + "optional": true, + "dependencies": { + "co": "^4.6.0", + "json-stable-stringify": "^1.0.1" + } + }, + "node_modules/less/node_modules/assert-plus": { + "version": "0.2.0", + "resolved": "https://registry.npm.taobao.org/assert-plus/download/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/less/node_modules/aws-sign2": { + "version": "0.6.0", + "resolved": "https://registry.npm.taobao.org/aws-sign2/download/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", + "dev": true, + "optional": true, + "engines": { + "node": "*" + } + }, + "node_modules/less/node_modules/form-data": { + "version": "2.1.4", + "resolved": "https://registry.npm.taobao.org/form-data/download/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "dev": true, + "optional": true, + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 0.12" + } + }, + "node_modules/less/node_modules/har-schema": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/har-schema/download/har-schema-1.0.5.tgz", + "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", + "dev": true, + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/less/node_modules/har-validator": { + "version": "4.2.1", + "resolved": "https://registry.npm.taobao.org/har-validator/download/har-validator-4.2.1.tgz", + "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", + "deprecated": "this library is no longer supported", + "dev": true, + "optional": true, + "dependencies": { + "ajv": "^4.9.1", + "har-schema": "^1.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/less/node_modules/http-signature": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/http-signature/download/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "dev": true, + "optional": true, + "dependencies": { + "assert-plus": "^0.2.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + }, + "engines": { + "node": ">=0.8", + "npm": ">=1.3.7" + } + }, + "node_modules/less/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npm.taobao.org/mime/download/mime-1.6.0.tgz?cache=0&sync_timestamp=1590596706367&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-1.6.0.tgz", + "integrity": "sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE=", + "dev": true, + "optional": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/less/node_modules/oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npm.taobao.org/oauth-sign/download/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "dev": true, + "optional": true, + "engines": { + "node": "*" + } + }, + "node_modules/less/node_modules/performance-now": { + "version": "0.2.0", + "resolved": "https://registry.npm.taobao.org/performance-now/download/performance-now-0.2.0.tgz", + "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", + "dev": true, + "optional": true + }, + "node_modules/less/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true, + "optional": true + }, + "node_modules/less/node_modules/qs": { + "version": "6.4.0", + "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.4.0.tgz", + "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/less/node_modules/request": { + "version": "2.81.0", + "resolved": "https://registry.npm.taobao.org/request/download/request-2.81.0.tgz?cache=0&sync_timestamp=1581439006948&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frequest%2Fdownload%2Frequest-2.81.0.tgz", + "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "dev": true, + "optional": true, + "dependencies": { + "aws-sign2": "~0.6.0", + "aws4": "^1.2.1", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.0", + "forever-agent": "~0.6.1", + "form-data": "~2.1.1", + "har-validator": "~4.2.1", + "hawk": "~3.1.3", + "http-signature": "~1.1.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.7", + "oauth-sign": "~0.8.1", + "performance-now": "^0.2.0", + "qs": "~6.4.0", + "safe-buffer": "^5.0.1", + "stringstream": "~0.0.4", + "tough-cookie": "~2.3.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.0.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/less/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/less/node_modules/tough-cookie": { + "version": "2.3.4", + "resolved": "https://registry.npm.taobao.org/tough-cookie/download/tough-cookie-2.3.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftough-cookie%2Fdownload%2Ftough-cookie-2.3.4.tgz", + "integrity": "sha1-7GDO44rGdQY//JelwYlwV47oNlU=", + "dev": true, + "optional": true, + "dependencies": { + "punycode": "^1.4.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/leven": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/leven/download/leven-2.1.0.tgz", + "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npm.taobao.org/lines-and-columns/download/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "dev": true + }, + "node_modules/lint-staged": { + "version": "6.1.1", + "resolved": "https://registry.npm.taobao.org/lint-staged/download/lint-staged-6.1.1.tgz?cache=0&sync_timestamp=1592387031001&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flint-staged%2Fdownload%2Flint-staged-6.1.1.tgz", + "integrity": "sha1-zQjE2bjMwtNxmNHEfOd9Ir5s8yQ=", + "dev": true, + "dependencies": { + "app-root-path": "^2.0.0", + "chalk": "^2.1.0", + "commander": "^2.11.0", + "cosmiconfig": "^4.0.0", + "debug": "^3.1.0", + "dedent": "^0.7.0", + "execa": "^0.8.0", + "find-parent-dir": "^0.3.0", + "is-glob": "^4.0.0", + "jest-validate": "^21.1.0", + "listr": "^0.13.0", + "lodash": "^4.17.4", + "log-symbols": "^2.0.0", + "minimatch": "^3.0.0", + "npm-which": "^3.0.1", + "p-map": "^1.1.1", + "path-is-inside": "^1.0.2", + "pify": "^3.0.0", + "staged-git-files": "1.0.0", + "stringify-object": "^3.2.0" + }, + "bin": { + "lint-staged": "index.js" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/lint-staged/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/lint-staged/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/lint-staged/node_modules/cosmiconfig": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/cosmiconfig/download/cosmiconfig-4.0.0.tgz", + "integrity": "sha1-dgORVJWAu9LfHlYrwXexPCkJctw=", + "dev": true, + "dependencies": { + "is-directory": "^0.3.1", + "js-yaml": "^3.9.0", + "parse-json": "^4.0.0", + "require-from-string": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/lint-staged/node_modules/cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "dependencies": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "node_modules/lint-staged/node_modules/execa": { + "version": "0.8.0", + "resolved": "https://registry.npm.taobao.org/execa/download/execa-0.8.0.tgz?cache=0&sync_timestamp=1594145237072&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-0.8.0.tgz", + "integrity": "sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=", + "dev": true, + "dependencies": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/lint-staged/node_modules/get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/lint-staged/node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz?cache=0&sync_timestamp=1594427569171&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-4.1.5.tgz", + "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=", + "dev": true, + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/lint-staged/node_modules/p-map": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/p-map/download/p-map-1.2.0.tgz", + "integrity": "sha1-5OlPMR6rvIYzoeeZCBZfyiYkG2s=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/lint-staged/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/lint-staged/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/lint-staged/node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + }, + "node_modules/listr": { + "version": "0.13.0", + "resolved": "https://registry.npm.taobao.org/listr/download/listr-0.13.0.tgz", + "integrity": "sha1-ILsLowuuZg7oTMBQPfS+PVYjiH0=", + "dev": true, + "dependencies": { + "chalk": "^1.1.3", + "cli-truncate": "^0.2.1", + "figures": "^1.7.0", + "indent-string": "^2.1.0", + "is-observable": "^0.2.0", + "is-promise": "^2.1.0", + "is-stream": "^1.1.0", + "listr-silent-renderer": "^1.1.1", + "listr-update-renderer": "^0.4.0", + "listr-verbose-renderer": "^0.4.0", + "log-symbols": "^1.0.2", + "log-update": "^1.0.2", + "ora": "^0.2.3", + "p-map": "^1.1.1", + "rxjs": "^5.4.2", + "stream-to-observable": "^0.2.0", + "strip-ansi": "^3.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/listr-silent-renderer": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/listr-silent-renderer/download/listr-silent-renderer-1.1.1.tgz", + "integrity": "sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/listr-update-renderer": { + "version": "0.4.0", + "resolved": "https://registry.npm.taobao.org/listr-update-renderer/download/listr-update-renderer-0.4.0.tgz", + "integrity": "sha1-NE2YDaLKLosUW6MFkI8yrj9MyKc=", + "dev": true, + "dependencies": { + "chalk": "^1.1.3", + "cli-truncate": "^0.2.1", + "elegant-spinner": "^1.0.1", + "figures": "^1.7.0", + "indent-string": "^3.0.0", + "log-symbols": "^1.0.2", + "log-update": "^1.0.2", + "strip-ansi": "^3.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/listr-update-renderer/node_modules/figures": { + "version": "1.7.0", + "resolved": "https://registry.npm.taobao.org/figures/download/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/listr-update-renderer/node_modules/indent-string": { + "version": "3.2.0", + "resolved": "https://registry.npm.taobao.org/indent-string/download/indent-string-3.2.0.tgz", + "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/listr-update-renderer/node_modules/log-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/log-symbols/download/log-symbols-1.0.2.tgz", + "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", + "dev": true, + "dependencies": { + "chalk": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/listr-verbose-renderer": { + "version": "0.4.1", + "resolved": "https://registry.npm.taobao.org/listr-verbose-renderer/download/listr-verbose-renderer-0.4.1.tgz", + "integrity": "sha1-ggb0z21S3cWCfl/RSYng6WWTOjU=", + "dev": true, + "dependencies": { + "chalk": "^1.1.3", + "cli-cursor": "^1.0.2", + "date-fns": "^1.27.2", + "figures": "^1.7.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/listr-verbose-renderer/node_modules/cli-cursor": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/cli-cursor/download/cli-cursor-1.0.2.tgz", + "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", + "dev": true, + "dependencies": { + "restore-cursor": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/listr-verbose-renderer/node_modules/figures": { + "version": "1.7.0", + "resolved": "https://registry.npm.taobao.org/figures/download/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/listr-verbose-renderer/node_modules/onetime": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/onetime/download/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/listr-verbose-renderer/node_modules/restore-cursor": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/restore-cursor/download/restore-cursor-1.0.1.tgz", + "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", + "dev": true, + "dependencies": { + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/listr/node_modules/cli-cursor": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/cli-cursor/download/cli-cursor-1.0.2.tgz", + "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", + "dev": true, + "dependencies": { + "restore-cursor": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/listr/node_modules/cli-spinners": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/cli-spinners/download/cli-spinners-0.1.2.tgz?cache=0&sync_timestamp=1595080565423&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcli-spinners%2Fdownload%2Fcli-spinners-0.1.2.tgz", + "integrity": "sha1-u3ZNiOGF+54eaiofGXcjGPYF4xw=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/listr/node_modules/figures": { + "version": "1.7.0", + "resolved": "https://registry.npm.taobao.org/figures/download/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/listr/node_modules/indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/indent-string/download/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true, + "dependencies": { + "repeating": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/listr/node_modules/log-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/log-symbols/download/log-symbols-1.0.2.tgz", + "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", + "dev": true, + "dependencies": { + "chalk": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/listr/node_modules/onetime": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/onetime/download/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/listr/node_modules/ora": { + "version": "0.2.3", + "resolved": "https://registry.npm.taobao.org/ora/download/ora-0.2.3.tgz?cache=0&sync_timestamp=1594997498208&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fora%2Fdownload%2Fora-0.2.3.tgz", + "integrity": "sha1-N1J9Igrc1Tw5tzVx11QVbV22V6Q=", + "dev": true, + "dependencies": { + "chalk": "^1.1.1", + "cli-cursor": "^1.0.2", + "cli-spinners": "^0.1.2", + "object-assign": "^4.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/listr/node_modules/p-map": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/p-map/download/p-map-1.2.0.tgz", + "integrity": "sha1-5OlPMR6rvIYzoeeZCBZfyiYkG2s=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/listr/node_modules/restore-cursor": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/restore-cursor/download/restore-cursor-1.0.1.tgz", + "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", + "dev": true, + "dependencies": { + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/load-json-file/download/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/load-json-file/node_modules/parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/parse-json/download/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "dependencies": { + "error-ex": "^1.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/load-json-file/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/loader-fs-cache": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/loader-fs-cache/download/loader-fs-cache-1.0.3.tgz", + "integrity": "sha1-8IZXZG1gcHi+LwoDL4vWndbyd9k=", + "dev": true, + "dependencies": { + "find-cache-dir": "^0.1.1", + "mkdirp": "^0.5.1" + } + }, + "node_modules/loader-fs-cache/node_modules/find-cache-dir": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-0.1.1.tgz", + "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/loader-fs-cache/node_modules/find-up": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "dependencies": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/loader-fs-cache/node_modules/path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "dependencies": { + "pinkie-promise": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/loader-fs-cache/node_modules/pkg-dir": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-1.0.0.tgz", + "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "dev": true, + "dependencies": { + "find-up": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npm.taobao.org/loader-runner/download/loader-runner-2.4.0.tgz?cache=0&sync_timestamp=1593786163963&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-runner%2Fdownload%2Floader-runner-2.4.0.tgz", + "integrity": "sha1-7UcGa/5TTX6ExMe5mYwqdWB9k1c=", + "dev": true, + "engines": { + "node": ">=4.3.0 <5.0.0 || >=5.10" + } + }, + "node_modules/loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-1.4.0.tgz", + "integrity": "sha1-xXm140yzSxp07cbB+za/o3HVphM=", + "dev": true, + "dependencies": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/loader-utils/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz?cache=0&sync_timestamp=1586046271069&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-1.0.1.tgz", + "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "dependencies": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/lodash": { + "version": "4.17.19", + "resolved": "https://registry.npm.taobao.org/lodash/download/lodash-4.17.19.tgz?cache=0&sync_timestamp=1594226805918&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz", + "integrity": "sha1-5I3e2+MLMyF4PFtDAfvTU7weSks=" + }, + "node_modules/lodash.defaultsdeep": { + "version": "4.6.1", + "resolved": "https://registry.npm.taobao.org/lodash.defaultsdeep/download/lodash.defaultsdeep-4.6.1.tgz", + "integrity": "sha1-US6b1yHSctlOPTpjZT+hdRZ0HKY=", + "dev": true + }, + "node_modules/lodash.kebabcase": { + "version": "4.1.1", + "resolved": "https://registry.npm.taobao.org/lodash.kebabcase/download/lodash.kebabcase-4.1.1.tgz", + "integrity": "sha1-hImxyw0p/4gZXM7KRI/21swpXDY=", + "dev": true + }, + "node_modules/lodash.mapvalues": { + "version": "4.6.0", + "resolved": "https://registry.npm.taobao.org/lodash.mapvalues/download/lodash.mapvalues-4.6.0.tgz", + "integrity": "sha1-G6+lAF3p3W9PJmaMMMo3IwzJaJw=", + "dev": true + }, + "node_modules/lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npm.taobao.org/lodash.memoize/download/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, + "node_modules/lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npm.taobao.org/lodash.sortby/download/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, + "node_modules/lodash.throttle": { + "version": "4.1.1", + "resolved": "https://registry.npm.taobao.org/lodash.throttle/download/lodash.throttle-4.1.1.tgz", + "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=" + }, + "node_modules/lodash.transform": { + "version": "4.6.0", + "resolved": "https://registry.npm.taobao.org/lodash.transform/download/lodash.transform-4.6.0.tgz", + "integrity": "sha1-EjBkIvYzJK7YSD0/ODMrX2cFR6A=", + "dev": true + }, + "node_modules/lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npm.taobao.org/lodash.uniq/download/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "dev": true + }, + "node_modules/log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/log-symbols/download/log-symbols-2.2.0.tgz", + "integrity": "sha1-V0Dhxdbw39pK2TI7UzIQfva0xAo=", + "dev": true, + "dependencies": { + "chalk": "^2.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/log-update": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/log-update/download/log-update-1.0.2.tgz?cache=0&sync_timestamp=1582186637481&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flog-update%2Fdownload%2Flog-update-1.0.2.tgz", + "integrity": "sha1-GZKfZMQJPS0ucHWh2tivWcKWuNE=", + "dev": true, + "dependencies": { + "ansi-escapes": "^1.0.0", + "cli-cursor": "^1.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/log-update/node_modules/ansi-escapes": { + "version": "1.4.0", + "resolved": "https://registry.npm.taobao.org/ansi-escapes/download/ansi-escapes-1.4.0.tgz", + "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/log-update/node_modules/cli-cursor": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/cli-cursor/download/cli-cursor-1.0.2.tgz", + "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", + "dev": true, + "dependencies": { + "restore-cursor": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/log-update/node_modules/onetime": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/onetime/download/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/log-update/node_modules/restore-cursor": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/restore-cursor/download/restore-cursor-1.0.1.tgz", + "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", + "dev": true, + "dependencies": { + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/loglevel": { + "version": "1.6.8", + "resolved": "https://registry.npm.taobao.org/loglevel/download/loglevel-1.6.8.tgz", + "integrity": "sha1-iiX7ddCSIw7NRFcnDYC1TigBEXE=", + "dev": true, + "engines": { + "node": ">= 0.6.0" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/subscription/pkg/npm-loglevel?utm_medium=referral&utm_source=npm_fund" + } + }, + "node_modules/longest": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/longest/download/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npm.taobao.org/loose-envify/download/loose-envify-1.4.0.tgz", + "integrity": "sha1-ce5R+nvkyuwaY4OffmgtgTLTDK8=", + "dev": true, + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/lower-case/download/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", + "dev": true + }, + "node_modules/lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-5.1.1.tgz?cache=0&sync_timestamp=1594427569171&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-5.1.1.tgz", + "integrity": "sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA=", + "dev": true, + "dependencies": { + "yallist": "^3.0.2" + } + }, + "node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-2.1.0.tgz?cache=0&sync_timestamp=1587567875186&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-2.1.0.tgz", + "integrity": "sha1-XwMQ4YuL6JjMBwCSlaMK5B6R5vU=", + "dev": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npm.taobao.org/map-age-cleaner/download/map-age-cleaner-0.1.3.tgz", + "integrity": "sha1-fVg6cwZDTAVf5HSw9FB45uG0uSo=", + "dev": true, + "dependencies": { + "p-defer": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npm.taobao.org/map-cache/download/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/map-visit/download/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/marked": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/marked/download/marked-1.1.1.tgz?cache=0&sync_timestamp=1594690149591&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmarked%2Fdownload%2Fmarked-1.1.1.tgz", + "integrity": "sha1-5dYbaYQiENXfV7BYVuDJFXJwPmo=", + "bin": { + "marked": "bin/marked" + }, + "engines": { + "node": ">= 8.16.2" + } + }, + "node_modules/mavon-editor": { + "version": "2.9.0", + "resolved": "https://registry.npm.taobao.org/mavon-editor/download/mavon-editor-2.9.0.tgz", + "integrity": "sha1-5Ru83N4YuSNjM6nOsS/tLYRUKQA=", + "dependencies": { + "highlight.js": "^9.11.0", + "highlight.js-async-webpack": "^1.0.4", + "xss": "^1.0.6" + } + }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npm.taobao.org/md5.js/download/md5.js-1.3.5.tgz", + "integrity": "sha1-tdB7jjIW4+J81yjXL3DR5qNCAF8=", + "dev": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/mdn-data/download/mdn-data-2.0.4.tgz?cache=0&sync_timestamp=1593510420945&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmdn-data%2Fdownload%2Fmdn-data-2.0.4.tgz", + "integrity": "sha1-aZs8OKxvHXKAkaZGULZdOIUC/Vs=", + "dev": true + }, + "node_modules/media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npm.taobao.org/media-typer/download/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mem": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/mem/download/mem-4.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmem%2Fdownload%2Fmem-4.3.0.tgz", + "integrity": "sha1-Rhr0l7xK4JYIzbLmDu+2m/90QXg=", + "dev": true, + "dependencies": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/mem/node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-2.1.0.tgz", + "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npm.taobao.org/memory-fs/download/memory-fs-0.4.1.tgz?cache=0&sync_timestamp=1570537491040&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmemory-fs%2Fdownload%2Fmemory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "dependencies": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "node_modules/merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/merge-descriptors/download/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "dev": true + }, + "node_modules/merge-source-map": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/merge-source-map/download/merge-source-map-1.1.0.tgz", + "integrity": "sha1-L93n5gIJOfcJBqaPLXrmheTIxkY=", + "dev": true, + "dependencies": { + "source-map": "^0.6.1" + } + }, + "node_modules/merge-source-map/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/merge-stream/download/merge-stream-2.0.0.tgz", + "integrity": "sha1-UoI2KaFN0AyXcPtq1H3GMQ8sH2A=", + "dev": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npm.taobao.org/merge2/download/merge2-1.4.1.tgz", + "integrity": "sha1-Q2iJL4hekHRVpv19xVwMnUBJkK4=", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/methods": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/methods/download/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-3.1.10.tgz", + "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/micromatch/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-6.0.3.tgz", + "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/miller-rabin/download/miller-rabin-4.0.1.tgz", + "integrity": "sha1-8IA1HIZbDcViqEYpZtqlNUPHik0=", + "dev": true, + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + } + }, + "node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.9.tgz", + "integrity": "sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=", + "dev": true + }, + "node_modules/mime": { + "version": "2.4.6", + "resolved": "https://registry.npm.taobao.org/mime/download/mime-2.4.6.tgz?cache=0&sync_timestamp=1590596706367&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-2.4.6.tgz", + "integrity": "sha1-5bQHyQ20QvK+tbFiNz0Htpr/pNE=", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mime-db": { + "version": "1.44.0", + "resolved": "https://registry.npm.taobao.org/mime-db/download/mime-db-1.44.0.tgz", + "integrity": "sha1-+hHF6wrKEzS0Izy01S8QxaYnL5I=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.27", + "resolved": "https://registry.npm.taobao.org/mime-types/download/mime-types-2.1.27.tgz?cache=0&sync_timestamp=1587700357245&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-types%2Fdownload%2Fmime-types-2.1.27.tgz", + "integrity": "sha1-R5SfmOJ56lMRn1ci4PNOUpvsAJ8=", + "dev": true, + "dependencies": { + "mime-db": "1.44.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-1.2.0.tgz", + "integrity": "sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/mini-css-extract-plugin": { + "version": "0.8.2", + "resolved": "https://registry.npm.taobao.org/mini-css-extract-plugin/download/mini-css-extract-plugin-0.8.2.tgz?cache=0&sync_timestamp=1576856580721&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmini-css-extract-plugin%2Fdownload%2Fmini-css-extract-plugin-0.8.2.tgz", + "integrity": "sha1-qHXhab6yfIivd92WJ3HJ7tw9oWE=", + "dev": true, + "dependencies": { + "loader-utils": "^1.1.0", + "normalize-url": "1.9.1", + "schema-utils": "^1.0.0", + "webpack-sources": "^1.1.0" + }, + "engines": { + "node": ">= 6.9.0" + }, + "peerDependencies": { + "webpack": "^4.4.0" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npm.taobao.org/normalize-url/download/normalize-url-1.9.1.tgz", + "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "dev": true, + "dependencies": { + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mini-css-extract-plugin/node_modules/schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", + "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", + "dev": true, + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/minimalistic-assert/download/minimalistic-assert-1.0.1.tgz", + "integrity": "sha1-LhlN4ERibUoQ5/f7wAznPoPk1cc=", + "dev": true + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/minimalistic-crypto-utils/download/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz", + "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npm.taobao.org/minimist/download/minimist-1.2.5.tgz", + "integrity": "sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI=" + }, + "node_modules/minipass": { + "version": "3.1.3", + "resolved": "https://registry.npm.taobao.org/minipass/download/minipass-3.1.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass%2Fdownload%2Fminipass-3.1.3.tgz", + "integrity": "sha1-fUL/HzljVILhX5zbUxhN7r1YFf0=", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/minipass-collect/download/minipass-collect-1.0.2.tgz", + "integrity": "sha1-IrgTv3Rdxu26JXa5QAIq1u3Ixhc=", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/minipass-flush/download/minipass-flush-1.0.5.tgz", + "integrity": "sha1-gucTXX6JpQ/+ZGEKeHlTxMTLs3M=", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/minipass-pipeline": { + "version": "1.2.3", + "resolved": "https://registry.npm.taobao.org/minipass-pipeline/download/minipass-pipeline-1.2.3.tgz", + "integrity": "sha1-VfeDkwfXSFnW6K2pw+vnLOwhajQ=", + "dev": true, + "dependencies": { + "minipass": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/minipass/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-4.0.0.tgz", + "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=", + "dev": true + }, + "node_modules/mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/mississippi/download/mississippi-3.0.0.tgz", + "integrity": "sha1-6goykfl+C16HdrNj1fChLZTGcCI=", + "dev": true, + "dependencies": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npm.taobao.org/mixin-deep/download/mixin-deep-1.3.2.tgz", + "integrity": "sha1-ESC0PcNZp4Xc5ltVuC4lfM9HlWY=", + "dev": true, + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-deep/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz", + "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", + "dev": true, + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.5.tgz?cache=0&sync_timestamp=1587535418745&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-0.5.5.tgz", + "integrity": "sha1-2Rzv1i0UNsoPQWIOJRKI1CAJne8=", + "dev": true, + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mocha": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/mocha/download/mocha-5.2.0.tgz", + "integrity": "sha1-bYrlCPWRZ/lA8rWzxKYSrlDJCuY=", + "dev": true, + "dependencies": { + "browser-stdout": "1.3.1", + "commander": "2.15.1", + "debug": "3.1.0", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "glob": "7.1.2", + "growl": "1.10.5", + "he": "1.1.1", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "supports-color": "5.4.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha" + }, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/mocha-webpack": { + "version": "2.0.0-beta.0", + "resolved": "https://registry.npm.taobao.org/mocha-webpack/download/mocha-webpack-2.0.0-beta.0.tgz", + "integrity": "sha1-2F/Jpw+CpK1ZW3cCoRgWBd+llUk=", + "dev": true, + "dependencies": { + "babel-runtime": "^6.18.0", + "chalk": "^2.3.0", + "chokidar": "^2.0.2", + "glob-parent": "^3.1.0", + "globby": "^7.1.1", + "interpret": "^1.0.1", + "is-glob": "^4.0.0", + "loader-utils": "^1.1.0", + "lodash": "^4.3.0", + "memory-fs": "^0.4.1", + "nodent-runtime": "^3.0.3", + "normalize-path": "^2.0.1", + "progress": "^2.0.0", + "source-map-support": "^0.5.0", + "strip-ansi": "^4.0.0", + "toposort": "^1.0.0", + "yargs": "^11.0.0" + }, + "bin": { + "mocha-webpack": "bin/mocha-webpack" + }, + "peerDependencies": { + "mocha": ">=4 <=5", + "webpack": "^4.0.0" + } + }, + "node_modules/mocha-webpack/node_modules/ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/mocha-webpack/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mocha-webpack/node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz", + "integrity": "sha1-vLJLTzeTTZqnrBe0ra+J58du8us=", + "dev": true, + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "node_modules/mocha-webpack/node_modules/binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.13.1.tgz?cache=0&sync_timestamp=1593261363626&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-1.13.1.tgz", + "integrity": "sha1-WYr+VHVbKGilMw0q/51Ou1Mgm2U=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mocha-webpack/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mocha-webpack/node_modules/chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-2.1.8.tgz?cache=0&sync_timestamp=1594864731636&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-2.1.8.tgz", + "integrity": "sha1-gEs6e2qZNYw8XGHnHYco8EHP+Rc=", + "deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies", + "dev": true, + "dependencies": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + }, + "optionalDependencies": { + "fsevents": "^1.2.7" + } + }, + "node_modules/mocha-webpack/node_modules/chokidar/node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-3.0.0.tgz", + "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mocha-webpack/node_modules/cliui": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-4.1.0.tgz", + "integrity": "sha1-NIQi2+gtgAswIu709qwQvy5NG0k=", + "dev": true, + "dependencies": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + } + }, + "node_modules/mocha-webpack/node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-1.2.13.tgz?cache=0&sync_timestamp=1588787369955&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffsevents%2Fdownload%2Ffsevents-1.2.13.tgz", + "integrity": "sha1-8yXLBFVZJCi88Rs4M3DvcOO/zDg=", + "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/mocha-webpack/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/mocha-webpack/node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mocha-webpack/node_modules/globby": { + "version": "7.1.1", + "resolved": "https://registry.npm.taobao.org/globby/download/globby-7.1.1.tgz", + "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", + "dev": true, + "dependencies": { + "array-union": "^1.0.1", + "dir-glob": "^2.0.0", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mocha-webpack/node_modules/is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "dependencies": { + "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mocha-webpack/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mocha-webpack/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/mocha-webpack/node_modules/readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-2.2.1.tgz?cache=0&sync_timestamp=1584985910691&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-2.2.1.tgz", + "integrity": "sha1-DodiKjMlqjPokihcr4tOhGUppSU=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/mocha-webpack/node_modules/slash": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/slash/download/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mocha-webpack/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mocha-webpack/node_modules/source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npm.taobao.org/source-map-support/download/source-map-support-0.5.19.tgz?cache=0&sync_timestamp=1587719517036&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-support%2Fdownload%2Fsource-map-support-0.5.19.tgz", + "integrity": "sha1-qYti+G3K9PZzmWSMCFKRq56P7WE=", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/mocha-webpack/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mocha-webpack/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mocha-webpack/node_modules/y18n": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/y18n/download/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + }, + "node_modules/mocha-webpack/node_modules/yargs": { + "version": "11.1.1", + "resolved": "https://registry.npm.taobao.org/yargs/download/yargs-11.1.1.tgz?cache=0&sync_timestamp=1594421046064&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-11.1.1.tgz", + "integrity": "sha1-UFLv40RqTfXtZpyZWIbMDxNwJ2Y=", + "dev": true, + "dependencies": { + "cliui": "^4.0.0", + "decamelize": "^1.1.1", + "find-up": "^2.1.0", + "get-caller-file": "^1.0.1", + "os-locale": "^3.1.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^9.0.2" + } + }, + "node_modules/mocha/node_modules/commander": { + "version": "2.15.1", + "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.15.1.tgz?cache=0&sync_timestamp=1595168173997&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.15.1.tgz", + "integrity": "sha1-30boZ9D8Kuxmo0ZitAapzK//Ww8=", + "dev": true + }, + "node_modules/mocha/node_modules/glob": { + "version": "7.1.2", + "resolved": "https://registry.npm.taobao.org/glob/download/glob-7.1.2.tgz?cache=0&sync_timestamp=1573078079496&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob%2Fdownload%2Fglob-7.1.2.tgz", + "integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mocha/node_modules/minimist": { + "version": "0.0.8", + "resolved": "https://registry.npm.taobao.org/minimist/download/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "node_modules/mocha/node_modules/mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.1.tgz?cache=0&sync_timestamp=1587535418745&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", + "dev": true, + "dependencies": { + "minimist": "0.0.8" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/mocha/node_modules/supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.4.0.tgz", + "integrity": "sha1-HGszdALCE3YF7+GfEP7DkPb6q1Q=", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/moment": { + "version": "2.27.0", + "resolved": "https://registry.npm.taobao.org/moment/download/moment-2.27.0.tgz?cache=0&sync_timestamp=1592516115109&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmoment%2Fdownload%2Fmoment-2.27.0.tgz", + "integrity": "sha1-i/9OPiaiNiIN/j423nVrbrqgEF0=", + "engines": { + "node": "*" + } + }, + "node_modules/move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/move-concurrently/download/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "dev": true, + "dependencies": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npm.taobao.org/multicast-dns/download/multicast-dns-6.2.3.tgz", + "integrity": "sha1-oOx72QVcQoL3kMPIL04o2zsxsik=", + "dev": true, + "dependencies": { + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" + }, + "bin": { + "multicast-dns": "cli.js" + } + }, + "node_modules/multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/multicast-dns-service-types/download/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", + "dev": true + }, + "node_modules/mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npm.taobao.org/mute-stream/download/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "dev": true + }, + "node_modules/mz": { + "version": "2.7.0", + "resolved": "https://registry.npm.taobao.org/mz/download/mz-2.7.0.tgz", + "integrity": "sha1-lQCAV6Vsr63CvGPd5/n/aVWUjjI=", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "node_modules/nan": { + "version": "2.14.1", + "resolved": "https://registry.npm.taobao.org/nan/download/nan-2.14.1.tgz?cache=0&sync_timestamp=1587497111086&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnan%2Fdownload%2Fnan-2.14.1.tgz", + "integrity": "sha1-174036MQW5FJTDFHCJMV7/iHSwE=", + "dev": true, + "optional": true + }, + "node_modules/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npm.taobao.org/nanomatch/download/nanomatch-1.2.13.tgz", + "integrity": "sha1-uHqKpPwN6P5r6IiVs4mD/yZb0Rk=", + "dev": true, + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nanomatch/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-6.0.3.tgz", + "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npm.taobao.org/natural-compare/download/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "node_modules/negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npm.taobao.org/negotiator/download/negotiator-0.6.2.tgz", + "integrity": "sha1-/qz3zPUlp3rpY0Q2pkiD/+yjRvs=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npm.taobao.org/neo-async/download/neo-async-2.6.2.tgz", + "integrity": "sha1-tKr7k+OustgXTKU88WOrfXMIMF8=", + "dev": true + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/nice-try/download/nice-try-1.0.5.tgz", + "integrity": "sha1-ozeKdpbOfSI+iPybdkvX7xCJ42Y=", + "dev": true + }, + "node_modules/no-case": { + "version": "2.3.2", + "resolved": "https://registry.npm.taobao.org/no-case/download/no-case-2.3.2.tgz?cache=0&sync_timestamp=1576748705107&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fno-case%2Fdownload%2Fno-case-2.3.2.tgz", + "integrity": "sha1-YLgTOWvjmz8SiKTB7V0efSi0ZKw=", + "dev": true, + "dependencies": { + "lower-case": "^1.1.1" + } + }, + "node_modules/node-forge": { + "version": "0.9.0", + "resolved": "https://registry.npm.taobao.org/node-forge/download/node-forge-0.9.0.tgz", + "integrity": "sha1-1iQFDtu0SHStyhK7mlLsY8t4JXk=", + "dev": true, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/node-ipc": { + "version": "9.1.1", + "resolved": "https://registry.npm.taobao.org/node-ipc/download/node-ipc-9.1.1.tgz", + "integrity": "sha1-TiRe1pOOZRAOWV68XcNLFujdXWk=", + "dev": true, + "dependencies": { + "event-pubsub": "4.3.0", + "js-message": "1.0.5", + "js-queue": "2.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/node-libs-browser/download/node-libs-browser-2.2.1.tgz", + "integrity": "sha1-tk9RPRgzhiX5A0bSew0jXmMfZCU=", + "dev": true, + "dependencies": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + } + }, + "node_modules/node-libs-browser/node_modules/punycode": { + "version": "1.4.1", + "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + }, + "node_modules/node-releases": { + "version": "1.1.59", + "resolved": "https://registry.npm.taobao.org/node-releases/download/node-releases-1.1.59.tgz?cache=0&sync_timestamp=1594212234484&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-releases%2Fdownload%2Fnode-releases-1.1.59.tgz", + "integrity": "sha1-TWSDMGQc7HBL/xD45P4o5FOrjo4=", + "dev": true + }, + "node_modules/nodent-runtime": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/nodent-runtime/download/nodent-runtime-3.2.1.tgz", + "integrity": "sha1-nidV2F4592Qojw1HUuvP4+VB4A4=", + "dev": true, + "hasInstallScript": true + }, + "node_modules/nopt": { + "version": "4.0.3", + "resolved": "https://registry.npm.taobao.org/nopt/download/nopt-4.0.3.tgz", + "integrity": "sha1-o3XK2dAv2SEnjZVMIlTVqlfhXkg=", + "dev": true, + "dependencies": { + "abbrev": "1", + "osenv": "^0.1.4" + }, + "bin": { + "nopt": "bin/nopt.js" + } + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npm.taobao.org/normalize-package-data/download/normalize-package-data-2.5.0.tgz", + "integrity": "sha1-5m2xg4sgDB38IzIl0SyzZSDiNKg=", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-3.0.0.tgz", + "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/normalize-range/download/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/normalize-url": { + "version": "3.3.0", + "resolved": "https://registry.npm.taobao.org/normalize-url/download/normalize-url-3.3.0.tgz", + "integrity": "sha1-suHE3E98bVd0PfczpPWXjRhlBVk=", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/normalize.css": { + "version": "8.0.1", + "resolved": "https://registry.npm.taobao.org/normalize.css/download/normalize.css-8.0.1.tgz?cache=0&sync_timestamp=1588361527323&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize.css%2Fdownload%2Fnormalize.css-8.0.1.tgz", + "integrity": "sha1-m5iiCHOLnMJjTKrLxC0THJdIe/M=" + }, + "node_modules/npm-path": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/npm-path/download/npm-path-2.0.4.tgz", + "integrity": "sha1-xkE0el/51qCeTZvOVYDE9QUnjmQ=", + "dev": true, + "dependencies": { + "which": "^1.2.10" + }, + "bin": { + "npm-path": "bin/npm-path" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/npm-run-path/download/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-which": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/npm-which/download/npm-which-3.0.1.tgz", + "integrity": "sha1-kiXybsOihcIJyuZ8OxGmtKtxQKo=", + "dev": true, + "dependencies": { + "commander": "^2.9.0", + "npm-path": "^2.0.2", + "which": "^1.2.10" + }, + "bin": { + "npm-which": "bin/npm-which.js" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/nth-check/download/nth-check-1.0.2.tgz", + "integrity": "sha1-sr0pXDfj3VijvwcAN2Zjuk2c8Fw=", + "dev": true, + "dependencies": { + "boolbase": "~1.0.0" + } + }, + "node_modules/num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npm.taobao.org/num2fraction/download/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "dev": true + }, + "node_modules/number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/number-is-nan/download/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nwsapi": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/nwsapi/download/nwsapi-2.2.0.tgz", + "integrity": "sha1-IEh5qePQaP8qVROcLHcngGgaOLc=", + "dev": true + }, + "node_modules/oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npm.taobao.org/oauth-sign/download/oauth-sign-0.9.0.tgz", + "integrity": "sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npm.taobao.org/object-assign/download/object-assign-4.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-assign%2Fdownload%2Fobject-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npm.taobao.org/object-copy/download/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-hash": { + "version": "1.3.1", + "resolved": "https://registry.npm.taobao.org/object-hash/download/object-hash-1.3.1.tgz", + "integrity": "sha1-/eRSCYqVHLFF8Dm7fUVUSd3BJt8=", + "dev": true, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/object-inspect": { + "version": "1.7.0", + "resolved": "https://registry.npm.taobao.org/object-inspect/download/object-inspect-1.7.0.tgz?cache=0&sync_timestamp=1592545149361&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-inspect%2Fdownload%2Fobject-inspect-1.7.0.tgz", + "integrity": "sha1-9Pa9GBrXfwBrXs5gvQtvOY/3Smc=", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-is": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/object-is/download/object-is-1.1.2.tgz?cache=0&sync_timestamp=1586894009620&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-is%2Fdownload%2Fobject-is-1.1.2.tgz", + "integrity": "sha1-xdLof/nhGfeLegiEQVGeLuwVc7Y=", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/object-keys/download/object-keys-1.1.1.tgz", + "integrity": "sha1-HEfyct8nfzsdrwYWd9nILiMixg4=", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/object-visit/download/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/object.assign/download/object.assign-4.1.0.tgz", + "integrity": "sha1-lovxEA15Vrs8oIbwBvhGs7xACNo=", + "dependencies": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.getownpropertydescriptors": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/object.getownpropertydescriptors/download/object.getownpropertydescriptors-2.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.getownpropertydescriptors%2Fdownload%2Fobject.getownpropertydescriptors-2.1.0.tgz", + "integrity": "sha1-Npvx+VktiridcS3O1cuBx8U1Jkk=", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + }, + "engines": { + "node": ">= 0.8" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/object.pick/download/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.values": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/object.values/download/object.values-1.1.1.tgz", + "integrity": "sha1-aKmezeNWt+kpWjxeDOMdyMlT3l4=", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "has": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/obuf": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/obuf/download/obuf-1.1.2.tgz", + "integrity": "sha1-Cb6jND1BhZ69RGKS0RydTbYZCE4=", + "dev": true + }, + "node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/on-finished/download/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/on-headers/download/on-headers-1.0.2.tgz", + "integrity": "sha1-dysK5qqlJcOZ5Imt+tkMQD6zwo8=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npm.taobao.org/once/download/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/onetime/download/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "dependencies": { + "mimic-fn": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/open": { + "version": "6.4.0", + "resolved": "https://registry.npm.taobao.org/open/download/open-6.4.0.tgz?cache=0&sync_timestamp=1595208391438&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fopen%2Fdownload%2Fopen-6.4.0.tgz", + "integrity": "sha1-XBPpbQ3IlGhhZPGJZez+iJ7PyKk=", + "dev": true, + "dependencies": { + "is-wsl": "^1.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/opener": { + "version": "1.5.1", + "resolved": "https://registry.npm.taobao.org/opener/download/opener-1.5.1.tgz", + "integrity": "sha1-bS8Od/GgrwAyrKcWwsH7uOfoq+0=", + "dev": true, + "bin": { + "opener": "bin/opener-bin.js" + } + }, + "node_modules/opn": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/opn/download/opn-5.5.0.tgz", + "integrity": "sha1-/HFk+rVtI1kExRw7J9pnWMo7m/w=", + "dev": true, + "dependencies": { + "is-wsl": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npm.taobao.org/optionator/download/optionator-0.8.3.tgz?cache=0&sync_timestamp=1585966141328&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Foptionator%2Fdownload%2Foptionator-0.8.3.tgz", + "integrity": "sha1-hPodA2/p08fiHZmIS2ARZ+yPtJU=", + "dev": true, + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/ora": { + "version": "3.4.0", + "resolved": "https://registry.npm.taobao.org/ora/download/ora-3.4.0.tgz?cache=0&sync_timestamp=1594997498208&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fora%2Fdownload%2Fora-3.4.0.tgz", + "integrity": "sha1-vwdSSRBZo+8+1MhQl1Md6f280xg=", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-spinners": "^2.0.0", + "log-symbols": "^2.2.0", + "strip-ansi": "^5.2.0", + "wcwidth": "^1.0.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ora/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/ora/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ora/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/ora/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/ora/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/original": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/original/download/original-1.0.2.tgz", + "integrity": "sha1-5EKmHP/hxf0gpl8yYcJmY7MD8l8=", + "dev": true, + "dependencies": { + "url-parse": "^1.4.3" + } + }, + "node_modules/os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npm.taobao.org/os-browserify/download/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "dev": true + }, + "node_modules/os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/os-homedir/download/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/os-locale": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/os-locale/download/os-locale-3.1.0.tgz?cache=0&sync_timestamp=1584865484693&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fos-locale%2Fdownload%2Fos-locale-3.1.0.tgz", + "integrity": "sha1-qAKm7hfyTBBIOrmTVxnO9O0Wvxo=", + "dev": true, + "dependencies": { + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/os-tmpdir/download/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/osenv": { + "version": "0.1.5", + "resolved": "https://registry.npm.taobao.org/osenv/download/osenv-0.1.5.tgz", + "integrity": "sha1-hc36+uso6Gd/QW4odZK18/SepBA=", + "dev": true, + "dependencies": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "node_modules/p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/p-defer/download/p-defer-1.0.0.tgz?cache=0&sync_timestamp=1559922734651&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-defer%2Fdownload%2Fp-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/p-finally/download/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/p-is-promise/download/p-is-promise-2.1.0.tgz", + "integrity": "sha1-kYzrrqJIpiz3/6uOO8qMX4gvxC4=", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-1.3.0.tgz?cache=0&sync_timestamp=1594559696906&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-1.3.0.tgz", + "integrity": "sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg=", + "dev": true, + "dependencies": { + "p-try": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "dependencies": { + "p-limit": "^1.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/p-map": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/p-map/download/p-map-2.1.0.tgz", + "integrity": "sha1-MQko/u+cnsxltosXaTAYpmXOoXU=", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-retry": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/p-retry/download/p-retry-3.0.1.tgz", + "integrity": "sha1-MWtMiJPiyNwc+okfQGxLQivr8yg=", + "dev": true, + "dependencies": { + "retry": "^0.12.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-try": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/pako": { + "version": "1.0.11", + "resolved": "https://registry.npm.taobao.org/pako/download/pako-1.0.11.tgz", + "integrity": "sha1-bJWZ00DVTf05RjgCUqNXBaa5kr8=", + "dev": true + }, + "node_modules/parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/parallel-transform/download/parallel-transform-1.2.0.tgz", + "integrity": "sha1-kEnKN9bLIYLDsdLHIL6U0UpYFPw=", + "dev": true, + "dependencies": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "node_modules/param-case": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/param-case/download/param-case-2.1.1.tgz?cache=0&sync_timestamp=1576721608924&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparam-case%2Fdownload%2Fparam-case-2.1.1.tgz", + "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", + "dev": true, + "dependencies": { + "no-case": "^2.2.0" + } + }, + "node_modules/parse-asn1": { + "version": "5.1.5", + "resolved": "https://registry.npm.taobao.org/parse-asn1/download/parse-asn1-5.1.5.tgz", + "integrity": "sha1-ADJxND2ljclMrOSU+u89IUfs6g4=", + "dev": true, + "dependencies": { + "asn1.js": "^4.0.0", + "browserify-aes": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/parse-json/download/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "dependencies": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/parse5": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/parse5/download/parse5-5.1.0.tgz", + "integrity": "sha1-xZNByXI/QUxFKXVWTHwApo1YrNI=", + "dev": true + }, + "node_modules/parse5-htmlparser2-tree-adapter": { + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/parse5-htmlparser2-tree-adapter/download/parse5-htmlparser2-tree-adapter-5.1.1.tgz", + "integrity": "sha1-6MdD1OkhlNUpPs3isIvjHmdGHLw=", + "dev": true, + "dependencies": { + "parse5": "^5.1.1" + } + }, + "node_modules/parse5-htmlparser2-tree-adapter/node_modules/parse5": { + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/parse5/download/parse5-5.1.1.tgz", + "integrity": "sha1-9o5OW6GFKsLK3AD0VV//bCq7YXg=", + "dev": true + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npm.taobao.org/parseurl/download/parseurl-1.3.3.tgz", + "integrity": "sha1-naGee+6NEt/wUT7Vt2lXeTvC6NQ=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/pascalcase/download/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npm.taobao.org/path-browserify/download/path-browserify-0.0.1.tgz", + "integrity": "sha1-5sTd1+06onxoogzE5Q4aTug7vEo=", + "dev": true + }, + "node_modules/path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/path-dirname/download/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "node_modules/path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/path-is-absolute/download/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/path-is-inside/download/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/path-key/download/path-key-2.0.1.tgz?cache=0&sync_timestamp=1574441431664&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-key%2Fdownload%2Fpath-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npm.taobao.org/path-parse/download/path-parse-1.0.6.tgz", + "integrity": "sha1-1i27VnlAXXLEc37FhgDp3c8G0kw=" + }, + "node_modules/path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npm.taobao.org/path-to-regexp/download/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "dev": true + }, + "node_modules/path-type": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/path-type/download/path-type-3.0.0.tgz", + "integrity": "sha1-zvMdyOCho7sNEFwM2Xzzv0f0428=", + "dev": true, + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/path-type/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/pathval": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/pathval/download/pathval-1.1.0.tgz", + "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/pbkdf2": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/pbkdf2/download/pbkdf2-3.1.1.tgz?cache=0&sync_timestamp=1591275684229&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpbkdf2%2Fdownload%2Fpbkdf2-3.1.1.tgz", + "integrity": "sha1-y4cksPramEWWhW0abrr9NYRlS5Q=", + "dev": true, + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/performance-now/download/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "node_modules/picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npm.taobao.org/picomatch/download/picomatch-2.2.2.tgz", + "integrity": "sha1-IfMz6ba46v8CRo9RRupAbTRfTa0=", + "dev": true, + "optional": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/pify/download/pify-4.0.1.tgz", + "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/pinkie/download/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/pinkie-promise/download/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "dependencies": { + "pinkie": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-3.0.0.tgz", + "integrity": "sha1-J0kCDyOe2ZCIGx9xIQ1R62UjvqM=", + "dev": true, + "dependencies": { + "find-up": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-dir/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz", + "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-dir/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz", + "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-dir/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.3.0.tgz?cache=0&sync_timestamp=1594559696906&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-2.3.0.tgz", + "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pkg-dir/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz", + "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-dir/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz", + "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/pkg-up/download/pkg-up-2.0.0.tgz", + "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", + "dev": true, + "dependencies": { + "find-up": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pluralize": { + "version": "7.0.0", + "resolved": "https://registry.npm.taobao.org/pluralize/download/pluralize-7.0.0.tgz", + "integrity": "sha1-KYuJ34uTsCIdv0Ia0rGx6iP8Z3c=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/pn": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/pn/download/pn-1.1.0.tgz", + "integrity": "sha1-4vTO8OIZ9GPBeas3Rj5OHs3Muvs=", + "dev": true + }, + "node_modules/popper.js": { + "version": "1.16.1", + "resolved": "https://registry.npm.taobao.org/popper.js/download/popper.js-1.16.1.tgz", + "integrity": "sha1-KiI8s9x7YhPXQOQDcr5A3kPmWxs=", + "deprecated": "You can find the new Popper v2 at @popperjs/core, this package is dedicated to the legacy v1", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/popperjs" + } + }, + "node_modules/portfinder": { + "version": "1.0.27", + "resolved": "https://registry.npm.taobao.org/portfinder/download/portfinder-1.0.27.tgz?cache=0&sync_timestamp=1595216077180&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fportfinder%2Fdownload%2Fportfinder-1.0.27.tgz", + "integrity": "sha1-pBMzwRa15fPTgPl0WsLzUITEx1g=", + "dev": true, + "dependencies": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.1" + }, + "engines": { + "node": ">= 0.12.0" + } + }, + "node_modules/portfinder/node_modules/debug": { + "version": "3.2.6", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.6.tgz", + "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/portfinder/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", + "dev": true + }, + "node_modules/posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/posix-character-classes/download/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss": { + "version": "7.0.32", + "resolved": "https://registry.npm.taobao.org/postcss/download/postcss-7.0.32.tgz?cache=0&sync_timestamp=1591102414113&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz", + "integrity": "sha1-QxDW7jRwU9o0M9sr5JKIPWLOxZ0=", + "dev": true, + "dependencies": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + }, + "node_modules/postcss-calc": { + "version": "7.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-calc/download/postcss-calc-7.0.2.tgz?cache=0&sync_timestamp=1582014221563&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-calc%2Fdownload%2Fpostcss-calc-7.0.2.tgz", + "integrity": "sha1-UE780AjKAnMSBWiweSsWzc3oqsE=", + "dev": true, + "dependencies": { + "postcss": "^7.0.27", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.2" + } + }, + "node_modules/postcss-colormin": { + "version": "4.0.3", + "resolved": "https://registry.npm.taobao.org/postcss-colormin/download/postcss-colormin-4.0.3.tgz", + "integrity": "sha1-rgYLzpPteUrHEmTwgTLVUJVr04E=", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "color": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-colormin/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083210998&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + }, + "node_modules/postcss-convert-values": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/postcss-convert-values/download/postcss-convert-values-4.0.1.tgz", + "integrity": "sha1-yjgT7U2g+BL51DcDWE5Enr4Ymn8=", + "dev": true, + "dependencies": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-convert-values/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083210998&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + }, + "node_modules/postcss-discard-comments": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-discard-comments/download/postcss-discard-comments-4.0.2.tgz", + "integrity": "sha1-H7q9LCRr/2qq15l7KwkY9NevQDM=", + "dev": true, + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-discard-duplicates": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-discard-duplicates/download/postcss-discard-duplicates-4.0.2.tgz", + "integrity": "sha1-P+EzzTyCKC5VD8myORdqkge3hOs=", + "dev": true, + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-discard-empty": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/postcss-discard-empty/download/postcss-discard-empty-4.0.1.tgz", + "integrity": "sha1-yMlR6fc+2UKAGUWERKAq2Qu592U=", + "dev": true, + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-discard-overridden": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/postcss-discard-overridden/download/postcss-discard-overridden-4.0.1.tgz", + "integrity": "sha1-ZSrvipZybwKfXj4AFG7npOdV/1c=", + "dev": true, + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-load-config": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/postcss-load-config/download/postcss-load-config-2.1.0.tgz", + "integrity": "sha1-yE1pK3u3tB3c7ZTuYuirMbQXsAM=", + "dev": true, + "dependencies": { + "cosmiconfig": "^5.0.0", + "import-cwd": "^2.0.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/postcss-loader": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/postcss-loader/download/postcss-loader-3.0.0.tgz", + "integrity": "sha1-a5eUPkfHLYRfqeA/Jzdz1OjdbC0=", + "dev": true, + "dependencies": { + "loader-utils": "^1.1.0", + "postcss": "^7.0.0", + "postcss-load-config": "^2.0.0", + "schema-utils": "^1.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/postcss-loader/node_modules/schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", + "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", + "dev": true, + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/postcss-merge-longhand": { + "version": "4.0.11", + "resolved": "https://registry.npm.taobao.org/postcss-merge-longhand/download/postcss-merge-longhand-4.0.11.tgz", + "integrity": "sha1-YvSaE+Sg7gTnuY9CuxYGLKJUniQ=", + "dev": true, + "dependencies": { + "css-color-names": "0.0.4", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "stylehacks": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-merge-longhand/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083210998&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + }, + "node_modules/postcss-merge-rules": { + "version": "4.0.3", + "resolved": "https://registry.npm.taobao.org/postcss-merge-rules/download/postcss-merge-rules-4.0.3.tgz", + "integrity": "sha1-NivqT/Wh+Y5AdacTxsslrv75plA=", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "cssnano-util-same-parent": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0", + "vendors": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-merge-rules/node_modules/postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-3.1.2.tgz", + "integrity": "sha1-sxD1xMD9r3b5SQK7qjDbaqhPUnA=", + "dev": true, + "dependencies": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/postcss-minify-font-values": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-minify-font-values/download/postcss-minify-font-values-4.0.2.tgz", + "integrity": "sha1-zUw0TM5HQ0P6xdgiBqssvLiv1aY=", + "dev": true, + "dependencies": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-minify-font-values/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083210998&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + }, + "node_modules/postcss-minify-gradients": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-minify-gradients/download/postcss-minify-gradients-4.0.2.tgz", + "integrity": "sha1-k7KcL/UJnFNe7NpWxKpuZlpmNHE=", + "dev": true, + "dependencies": { + "cssnano-util-get-arguments": "^4.0.0", + "is-color-stop": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-minify-gradients/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083210998&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + }, + "node_modules/postcss-minify-params": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-minify-params/download/postcss-minify-params-4.0.2.tgz", + "integrity": "sha1-a5zvAwwR41Jh+V9hjJADbWgNuHQ=", + "dev": true, + "dependencies": { + "alphanum-sort": "^1.0.0", + "browserslist": "^4.0.0", + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "uniqs": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-minify-params/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083210998&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + }, + "node_modules/postcss-minify-selectors": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-minify-selectors/download/postcss-minify-selectors-4.0.2.tgz", + "integrity": "sha1-4uXrQL/uUA0M2SQ1APX46kJi+9g=", + "dev": true, + "dependencies": { + "alphanum-sort": "^1.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-minify-selectors/node_modules/postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-3.1.2.tgz", + "integrity": "sha1-sxD1xMD9r3b5SQK7qjDbaqhPUnA=", + "dev": true, + "dependencies": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/postcss-modules-extract-imports": { + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/postcss-modules-extract-imports/download/postcss-modules-extract-imports-1.2.1.tgz", + "integrity": "sha1-3IfjQUjsfqtfeR981YSYMzdbdBo=", + "dev": true, + "dependencies": { + "postcss": "^6.0.1" + } + }, + "node_modules/postcss-modules-extract-imports/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-extract-imports/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-extract-imports/node_modules/postcss": { + "version": "6.0.23", + "resolved": "https://registry.npm.taobao.org/postcss/download/postcss-6.0.23.tgz?cache=0&sync_timestamp=1591102414113&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-6.0.23.tgz", + "integrity": "sha1-YcgswyisYOZ3ZF+XkFTrmLwOMyQ=", + "dev": true, + "dependencies": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postcss-modules-extract-imports/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-modules-extract-imports/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-local-by-default": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/postcss-modules-local-by-default/download/postcss-modules-local-by-default-1.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-local-by-default%2Fdownload%2Fpostcss-modules-local-by-default-1.2.0.tgz", + "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", + "dev": true, + "dependencies": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + } + }, + "node_modules/postcss-modules-local-by-default/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-local-by-default/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-local-by-default/node_modules/postcss": { + "version": "6.0.23", + "resolved": "https://registry.npm.taobao.org/postcss/download/postcss-6.0.23.tgz?cache=0&sync_timestamp=1591102414113&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-6.0.23.tgz", + "integrity": "sha1-YcgswyisYOZ3ZF+XkFTrmLwOMyQ=", + "dev": true, + "dependencies": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postcss-modules-local-by-default/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-modules-local-by-default/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-scope": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/postcss-modules-scope/download/postcss-modules-scope-1.1.0.tgz", + "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", + "dev": true, + "dependencies": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + } + }, + "node_modules/postcss-modules-scope/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-scope/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-scope/node_modules/postcss": { + "version": "6.0.23", + "resolved": "https://registry.npm.taobao.org/postcss/download/postcss-6.0.23.tgz?cache=0&sync_timestamp=1591102414113&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-6.0.23.tgz", + "integrity": "sha1-YcgswyisYOZ3ZF+XkFTrmLwOMyQ=", + "dev": true, + "dependencies": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postcss-modules-scope/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-modules-scope/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-values": { + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/postcss-modules-values/download/postcss-modules-values-1.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-values%2Fdownload%2Fpostcss-modules-values-1.3.0.tgz", + "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", + "dev": true, + "dependencies": { + "icss-replace-symbols": "^1.1.0", + "postcss": "^6.0.1" + } + }, + "node_modules/postcss-modules-values/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-values/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-modules-values/node_modules/postcss": { + "version": "6.0.23", + "resolved": "https://registry.npm.taobao.org/postcss/download/postcss-6.0.23.tgz?cache=0&sync_timestamp=1591102414113&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-6.0.23.tgz", + "integrity": "sha1-YcgswyisYOZ3ZF+XkFTrmLwOMyQ=", + "dev": true, + "dependencies": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/postcss-modules-values/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss-modules-values/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-normalize-charset": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-charset/download/postcss-normalize-charset-4.0.1.tgz", + "integrity": "sha1-izWt067oOhNrBHHg1ZvlilAoXdQ=", + "dev": true, + "dependencies": { + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-display-values": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-display-values/download/postcss-normalize-display-values-4.0.2.tgz", + "integrity": "sha1-Db4EpM6QY9RmftK+R2u4MMglk1o=", + "dev": true, + "dependencies": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-display-values/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083210998&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + }, + "node_modules/postcss-normalize-positions": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-positions/download/postcss-normalize-positions-4.0.2.tgz", + "integrity": "sha1-BfdX+E8mBDc3g2ipH4ky1LECkX8=", + "dev": true, + "dependencies": { + "cssnano-util-get-arguments": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-positions/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083210998&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + }, + "node_modules/postcss-normalize-repeat-style": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-repeat-style/download/postcss-normalize-repeat-style-4.0.2.tgz", + "integrity": "sha1-xOu8KJ85kaAo1EdRy90RkYsXkQw=", + "dev": true, + "dependencies": { + "cssnano-util-get-arguments": "^4.0.0", + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-repeat-style/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083210998&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + }, + "node_modules/postcss-normalize-string": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-string/download/postcss-normalize-string-4.0.2.tgz", + "integrity": "sha1-zUTECrB6DHo23F6Zqs4eyk7CaQw=", + "dev": true, + "dependencies": { + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-string/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083210998&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + }, + "node_modules/postcss-normalize-timing-functions": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-timing-functions/download/postcss-normalize-timing-functions-4.0.2.tgz", + "integrity": "sha1-jgCcoqOUnNr4rSPmtquZy159KNk=", + "dev": true, + "dependencies": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-timing-functions/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083210998&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + }, + "node_modules/postcss-normalize-unicode": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-unicode/download/postcss-normalize-unicode-4.0.1.tgz", + "integrity": "sha1-hBvUj9zzAZrUuqdJOj02O1KuHPs=", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-unicode/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083210998&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + }, + "node_modules/postcss-normalize-url": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-url/download/postcss-normalize-url-4.0.1.tgz", + "integrity": "sha1-EOQ3+GvHx+WPe5ZS7YeNqqlfquE=", + "dev": true, + "dependencies": { + "is-absolute-url": "^2.0.0", + "normalize-url": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-url/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083210998&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + }, + "node_modules/postcss-normalize-whitespace": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-whitespace/download/postcss-normalize-whitespace-4.0.2.tgz", + "integrity": "sha1-vx1AcP5Pzqh9E0joJdjMDF+qfYI=", + "dev": true, + "dependencies": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-normalize-whitespace/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083210998&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + }, + "node_modules/postcss-ordered-values": { + "version": "4.1.2", + "resolved": "https://registry.npm.taobao.org/postcss-ordered-values/download/postcss-ordered-values-4.1.2.tgz", + "integrity": "sha1-DPdcgg7H1cTSgBiVWeC1ceusDu4=", + "dev": true, + "dependencies": { + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-ordered-values/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083210998&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + }, + "node_modules/postcss-reduce-initial": { + "version": "4.0.3", + "resolved": "https://registry.npm.taobao.org/postcss-reduce-initial/download/postcss-reduce-initial-4.0.3.tgz", + "integrity": "sha1-f9QuvqXpyBRgljniwuhK4nC6SN8=", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-reduce-transforms": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-reduce-transforms/download/postcss-reduce-transforms-4.0.2.tgz", + "integrity": "sha1-F++kBerMbge+NBSlyi0QdGgdTik=", + "dev": true, + "dependencies": { + "cssnano-util-get-match": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-reduce-transforms/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083210998&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-6.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-6.0.2.tgz", + "integrity": "sha1-k0z3mdAWyDQRhZ4J3Oyt4BKG7Fw=", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-svgo": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-svgo/download/postcss-svgo-4.0.2.tgz", + "integrity": "sha1-F7mXvHEbMzurFDqu07jT1uPTglg=", + "dev": true, + "dependencies": { + "is-svg": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "svgo": "^1.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-svgo/node_modules/postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083210998&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + }, + "node_modules/postcss-unique-selectors": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/postcss-unique-selectors/download/postcss-unique-selectors-4.0.1.tgz", + "integrity": "sha1-lEaRHzKJv9ZMbWgPBzwDsfnuS6w=", + "dev": true, + "dependencies": { + "alphanum-sort": "^1.0.0", + "postcss": "^7.0.0", + "uniqs": "^2.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-4.1.0.tgz?cache=0&sync_timestamp=1588083210998&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-4.1.0.tgz", + "integrity": "sha1-RD9qIM7WSBor2k+oUypuVdeJoss=", + "dev": true + }, + "node_modules/postcss/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss/node_modules/chalk/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/postcss/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/prepend-http/download/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/prettier": { + "version": "1.19.1", + "resolved": "https://registry.npm.taobao.org/prettier/download/prettier-1.19.1.tgz?cache=0&sync_timestamp=1587491448785&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fprettier%2Fdownload%2Fprettier-1.19.1.tgz", + "integrity": "sha1-99f1/4qc2HKnvkyhQglZVqYHl8s=", + "dev": true, + "optional": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pretty": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/pretty/download/pretty-2.0.0.tgz", + "integrity": "sha1-rbx5YLe7/iiaVX3F9zdhmiINBqU=", + "dev": true, + "dependencies": { + "condense-newlines": "^0.2.1", + "extend-shallow": "^2.0.1", + "js-beautify": "^1.6.12" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pretty-error": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/pretty-error/download/pretty-error-2.1.1.tgz", + "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=", + "dev": true, + "dependencies": { + "renderkid": "^2.0.1", + "utila": "~0.4" + } + }, + "node_modules/pretty-format": { + "version": "21.2.1", + "resolved": "https://registry.npm.taobao.org/pretty-format/download/pretty-format-21.2.1.tgz?cache=0&sync_timestamp=1592925335887&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpretty-format%2Fdownload%2Fpretty-format-21.2.1.tgz", + "integrity": "sha1-rlQH888hBmzQEaobpfzntqLt2zY=", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0", + "ansi-styles": "^3.2.0" + } + }, + "node_modules/pretty-format/node_modules/ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/pretty-format/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/pretty/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/printj": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/printj/download/printj-1.1.2.tgz", + "integrity": "sha1-2Q3rKXWoufYA+zoclOP0xTx4oiI=", + "bin": { + "printj": "bin/printj.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/process": { + "version": "0.11.10", + "resolved": "https://registry.npm.taobao.org/process/download/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-2.0.1.tgz", + "integrity": "sha1-eCDZsWEgzFXKmud5JoCufbptf+I=", + "dev": true + }, + "node_modules/progress": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/progress/download/progress-2.0.3.tgz", + "integrity": "sha1-foz42PW48jnBvGi+tOt4Vn1XLvg=", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/promise": { + "version": "7.3.1", + "resolved": "https://registry.npm.taobao.org/promise/download/promise-7.3.1.tgz", + "integrity": "sha1-BktyYCsY+Q8pGSuLG8QY/9Hr078=", + "dev": true, + "optional": true, + "dependencies": { + "asap": "~2.0.3" + } + }, + "node_modules/promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/promise-inflight/download/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, + "node_modules/proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npm.taobao.org/proto-list/download/proto-list-1.2.4.tgz", + "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", + "dev": true + }, + "node_modules/proxy-addr": { + "version": "2.0.6", + "resolved": "https://registry.npm.taobao.org/proxy-addr/download/proxy-addr-2.0.6.tgz", + "integrity": "sha1-/cIzZQVEfT8vLGOO0nLK9hS7sr8=", + "dev": true, + "dependencies": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.1" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/prr/download/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, + "node_modules/pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/pseudomap/download/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "node_modules/psl": { + "version": "1.8.0", + "resolved": "https://registry.npm.taobao.org/psl/download/psl-1.8.0.tgz?cache=0&sync_timestamp=1585142991033&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpsl%2Fdownload%2Fpsl-1.8.0.tgz", + "integrity": "sha1-kyb4vPsBOtzABf3/BWrM4CDlHCQ=", + "dev": true + }, + "node_modules/public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npm.taobao.org/public-encrypt/download/public-encrypt-4.0.3.tgz", + "integrity": "sha1-T8ydd6B+SLp1J+fL4N4z0HATMeA=", + "dev": true, + "dependencies": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/public-encrypt/node_modules/bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.9.tgz", + "integrity": "sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=", + "dev": true + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/pump/download/pump-3.0.0.tgz", + "integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npm.taobao.org/pumpify/download/pumpify-1.5.1.tgz?cache=0&sync_timestamp=1569938200736&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpumpify%2Fdownload%2Fpumpify-1.5.1.tgz", + "integrity": "sha1-NlE74karJ1cLGjdKXOJ4v9dDcM4=", + "dev": true, + "dependencies": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + } + }, + "node_modules/pumpify/node_modules/pump": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/pump/download/pump-2.0.1.tgz", + "integrity": "sha1-Ejma3W5M91Jtlzy8i1zi4pCLOQk=", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-2.1.1.tgz", + "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/q": { + "version": "1.5.1", + "resolved": "https://registry.npm.taobao.org/q/download/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "dev": true, + "engines": { + "node": ">=0.6.0", + "teleport": ">=0.2.0" + } + }, + "node_modules/qs": { + "version": "6.5.2", + "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.5.2.tgz", + "integrity": "sha1-yzroBuh0BERYTvFUzo7pjUA/PjY=", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/query-string": { + "version": "4.3.4", + "resolved": "https://registry.npm.taobao.org/query-string/download/query-string-4.3.4.tgz", + "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "dev": true, + "dependencies": { + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/querystring": { + "version": "0.2.0", + "resolved": "https://registry.npm.taobao.org/querystring/download/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "deprecated": "The querystring API is considered Legacy. new code should use the URLSearchParams API instead.", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npm.taobao.org/querystring-es3/download/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true, + "engines": { + "node": ">=0.4.x" + } + }, + "node_modules/querystringify": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/querystringify/download/querystringify-2.1.1.tgz", + "integrity": "sha1-YOWl/WSn+L+k0qsu1v30yFutFU4=", + "dev": true + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/randombytes/download/randombytes-2.1.0.tgz", + "integrity": "sha1-32+ENy8CcNxlzfYpE0mrekc9Tyo=", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/randomfill/download/randomfill-1.0.4.tgz", + "integrity": "sha1-ySGW/IarQr6YPxvzF3giSTHWFFg=", + "dev": true, + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "node_modules/range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/range-parser/download/range-parser-1.2.1.tgz", + "integrity": "sha1-PPNwI9GZ4cJNGlW4SADC8+ZGgDE=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npm.taobao.org/raw-body/download/raw-body-2.4.0.tgz", + "integrity": "sha1-oc5vucm8NWylLoklarWQWeE9AzI=", + "dev": true, + "dependencies": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/read-pkg/download/read-pkg-5.2.0.tgz", + "integrity": "sha1-e/KVQ4yloz5WzTDgU7NO5yUMk8w=", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/read-pkg-up/download/read-pkg-up-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fread-pkg-up%2Fdownload%2Fread-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dev": true, + "dependencies": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/path-type": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/path-type/download/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "dependencies": { + "pify": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg-up/node_modules/pify": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/read-pkg-up/node_modules/read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/read-pkg/download/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, + "dependencies": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg/node_modules/parse-json": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/parse-json/download/parse-json-5.0.0.tgz", + "integrity": "sha1-c+URTJhtFD76NxLU6iTbmkJm9g8=", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.7.tgz", + "integrity": "sha1-Hsoc9xGu+BTAT2IlKjamL2yyO1c=", + "dev": true, + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/readdirp": { + "version": "3.4.0", + "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-3.4.0.tgz?cache=0&sync_timestamp=1584985910691&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-3.4.0.tgz", + "integrity": "sha1-n9zN+ekVWAVEkiGsZF6DA6tbmto=", + "dev": true, + "optional": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/regenerate": { + "version": "1.4.1", + "resolved": "https://registry.npm.taobao.org/regenerate/download/regenerate-1.4.1.tgz", + "integrity": "sha1-ytkq2Oa1kXc0hfvgWkhcr09Ffm8=", + "dev": true + }, + "node_modules/regenerate-unicode-properties": { + "version": "8.2.0", + "resolved": "https://registry.npm.taobao.org/regenerate-unicode-properties/download/regenerate-unicode-properties-8.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerate-unicode-properties%2Fdownload%2Fregenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha1-5d5xEdZV57pgwFfb6f83yH5lzew=", + "dev": true, + "dependencies": { + "regenerate": "^1.4.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.5", + "resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.13.5.tgz?cache=0&sync_timestamp=1584052597708&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.13.5.tgz", + "integrity": "sha1-2Hih0JS0MG0QuQlkhLM+vVXiZpc=", + "dev": true + }, + "node_modules/regenerator-transform": { + "version": "0.14.5", + "resolved": "https://registry.npm.taobao.org/regenerator-transform/download/regenerator-transform-0.14.5.tgz?cache=0&sync_timestamp=1593557393872&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-transform%2Fdownload%2Fregenerator-transform-0.14.5.tgz", + "integrity": "sha1-yY2hVGg2ccnE3LFuznNlF+G3/rQ=", + "dev": true, + "dependencies": { + "@babel/runtime": "^7.8.4" + } + }, + "node_modules/regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/regex-not/download/regex-not-1.0.2.tgz", + "integrity": "sha1-H07OJ+ALC2XgJHpoEOaoXYOldSw=", + "dev": true, + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/regexp.prototype.flags/download/regexp.prototype.flags-1.3.0.tgz?cache=0&sync_timestamp=1576388379660&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexp.prototype.flags%2Fdownload%2Fregexp.prototype.flags-1.3.0.tgz", + "integrity": "sha1-erqJs8E6ZFCdq888qNn7ub31y3U=", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpp": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/regexpp/download/regexpp-1.1.0.tgz", + "integrity": "sha1-DjUW3Qt5BPQT0tQZPc5GGMOmias=", + "dev": true, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/regexpu-core": { + "version": "4.7.0", + "resolved": "https://registry.npm.taobao.org/regexpu-core/download/regexpu-core-4.7.0.tgz?cache=0&sync_timestamp=1583949899397&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexpu-core%2Fdownload%2Fregexpu-core-4.7.0.tgz", + "integrity": "sha1-/L9FjFBDGwu3tF1pZ7gZLZHz2Tg=", + "dev": true, + "dependencies": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/regjsgen": { + "version": "0.5.2", + "resolved": "https://registry.npm.taobao.org/regjsgen/download/regjsgen-0.5.2.tgz", + "integrity": "sha1-kv8pX7He7L9uzaslQ9IH6RqjNzM=", + "dev": true + }, + "node_modules/regjsparser": { + "version": "0.6.4", + "resolved": "https://registry.npm.taobao.org/regjsparser/download/regjsparser-0.6.4.tgz", + "integrity": "sha1-p2n4aEMIQBpm6bUp0kNv9NBmYnI=", + "dev": true, + "dependencies": { + "jsesc": "~0.5.0" + }, + "bin": { + "regjsparser": "bin/parser" + } + }, + "node_modules/regjsparser/node_modules/jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npm.taobao.org/jsesc/download/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true, + "bin": { + "jsesc": "bin/jsesc" + } + }, + "node_modules/relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npm.taobao.org/relateurl/download/relateurl-0.2.7.tgz", + "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/remove-trailing-separator/download/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "node_modules/renderkid": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/renderkid/download/renderkid-2.0.3.tgz", + "integrity": "sha1-OAF5wv9a4TZcUivy/Pz/AcW3QUk=", + "dev": true, + "dependencies": { + "css-select": "^1.1.0", + "dom-converter": "^0.2", + "htmlparser2": "^3.3.0", + "strip-ansi": "^3.0.0", + "utila": "^0.4.0" + } + }, + "node_modules/renderkid/node_modules/css-select": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/css-select/download/css-select-1.2.0.tgz", + "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", + "dev": true, + "dependencies": { + "boolbase": "~1.0.0", + "css-what": "2.1", + "domutils": "1.5.1", + "nth-check": "~1.0.1" + } + }, + "node_modules/renderkid/node_modules/css-what": { + "version": "2.1.3", + "resolved": "https://registry.npm.taobao.org/css-what/download/css-what-2.1.3.tgz", + "integrity": "sha1-ptdgRXM2X+dGhsPzEcVlE9iChfI=", + "dev": true, + "engines": { + "node": "*" + } + }, + "node_modules/renderkid/node_modules/domutils": { + "version": "1.5.1", + "resolved": "https://registry.npm.taobao.org/domutils/download/domutils-1.5.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomutils%2Fdownload%2Fdomutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "dev": true, + "dependencies": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "node_modules/repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/repeat-element/download/repeat-element-1.1.3.tgz", + "integrity": "sha1-eC4NglwMWjuzlzH4Tv7mt0Lmsc4=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npm.taobao.org/repeat-string/download/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/repeating": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/repeating/download/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "dependencies": { + "is-finite": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/request": { + "version": "2.88.2", + "resolved": "https://registry.npm.taobao.org/request/download/request-2.88.2.tgz?cache=0&sync_timestamp=1581439006948&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frequest%2Fdownload%2Frequest-2.88.2.tgz", + "integrity": "sha1-1zyRhzHLWofaBH4gcjQUb2ZNErM=", + "deprecated": "request has been deprecated, see https://github.com/request/request/issues/3142", + "dev": true, + "dependencies": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/request-promise-core": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/request-promise-core/download/request-promise-core-1.1.3.tgz", + "integrity": "sha1-6aPAgbUTgN/qZ3M2Bh/qh5qCnuk=", + "dev": true, + "dependencies": { + "lodash": "^4.17.15" + }, + "engines": { + "node": ">=0.10.0" + }, + "peerDependencies": { + "request": "^2.34" + } + }, + "node_modules/request-promise-native": { + "version": "1.0.8", + "resolved": "https://registry.npm.taobao.org/request-promise-native/download/request-promise-native-1.0.8.tgz", + "integrity": "sha1-pFW5YLgm5E4r+Jma9k3/K/5YyzY=", + "deprecated": "request-promise-native has been deprecated because it extends the now deprecated request package, see https://github.com/request/request/issues/3142", + "dev": true, + "dependencies": { + "request-promise-core": "1.1.3", + "stealthy-require": "^1.1.1", + "tough-cookie": "^2.3.3" + }, + "engines": { + "node": ">=0.12.0" + }, + "peerDependencies": { + "request": "^2.34" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/require-directory/download/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/require-from-string/download/require-from-string-2.0.2.tgz", + "integrity": "sha1-iaf92TgmEmcxjq/hT5wy5ZjDaQk=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/require-main-filename/download/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "node_modules/require-uncached": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/require-uncached/download/require-uncached-1.0.3.tgz", + "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", + "dev": true, + "dependencies": { + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/requires-port/download/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "node_modules/reselect": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/reselect/download/reselect-3.0.1.tgz", + "integrity": "sha1-79qpjqdFEyTQkrKyFjpqHXqaIUc=", + "dev": true + }, + "node_modules/resolve": { + "version": "1.17.0", + "resolved": "https://registry.npm.taobao.org/resolve/download/resolve-1.17.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve%2Fdownload%2Fresolve-1.17.0.tgz", + "integrity": "sha1-sllBtUloIxzC0bt2p5y38sC/hEQ=", + "dependencies": { + "path-parse": "^1.0.6" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/resolve-cwd/download/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "dev": true, + "dependencies": { + "resolve-from": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-cwd/node_modules/resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/resolve-from": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-1.0.1.tgz", + "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npm.taobao.org/resolve-url/download/resolve-url-0.2.1.tgz?cache=0&sync_timestamp=1585438700247&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-url%2Fdownload%2Fresolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "deprecated": "https://github.com/lydell/resolve-url#deprecated", + "dev": true + }, + "node_modules/restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/restore-cursor/download/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "dependencies": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/resumer": { + "version": "0.0.0", + "resolved": "https://registry.npm.taobao.org/resumer/download/resumer-0.0.0.tgz", + "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", + "dependencies": { + "through": "~2.3.4" + } + }, + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npm.taobao.org/ret/download/ret-0.1.15.tgz", + "integrity": "sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w=", + "dev": true, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/retry": { + "version": "0.12.0", + "resolved": "https://registry.npm.taobao.org/retry/download/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/rgb-regex": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/rgb-regex/download/rgb-regex-1.0.1.tgz", + "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", + "dev": true + }, + "node_modules/rgba-regex": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/rgba-regex/download/rgba-regex-1.0.0.tgz", + "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", + "dev": true + }, + "node_modules/right-align": { + "version": "0.1.3", + "resolved": "https://registry.npm.taobao.org/right-align/download/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "dependencies": { + "align-text": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz?cache=0&sync_timestamp=1581229865753&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.7.1.tgz", + "integrity": "sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/ripemd160/download/ripemd160-2.0.2.tgz", + "integrity": "sha1-ocGm9iR1FXe6XQeRTLyShQWFiQw=", + "dev": true, + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/rollup": { + "version": "0.25.8", + "resolved": "https://registry.npm.taobao.org/rollup/download/rollup-0.25.8.tgz?cache=0&sync_timestamp=1595099799360&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frollup%2Fdownload%2Frollup-0.25.8.tgz", + "integrity": "sha1-v2zoO4dRDRY0Ru6qV37WpvxYNeA=", + "dependencies": { + "chalk": "^1.1.1", + "minimist": "^1.2.0", + "source-map-support": "^0.3.2" + }, + "bin": { + "rollup": "bin/rollup" + } + }, + "node_modules/run-async": { + "version": "2.4.1", + "resolved": "https://registry.npm.taobao.org/run-async/download/run-async-2.4.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frun-async%2Fdownload%2Frun-async-2.4.1.tgz", + "integrity": "sha1-hEDsz5nqPnC9QJ1JqriOEMGJpFU=", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/run-queue/download/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "dev": true, + "dependencies": { + "aproba": "^1.1.1" + } + }, + "node_modules/rw": { + "version": "1.3.3", + "resolved": "https://registry.npm.taobao.org/rw/download/rw-1.3.3.tgz", + "integrity": "sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q=" + }, + "node_modules/rx-lite": { + "version": "4.0.8", + "resolved": "https://registry.npm.taobao.org/rx-lite/download/rx-lite-4.0.8.tgz", + "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", + "dev": true + }, + "node_modules/rx-lite-aggregates": { + "version": "4.0.8", + "resolved": "https://registry.npm.taobao.org/rx-lite-aggregates/download/rx-lite-aggregates-4.0.8.tgz", + "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", + "dev": true, + "dependencies": { + "rx-lite": "*" + } + }, + "node_modules/rxjs": { + "version": "5.5.12", + "resolved": "https://registry.npm.taobao.org/rxjs/download/rxjs-5.5.12.tgz?cache=0&sync_timestamp=1593794887039&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frxjs%2Fdownload%2Frxjs-5.5.12.tgz", + "integrity": "sha1-b6YbinfD15PbrycL7i9D9lLXQcw=", + "dev": true, + "dependencies": { + "symbol-observable": "1.0.1" + }, + "engines": { + "npm": ">=2.0.0" + } + }, + "node_modules/rxjs/node_modules/symbol-observable": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/symbol-observable/download/symbol-observable-1.0.1.tgz", + "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz", + "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=", + "dev": true + }, + "node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/safe-regex/download/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/safer-buffer/download/safer-buffer-2.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafer-buffer%2Fdownload%2Fsafer-buffer-2.1.2.tgz", + "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=", + "dev": true + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npm.taobao.org/sax/download/sax-1.2.4.tgz", + "integrity": "sha1-KBYjTiN4vdxOU1T6tcqold9xANk=", + "dev": true + }, + "node_modules/saxes": { + "version": "3.1.11", + "resolved": "https://registry.npm.taobao.org/saxes/download/saxes-3.1.11.tgz", + "integrity": "sha1-1Z0f0zLskq2YouCy7mRHAjhLHFs=", + "dev": true, + "dependencies": { + "xmlchars": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-2.7.0.tgz", + "integrity": "sha1-FxUfdtjq5n+793lgwzxnatn078c=", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + }, + "engines": { + "node": ">= 8.9.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/select": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/select/download/select-1.1.2.tgz", + "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=" + }, + "node_modules/select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/select-hose/download/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", + "dev": true + }, + "node_modules/selfsigned": { + "version": "1.10.7", + "resolved": "https://registry.npm.taobao.org/selfsigned/download/selfsigned-1.10.7.tgz", + "integrity": "sha1-2lgZ/QSdVXTyjoipvMbbxubzkGs=", + "dev": true, + "dependencies": { + "node-forge": "0.9.0" + } + }, + "node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1586886301819&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz", + "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/send": { + "version": "0.17.1", + "resolved": "https://registry.npm.taobao.org/send/download/send-0.17.1.tgz", + "integrity": "sha1-wdiwWfeQD3Rm3Uk4vcROEd2zdsg=", + "dev": true, + "dependencies": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/send/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/send/node_modules/debug/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "node_modules/send/node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npm.taobao.org/mime/download/mime-1.6.0.tgz?cache=0&sync_timestamp=1590596706367&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-1.6.0.tgz", + "integrity": "sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE=", + "dev": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/send/node_modules/ms": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.1.tgz", + "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=", + "dev": true + }, + "node_modules/serialize-javascript": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-3.1.0.tgz", + "integrity": "sha1-i/OpFwcSZk7yVhtEtpHq/jmSFOo=", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npm.taobao.org/serve-index/download/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dev": true, + "dependencies": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/serve-index/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/serve-index/node_modules/http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npm.taobao.org/http-errors/download/http-errors-1.6.3.tgz?cache=0&sync_timestamp=1593407710477&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/serve-index/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "node_modules/serve-index/node_modules/setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.0.tgz?cache=0&sync_timestamp=1563425414995&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsetprototypeof%2Fdownload%2Fsetprototypeof-1.1.0.tgz", + "integrity": "sha1-0L2FU2iHtv58DYGMuWLZ2RxU5lY=", + "dev": true + }, + "node_modules/serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npm.taobao.org/serve-static/download/serve-static-1.14.1.tgz", + "integrity": "sha1-Zm5jbcTwEPfvKZcKiKZ0MgiYsvk=", + "dev": true, + "dependencies": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/set-blocking/download/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/set-value/download/set-value-2.0.1.tgz?cache=0&sync_timestamp=1585775409029&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fset-value%2Fdownload%2Fset-value-2.0.1.tgz", + "integrity": "sha1-oY1AUw5vB95CKMfe/kInr4ytAFs=", + "dev": true, + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/setimmediate/download/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true + }, + "node_modules/setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.1.tgz?cache=0&sync_timestamp=1563425414995&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsetprototypeof%2Fdownload%2Fsetprototypeof-1.1.1.tgz", + "integrity": "sha1-fpWsskqpL1iF4KvvW6ExMw1K5oM=", + "dev": true + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npm.taobao.org/sha.js/download/sha.js-2.4.11.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsha.js%2Fdownload%2Fsha.js-2.4.11.tgz", + "integrity": "sha1-N6XPC4HsvGlD3hCbopYNGyZYSuc=", + "dev": true, + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/shebang-command/download/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/shebang-regex/download/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shell-quote": { + "version": "1.7.2", + "resolved": "https://registry.npm.taobao.org/shell-quote/download/shell-quote-1.7.2.tgz", + "integrity": "sha1-Z6fQLHbJ2iT5nSCAj8re0ODgS+I=", + "dev": true + }, + "node_modules/sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/sigmund/download/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", + "dev": true + }, + "node_modules/signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npm.taobao.org/signal-exit/download/signal-exit-3.0.3.tgz", + "integrity": "sha1-oUEMLt2PB3sItOJTyOrPyvBXRhw=", + "dev": true + }, + "node_modules/simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npm.taobao.org/simple-swizzle/download/simple-swizzle-0.2.2.tgz", + "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "dev": true, + "dependencies": { + "is-arrayish": "^0.3.1" + } + }, + "node_modules/simple-swizzle/node_modules/is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.3.2.tgz", + "integrity": "sha1-RXSirlb3qyBolvtDHq7tBm/fjwM=", + "dev": true + }, + "node_modules/simplemde": { + "version": "1.11.2", + "resolved": "https://registry.npm.taobao.org/simplemde/download/simplemde-1.11.2.tgz", + "integrity": "sha1-ojo12XjSxA7wfewAjJLwcNjggOM=", + "dependencies": { + "codemirror": "*", + "codemirror-spell-checker": "*", + "marked": "*" + } + }, + "node_modules/slash": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/slash/download/slash-2.0.0.tgz", + "integrity": "sha1-3lUoUaF1nfOo8gZTVEL17E3eq0Q=", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/slice-ansi": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/slice-ansi/download/slice-ansi-1.0.0.tgz", + "integrity": "sha1-BE8aSdiEL/MHqta1Be0Xi9lQE00=", + "dev": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/slick-carousel": { + "version": "1.8.1", + "resolved": "https://registry.npm.taobao.org/slick-carousel/download/slick-carousel-1.8.1.tgz", + "integrity": "sha1-pL+ykBSIe7Zs5Si5C9DNomLMj40=", + "peerDependencies": { + "jquery": ">=1.8.0" + } + }, + "node_modules/snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npm.taobao.org/snapdragon/download/snapdragon-0.8.2.tgz", + "integrity": "sha1-ZJIufFZbDhQgS6GqfWlkJ40lGC0=", + "dev": true, + "dependencies": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/snapdragon-node/download/snapdragon-node-2.1.1.tgz", + "integrity": "sha1-bBdfhv8UvbByRWPo88GwIaKGhTs=", + "dev": true, + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "dev": true, + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "dev": true, + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-6.0.3.tgz", + "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/snapdragon-util/download/snapdragon-util-3.0.1.tgz", + "integrity": "sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI=", + "dev": true, + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/snapdragon/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sntp": { + "version": "1.0.9", + "resolved": "https://registry.npm.taobao.org/sntp/download/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "deprecated": "This module moved to @hapi/sntp. Please make sure to switch over as this distribution is no longer supported and may contain bugs and critical security issues.", + "dev": true, + "optional": true, + "dependencies": { + "hoek": "2.x.x" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/sockjs": { + "version": "0.3.20", + "resolved": "https://registry.npm.taobao.org/sockjs/download/sockjs-0.3.20.tgz", + "integrity": "sha1-smooPsVi74smh7RAM6Tuzqx12FU=", + "dev": true, + "dependencies": { + "faye-websocket": "^0.10.0", + "uuid": "^3.4.0", + "websocket-driver": "0.6.5" + } + }, + "node_modules/sockjs-client": { + "version": "1.4.0", + "resolved": "https://registry.npm.taobao.org/sockjs-client/download/sockjs-client-1.4.0.tgz", + "integrity": "sha1-yfJWjhnI/YFztJl+o0IOC7MGx9U=", + "dev": true, + "dependencies": { + "debug": "^3.2.5", + "eventsource": "^1.0.7", + "faye-websocket": "~0.11.1", + "inherits": "^2.0.3", + "json3": "^3.3.2", + "url-parse": "^1.4.3" + } + }, + "node_modules/sockjs-client/node_modules/debug": { + "version": "3.2.6", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.6.tgz", + "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/sockjs-client/node_modules/faye-websocket": { + "version": "0.11.3", + "resolved": "https://registry.npm.taobao.org/faye-websocket/download/faye-websocket-0.11.3.tgz", + "integrity": "sha1-XA6aiWjokSwoZjn96XeosgnyUI4=", + "dev": true, + "dependencies": { + "websocket-driver": ">=0.5.1" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/sockjs-client/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", + "dev": true + }, + "node_modules/sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/sort-keys/download/sort-keys-1.1.2.tgz?cache=0&sync_timestamp=1565864727994&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsort-keys%2Fdownload%2Fsort-keys-1.1.2.tgz", + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "dev": true, + "dependencies": { + "is-plain-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sortablejs": { + "version": "1.10.2", + "resolved": "https://registry.npm.taobao.org/sortablejs/download/sortablejs-1.10.2.tgz", + "integrity": "sha1-bkA2TZE/mLhaFPZnj5K1wSIfUpA=" + }, + "node_modules/source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/source-list-map/download/source-list-map-2.0.1.tgz", + "integrity": "sha1-OZO9hzv8SEecyp6jpUeDXHwVSzQ=", + "dev": true + }, + "node_modules/source-map": { + "version": "0.1.32", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.1.32.tgz", + "integrity": "sha1-yLbBZ3l7pHQKjqMyUhYv8IWRsmY=", + "dependencies": { + "amdefine": ">=0.0.4" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npm.taobao.org/source-map-resolve/download/source-map-resolve-0.5.3.tgz?cache=0&sync_timestamp=1584831908370&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-resolve%2Fdownload%2Fsource-map-resolve-0.5.3.tgz", + "integrity": "sha1-GQhmvs51U+H48mei7oLGBrVQmho=", + "deprecated": "See https://github.com/lydell/source-map-resolve#deprecated", + "dev": true, + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "node_modules/source-map-support": { + "version": "0.3.3", + "resolved": "https://registry.npm.taobao.org/source-map-support/download/source-map-support-0.3.3.tgz?cache=0&sync_timestamp=1587719517036&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-support%2Fdownload%2Fsource-map-support-0.3.3.tgz", + "integrity": "sha1-NJAJd9W6PwfHdX7nLnO7GptTdU8=", + "dependencies": { + "source-map": "0.1.32" + } + }, + "node_modules/source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npm.taobao.org/source-map-url/download/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "deprecated": "See https://github.com/lydell/source-map-url#deprecated", + "dev": true + }, + "node_modules/spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/spdx-correct/download/spdx-correct-3.1.1.tgz?cache=0&sync_timestamp=1590161967473&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-correct%2Fdownload%2Fspdx-correct-3.1.1.tgz", + "integrity": "sha1-3s6BrJweZxPl99G28X1Gj6U9iak=", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/spdx-exceptions/download/spdx-exceptions-2.3.0.tgz?cache=0&sync_timestamp=1587422410312&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-exceptions%2Fdownload%2Fspdx-exceptions-2.3.0.tgz", + "integrity": "sha1-PyjOGnegA3JoPq3kpDMYNSeiFj0=", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/spdx-expression-parse/download/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha1-z3D1BILu/cmOPOCmgz5KU87rpnk=", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.5", + "resolved": "https://registry.npm.taobao.org/spdx-license-ids/download/spdx-license-ids-3.0.5.tgz", + "integrity": "sha1-NpS1gEVnpFjTyARYQqY1hjL2JlQ=", + "dev": true + }, + "node_modules/spdy": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/spdy/download/spdy-4.0.2.tgz", + "integrity": "sha1-t09GYgOj7aRSwCSSuR+56EonZ3s=", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/spdy-transport/download/spdy-transport-3.0.0.tgz", + "integrity": "sha1-ANSGOmQArXXfkzYaFghgXl3NzzE=", + "dev": true, + "dependencies": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + } + }, + "node_modules/spdy-transport/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.1.1.tgz", + "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/spdy-transport/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", + "dev": true + }, + "node_modules/spdy-transport/node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz", + "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", + "dev": true, + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/spdy/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.1.1.tgz", + "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/spdy/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", + "dev": true + }, + "node_modules/split-string": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/split-string/download/split-string-3.1.0.tgz", + "integrity": "sha1-fLCd2jqGWFcFxks5pkZgOGguj+I=", + "dev": true, + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/sprintf-js/download/sprintf-js-1.0.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsprintf-js%2Fdownload%2Fsprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "node_modules/ssf": { + "version": "0.10.3", + "resolved": "https://registry.npm.taobao.org/ssf/download/ssf-0.10.3.tgz", + "integrity": "sha1-jq4fwpyQpVLnkhII+BiS1vd6yys=", + "dependencies": { + "frac": "~1.1.2" + }, + "bin": { + "ssf": "bin/ssf.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npm.taobao.org/sshpk/download/sshpk-1.16.1.tgz", + "integrity": "sha1-+2YcC+8ps520B2nuOfpwCT1vaHc=", + "dev": true, + "dependencies": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + }, + "bin": { + "sshpk-conv": "bin/sshpk-conv", + "sshpk-sign": "bin/sshpk-sign", + "sshpk-verify": "bin/sshpk-verify" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ssri": { + "version": "6.0.1", + "resolved": "https://registry.npm.taobao.org/ssri/download/ssri-6.0.1.tgz", + "integrity": "sha1-KjxBso3UW2K2Nnbst0ABJlrp7dg=", + "dev": true, + "dependencies": { + "figgy-pudding": "^3.5.1" + } + }, + "node_modules/stable": { + "version": "0.1.8", + "resolved": "https://registry.npm.taobao.org/stable/download/stable-0.1.8.tgz", + "integrity": "sha1-g26zyDgv4pNv6vVEYxAXzn1Ho88=", + "deprecated": "Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility", + "dev": true + }, + "node_modules/stackframe": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/stackframe/download/stackframe-1.2.0.tgz?cache=0&sync_timestamp=1590854148142&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstackframe%2Fdownload%2Fstackframe-1.2.0.tgz", + "integrity": "sha1-UkKUktY8YuuYmATBFVLj0i53kwM=", + "dev": true + }, + "node_modules/staged-git-files": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/staged-git-files/download/staged-git-files-1.0.0.tgz", + "integrity": "sha1-zbhHg3wfzFLAioctSIPMCHdmioA=", + "dev": true + }, + "node_modules/static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/static-extend/download/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "dependencies": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npm.taobao.org/statuses/download/statuses-1.5.0.tgz?cache=0&sync_timestamp=1587328859420&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatuses%2Fdownload%2Fstatuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/stealthy-require": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/stealthy-require/download/stealthy-require-1.1.1.tgz", + "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/stream-browserify/download/stream-browserify-2.0.2.tgz?cache=0&sync_timestamp=1587041519870&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstream-browserify%2Fdownload%2Fstream-browserify-2.0.2.tgz", + "integrity": "sha1-h1IdOKRKp+6RzhzSpH3wy0ndZgs=", + "dev": true, + "dependencies": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "node_modules/stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npm.taobao.org/stream-each/download/stream-each-1.2.3.tgz", + "integrity": "sha1-6+J6DDibBPvMIzZClS4Qcxr6m64=", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "node_modules/stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npm.taobao.org/stream-http/download/stream-http-2.8.3.tgz?cache=0&sync_timestamp=1588701035785&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstream-http%2Fdownload%2Fstream-http-2.8.3.tgz", + "integrity": "sha1-stJCRpKIpaJ+xP6JM6z2I95lFPw=", + "dev": true, + "dependencies": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "node_modules/stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/stream-shift/download/stream-shift-1.0.1.tgz?cache=0&sync_timestamp=1576147145118&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstream-shift%2Fdownload%2Fstream-shift-1.0.1.tgz", + "integrity": "sha1-1wiCgVWasneEJCebCHfaPDktWj0=", + "dev": true + }, + "node_modules/stream-to-observable": { + "version": "0.2.0", + "resolved": "https://registry.npm.taobao.org/stream-to-observable/download/stream-to-observable-0.2.0.tgz", + "integrity": "sha1-WdbqOT2HwsDdrBCqDVYbxrpvDhA=", + "dev": true, + "dependencies": { + "any-observable": "^0.2.0" + }, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/strict-uri-encode/download/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.1.1.tgz", + "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=", + "dev": true, + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/string-width": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-2.1.1.tgz", + "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", + "dev": true, + "dependencies": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/string-width/node_modules/ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/string-width/node_modules/strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "dependencies": { + "ansi-regex": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/string.prototype.padend": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/string.prototype.padend/download/string.prototype.padend-3.1.0.tgz?cache=0&sync_timestamp=1576312069927&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.padend%2Fdownload%2Fstring.prototype.padend-3.1.0.tgz", + "integrity": "sha1-3Aj1eoAQ3FwVNVAxj2fhOtu3KsM=", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.padstart": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/string.prototype.padstart/download/string.prototype.padstart-3.1.0.tgz", + "integrity": "sha1-tHwIdUDQcQvlpJN1dRoKYnvU/5A=", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/string.prototype.trim/download/string.prototype.trim-1.2.1.tgz", + "integrity": "sha1-FBIz3/Msgr+tgGhNfl8Iae4Pt4I=", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimend": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/string.prototype.trimend/download/string.prototype.trimend-1.0.1.tgz?cache=0&sync_timestamp=1586465409341&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimend%2Fdownload%2Fstring.prototype.trimend-1.0.1.tgz", + "integrity": "sha1-hYEqa4R6wAInD1gIFGBkyZX7aRM=", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/string.prototype.trimstart/download/string.prototype.trimstart-1.0.1.tgz?cache=0&sync_timestamp=1586465413621&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimstart%2Fdownload%2Fstring.prototype.trimstart-1.0.1.tgz", + "integrity": "sha1-FK9tnzSwU/fPyJty+PLuFLkDmlQ=", + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npm.taobao.org/stringify-object/download/stringify-object-3.3.0.tgz", + "integrity": "sha1-cDBlrvyhkwDTzoivT1s5VtdVZik=", + "dev": true, + "dependencies": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/stringify-object/node_modules/is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/is-obj/download/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stringstream": { + "version": "0.0.6", + "resolved": "https://registry.npm.taobao.org/stringstream/download/stringstream-0.0.6.tgz", + "integrity": "sha1-eIAiWw1K0Q4wkn0Weh1vL9OzOnI=", + "dev": true, + "optional": true + }, + "node_modules/strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dependencies": { + "ansi-regex": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/strip-bom/download/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/strip-eof/download/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/strip-final-newline/download/strip-final-newline-2.0.0.tgz", + "integrity": "sha1-ibhS+y/L6Tb29LMYevsKEsGrWK0=", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/strip-indent/download/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/strip-json-comments/download/strip-json-comments-2.0.1.tgz?cache=0&sync_timestamp=1594567586410&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-json-comments%2Fdownload%2Fstrip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/stylehacks": { + "version": "4.0.3", + "resolved": "https://registry.npm.taobao.org/stylehacks/download/stylehacks-4.0.3.tgz", + "integrity": "sha1-Zxj8r00eB9ihMYaQiB6NlnJqcdU=", + "dev": true, + "dependencies": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/stylehacks/node_modules/postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-3.1.2.tgz", + "integrity": "sha1-sxD1xMD9r3b5SQK7qjDbaqhPUnA=", + "dev": true, + "dependencies": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/svg-tags/download/svg-tags-1.0.0.tgz", + "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=", + "dev": true + }, + "node_modules/svgo": { + "version": "1.3.2", + "resolved": "https://registry.npm.taobao.org/svgo/download/svgo-1.3.2.tgz?cache=0&sync_timestamp=1572433264480&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsvgo%2Fdownload%2Fsvgo-1.3.2.tgz", + "integrity": "sha1-ttxRHAYzRsnkFbgeQ0ARRbltQWc=", + "deprecated": "This SVGO version is no longer supported. Upgrade to v2.x.x.", + "dev": true, + "dependencies": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + }, + "bin": { + "svgo": "bin/svgo" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/svgo/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/svgo/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/svgo/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/symbol-observable": { + "version": "0.2.4", + "resolved": "https://registry.npm.taobao.org/symbol-observable/download/symbol-observable-0.2.4.tgz", + "integrity": "sha1-lag9smGG1q9+ehjb2XYKL4bQj0A=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npm.taobao.org/symbol-tree/download/symbol-tree-3.2.4.tgz", + "integrity": "sha1-QwY30ki6d+B4iDlR+5qg7tfGP6I=", + "dev": true + }, + "node_modules/table": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/table/download/table-4.0.2.tgz", + "integrity": "sha1-ozRHN1OR52atNNNIbm4q7chNLjY=", + "dev": true, + "dependencies": { + "ajv": "^5.2.3", + "ajv-keywords": "^2.1.0", + "chalk": "^2.1.0", + "lodash": "^4.17.4", + "slice-ansi": "1.0.0", + "string-width": "^2.1.1" + } + }, + "node_modules/table/node_modules/ajv": { + "version": "5.5.2", + "resolved": "https://registry.npm.taobao.org/ajv/download/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "dependencies": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "node_modules/table/node_modules/ajv-keywords": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-2.1.1.tgz", + "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", + "dev": true, + "peerDependencies": { + "ajv": "^5.0.0" + } + }, + "node_modules/table/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/table/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/table/node_modules/fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-1.1.0.tgz?cache=0&sync_timestamp=1591599666712&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-deep-equal%2Fdownload%2Ffast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "dev": true + }, + "node_modules/table/node_modules/json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true + }, + "node_modules/table/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/tapable": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/tapable/download/tapable-1.1.3.tgz", + "integrity": "sha1-ofzMBrWNth/XpF2i2kT186Pme6I=", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/tape": { + "version": "4.13.3", + "resolved": "https://registry.npm.taobao.org/tape/download/tape-4.13.3.tgz?cache=0&sync_timestamp=1590380169759&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftape%2Fdownload%2Ftape-4.13.3.tgz", + "integrity": "sha1-UbPZHINmjHpFsaWUtgfe4KC0Yng=", + "dependencies": { + "deep-equal": "~1.1.1", + "defined": "~1.0.0", + "dotignore": "~0.1.2", + "for-each": "~0.3.3", + "function-bind": "~1.1.1", + "glob": "~7.1.6", + "has": "~1.0.3", + "inherits": "~2.0.4", + "is-regex": "~1.0.5", + "minimist": "~1.2.5", + "object-inspect": "~1.7.0", + "resolve": "~1.17.0", + "resumer": "~0.0.0", + "string.prototype.trim": "~1.2.1", + "through": "~2.3.8" + }, + "bin": { + "tape": "bin/tape" + } + }, + "node_modules/terser": { + "version": "4.8.0", + "resolved": "https://registry.npm.taobao.org/terser/download/terser-4.8.0.tgz?cache=0&sync_timestamp=1593953635939&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser%2Fdownload%2Fterser-4.8.0.tgz", + "integrity": "sha1-YwVjQ9fHC7KfOvZlhlpG/gOg3xc=", + "dev": true, + "dependencies": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "1.4.4", + "resolved": "https://registry.npm.taobao.org/terser-webpack-plugin/download/terser-webpack-plugin-1.4.4.tgz?cache=0&sync_timestamp=1594910785474&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser-webpack-plugin%2Fdownload%2Fterser-webpack-plugin-1.4.4.tgz", + "integrity": "sha1-LGNUQ0cyS6r6mla6rd8WNMir/C8=", + "dev": true, + "dependencies": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^3.1.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + }, + "engines": { + "node": ">= 6.9.0" + }, + "peerDependencies": { + "webpack": "^4.0.0" + } + }, + "node_modules/terser-webpack-plugin/node_modules/schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", + "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", + "dev": true, + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/terser-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/terser/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/terser/node_modules/source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npm.taobao.org/source-map-support/download/source-map-support-0.5.19.tgz?cache=0&sync_timestamp=1587719517036&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-support%2Fdownload%2Fsource-map-support-0.5.19.tgz", + "integrity": "sha1-qYti+G3K9PZzmWSMCFKRq56P7WE=", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npm.taobao.org/text-table/download/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "node_modules/thenify": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/thenify/download/thenify-3.3.1.tgz", + "integrity": "sha1-iTLmhqQGYDigFt2eLKRq3Zg4qV8=", + "dev": true, + "dependencies": { + "any-promise": "^1.0.0" + } + }, + "node_modules/thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npm.taobao.org/thenify-all/download/thenify-all-1.6.0.tgz", + "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", + "dev": true, + "dependencies": { + "thenify": ">= 3.1.0 < 4" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/thread-loader": { + "version": "2.1.3", + "resolved": "https://registry.npm.taobao.org/thread-loader/download/thread-loader-2.1.3.tgz", + "integrity": "sha1-y9LBOfwrLebp0o9iKGq3cMGsvdo=", + "dev": true, + "dependencies": { + "loader-runner": "^2.3.1", + "loader-utils": "^1.1.0", + "neo-async": "^2.6.0" + }, + "engines": { + "node": ">= 6.9.0 <7.0.0 || >= 8.9.0" + }, + "peerDependencies": { + "webpack": "^2.0.0 || ^3.0.0 || ^4.0.0" + } + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npm.taobao.org/through/download/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npm.taobao.org/through2/download/through2-2.0.5.tgz", + "integrity": "sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=", + "dev": true, + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/thunky": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/thunky/download/thunky-1.1.0.tgz?cache=0&sync_timestamp=1571043401546&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fthunky%2Fdownload%2Fthunky-1.1.0.tgz", + "integrity": "sha1-Wrr3FKlAXbBQRzK7zNLO3Z75U30=", + "dev": true + }, + "node_modules/timers-browserify": { + "version": "2.0.11", + "resolved": "https://registry.npm.taobao.org/timers-browserify/download/timers-browserify-2.0.11.tgz", + "integrity": "sha1-gAsfPu4nLlvFPuRloE0OgEwxIR8=", + "dev": true, + "dependencies": { + "setimmediate": "^1.0.4" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/timsort": { + "version": "0.3.0", + "resolved": "https://registry.npm.taobao.org/timsort/download/timsort-0.3.0.tgz", + "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", + "dev": true + }, + "node_modules/tiny-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/tiny-emitter/download/tiny-emitter-2.1.0.tgz", + "integrity": "sha1-HRpW7fxRxD6GPLtTgqcjMONVVCM=" + }, + "node_modules/tinycolor2": { + "version": "1.4.1", + "resolved": "https://registry.npm.taobao.org/tinycolor2/download/tinycolor2-1.4.1.tgz", + "integrity": "sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g=", + "engines": { + "node": "*" + } + }, + "node_modules/tmp": { + "version": "0.0.33", + "resolved": "https://registry.npm.taobao.org/tmp/download/tmp-0.0.33.tgz?cache=0&sync_timestamp=1588178571895&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftmp%2Fdownload%2Ftmp-0.0.33.tgz", + "integrity": "sha1-bTQzWIl2jSGyvNoKonfO07G/rfk=", + "dev": true, + "dependencies": { + "os-tmpdir": "~1.0.2" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/to-arraybuffer/download/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npm.taobao.org/to-object-path/download/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/to-regex/download/to-regex-3.0.2.tgz", + "integrity": "sha1-E8/dmzNlUvMLUfM6iuG0Knp1mc4=", + "dev": true, + "dependencies": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/toidentifier/download/toidentifier-1.0.0.tgz", + "integrity": "sha1-fhvjRw8ed5SLxD2Uo8j013UrpVM=", + "dev": true, + "engines": { + "node": ">=0.6" + } + }, + "node_modules/toposort": { + "version": "1.0.7", + "resolved": "https://registry.npm.taobao.org/toposort/download/toposort-1.0.7.tgz", + "integrity": "sha1-LmhELZ9k7HILjMieZEOsbKqVACk=", + "dev": true + }, + "node_modules/tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npm.taobao.org/tough-cookie/download/tough-cookie-2.5.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftough-cookie%2Fdownload%2Ftough-cookie-2.5.0.tgz", + "integrity": "sha1-zZ+yoKodWhK0c72fuW+j3P9lreI=", + "dev": true, + "dependencies": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/tr46": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/tr46/download/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/tree-table-vue": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/tree-table-vue/download/tree-table-vue-1.1.0.tgz", + "integrity": "sha1-ETpL2dhPqmQ5csS4AoCanbZjDYk=", + "dependencies": { + "clonedeep": "^2.0.0", + "iview": "^3.1.5", + "vue": "^2.5.17" + }, + "engines": { + "node": ">= 4.0.0", + "npm": ">= 3.0.0" + }, + "peerDependencies": { + "vue": "^2.4.3" + } + }, + "node_modules/tryer": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/tryer/download/tryer-1.0.1.tgz", + "integrity": "sha1-8shUBoALmw90yfdGW4HqrSQSUvg=", + "dev": true + }, + "node_modules/tsconfig-paths": { + "version": "3.9.0", + "resolved": "https://registry.npm.taobao.org/tsconfig-paths/download/tsconfig-paths-3.9.0.tgz", + "integrity": "sha1-CYVHpsREiAfo/Ljq4IEGTumjyQs=", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.0", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tsconfig-paths/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz?cache=0&sync_timestamp=1586046271069&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-1.0.1.tgz", + "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/tslib": { + "version": "1.13.0", + "resolved": "https://registry.npm.taobao.org/tslib/download/tslib-1.13.0.tgz", + "integrity": "sha1-yIHhPMcBWJTtkUhi0nZDb6mkcEM=", + "dev": true + }, + "node_modules/tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npm.taobao.org/tty-browserify/download/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true + }, + "node_modules/tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npm.taobao.org/tunnel-agent/download/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "dependencies": { + "safe-buffer": "^5.0.1" + }, + "engines": { + "node": "*" + } + }, + "node_modules/tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npm.taobao.org/tweetnacl/download/tweetnacl-0.14.5.tgz?cache=0&sync_timestamp=1581365146868&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftweetnacl%2Fdownload%2Ftweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npm.taobao.org/type-check/download/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npm.taobao.org/type-detect/download/type-detect-4.0.8.tgz", + "integrity": "sha1-dkb7XxiHHPu3dJ5pvTmmOI63RQw=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npm.taobao.org/type-fest/download/type-fest-0.6.0.tgz", + "integrity": "sha1-jSojcNPfiG61yQraHFv2GIrPg4s=", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/type-is": { + "version": "1.6.18", + "resolved": "https://registry.npm.taobao.org/type-is/download/type-is-1.6.18.tgz", + "integrity": "sha1-TlUs0F3wlGfcvE73Od6J8s83wTE=", + "dev": true, + "dependencies": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npm.taobao.org/typedarray/download/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "node_modules/typo-js": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/typo-js/download/typo-js-1.1.0.tgz", + "integrity": "sha1-pan1kry0U2Zr9wyWlNpYcF0CXtg=" + }, + "node_modules/uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npm.taobao.org/uglify-js/download/uglify-js-2.8.29.tgz?cache=0&sync_timestamp=1592744803278&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fuglify-js%2Fdownload%2Fuglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "dependencies": { + "source-map": "~0.5.1", + "yargs": "~3.10.0" + }, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + }, + "optionalDependencies": { + "uglify-to-browserify": "~1.0.0" + } + }, + "node_modules/uglify-js/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/uglify-to-browserify/download/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "optional": true + }, + "node_modules/uglifyjs-webpack-plugin": { + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/uglifyjs-webpack-plugin/download/uglifyjs-webpack-plugin-1.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fuglifyjs-webpack-plugin%2Fdownload%2Fuglifyjs-webpack-plugin-1.3.0.tgz", + "integrity": "sha1-dfVIFghYFjoIZD4IbV/v4YpdZ94=", + "dev": true, + "dependencies": { + "cacache": "^10.0.4", + "find-cache-dir": "^1.0.0", + "schema-utils": "^0.4.5", + "serialize-javascript": "^1.4.0", + "source-map": "^0.6.1", + "uglify-es": "^3.3.4", + "webpack-sources": "^1.1.0", + "worker-farm": "^1.5.2" + }, + "engines": { + "node": ">= 4.8 < 5.0.0 || >= 5.10" + }, + "peerDependencies": { + "webpack": "^2.0.0 || ^3.0.0 || ^4.0.0" + } + }, + "node_modules/uglifyjs-webpack-plugin/node_modules/cacache": { + "version": "10.0.4", + "resolved": "https://registry.npm.taobao.org/cacache/download/cacache-10.0.4.tgz?cache=0&sync_timestamp=1594429684526&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacache%2Fdownload%2Fcacache-10.0.4.tgz", + "integrity": "sha1-ZFI2eZnv+dQYiu/ZoU6dfGomNGA=", + "dev": true, + "dependencies": { + "bluebird": "^3.5.1", + "chownr": "^1.0.1", + "glob": "^7.1.2", + "graceful-fs": "^4.1.11", + "lru-cache": "^4.1.1", + "mississippi": "^2.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.2", + "ssri": "^5.2.4", + "unique-filename": "^1.1.0", + "y18n": "^4.0.0" + } + }, + "node_modules/uglifyjs-webpack-plugin/node_modules/commander": { + "version": "2.13.0", + "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.13.0.tgz?cache=0&sync_timestamp=1595168173997&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.13.0.tgz", + "integrity": "sha1-aWS8pnaF33wfFDDFhPB9dZeIW5w=", + "dev": true + }, + "node_modules/uglifyjs-webpack-plugin/node_modules/find-cache-dir": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-1.0.0.tgz", + "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", + "dev": true, + "dependencies": { + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/uglifyjs-webpack-plugin/node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz?cache=0&sync_timestamp=1594427569171&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-4.1.5.tgz", + "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=", + "dev": true, + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/uglifyjs-webpack-plugin/node_modules/make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-1.3.0.tgz?cache=0&sync_timestamp=1587567875186&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-1.3.0.tgz", + "integrity": "sha1-ecEDO4BRW9bSTsmTPoYMp17ifww=", + "dev": true, + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/uglifyjs-webpack-plugin/node_modules/mississippi": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/mississippi/download/mississippi-2.0.0.tgz", + "integrity": "sha1-NEKlCPr8KFAEhv7qmUCWduTuWm8=", + "dev": true, + "dependencies": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^2.0.1", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/uglifyjs-webpack-plugin/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/uglifyjs-webpack-plugin/node_modules/pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, + "dependencies": { + "find-up": "^2.1.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/uglifyjs-webpack-plugin/node_modules/pump": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/pump/download/pump-2.0.1.tgz", + "integrity": "sha1-Ejma3W5M91Jtlzy8i1zi4pCLOQk=", + "dev": true, + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/uglifyjs-webpack-plugin/node_modules/schema-utils": { + "version": "0.4.7", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-0.4.7.tgz", + "integrity": "sha1-unT1l9K+LqiAExdG7hfQoJPGgYc=", + "dev": true, + "dependencies": { + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/uglifyjs-webpack-plugin/node_modules/serialize-javascript": { + "version": "1.9.1", + "resolved": "https://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-1.9.1.tgz", + "integrity": "sha1-z8IArvd7YAxH2pu4FJyUPnmML9s=", + "dev": true + }, + "node_modules/uglifyjs-webpack-plugin/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/uglifyjs-webpack-plugin/node_modules/ssri": { + "version": "5.3.0", + "resolved": "https://registry.npm.taobao.org/ssri/download/ssri-5.3.0.tgz", + "integrity": "sha1-ujhyycbTOgcEp9cf8EXl7EiZnQY=", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.1" + } + }, + "node_modules/uglifyjs-webpack-plugin/node_modules/uglify-es": { + "version": "3.3.9", + "resolved": "https://registry.npm.taobao.org/uglify-es/download/uglify-es-3.3.9.tgz", + "integrity": "sha1-DBxPBwC+2NvBJM2zBNJZLKID5nc=", + "deprecated": "support for ECMAScript is superseded by `uglify-js` as of v3.13.0", + "dev": true, + "dependencies": { + "commander": "~2.13.0", + "source-map": "~0.6.1" + }, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/uglifyjs-webpack-plugin/node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + }, + "node_modules/unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/unicode-canonical-property-names-ecmascript/download/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha1-JhmADEyCWADv3YNDr33Zkzy+KBg=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/unicode-match-property-ecmascript/download/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha1-jtKjJWmWG86SJ9Cc0/+7j+1fAgw=", + "dev": true, + "dependencies": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-match-property-value-ecmascript": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/unicode-match-property-value-ecmascript/download/unicode-match-property-value-ecmascript-1.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funicode-match-property-value-ecmascript%2Fdownload%2Funicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha1-DZH2AO7rMJaqlisdb8iIduZOpTE=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/unicode-property-aliases-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/unicode-property-aliases-ecmascript/download/unicode-property-aliases-ecmascript-1.1.0.tgz?cache=0&sync_timestamp=1583945805856&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funicode-property-aliases-ecmascript%2Fdownload%2Funicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha1-3Vepn2IHvt/0Yoq++5TFDblByPQ=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/union-value": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/union-value/download/union-value-1.0.1.tgz", + "integrity": "sha1-C2/nuDWuzaYcbqTU8CwUIh4QmEc=", + "dev": true, + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/uniq": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/uniq/download/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "dev": true + }, + "node_modules/uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/uniqs/download/uniqs-2.0.0.tgz", + "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", + "dev": true + }, + "node_modules/unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/unique-filename/download/unique-filename-1.1.1.tgz", + "integrity": "sha1-HWl2k2mtoFgxA6HmrodoG1ZXMjA=", + "dev": true, + "dependencies": { + "unique-slug": "^2.0.0" + } + }, + "node_modules/unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/unique-slug/download/unique-slug-2.0.2.tgz", + "integrity": "sha1-uqvOkQg/xk6UWw861hPiZPfNTmw=", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4" + } + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/universalify/download/universalify-0.1.2.tgz?cache=0&sync_timestamp=1583531006552&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funiversalify%2Fdownload%2Funiversalify-0.1.2.tgz", + "integrity": "sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY=", + "dev": true, + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/unpipe/download/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/unquote": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/unquote/download/unquote-1.1.1.tgz", + "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", + "dev": true + }, + "node_modules/unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/unset-value/download/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "resolved": "https://registry.npm.taobao.org/has-value/download/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/isobject/download/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "resolved": "https://registry.npm.taobao.org/has-values/download/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/upath": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/upath/download/upath-1.2.0.tgz", + "integrity": "sha1-j2bbzVWog6za5ECK+LA1pQRMGJQ=", + "dev": true, + "engines": { + "node": ">=4", + "yarn": "*" + } + }, + "node_modules/upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/upper-case/download/upper-case-1.1.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fupper-case%2Fdownload%2Fupper-case-1.1.3.tgz", + "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", + "dev": true + }, + "node_modules/uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npm.taobao.org/uri-js/download/uri-js-4.2.2.tgz", + "integrity": "sha1-lMVA4f93KVbiKZUHwBCupsiDjrA=", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npm.taobao.org/urix/download/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "deprecated": "Please see https://github.com/lydell/urix#deprecated", + "dev": true + }, + "node_modules/url": { + "version": "0.11.0", + "resolved": "https://registry.npm.taobao.org/url/download/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "dependencies": { + "punycode": "1.3.2", + "querystring": "0.2.0" + } + }, + "node_modules/url-loader": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/url-loader/download/url-loader-1.1.2.tgz", + "integrity": "sha1-uXHRkbg69pPF4/6kBkvp4fLX+Ng=", + "dev": true, + "dependencies": { + "loader-utils": "^1.1.0", + "mime": "^2.0.3", + "schema-utils": "^1.0.0" + }, + "engines": { + "node": ">= 6.9.0" + }, + "peerDependencies": { + "webpack": "^3.0.0 || ^4.0.0" + } + }, + "node_modules/url-loader/node_modules/schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", + "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", + "dev": true, + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/url-parse": { + "version": "1.4.7", + "resolved": "https://registry.npm.taobao.org/url-parse/download/url-parse-1.4.7.tgz", + "integrity": "sha1-qKg1NejACjFuQDpdtKwbm4U64ng=", + "dev": true, + "dependencies": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "node_modules/url/node_modules/punycode": { + "version": "1.3.2", + "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + }, + "node_modules/use": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/use/download/use-3.1.1.tgz", + "integrity": "sha1-1QyMrHmhn7wg8pEfVuuXP04QBw8=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/util": { + "version": "0.11.1", + "resolved": "https://registry.npm.taobao.org/util/download/util-0.11.1.tgz?cache=0&sync_timestamp=1588238457176&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Futil%2Fdownload%2Futil-0.11.1.tgz", + "integrity": "sha1-MjZzNyDsZLsn9uJvQhqqLhtYjWE=", + "dev": true, + "dependencies": { + "inherits": "2.0.3" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "node_modules/util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/util.promisify/download/util.promisify-1.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Futil.promisify%2Fdownload%2Futil.promisify-1.0.1.tgz", + "integrity": "sha1-a693dLgO6w91INi4HQeYKlmruu4=", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/util/node_modules/inherits": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "node_modules/utila": { + "version": "0.4.0", + "resolved": "https://registry.npm.taobao.org/utila/download/utila-0.4.0.tgz", + "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/utils-merge/download/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/uuid": { + "version": "3.4.0", + "resolved": "https://registry.npm.taobao.org/uuid/download/uuid-3.4.0.tgz", + "integrity": "sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4=", + "deprecated": "Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details.", + "dev": true, + "bin": { + "uuid": "bin/uuid" + } + }, + "node_modules/v-click-outside-x": { + "version": "3.7.1", + "resolved": "https://registry.npm.taobao.org/v-click-outside-x/download/v-click-outside-x-3.7.1.tgz?cache=0&sync_timestamp=1579043108278&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fv-click-outside-x%2Fdownload%2Fv-click-outside-x-3.7.1.tgz", + "integrity": "sha1-qgPqoOQeRMtSB9z4bC2fDdZAhME=", + "engines": { + "node": ">=8.11.4", + "npm": "6.4.1" + } + }, + "node_modules/v-org-tree": { + "version": "1.0.12", + "resolved": "https://registry.npm.taobao.org/v-org-tree/download/v-org-tree-1.0.12.tgz", + "integrity": "sha1-Vmsu8dO4jI+tTO4zZaa0v+rjtI0=", + "dependencies": { + "clonedeep": "^2.0.0" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npm.taobao.org/validate-npm-package-license/download/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha1-/JH2uce6FchX9MssXe/uw51PQQo=", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/vary": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/vary/download/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/vendors": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/vendors/download/vendors-1.0.4.tgz?cache=0&sync_timestamp=1579857147055&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvendors%2Fdownload%2Fvendors-1.0.4.tgz", + "integrity": "sha1-4rgApT56Kbk1BsPPQRANFsTErY4=", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/venn.js": { + "version": "0.2.20", + "resolved": "https://registry.npm.taobao.org/venn.js/download/venn.js-0.2.20.tgz", + "integrity": "sha1-Pw5QzHXLofWGkqijL2e9eq8apvo=", + "dependencies": { + "d3-selection": "^1.0.2", + "d3-transition": "^1.0.1", + "fmin": "0.0.2" + } + }, + "node_modules/verror": { + "version": "1.10.0", + "resolved": "https://registry.npm.taobao.org/verror/download/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "engines": [ + "node >=0.6.0" + ], + "dependencies": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "node_modules/view-design": { + "version": "4.3.2", + "resolved": "https://registry.npm.taobao.org/view-design/download/view-design-4.3.2.tgz", + "integrity": "sha1-bwgcZzt3QgObs4o6UZOO+rtg0KI=", + "dependencies": { + "async-validator": "^3.3.0", + "deepmerge": "^2.2.1", + "element-resize-detector": "^1.2.0", + "js-calendar": "^1.2.3", + "lodash.throttle": "^4.1.1", + "popper.js": "^1.14.6", + "tinycolor2": "^1.4.1", + "v-click-outside-x": "^3.7.1" + }, + "engines": { + "node": ">=8.9.1", + "npm": ">=5.5.1", + "yarn": ">=1.3.2" + }, + "peerDependencies": { + "vue": "^2.5.2" + } + }, + "node_modules/view-design/node_modules/async-validator": { + "version": "3.3.0", + "resolved": "https://registry.npm.taobao.org/async-validator/download/async-validator-3.3.0.tgz", + "integrity": "sha1-HZIZO75g1tbIskZpLHAF6e0UqO4=" + }, + "node_modules/vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/vm-browserify/download/vm-browserify-1.1.2.tgz?cache=0&sync_timestamp=1572870776965&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvm-browserify%2Fdownload%2Fvm-browserify-1.1.2.tgz", + "integrity": "sha1-eGQcSIuObKkadfUR56OzKobl3aA=", + "dev": true + }, + "node_modules/vue": { + "version": "2.6.11", + "resolved": "https://registry.npm.taobao.org/vue/download/vue-2.6.11.tgz", + "integrity": "sha1-dllNh31LEiNEBuhONSdcbVFBJcU=" + }, + "node_modules/vue-data-loading": { + "version": "0.2.4", + "resolved": "https://registry.npm.taobao.org/vue-data-loading/download/vue-data-loading-0.2.4.tgz", + "integrity": "sha1-kftt9j7aXGXTrzM2foYqnh/Bhu8=", + "dependencies": { + "vue": "^2.0.0" + }, + "engines": { + "node": ">= 4.0.0", + "npm": ">= 3.0.0" + } + }, + "node_modules/vue-enum": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/vue-enum/download/vue-enum-1.0.5.tgz", + "integrity": "sha1-cQfD4tfXnp1HKLsWzvS83TTBziM=" + }, + "node_modules/vue-eslint-parser": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/vue-eslint-parser/download/vue-eslint-parser-2.0.3.tgz?cache=0&sync_timestamp=1589539313907&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-eslint-parser%2Fdownload%2Fvue-eslint-parser-2.0.3.tgz", + "integrity": "sha1-wmjJbG2Uz+PZOKX3WTlZsMozYNE=", + "dev": true, + "optional": true, + "dependencies": { + "debug": "^3.1.0", + "eslint-scope": "^3.7.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^3.5.2", + "esquery": "^1.0.0", + "lodash": "^4.17.4" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": ">=3.9.0" + } + }, + "node_modules/vue-eslint-parser/node_modules/eslint-scope": { + "version": "3.7.3", + "resolved": "https://registry.npm.taobao.org/eslint-scope/download/eslint-scope-3.7.3.tgz", + "integrity": "sha1-u1ByANPRf2AkdjYWC0gmKEsQhTU=", + "dev": true, + "optional": true, + "dependencies": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/vue-hot-reload-api": { + "version": "2.3.4", + "resolved": "https://registry.npm.taobao.org/vue-hot-reload-api/download/vue-hot-reload-api-2.3.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-hot-reload-api%2Fdownload%2Fvue-hot-reload-api-2.3.4.tgz", + "integrity": "sha1-UylVzB6yCKPZkLOp+acFdGV+CPI=", + "dev": true + }, + "node_modules/vue-i18n": { + "version": "7.8.1", + "resolved": "https://registry.npm.taobao.org/vue-i18n/download/vue-i18n-7.8.1.tgz", + "integrity": "sha1-LOS2795nmh4F3bXZB7/BvCGIA7I=" + }, + "node_modules/vue-infinite-loading": { + "version": "2.4.5", + "resolved": "https://registry.npm.taobao.org/vue-infinite-loading/download/vue-infinite-loading-2.4.5.tgz", + "integrity": "sha1-zCD9QK9/IBiABkQ8mbYEcM8d4bM=", + "peerDependencies": { + "vue": "^2.6.10" + } + }, + "node_modules/vue-json-viewer": { + "version": "2.2.12", + "resolved": "https://registry.npm.taobao.org/vue-json-viewer/download/vue-json-viewer-2.2.12.tgz", + "integrity": "sha1-9y94pAIOa+QqQwAOCdIEf2iWJlY=", + "dependencies": { + "clipboard": "^2.0.4", + "vue": "^2.6.9" + } + }, + "node_modules/vue-json-views": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/vue-json-views/download/vue-json-views-0.1.1.tgz", + "integrity": "sha1-8YAXKr4EvK9Cag9DoBkk4EJuvPw=", + "dependencies": { + "vue": "^2.5.11", + "vue-json-views": "^0.0.2" + } + }, + "node_modules/vue-json-views/node_modules/vue-json-views": { + "version": "0.0.2", + "resolved": "https://registry.npm.taobao.org/vue-json-views/download/vue-json-views-0.0.2.tgz", + "integrity": "sha1-xadQA6glOnXDN81xftikVMMCXx0=", + "dependencies": { + "vue": "^2.5.11" + } + }, + "node_modules/vue-loader": { + "version": "15.9.3", + "resolved": "https://registry.npm.taobao.org/vue-loader/download/vue-loader-15.9.3.tgz?cache=0&sync_timestamp=1593355754768&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-loader%2Fdownload%2Fvue-loader-15.9.3.tgz", + "integrity": "sha1-DeNdnlVdPtU5aVFsrFziVTEpndo=", + "dev": true, + "dependencies": { + "@vue/component-compiler-utils": "^3.1.0", + "hash-sum": "^1.0.2", + "loader-utils": "^1.1.0", + "vue-hot-reload-api": "^2.3.0", + "vue-style-loader": "^4.1.0" + }, + "peerDependencies": { + "css-loader": "*", + "webpack": "^3.0.0 || ^4.1.0 || ^5.0.0-0" + }, + "peerDependenciesMeta": { + "cache-loader": { + "optional": true + }, + "vue-template-compiler": { + "optional": true + } + } + }, + "node_modules/vue-router": { + "version": "3.3.4", + "resolved": "https://registry.npm.taobao.org/vue-router/download/vue-router-3.3.4.tgz?cache=0&sync_timestamp=1594111718735&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-router%2Fdownload%2Fvue-router-3.3.4.tgz", + "integrity": "sha1-Tjirw0oRxBtsPYJERJouNjumJQs=" + }, + "node_modules/vue-slick": { + "version": "1.1.15", + "resolved": "https://registry.npm.taobao.org/vue-slick/download/vue-slick-1.1.15.tgz", + "integrity": "sha1-KRYTRTH9H5Y4VI8roVJuTxEDJYg=", + "dependencies": { + "slick-carousel": "^1.6.0" + }, + "peerDependencies": { + "jquery": "*" + } + }, + "node_modules/vue-style-loader": { + "version": "4.1.2", + "resolved": "https://registry.npm.taobao.org/vue-style-loader/download/vue-style-loader-4.1.2.tgz", + "integrity": "sha1-3t80mAbyXOtOZPOtfApE+6c1/Pg=", + "dev": true, + "dependencies": { + "hash-sum": "^1.0.2", + "loader-utils": "^1.0.2" + } + }, + "node_modules/vue-template-compiler": { + "version": "2.6.11", + "resolved": "https://registry.npm.taobao.org/vue-template-compiler/download/vue-template-compiler-2.6.11.tgz", + "integrity": "sha1-wEcE749JixUxMAGJk+VjCdRpgIA=", + "dev": true, + "dependencies": { + "de-indent": "^1.0.2", + "he": "^1.1.0" + } + }, + "node_modules/vue-template-es2015-compiler": { + "version": "1.9.1", + "resolved": "https://registry.npm.taobao.org/vue-template-es2015-compiler/download/vue-template-es2015-compiler-1.9.1.tgz", + "integrity": "sha1-HuO8mhbsv1EYvjNLsV+cRvgvWCU=", + "dev": true + }, + "node_modules/vuedraggable": { + "version": "2.24.0", + "resolved": "https://registry.npm.taobao.org/vuedraggable/download/vuedraggable-2.24.0.tgz?cache=0&sync_timestamp=1594052423588&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvuedraggable%2Fdownload%2Fvuedraggable-2.24.0.tgz", + "integrity": "sha1-HuBp7rkfYfy1QPryDxxrLU2ZCiY=", + "dependencies": { + "sortablejs": "^1.10.1" + } + }, + "node_modules/vuex": { + "version": "3.5.1", + "resolved": "https://registry.npm.taobao.org/vuex/download/vuex-3.5.1.tgz?cache=0&sync_timestamp=1593445037188&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvuex%2Fdownload%2Fvuex-3.5.1.tgz", + "integrity": "sha1-8bjc6mSbwlJUz09DWAgdv12hiz0=", + "peerDependencies": { + "vue": "^2.0.0" + } + }, + "node_modules/w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/w3c-hr-time/download/w3c-hr-time-1.0.2.tgz?cache=0&sync_timestamp=1583455604765&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fw3c-hr-time%2Fdownload%2Fw3c-hr-time-1.0.2.tgz", + "integrity": "sha1-ConN9cwVgi35w2BUNnaWPgzDCM0=", + "deprecated": "Use your platform's native performance.now() and performance.timeOrigin.", + "dev": true, + "dependencies": { + "browser-process-hrtime": "^1.0.0" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/w3c-xmlserializer/download/w3c-xmlserializer-1.1.2.tgz", + "integrity": "sha1-MEhcp9cKb9BSQgo9Ev2Q5jOc55Q=", + "dev": true, + "dependencies": { + "domexception": "^1.0.1", + "webidl-conversions": "^4.0.2", + "xml-name-validator": "^3.0.0" + } + }, + "node_modules/wangeditor": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/wangeditor/download/wangeditor-3.1.1.tgz", + "integrity": "sha1-+9PB1JdpI8nt67hbKdMLNVEq0Dk=" + }, + "node_modules/watchpack": { + "version": "1.7.2", + "resolved": "https://registry.npm.taobao.org/watchpack/download/watchpack-1.7.2.tgz", + "integrity": "sha1-wC5NTUmRPD5+EiwzJTZa+dMx6ao=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0" + }, + "optionalDependencies": { + "chokidar": "^3.4.0", + "watchpack-chokidar2": "^2.0.0" + } + }, + "node_modules/watchpack-chokidar2": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/watchpack-chokidar2/download/watchpack-chokidar2-2.0.0.tgz", + "integrity": "sha1-mUihhmy71suCTeoTp+1pH2yN3/A=", + "dev": true, + "optional": true, + "dependencies": { + "chokidar": "^2.1.8" + }, + "engines": { + "node": "<8.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz", + "integrity": "sha1-vLJLTzeTTZqnrBe0ra+J58du8us=", + "dev": true, + "optional": true, + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "node_modules/watchpack-chokidar2/node_modules/anymatch/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "optional": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.13.1.tgz?cache=0&sync_timestamp=1593261363626&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-1.13.1.tgz", + "integrity": "sha1-WYr+VHVbKGilMw0q/51Ou1Mgm2U=", + "dev": true, + "optional": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-2.1.8.tgz?cache=0&sync_timestamp=1594864731636&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-2.1.8.tgz", + "integrity": "sha1-gEs6e2qZNYw8XGHnHYco8EHP+Rc=", + "deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies", + "dev": true, + "optional": true, + "dependencies": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + }, + "optionalDependencies": { + "fsevents": "^1.2.7" + } + }, + "node_modules/watchpack-chokidar2/node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-1.2.13.tgz?cache=0&sync_timestamp=1588787369955&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffsevents%2Fdownload%2Ffsevents-1.2.13.tgz", + "integrity": "sha1-8yXLBFVZJCi88Rs4M3DvcOO/zDg=", + "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "optional": true, + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "optional": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "optional": true, + "dependencies": { + "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/watchpack-chokidar2/node_modules/readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-2.2.1.tgz?cache=0&sync_timestamp=1584985910691&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-2.2.1.tgz", + "integrity": "sha1-DodiKjMlqjPokihcr4tOhGUppSU=", + "dev": true, + "optional": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npm.taobao.org/wbuf/download/wbuf-1.7.3.tgz", + "integrity": "sha1-wdjRSTFtPqhShIiVy2oL/oh7h98=", + "dev": true, + "dependencies": { + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/wcwidth/download/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "dev": true, + "dependencies": { + "defaults": "^1.0.3" + } + }, + "node_modules/webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/webidl-conversions/download/webidl-conversions-4.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebidl-conversions%2Fdownload%2Fwebidl-conversions-4.0.2.tgz", + "integrity": "sha1-qFWYCx8LazWbodXZ+zmulB+qY60=", + "dev": true + }, + "node_modules/webpack": { + "version": "4.43.0", + "resolved": "https://registry.npm.taobao.org/webpack/download/webpack-4.43.0.tgz?cache=0&sync_timestamp=1594294511041&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack%2Fdownload%2Fwebpack-4.43.0.tgz", + "integrity": "sha1-xIVHsR1WMiTFYdrRFyyKoLimeOY=", + "dev": true, + "dependencies": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/wasm-edit": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "acorn": "^6.4.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.1.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.3", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.3", + "watchpack": "^1.6.1", + "webpack-sources": "^1.4.1" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=6.11.5" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/webpack-bundle-analyzer": { + "version": "3.8.0", + "resolved": "https://registry.npm.taobao.org/webpack-bundle-analyzer/download/webpack-bundle-analyzer-3.8.0.tgz", + "integrity": "sha1-zms/kI2vBp/R9yZvaSy7O97ZuhY=", + "dev": true, + "dependencies": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1", + "bfj": "^6.1.1", + "chalk": "^2.4.1", + "commander": "^2.18.0", + "ejs": "^2.6.1", + "express": "^4.16.3", + "filesize": "^3.6.1", + "gzip-size": "^5.0.0", + "lodash": "^4.17.15", + "mkdirp": "^0.5.1", + "opener": "^1.5.1", + "ws": "^6.0.0" + }, + "bin": { + "webpack-bundle-analyzer": "lib/bin/analyzer.js" + }, + "engines": { + "node": ">= 6.14.4" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/acorn": { + "version": "7.3.1", + "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-7.3.1.tgz?cache=0&sync_timestamp=1591869432510&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-7.3.1.tgz", + "integrity": "sha1-hQEHVNtTw/uvO56j4IOqXF0Uf/0=", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/acorn-walk/download/acorn-walk-7.2.0.tgz", + "integrity": "sha1-DeiJpgEgOQmw++B7iTjcIdLpZ7w=", + "dev": true, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/webpack-bundle-analyzer/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/webpack-chain": { + "version": "4.12.1", + "resolved": "https://registry.npm.taobao.org/webpack-chain/download/webpack-chain-4.12.1.tgz?cache=0&sync_timestamp=1593639477219&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-chain%2Fdownload%2Fwebpack-chain-4.12.1.tgz", + "integrity": "sha1-bIQ5u7KrVQlS1g4eqTGRQZBsAqY=", + "dev": true, + "dependencies": { + "deepmerge": "^1.5.2", + "javascript-stringify": "^1.6.0" + } + }, + "node_modules/webpack-chain/node_modules/deepmerge": { + "version": "1.5.2", + "resolved": "https://registry.npm.taobao.org/deepmerge/download/deepmerge-1.5.2.tgz", + "integrity": "sha1-EEmdhohEza1P7ghC34x/bwyVp1M=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-middleware": { + "version": "3.7.2", + "resolved": "https://registry.npm.taobao.org/webpack-dev-middleware/download/webpack-dev-middleware-3.7.2.tgz?cache=0&sync_timestamp=1594744804453&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-dev-middleware%2Fdownload%2Fwebpack-dev-middleware-3.7.2.tgz", + "integrity": "sha1-ABnD23FuP6XOy/ZPKriKdLqzMfM=", + "dev": true, + "dependencies": { + "memory-fs": "^0.4.1", + "mime": "^2.4.4", + "mkdirp": "^0.5.1", + "range-parser": "^1.2.1", + "webpack-log": "^2.0.0" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "webpack": "^4.0.0" + } + }, + "node_modules/webpack-dev-server": { + "version": "3.11.0", + "resolved": "https://registry.npm.taobao.org/webpack-dev-server/download/webpack-dev-server-3.11.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-dev-server%2Fdownload%2Fwebpack-dev-server-3.11.0.tgz", + "integrity": "sha1-jxVKO84bz9HMYY705wMniFXn/4w=", + "dev": true, + "dependencies": { + "ansi-html": "0.0.7", + "bonjour": "^3.5.0", + "chokidar": "^2.1.8", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "debug": "^4.1.1", + "del": "^4.1.1", + "express": "^4.17.1", + "html-entities": "^1.3.1", + "http-proxy-middleware": "0.19.1", + "import-local": "^2.0.0", + "internal-ip": "^4.3.0", + "ip": "^1.1.5", + "is-absolute-url": "^3.0.3", + "killable": "^1.0.1", + "loglevel": "^1.6.8", + "opn": "^5.5.0", + "p-retry": "^3.0.1", + "portfinder": "^1.0.26", + "schema-utils": "^1.0.0", + "selfsigned": "^1.10.7", + "semver": "^6.3.0", + "serve-index": "^1.9.1", + "sockjs": "0.3.20", + "sockjs-client": "1.4.0", + "spdy": "^4.0.2", + "strip-ansi": "^3.0.1", + "supports-color": "^6.1.0", + "url": "^0.11.0", + "webpack-dev-middleware": "^3.7.2", + "webpack-log": "^2.0.0", + "ws": "^6.2.1", + "yargs": "^13.3.2" + }, + "bin": { + "webpack-dev-server": "bin/webpack-dev-server.js" + }, + "engines": { + "node": ">= 6.11.5" + }, + "peerDependencies": { + "webpack": "^4.0.0 || ^5.0.0" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-dev-server/node_modules/ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/webpack-dev-server/node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz", + "integrity": "sha1-vLJLTzeTTZqnrBe0ra+J58du8us=", + "dev": true, + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "node_modules/webpack-dev-server/node_modules/anymatch/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.13.1.tgz?cache=0&sync_timestamp=1593261363626&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-1.13.1.tgz", + "integrity": "sha1-WYr+VHVbKGilMw0q/51Ou1Mgm2U=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz", + "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-2.1.8.tgz?cache=0&sync_timestamp=1594864731636&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-2.1.8.tgz", + "integrity": "sha1-gEs6e2qZNYw8XGHnHYco8EHP+Rc=", + "deprecated": "Chokidar 2 does not receive security updates since 2019. Upgrade to chokidar 3 with 15x fewer dependencies", + "dev": true, + "dependencies": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + }, + "optionalDependencies": { + "fsevents": "^1.2.7" + } + }, + "node_modules/webpack-dev-server/node_modules/cliui": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-5.0.0.tgz", + "integrity": "sha1-3u/P2y6AB4SqNPRvoI4GhRx7u8U=", + "dev": true, + "dependencies": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "node_modules/webpack-dev-server/node_modules/cliui/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/debug": { + "version": "4.1.1", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.1.1.tgz", + "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", + "deprecated": "Debug versions >=3.2.0 <3.2.7 || >=4 <4.3.1 have a low-severity ReDos regression when used in a Node.js environment. It is recommended you upgrade to 3.2.7 or 4.3.1. (https://github.com/visionmedia/debug/issues/797)", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/webpack-dev-server/node_modules/emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-7.0.3.tgz", + "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=", + "dev": true + }, + "node_modules/webpack-dev-server/node_modules/find-up": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz", + "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", + "dev": true, + "dependencies": { + "locate-path": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-1.2.13.tgz?cache=0&sync_timestamp=1588787369955&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffsevents%2Fdownload%2Ffsevents-1.2.13.tgz", + "integrity": "sha1-8yXLBFVZJCi88Rs4M3DvcOO/zDg=", + "deprecated": "fsevents 1 will break on node v14+ and could be using insecure binaries. Upgrade to fsevents 2.", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "dependencies": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + }, + "engines": { + "node": ">= 4.0" + } + }, + "node_modules/webpack-dev-server/node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npm.taobao.org/get-caller-file/download/get-caller-file-2.0.5.tgz", + "integrity": "sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=", + "dev": true, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/webpack-dev-server/node_modules/glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "dependencies": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + } + }, + "node_modules/webpack-dev-server/node_modules/glob-parent/node_modules/is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/is-absolute-url": { + "version": "3.0.3", + "resolved": "https://registry.npm.taobao.org/is-absolute-url/download/is-absolute-url-3.0.3.tgz", + "integrity": "sha1-lsaiK2ojkpsR6gr7GDbDatSl1pg=", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/webpack-dev-server/node_modules/is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "dependencies": { + "binary-extensions": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack-dev-server/node_modules/locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz", + "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", + "dev": true, + "dependencies": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", + "dev": true + }, + "node_modules/webpack-dev-server/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.3.0.tgz?cache=0&sync_timestamp=1594559696906&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-2.3.0.tgz", + "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/webpack-dev-server/node_modules/p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz", + "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", + "dev": true, + "dependencies": { + "p-limit": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz", + "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-2.2.1.tgz?cache=0&sync_timestamp=1584985910691&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-2.2.1.tgz", + "integrity": "sha1-DodiKjMlqjPokihcr4tOhGUppSU=", + "dev": true, + "dependencies": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/webpack-dev-server/node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/require-main-filename/download/require-main-filename-2.0.0.tgz", + "integrity": "sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs=", + "dev": true + }, + "node_modules/webpack-dev-server/node_modules/schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", + "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", + "dev": true, + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/webpack-dev-server/node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1586886301819&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true, + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/webpack-dev-server/node_modules/string-width": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-3.1.0.tgz", + "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", + "dev": true, + "dependencies": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/string-width/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-5.1.0.tgz", + "integrity": "sha1-H9H2cjXVttD+54EFYAG/tpTAOwk=", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/wrap-ansi/node_modules/strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "dev": true, + "dependencies": { + "ansi-regex": "^4.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/webpack-dev-server/node_modules/yargs": { + "version": "13.3.2", + "resolved": "https://registry.npm.taobao.org/yargs/download/yargs-13.3.2.tgz?cache=0&sync_timestamp=1594421046064&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-13.3.2.tgz", + "integrity": "sha1-rX/+/sGqWVZayRX4Lcyzipwxot0=", + "dev": true, + "dependencies": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "node_modules/webpack-dev-server/node_modules/yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-13.1.2.tgz?cache=0&sync_timestamp=1595125190020&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-13.1.2.tgz", + "integrity": "sha1-Ew8JcC667vJlDVTObj5XBvek+zg=", + "dev": true, + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + }, + "node_modules/webpack-log": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/webpack-log/download/webpack-log-2.0.0.tgz", + "integrity": "sha1-W3ko4GN1k/EZ0y9iJ8HgrDHhtH8=", + "dev": true, + "dependencies": { + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/webpack-merge": { + "version": "4.2.2", + "resolved": "https://registry.npm.taobao.org/webpack-merge/download/webpack-merge-4.2.2.tgz?cache=0&sync_timestamp=1594294904067&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-merge%2Fdownload%2Fwebpack-merge-4.2.2.tgz", + "integrity": "sha1-onxS6ng9E5iv0gh/VH17nS9DY00=", + "dev": true, + "dependencies": { + "lodash": "^4.17.15" + } + }, + "node_modules/webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npm.taobao.org/webpack-sources/download/webpack-sources-1.4.3.tgz", + "integrity": "sha1-7t2OwLko+/HL/plOItLYkPMwqTM=", + "dev": true, + "dependencies": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + } + }, + "node_modules/webpack-sources/node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/webpack/node_modules/schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", + "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", + "dev": true, + "dependencies": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + }, + "engines": { + "node": ">= 4" + } + }, + "node_modules/websocket-driver": { + "version": "0.6.5", + "resolved": "https://registry.npm.taobao.org/websocket-driver/download/websocket-driver-0.6.5.tgz?cache=0&sync_timestamp=1591289007652&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebsocket-driver%2Fdownload%2Fwebsocket-driver-0.6.5.tgz", + "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=", + "dev": true, + "dependencies": { + "websocket-extensions": ">=0.1.1" + }, + "engines": { + "node": ">=0.6.0" + } + }, + "node_modules/websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npm.taobao.org/websocket-extensions/download/websocket-extensions-0.1.4.tgz", + "integrity": "sha1-f4RzvIOd/YdgituV1+sHUhFXikI=", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/whatwg-encoding/download/whatwg-encoding-1.0.5.tgz", + "integrity": "sha1-WrrPd3wyFmpR0IXWtPPn0nET3bA=", + "dev": true, + "dependencies": { + "iconv-lite": "0.4.24" + } + }, + "node_modules/whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/whatwg-mimetype/download/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha1-PUseAxLSB5h5+Cav8Y2+7KWWD78=", + "dev": true + }, + "node_modules/whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npm.taobao.org/whatwg-url/download/whatwg-url-7.1.0.tgz?cache=0&sync_timestamp=1588965133257&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhatwg-url%2Fdownload%2Fwhatwg-url-7.1.0.tgz", + "integrity": "sha1-wsSS8eymEpiO/T0iZr4bn8YXDQY=", + "dev": true, + "dependencies": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npm.taobao.org/which/download/which-1.3.1.tgz?cache=0&sync_timestamp=1574116262707&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-1.3.1.tgz", + "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-module": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/which-module/download/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "node_modules/window-size": { + "version": "0.1.0", + "resolved": "https://registry.npm.taobao.org/window-size/download/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/wolfy87-eventemitter": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/wolfy87-eventemitter/download/wolfy87-eventemitter-5.1.0.tgz", + "integrity": "sha1-NcGsDdGsDBXjXZgVCPwiCEoToBE=" + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npm.taobao.org/word-wrap/download/word-wrap-1.2.3.tgz", + "integrity": "sha1-YQY29rH3A4kb00dxzLF/uTtHB5w=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npm.taobao.org/wordwrap/download/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/worker-farm": { + "version": "1.7.0", + "resolved": "https://registry.npm.taobao.org/worker-farm/download/worker-farm-1.7.0.tgz", + "integrity": "sha1-JqlMU5G7ypJhUgAvabhKS/dy5ag=", + "dev": true, + "dependencies": { + "errno": "~0.1.7" + } + }, + "node_modules/wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "dependencies": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "dependencies": { + "number-is-nan": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi/node_modules/string-width": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "dependencies": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "node_modules/write": { + "version": "0.2.1", + "resolved": "https://registry.npm.taobao.org/write/download/write-0.2.1.tgz", + "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "dev": true, + "dependencies": { + "mkdirp": "^0.5.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ws": { + "version": "6.2.1", + "resolved": "https://registry.npm.taobao.org/ws/download/ws-6.2.1.tgz?cache=0&sync_timestamp=1593925420205&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fws%2Fdownload%2Fws-6.2.1.tgz", + "integrity": "sha1-RC/fCkftZPWbal2P8TD0dI7VJPs=", + "dev": true, + "dependencies": { + "async-limiter": "~1.0.0" + } + }, + "node_modules/xlsx": { + "version": "0.13.5", + "resolved": "https://registry.npm.taobao.org/xlsx/download/xlsx-0.13.5.tgz", + "integrity": "sha1-ZYJroZRMb01sAjt+tsiea24Ncbc=", + "dependencies": { + "adler-32": "~1.2.0", + "cfb": "~1.0.8", + "codepage": "~1.14.0", + "commander": "~2.15.1", + "crc-32": "~1.2.0", + "exit-on-epipe": "~1.0.1", + "ssf": "~0.10.2" + }, + "bin": { + "xlsx": "bin/xlsx.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/xlsx/node_modules/commander": { + "version": "2.15.1", + "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.15.1.tgz?cache=0&sync_timestamp=1595168173997&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.15.1.tgz", + "integrity": "sha1-30boZ9D8Kuxmo0ZitAapzK//Ww8=" + }, + "node_modules/xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/xml-name-validator/download/xml-name-validator-3.0.0.tgz", + "integrity": "sha1-auc+Bt5NjG5H+fsYH3jWSK1FfGo=", + "dev": true + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/xmlchars/download/xmlchars-2.2.0.tgz", + "integrity": "sha1-Bg/hvLf5x2/ioX24apvDq4lCEMs=", + "dev": true + }, + "node_modules/xss": { + "version": "1.0.7", + "resolved": "https://registry.npm.taobao.org/xss/download/xss-1.0.7.tgz?cache=0&sync_timestamp=1591583567013&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fxss%2Fdownload%2Fxss-1.0.7.tgz", + "integrity": "sha1-pVTL1ekJMkvWiT+0f/9EGtVOKpU=", + "dependencies": { + "commander": "^2.20.3", + "cssfilter": "0.0.10" + }, + "bin": { + "xss": "bin/xss" + }, + "engines": { + "node": ">= 0.10.0" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/xtend/download/xtend-4.0.2.tgz", + "integrity": "sha1-u3J3n1+kZRhrH0OPZ0+jR/2121Q=", + "dev": true, + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/y18n/download/y18n-4.0.0.tgz", + "integrity": "sha1-le+U+F7MgdAHwmThkKEg8KPIVms=", + "dev": true + }, + "node_modules/yallist": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-3.1.1.tgz", + "integrity": "sha1-27fa+b/YusmrRev2ArjLrQ1dCP0=", + "dev": true + }, + "node_modules/yargs": { + "version": "3.10.0", + "resolved": "https://registry.npm.taobao.org/yargs/download/yargs-3.10.0.tgz?cache=0&sync_timestamp=1594421046064&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "dependencies": { + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", + "window-size": "0.1.0" + } + }, + "node_modules/yargs-parser": { + "version": "9.0.2", + "resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-9.0.2.tgz?cache=0&sync_timestamp=1595125190020&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-9.0.2.tgz", + "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", + "dev": true, + "dependencies": { + "camelcase": "^4.1.0" + } + }, + "node_modules/yargs-parser/node_modules/camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/yorkie": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/yorkie/download/yorkie-2.0.0.tgz", + "integrity": "sha1-kkEZEtQ1IU4SxRwq4Qk+VLa7g9k=", + "dev": true, + "hasInstallScript": true, + "dependencies": { + "execa": "^0.8.0", + "is-ci": "^1.0.10", + "normalize-path": "^1.0.0", + "strip-indent": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/yorkie/node_modules/cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "dependencies": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "node_modules/yorkie/node_modules/execa": { + "version": "0.8.0", + "resolved": "https://registry.npm.taobao.org/execa/download/execa-0.8.0.tgz?cache=0&sync_timestamp=1594145237072&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-0.8.0.tgz", + "integrity": "sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=", + "dev": true, + "dependencies": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/yorkie/node_modules/get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/yorkie/node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz?cache=0&sync_timestamp=1594427569171&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-4.1.5.tgz", + "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=", + "dev": true, + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/yorkie/node_modules/normalize-path": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-1.0.0.tgz", + "integrity": "sha1-MtDkcvkf80VwHBWoMRAY07CpA3k=", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/yorkie/node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + }, + "node_modules/zrender": { + "version": "4.3.1", + "resolved": "https://registry.npm.taobao.org/zrender/download/zrender-4.3.1.tgz", + "integrity": "sha1-uviqbcgYei+BlpLX1fm+36K5D6M=" + } + }, + "dependencies": { + "@antv/adjust": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/@antv/adjust/download/@antv/adjust-0.1.1.tgz", + "integrity": "sha1-4mOrDhoZQaZIhC/Ahs9lp+O3Xpg=", + "requires": { + "@antv/util": "~1.3.1" + } + }, + "@antv/attr": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/@antv/attr/download/@antv/attr-0.1.2.tgz", + "integrity": "sha1-LusSL8qvhRoth0mrx8YFGdP3fjc=", + "requires": { + "@antv/util": "~1.3.1" + } + }, + "@antv/component": { + "version": "0.3.9", + "resolved": "https://registry.npm.taobao.org/@antv/component/download/@antv/component-0.3.9.tgz", + "integrity": "sha1-7VYcY5t3OM4D/2OoZvWeJR3oKhc=", + "requires": { + "@antv/attr": "~0.1.2", + "@antv/g": "~3.3.5", + "@antv/util": "~1.3.1", + "wolfy87-eventemitter": "~5.1.0" + }, + "dependencies": { + "@antv/g": { + "version": "3.3.6", + "resolved": "https://registry.npm.taobao.org/@antv/g/download/@antv/g-3.3.6.tgz", + "integrity": "sha1-Ef7Z3cntTloqokS3yKu5gqAD8gE=", + "requires": { + "@antv/gl-matrix": "~2.7.1", + "@antv/util": "~1.3.1", + "d3-ease": "~1.0.3", + "d3-interpolate": "~1.1.5", + "d3-timer": "~1.0.6", + "wolfy87-eventemitter": "~5.1.0" + } + } + } + }, + "@antv/coord": { + "version": "0.1.0", + "resolved": "https://registry.npm.taobao.org/@antv/coord/download/@antv/coord-0.1.0.tgz", + "integrity": "sha1-SKgK420HVS+WZX5/gJUifGPwwKk=", + "requires": { + "@antv/util": "~1.3.1" + } + }, + "@antv/g": { + "version": "3.4.10", + "resolved": "https://registry.npm.taobao.org/@antv/g/download/@antv/g-3.4.10.tgz", + "integrity": "sha1-57YWqiGxesUYUNAzMypa+N6P4BU=", + "requires": { + "@antv/gl-matrix": "~2.7.1", + "@antv/util": "~1.3.1", + "d3-ease": "~1.0.3", + "d3-interpolate": "~1.1.5", + "d3-timer": "~1.0.6", + "detect-browser": "^5.1.0" + } + }, + "@antv/g2": { + "version": "3.5.17", + "resolved": "https://registry.npm.taobao.org/@antv/g2/download/@antv/g2-3.5.17.tgz", + "integrity": "sha1-Asi6xhDSHSi04jYAvHbEjn9ZyRk=", + "requires": { + "@antv/adjust": "~0.1.0", + "@antv/attr": "~0.1.2", + "@antv/component": "~0.3.3", + "@antv/coord": "~0.1.0", + "@antv/g": "~3.4.10", + "@antv/scale": "~0.1.1", + "@antv/util": "~1.3.1", + "venn.js": "~0.2.20", + "wolfy87-eventemitter": "~5.1.0" + } + }, + "@antv/gl-matrix": { + "version": "2.7.1", + "resolved": "https://registry.npm.taobao.org/@antv/gl-matrix/download/@antv/gl-matrix-2.7.1.tgz", + "integrity": "sha1-rLjjf3qz3wE0WrpDcteUK+QuuhQ=" + }, + "@antv/scale": { + "version": "0.1.5", + "resolved": "https://registry.npm.taobao.org/@antv/scale/download/@antv/scale-0.1.5.tgz", + "integrity": "sha1-JDJm6LkEfPZLL9/ED5g0zwhGSW4=", + "requires": { + "@antv/util": "~1.3.1", + "fecha": "~2.3.3" + } + }, + "@antv/util": { + "version": "1.3.1", + "resolved": "https://registry.npm.taobao.org/@antv/util/download/@antv/util-1.3.1.tgz", + "integrity": "sha1-MKNLIB/5Em7A1YxyyBZqnD5kTM0=", + "requires": { + "@antv/gl-matrix": "^2.7.1" + } + }, + "@babel/code-frame": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/code-frame/download/@babel/code-frame-7.10.4.tgz?cache=0&sync_timestamp=1593521174697&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcode-frame%2Fdownload%2F%40babel%2Fcode-frame-7.10.4.tgz", + "integrity": "sha1-Fo2ho26Q2miujUnA8bSMfGJJITo=", + "dev": true, + "requires": { + "@babel/highlight": "^7.10.4" + } + }, + "@babel/core": { + "version": "7.10.5", + "resolved": "https://registry.npm.taobao.org/@babel/core/download/@babel/core-7.10.5.tgz?cache=0&sync_timestamp=1594750809694&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fcore%2Fdownload%2F%40babel%2Fcore-7.10.5.tgz", + "integrity": "sha1-HxXizKitmh14o43bphL158270zA=", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.10.5", + "@babel/helper-module-transforms": "^7.10.5", + "@babel/helpers": "^7.10.4", + "@babel/parser": "^7.10.5", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.5", + "@babel/types": "^7.10.5", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.1", + "json5": "^2.1.2", + "lodash": "^4.17.19", + "resolve": "^1.3.2", + "semver": "^5.4.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.1.1.tgz", + "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", + "dev": true + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "@babel/generator": { + "version": "7.10.5", + "resolved": "https://registry.npm.taobao.org/@babel/generator/download/@babel/generator-7.10.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fgenerator%2Fdownload%2F%40babel%2Fgenerator-7.10.5.tgz", + "integrity": "sha1-G5A1VLyMWD7o0l8eiWlzLmuCmmk=", + "dev": true, + "requires": { + "@babel/types": "^7.10.5", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "@babel/helper-annotate-as-pure": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helper-annotate-as-pure/download/@babel/helper-annotate-as-pure-7.10.4.tgz", + "integrity": "sha1-W/DUlaP3V6w72ki1vzs7ownHK6M=", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helper-builder-binary-assignment-operator-visitor/download/@babel/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", + "integrity": "sha1-uwt18xv5jL+f8UPBrleLhydK4aM=", + "dev": true, + "requires": { + "@babel/helper-explode-assignable-expression": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-create-class-features-plugin": { + "version": "7.10.5", + "resolved": "https://registry.npm.taobao.org/@babel/helper-create-class-features-plugin/download/@babel/helper-create-class-features-plugin-7.10.5.tgz?cache=0&sync_timestamp=1594751493358&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-create-class-features-plugin%2Fdownload%2F%40babel%2Fhelper-create-class-features-plugin-7.10.5.tgz", + "integrity": "sha1-n2FEa6gOgkCwpchcb9rIRZ1vJZ0=", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-member-expression-to-functions": "^7.10.5", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.10.4" + } + }, + "@babel/helper-create-regexp-features-plugin": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helper-create-regexp-features-plugin/download/@babel/helper-create-regexp-features-plugin-7.10.4.tgz", + "integrity": "sha1-/dYNiFJGWaC2lZwFeZJeQlcU87g=", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-regex": "^7.10.4", + "regexpu-core": "^4.7.0" + } + }, + "@babel/helper-define-map": { + "version": "7.10.5", + "resolved": "https://registry.npm.taobao.org/@babel/helper-define-map/download/@babel/helper-define-map-7.10.5.tgz?cache=0&sync_timestamp=1594751492980&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-define-map%2Fdownload%2F%40babel%2Fhelper-define-map-7.10.5.tgz", + "integrity": "sha1-tTwQ23imQIABUmkrEzkxR6y5uzA=", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/types": "^7.10.5", + "lodash": "^4.17.19" + } + }, + "@babel/helper-explode-assignable-expression": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helper-explode-assignable-expression/download/@babel/helper-explode-assignable-expression-7.10.4.tgz?cache=0&sync_timestamp=1593522841702&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-explode-assignable-expression%2Fdownload%2F%40babel%2Fhelper-explode-assignable-expression-7.10.4.tgz", + "integrity": "sha1-QKHNkXv/Eoj2malKdbN6Gi29jHw=", + "dev": true, + "requires": { + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-function-name": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helper-function-name/download/@babel/helper-function-name-7.10.4.tgz?cache=0&sync_timestamp=1593521218775&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-function-name%2Fdownload%2F%40babel%2Fhelper-function-name-7.10.4.tgz", + "integrity": "sha1-0tOyDFmtjEcRL6fSqUvAnV74Lxo=", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-get-function-arity": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helper-get-function-arity/download/@babel/helper-get-function-arity-7.10.4.tgz?cache=0&sync_timestamp=1593522827189&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-get-function-arity%2Fdownload%2F%40babel%2Fhelper-get-function-arity-7.10.4.tgz", + "integrity": "sha1-mMHL6g4jMvM/mkZhuM4VBbLBm6I=", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-hoist-variables": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helper-hoist-variables/download/@babel/helper-hoist-variables-7.10.4.tgz?cache=0&sync_timestamp=1593521259807&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-hoist-variables%2Fdownload%2F%40babel%2Fhelper-hoist-variables-7.10.4.tgz", + "integrity": "sha1-1JsAHR1aaMpeZgTdoBpil/fJOB4=", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-member-expression-to-functions": { + "version": "7.10.5", + "resolved": "https://registry.npm.taobao.org/@babel/helper-member-expression-to-functions/download/@babel/helper-member-expression-to-functions-7.10.5.tgz?cache=0&sync_timestamp=1594751492273&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-member-expression-to-functions%2Fdownload%2F%40babel%2Fhelper-member-expression-to-functions-7.10.5.tgz", + "integrity": "sha1-Fy9W56Y+eBEvOgQFXyQ2WvcC5+4=", + "dev": true, + "requires": { + "@babel/types": "^7.10.5" + } + }, + "@babel/helper-module-imports": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helper-module-imports/download/@babel/helper-module-imports-7.10.4.tgz", + "integrity": "sha1-TFxUvgS9MWcKc4J5fXW5+i5bViA=", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-module-transforms": { + "version": "7.10.5", + "resolved": "https://registry.npm.taobao.org/@babel/helper-module-transforms/download/@babel/helper-module-transforms-7.10.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-module-transforms%2Fdownload%2F%40babel%2Fhelper-module-transforms-7.10.5.tgz", + "integrity": "sha1-EgwnHAszU2c/zf2MBT2zxUSiYNY=", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4", + "@babel/helper-simple-access": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.5", + "lodash": "^4.17.19" + } + }, + "@babel/helper-optimise-call-expression": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helper-optimise-call-expression/download/@babel/helper-optimise-call-expression-7.10.4.tgz?cache=0&sync_timestamp=1593522827576&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-optimise-call-expression%2Fdownload%2F%40babel%2Fhelper-optimise-call-expression-7.10.4.tgz", + "integrity": "sha1-UNyWQT1ZT5lad5BZBbBYk813lnM=", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-plugin-utils": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helper-plugin-utils/download/@babel/helper-plugin-utils-7.10.4.tgz", + "integrity": "sha1-L3WoMSadT2d95JmG3/WZJ1M883U=", + "dev": true + }, + "@babel/helper-regex": { + "version": "7.10.5", + "resolved": "https://registry.npm.taobao.org/@babel/helper-regex/download/@babel/helper-regex-7.10.5.tgz?cache=0&sync_timestamp=1594751487108&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-regex%2Fdownload%2F%40babel%2Fhelper-regex-7.10.5.tgz", + "integrity": "sha1-Mt+7eYmQc8QVVXBToZvQVarlCuA=", + "dev": true, + "requires": { + "lodash": "^4.17.19" + } + }, + "@babel/helper-remap-async-to-generator": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helper-remap-async-to-generator/download/@babel/helper-remap-async-to-generator-7.10.4.tgz?cache=0&sync_timestamp=1593521228698&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-remap-async-to-generator%2Fdownload%2F%40babel%2Fhelper-remap-async-to-generator-7.10.4.tgz", + "integrity": "sha1-/Oi+pOlpC76SMFbe0h5UtOi2jtU=", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-wrap-function": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-replace-supers": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helper-replace-supers/download/@babel/helper-replace-supers-7.10.4.tgz", + "integrity": "sha1-1YXNk4jqBuYDHkzUS2cTy+rZ5s8=", + "dev": true, + "requires": { + "@babel/helper-member-expression-to-functions": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-simple-access": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helper-simple-access/download/@babel/helper-simple-access-7.10.4.tgz?cache=0&sync_timestamp=1593521217867&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-simple-access%2Fdownload%2F%40babel%2Fhelper-simple-access-7.10.4.tgz", + "integrity": "sha1-D1zNopRSd6KnotOoIeFTle3PNGE=", + "dev": true, + "requires": { + "@babel/template": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-split-export-declaration": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helper-split-export-declaration/download/@babel/helper-split-export-declaration-7.10.4.tgz?cache=0&sync_timestamp=1593522826673&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-split-export-declaration%2Fdownload%2F%40babel%2Fhelper-split-export-declaration-7.10.4.tgz", + "integrity": "sha1-LHBXbqo7VgmyTLmdsoiMw/xCUdE=", + "dev": true, + "requires": { + "@babel/types": "^7.10.4" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helper-validator-identifier/download/@babel/helper-validator-identifier-7.10.4.tgz?cache=0&sync_timestamp=1593522843594&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-validator-identifier%2Fdownload%2F%40babel%2Fhelper-validator-identifier-7.10.4.tgz", + "integrity": "sha1-p4x6clHgH2FlEtMbEK3PUq2l4NI=", + "dev": true + }, + "@babel/helper-wrap-function": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helper-wrap-function/download/@babel/helper-wrap-function-7.10.4.tgz?cache=0&sync_timestamp=1593522949000&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhelper-wrap-function%2Fdownload%2F%40babel%2Fhelper-wrap-function-7.10.4.tgz", + "integrity": "sha1-im9wHqsP8592W1oc/vQJmQ5iS4c=", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/helpers": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/helpers/download/@babel/helpers-7.10.4.tgz", + "integrity": "sha1-Kr6w1yGv98Cpc3a54fb2XXpHUEQ=", + "dev": true, + "requires": { + "@babel/template": "^7.10.4", + "@babel/traverse": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/highlight/download/@babel/highlight-7.10.4.tgz?cache=0&sync_timestamp=1593522962210&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fhighlight%2Fdownload%2F%40babel%2Fhighlight-7.10.4.tgz", + "integrity": "sha1-fRvf1ldTU4+r5sOFls23bZrGAUM=", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/parser": { + "version": "7.10.5", + "resolved": "https://registry.npm.taobao.org/@babel/parser/download/@babel/parser-7.10.5.tgz?cache=0&sync_timestamp=1594750823758&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fparser%2Fdownload%2F%40babel%2Fparser-7.10.5.tgz", + "integrity": "sha1-58a/Wn3v+VfOyfBLVR4nYpCdgms=", + "dev": true + }, + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.10.5", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-async-generator-functions/download/@babel/plugin-proposal-async-generator-functions-7.10.5.tgz?cache=0&sync_timestamp=1594751487997&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-async-generator-functions%2Fdownload%2F%40babel%2Fplugin-proposal-async-generator-functions-7.10.5.tgz", + "integrity": "sha1-NJHKvy98F5q4IGBs7Cf+0V4OhVg=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.10.4", + "@babel/plugin-syntax-async-generators": "^7.8.0" + } + }, + "@babel/plugin-proposal-class-properties": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-class-properties/download/@babel/plugin-proposal-class-properties-7.10.4.tgz", + "integrity": "sha1-ozv2Mto5ClnHqMVwBF0RFc13iAc=", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-proposal-decorators": { + "version": "7.10.5", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-decorators/download/@babel/plugin-proposal-decorators-7.10.5.tgz?cache=0&sync_timestamp=1594751494194&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-proposal-decorators%2Fdownload%2F%40babel%2Fplugin-proposal-decorators-7.10.5.tgz", + "integrity": "sha1-QomLukeLxLGuJCpwOpU6etNQ/7Q=", + "dev": true, + "requires": { + "@babel/helper-create-class-features-plugin": "^7.10.5", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-decorators": "^7.10.4" + } + }, + "@babel/plugin-proposal-json-strings": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-json-strings/download/@babel/plugin-proposal-json-strings-7.10.4.tgz", + "integrity": "sha1-WT5ZxjUoFgIzvTIbGuvgggwjQds=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-json-strings": "^7.8.0" + } + }, + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-object-rest-spread/download/@babel/plugin-proposal-object-rest-spread-7.10.4.tgz", + "integrity": "sha1-UBKawha5pqVbOFP92SPnS/VTpMA=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.0", + "@babel/plugin-transform-parameters": "^7.10.4" + } + }, + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-optional-catch-binding/download/@babel/plugin-proposal-optional-catch-binding-7.10.4.tgz", + "integrity": "sha1-Mck4MJ0kp4pJ1o/av/qoY3WFVN0=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" + } + }, + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-proposal-unicode-property-regex/download/@babel/plugin-proposal-unicode-property-regex-7.10.4.tgz", + "integrity": "sha1-RIPNpTBBzjQTt/4vAAImZd36p10=", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-async-generators/download/@babel/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha1-qYP7Gusuw/btBCohD2QOkOeG/g0=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-decorators": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-decorators/download/@babel/plugin-syntax-decorators-7.10.4.tgz", + "integrity": "sha1-aFMIWyxCn50yLQL1pjUBjN6yNgw=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-dynamic-import/download/@babel/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha1-Yr+Ysto80h1iYVT8lu5bPLaOrLM=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-json-strings/download/@babel/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha1-AcohtmjNghjJ5kDLbdiMVBKyyWo=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-jsx": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-jsx/download/@babel/plugin-syntax-jsx-7.10.4.tgz?cache=0&sync_timestamp=1593522939386&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-jsx%2Fdownload%2F%40babel%2Fplugin-syntax-jsx-7.10.4.tgz", + "integrity": "sha1-Oauq48v3EMQ3PYQpSE5rohNAFmw=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-object-rest-spread/download/@babel/plugin-syntax-object-rest-spread-7.8.3.tgz?cache=0&sync_timestamp=1578950070697&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-syntax-object-rest-spread%2Fdownload%2F%40babel%2Fplugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha1-YOIl7cvZimQDMqLnLdPmbxr1WHE=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-syntax-optional-catch-binding/download/@babel/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha1-YRGiZbz7Ag6579D9/X0mQCue1sE=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "@babel/plugin-transform-arrow-functions": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-arrow-functions/download/@babel/plugin-transform-arrow-functions-7.10.4.tgz?cache=0&sync_timestamp=1593522807583&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-arrow-functions%2Fdownload%2F%40babel%2Fplugin-transform-arrow-functions-7.10.4.tgz", + "integrity": "sha1-4ilg135pfHT0HFAdRNc9v4pqZM0=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-async-to-generator": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-async-to-generator/download/@babel/plugin-transform-async-to-generator-7.10.4.tgz?cache=0&sync_timestamp=1593522851748&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-async-to-generator%2Fdownload%2F%40babel%2Fplugin-transform-async-to-generator-7.10.4.tgz", + "integrity": "sha1-QaUBfknrbzzak5KlHu8pQFskWjc=", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-remap-async-to-generator": "^7.10.4" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-block-scoped-functions/download/@babel/plugin-transform-block-scoped-functions-7.10.4.tgz?cache=0&sync_timestamp=1593521910347&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-block-scoped-functions%2Fdownload%2F%40babel%2Fplugin-transform-block-scoped-functions-7.10.4.tgz", + "integrity": "sha1-GvpZV0T3XkOpGvc7DZmOz+Trwug=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-block-scoping": { + "version": "7.10.5", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-block-scoping/download/@babel/plugin-transform-block-scoping-7.10.5.tgz?cache=0&sync_timestamp=1594751488558&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-block-scoping%2Fdownload%2F%40babel%2Fplugin-transform-block-scoping-7.10.5.tgz", + "integrity": "sha1-uBuKr++/5o8PZffvOXuezmimA30=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-classes/download/@babel/plugin-transform-classes-7.10.4.tgz?cache=0&sync_timestamp=1593521236444&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-classes%2Fdownload%2F%40babel%2Fplugin-transform-classes-7.10.4.tgz", + "integrity": "sha1-QFE2rys+IYvEoZJiKLyRerGgrcc=", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-define-map": "^7.10.4", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-optimise-call-expression": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.10.4", + "globals": "^11.1.0" + } + }, + "@babel/plugin-transform-computed-properties": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-computed-properties/download/@babel/plugin-transform-computed-properties-7.10.4.tgz?cache=0&sync_timestamp=1593522921161&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-computed-properties%2Fdownload%2F%40babel%2Fplugin-transform-computed-properties-7.10.4.tgz", + "integrity": "sha1-ne2DqBboLe0o1S1LTsvdgQzfwOs=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-destructuring": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-destructuring/download/@babel/plugin-transform-destructuring-7.10.4.tgz", + "integrity": "sha1-cN3Ss9G+qD0BUJ6bsl3bOnT8heU=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-dotall-regex": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-dotall-regex/download/@babel/plugin-transform-dotall-regex-7.10.4.tgz", + "integrity": "sha1-RpwgYhBcHragQOr0+sS0iAeDle4=", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-duplicate-keys": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-duplicate-keys/download/@babel/plugin-transform-duplicate-keys-7.10.4.tgz", + "integrity": "sha1-aX5Qyf7hQ4D+hD0fMGspVhdDHkc=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-exponentiation-operator/download/@babel/plugin-transform-exponentiation-operator-7.10.4.tgz?cache=0&sync_timestamp=1593521230232&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-exponentiation-operator%2Fdownload%2F%40babel%2Fplugin-transform-exponentiation-operator-7.10.4.tgz", + "integrity": "sha1-WuM4xX+M9AAb2zVgeuZrktZlry4=", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-for-of": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-for-of/download/@babel/plugin-transform-for-of-7.10.4.tgz", + "integrity": "sha1-wIiS6IGdOl2ykDGxFa9RHbv+uuk=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-function-name": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-function-name/download/@babel/plugin-transform-function-name-7.10.4.tgz", + "integrity": "sha1-akZ4gOD8ljhRS6NpERgR3b4mRLc=", + "dev": true, + "requires": { + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-literals": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-literals/download/@babel/plugin-transform-literals-7.10.4.tgz", + "integrity": "sha1-n0K6CEEQChNfInEtDjkcRi9XHzw=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-modules-amd": { + "version": "7.10.5", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-amd/download/@babel/plugin-transform-modules-amd-7.10.5.tgz?cache=0&sync_timestamp=1594751493579&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-amd%2Fdownload%2F%40babel%2Fplugin-transform-modules-amd-7.10.5.tgz", + "integrity": "sha1-G5zdrwXZ6Is6rTOcs+RFxPAgqbE=", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.10.5", + "@babel/helper-plugin-utils": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-commonjs": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-commonjs/download/@babel/plugin-transform-modules-commonjs-7.10.4.tgz", + "integrity": "sha1-ZmZ8Pu2h6/eJbUHx8WsXEFovvKA=", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-simple-access": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.10.5", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-systemjs/download/@babel/plugin-transform-modules-systemjs-7.10.5.tgz?cache=0&sync_timestamp=1594751492758&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-systemjs%2Fdownload%2F%40babel%2Fplugin-transform-modules-systemjs-7.10.5.tgz", + "integrity": "sha1-YnAJnIVAZmgbrp4F+H4bnK2+jIU=", + "dev": true, + "requires": { + "@babel/helper-hoist-variables": "^7.10.4", + "@babel/helper-module-transforms": "^7.10.5", + "@babel/helper-plugin-utils": "^7.10.4", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-umd": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-modules-umd/download/@babel/plugin-transform-modules-umd-7.10.4.tgz?cache=0&sync_timestamp=1593522937615&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-modules-umd%2Fdownload%2F%40babel%2Fplugin-transform-modules-umd-7.10.4.tgz", + "integrity": "sha1-moSB/oG4JGVLOgtl2j34nz0hg54=", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-named-capturing-groups-regex/download/@babel/plugin-transform-named-capturing-groups-regex-7.10.4.tgz", + "integrity": "sha1-eLTZeIELbzvPA/njGPL8DtQa7LY=", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.10.4" + } + }, + "@babel/plugin-transform-new-target": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-new-target/download/@babel/plugin-transform-new-target-7.10.4.tgz?cache=0&sync_timestamp=1593522495673&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-new-target%2Fdownload%2F%40babel%2Fplugin-transform-new-target-7.10.4.tgz", + "integrity": "sha1-kJfXU8t7Aky3OBo7LlLpUTqcaIg=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-object-super": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-object-super/download/@babel/plugin-transform-object-super-7.10.4.tgz", + "integrity": "sha1-1xRsTROUM+emUm+IjGZ+MUoJOJQ=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-replace-supers": "^7.10.4" + } + }, + "@babel/plugin-transform-parameters": { + "version": "7.10.5", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-parameters/download/@babel/plugin-transform-parameters-7.10.5.tgz?cache=0&sync_timestamp=1594751489267&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-parameters%2Fdownload%2F%40babel%2Fplugin-transform-parameters-7.10.5.tgz", + "integrity": "sha1-WdM51Y0LGVBDX0BD504lEABeLEo=", + "dev": true, + "requires": { + "@babel/helper-get-function-arity": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-regenerator": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-regenerator/download/@babel/plugin-transform-regenerator-7.10.4.tgz?cache=0&sync_timestamp=1593521089707&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-regenerator%2Fdownload%2F%40babel%2Fplugin-transform-regenerator-7.10.4.tgz", + "integrity": "sha1-IBXlnYOQdOdoON4hWdtCGWb9i2M=", + "dev": true, + "requires": { + "regenerator-transform": "^0.14.2" + } + }, + "@babel/plugin-transform-runtime": { + "version": "7.10.5", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-runtime/download/@babel/plugin-transform-runtime-7.10.5.tgz?cache=0&sync_timestamp=1594751489022&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-runtime%2Fdownload%2F%40babel%2Fplugin-transform-runtime-7.10.5.tgz", + "integrity": "sha1-Ozm3skgw4MLY/3pEif5c+Z+6zoY=", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4", + "resolve": "^1.8.1", + "semver": "^5.5.1" + } + }, + "@babel/plugin-transform-shorthand-properties": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-shorthand-properties/download/@babel/plugin-transform-shorthand-properties-7.10.4.tgz", + "integrity": "sha1-n9Jexc3VVbt/Rz5ebuHJce7eTdY=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-spread/download/@babel/plugin-transform-spread-7.10.4.tgz?cache=0&sync_timestamp=1593522927458&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-spread%2Fdownload%2F%40babel%2Fplugin-transform-spread-7.10.4.tgz", + "integrity": "sha1-TiyF6g1quu4bJNz7uuQm/o1nTP8=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-sticky-regex": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-sticky-regex/download/@babel/plugin-transform-sticky-regex-7.10.4.tgz", + "integrity": "sha1-jziJ7oZXWBEwop2cyR18c7fEoo0=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4", + "@babel/helper-regex": "^7.10.4" + } + }, + "@babel/plugin-transform-template-literals": { + "version": "7.10.5", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-template-literals/download/@babel/plugin-transform-template-literals-7.10.5.tgz?cache=0&sync_timestamp=1594751489580&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-template-literals%2Fdownload%2F%40babel%2Fplugin-transform-template-literals-7.10.5.tgz", + "integrity": "sha1-eLxdYmpmQtszEtnQ8AH152Of3ow=", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-typeof-symbol": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-typeof-symbol/download/@babel/plugin-transform-typeof-symbol-7.10.4.tgz", + "integrity": "sha1-lQnxp+7DHE7b/+E3wWzDP/C8W/w=", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/plugin-transform-unicode-regex/download/@babel/plugin-transform-unicode-regex-7.10.4.tgz?cache=0&sync_timestamp=1593522855498&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fplugin-transform-unicode-regex%2Fdownload%2F%40babel%2Fplugin-transform-unicode-regex-7.10.4.tgz", + "integrity": "sha1-5W1x+SgvrG2wnIJ0IFVXbV5tgKg=", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.10.4", + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "@babel/preset-env": { + "version": "7.3.4", + "resolved": "https://registry.npm.taobao.org/@babel/preset-env/download/@babel/preset-env-7.3.4.tgz", + "integrity": "sha1-iHzzi20jyC8ZtRNSmL2xYAYuM+E=", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-async-generator-functions": "^7.2.0", + "@babel/plugin-proposal-json-strings": "^7.2.0", + "@babel/plugin-proposal-object-rest-spread": "^7.3.4", + "@babel/plugin-proposal-optional-catch-binding": "^7.2.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.2.0", + "@babel/plugin-syntax-async-generators": "^7.2.0", + "@babel/plugin-syntax-json-strings": "^7.2.0", + "@babel/plugin-syntax-object-rest-spread": "^7.2.0", + "@babel/plugin-syntax-optional-catch-binding": "^7.2.0", + "@babel/plugin-transform-arrow-functions": "^7.2.0", + "@babel/plugin-transform-async-to-generator": "^7.3.4", + "@babel/plugin-transform-block-scoped-functions": "^7.2.0", + "@babel/plugin-transform-block-scoping": "^7.3.4", + "@babel/plugin-transform-classes": "^7.3.4", + "@babel/plugin-transform-computed-properties": "^7.2.0", + "@babel/plugin-transform-destructuring": "^7.2.0", + "@babel/plugin-transform-dotall-regex": "^7.2.0", + "@babel/plugin-transform-duplicate-keys": "^7.2.0", + "@babel/plugin-transform-exponentiation-operator": "^7.2.0", + "@babel/plugin-transform-for-of": "^7.2.0", + "@babel/plugin-transform-function-name": "^7.2.0", + "@babel/plugin-transform-literals": "^7.2.0", + "@babel/plugin-transform-modules-amd": "^7.2.0", + "@babel/plugin-transform-modules-commonjs": "^7.2.0", + "@babel/plugin-transform-modules-systemjs": "^7.3.4", + "@babel/plugin-transform-modules-umd": "^7.2.0", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.3.0", + "@babel/plugin-transform-new-target": "^7.0.0", + "@babel/plugin-transform-object-super": "^7.2.0", + "@babel/plugin-transform-parameters": "^7.2.0", + "@babel/plugin-transform-regenerator": "^7.3.4", + "@babel/plugin-transform-shorthand-properties": "^7.2.0", + "@babel/plugin-transform-spread": "^7.2.0", + "@babel/plugin-transform-sticky-regex": "^7.2.0", + "@babel/plugin-transform-template-literals": "^7.2.0", + "@babel/plugin-transform-typeof-symbol": "^7.2.0", + "@babel/plugin-transform-unicode-regex": "^7.2.0", + "browserslist": "^4.3.4", + "invariant": "^2.2.2", + "js-levenshtein": "^1.1.3", + "semver": "^5.3.0" + } + }, + "@babel/runtime": { + "version": "7.10.5", + "resolved": "https://registry.npm.taobao.org/@babel/runtime/download/@babel/runtime-7.10.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime%2Fdownload%2F%40babel%2Fruntime-7.10.5.tgz", + "integrity": "sha1-MD2L1EDs1aSR6uYRf9M2dphnTFw=", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/runtime-corejs2": { + "version": "7.10.5", + "resolved": "https://registry.npm.taobao.org/@babel/runtime-corejs2/download/@babel/runtime-corejs2-7.10.5.tgz?cache=0&sync_timestamp=1594751489791&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Fruntime-corejs2%2Fdownload%2F%40babel%2Fruntime-corejs2-7.10.5.tgz", + "integrity": "sha1-jaoc7MwEaOXC4V8STj9RwrMDO0k=", + "dev": true, + "requires": { + "core-js": "^2.6.5", + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/template": { + "version": "7.10.4", + "resolved": "https://registry.npm.taobao.org/@babel/template/download/@babel/template-7.10.4.tgz", + "integrity": "sha1-MlGZbEIA68cdGo/EBfupQPNrong=", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/parser": "^7.10.4", + "@babel/types": "^7.10.4" + } + }, + "@babel/traverse": { + "version": "7.10.5", + "resolved": "https://registry.npm.taobao.org/@babel/traverse/download/@babel/traverse-7.10.5.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftraverse%2Fdownload%2F%40babel%2Ftraverse-7.10.5.tgz", + "integrity": "sha1-d85GT1sli+Jlr2GNj93wU28gtWQ=", + "dev": true, + "requires": { + "@babel/code-frame": "^7.10.4", + "@babel/generator": "^7.10.5", + "@babel/helper-function-name": "^7.10.4", + "@babel/helper-split-export-declaration": "^7.10.4", + "@babel/parser": "^7.10.5", + "@babel/types": "^7.10.5", + "debug": "^4.1.0", + "globals": "^11.1.0", + "lodash": "^4.17.19" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.1.1.tgz", + "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", + "dev": true + } + } + }, + "@babel/types": { + "version": "7.10.5", + "resolved": "https://registry.npm.taobao.org/@babel/types/download/@babel/types-7.10.5.tgz?cache=0&sync_timestamp=1594750825865&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40babel%2Ftypes%2Fdownload%2F%40babel%2Ftypes-7.10.5.tgz", + "integrity": "sha1-2Irn4v3oa/v+hR1Nga+nCpl7XRU=", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.10.4", + "lodash": "^4.17.19", + "to-fast-properties": "^2.0.0" + } + }, + "@hapi/address": { + "version": "2.1.4", + "resolved": "https://registry.npm.taobao.org/@hapi/address/download/@hapi/address-2.1.4.tgz?cache=0&sync_timestamp=1593993745797&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Faddress%2Fdownload%2F%40hapi%2Faddress-2.1.4.tgz", + "integrity": "sha1-XWftQ/P9QaadS5/3tW58DR0KgeU=", + "dev": true + }, + "@hapi/bourne": { + "version": "1.3.2", + "resolved": "https://registry.npm.taobao.org/@hapi/bourne/download/@hapi/bourne-1.3.2.tgz", + "integrity": "sha1-CnCVreoGckPOMoPhtWuKj0U7JCo=", + "dev": true + }, + "@hapi/hoek": { + "version": "8.5.1", + "resolved": "https://registry.npm.taobao.org/@hapi/hoek/download/@hapi/hoek-8.5.1.tgz", + "integrity": "sha1-/elgZMpEbeyMVajC8TCVewcMbgY=", + "dev": true + }, + "@hapi/joi": { + "version": "15.1.1", + "resolved": "https://registry.npm.taobao.org/@hapi/joi/download/@hapi/joi-15.1.1.tgz", + "integrity": "sha1-xnW4pxKW8Cgz+NbSQ7NMV7jOGdc=", + "dev": true, + "requires": { + "@hapi/address": "2.x.x", + "@hapi/bourne": "1.x.x", + "@hapi/hoek": "8.x.x", + "@hapi/topo": "3.x.x" + } + }, + "@hapi/topo": { + "version": "3.1.6", + "resolved": "https://registry.npm.taobao.org/@hapi/topo/download/@hapi/topo-3.1.6.tgz?cache=0&sync_timestamp=1593916080558&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40hapi%2Ftopo%2Fdownload%2F%40hapi%2Ftopo-3.1.6.tgz", + "integrity": "sha1-aNk1+j6uf91asNf5U/MgXYsr/Ck=", + "dev": true, + "requires": { + "@hapi/hoek": "^8.3.0" + } + }, + "@intervolga/optimize-cssnano-plugin": { + "version": "1.0.6", + "resolved": "https://registry.npm.taobao.org/@intervolga/optimize-cssnano-plugin/download/@intervolga/optimize-cssnano-plugin-1.0.6.tgz", + "integrity": "sha1-vnx4RhKLiPapsdEmGgrQbrXA/fg=", + "dev": true, + "requires": { + "cssnano": "^4.0.0", + "cssnano-preset-default": "^4.0.0", + "postcss": "^7.0.0" + } + }, + "@mrmlnc/readdir-enhanced": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/@mrmlnc/readdir-enhanced/download/@mrmlnc/readdir-enhanced-2.2.1.tgz", + "integrity": "sha1-UkryQNGjYFJ7cwR17PoTRKpUDd4=", + "dev": true, + "requires": { + "call-me-maybe": "^1.0.1", + "glob-to-regexp": "^0.3.0" + } + }, + "@nodelib/fs.stat": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/@nodelib/fs.stat/download/@nodelib/fs.stat-1.1.3.tgz", + "integrity": "sha1-K1o6s/kYzKSKjHVMCBaOPwPrphs=", + "dev": true + }, + "@soda/friendly-errors-webpack-plugin": { + "version": "1.7.1", + "resolved": "https://registry.npm.taobao.org/@soda/friendly-errors-webpack-plugin/download/@soda/friendly-errors-webpack-plugin-1.7.1.tgz", + "integrity": "sha1-cG9kvLSouWQrSK46zkRMcDNNYV0=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "error-stack-parser": "^2.0.0", + "string-width": "^2.0.0" + } + }, + "@types/color-name": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/@types/color-name/download/@types/color-name-1.1.1.tgz", + "integrity": "sha1-HBJhu+qhCoBVu8XYq4S3sq/IRqA=", + "dev": true + }, + "@types/glob": { + "version": "7.1.3", + "resolved": "https://registry.npm.taobao.org/@types/glob/download/@types/glob-7.1.3.tgz", + "integrity": "sha1-5rqA82t9qtLGhazZJmOC5omFwYM=", + "dev": true, + "requires": { + "@types/minimatch": "*", + "@types/node": "*" + } + }, + "@types/json-schema": { + "version": "7.0.5", + "resolved": "https://registry.npm.taobao.org/@types/json-schema/download/@types/json-schema-7.0.5.tgz?cache=0&sync_timestamp=1591720749429&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fjson-schema%2Fdownload%2F%40types%2Fjson-schema-7.0.5.tgz", + "integrity": "sha1-3M5EMOZLRDuolF8CkPtWStW6xt0=", + "dev": true + }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npm.taobao.org/@types/json5/download/@types/json5-0.0.29.tgz?cache=0&sync_timestamp=1588201498029&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fjson5%2Fdownload%2F%40types%2Fjson5-0.0.29.tgz", + "integrity": "sha1-7ihweulOEdK4J7y+UnC86n8+ce4=", + "dev": true + }, + "@types/minimatch": { + "version": "3.0.3", + "resolved": "https://registry.npm.taobao.org/@types/minimatch/download/@types/minimatch-3.0.3.tgz", + "integrity": "sha1-PcoOPzOyAPx9ETnAzZbBJoyt/Z0=", + "dev": true + }, + "@types/node": { + "version": "14.0.24", + "resolved": "https://registry.npm.taobao.org/@types/node/download/@types/node-14.0.24.tgz?cache=0&sync_timestamp=1595281751560&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40types%2Fnode%2Fdownload%2F%40types%2Fnode-14.0.24.tgz", + "integrity": "sha1-sPhvWFZPoCooto+LVdTN7ELjudY=", + "dev": true + }, + "@types/normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npm.taobao.org/@types/normalize-package-data/download/@types/normalize-package-data-2.4.0.tgz", + "integrity": "sha1-5IbQ2XOW15vu3QpuM/RTT/a0lz4=", + "dev": true + }, + "@types/q": { + "version": "1.5.4", + "resolved": "https://registry.npm.taobao.org/@types/q/download/@types/q-1.5.4.tgz", + "integrity": "sha1-FZJUFOCtLNdlv+9YhC9+JqesyyQ=", + "dev": true + }, + "@vue/babel-helper-vue-jsx-merge-props": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/@vue/babel-helper-vue-jsx-merge-props/download/@vue/babel-helper-vue-jsx-merge-props-1.0.0.tgz", + "integrity": "sha1-BI/leZWNpAj7eosqPsBQtQpmEEA=", + "dev": true + }, + "@vue/babel-plugin-transform-vue-jsx": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/@vue/babel-plugin-transform-vue-jsx/download/@vue/babel-plugin-transform-vue-jsx-1.1.2.tgz", + "integrity": "sha1-wKPm78Ai515CR7RIqPxrhvA+kcA=", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.2.0", + "@vue/babel-helper-vue-jsx-merge-props": "^1.0.0", + "html-tags": "^2.0.0", + "lodash.kebabcase": "^4.1.1", + "svg-tags": "^1.0.0" + } + }, + "@vue/babel-preset-app": { + "version": "3.12.1", + "resolved": "https://registry.npm.taobao.org/@vue/babel-preset-app/download/@vue/babel-preset-app-3.12.1.tgz", + "integrity": "sha1-JMR3BS8HjzD9t3NRA7FN0fosv+E=", + "dev": true, + "requires": { + "@babel/helper-module-imports": "^7.0.0", + "@babel/plugin-proposal-class-properties": "^7.0.0", + "@babel/plugin-proposal-decorators": "^7.1.0", + "@babel/plugin-syntax-dynamic-import": "^7.0.0", + "@babel/plugin-syntax-jsx": "^7.0.0", + "@babel/plugin-transform-runtime": "^7.4.0", + "@babel/preset-env": "^7.0.0 < 7.4.0", + "@babel/runtime": "^7.0.0", + "@babel/runtime-corejs2": "^7.2.0", + "@vue/babel-preset-jsx": "^1.0.0", + "babel-plugin-dynamic-import-node": "^2.2.0", + "babel-plugin-module-resolver": "3.2.0", + "core-js": "^2.6.5" + } + }, + "@vue/babel-preset-jsx": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/@vue/babel-preset-jsx/download/@vue/babel-preset-jsx-1.1.2.tgz", + "integrity": "sha1-LhaetMIE6jfKZsLqhaiAv8mdTyA=", + "dev": true, + "requires": { + "@vue/babel-helper-vue-jsx-merge-props": "^1.0.0", + "@vue/babel-plugin-transform-vue-jsx": "^1.1.2", + "@vue/babel-sugar-functional-vue": "^1.1.2", + "@vue/babel-sugar-inject-h": "^1.1.2", + "@vue/babel-sugar-v-model": "^1.1.2", + "@vue/babel-sugar-v-on": "^1.1.2" + } + }, + "@vue/babel-sugar-functional-vue": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-functional-vue/download/@vue/babel-sugar-functional-vue-1.1.2.tgz", + "integrity": "sha1-9+JPugnm8e5wEEVgqICAV1VfGpo=", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0" + } + }, + "@vue/babel-sugar-inject-h": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-inject-h/download/@vue/babel-sugar-inject-h-1.1.2.tgz", + "integrity": "sha1-ilJ2ttji7Rb/yAeKrZQjYnTm7fA=", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0" + } + }, + "@vue/babel-sugar-v-model": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-v-model/download/@vue/babel-sugar-v-model-1.1.2.tgz", + "integrity": "sha1-H/b9G4ACI/ycsehNzrXlLXN6gZI=", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0", + "@vue/babel-helper-vue-jsx-merge-props": "^1.0.0", + "@vue/babel-plugin-transform-vue-jsx": "^1.1.2", + "camelcase": "^5.0.0", + "html-tags": "^2.0.0", + "svg-tags": "^1.0.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz", + "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", + "dev": true + } + } + }, + "@vue/babel-sugar-v-on": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/@vue/babel-sugar-v-on/download/@vue/babel-sugar-v-on-1.1.2.tgz", + "integrity": "sha1-su+ZuPL6sJ++rSWq1w70Lhz1sTs=", + "dev": true, + "requires": { + "@babel/plugin-syntax-jsx": "^7.2.0", + "@vue/babel-plugin-transform-vue-jsx": "^1.1.2", + "camelcase": "^5.0.0" + }, + "dependencies": { + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz", + "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", + "dev": true + } + } + }, + "@vue/cli-overlay": { + "version": "3.12.1", + "resolved": "https://registry.npm.taobao.org/@vue/cli-overlay/download/@vue/cli-overlay-3.12.1.tgz?cache=0&sync_timestamp=1592976328085&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fcli-overlay%2Fdownload%2F%40vue%2Fcli-overlay-3.12.1.tgz", + "integrity": "sha1-vf3o9xI1YasG5OTGC4VMxQkvWrE=", + "dev": true + }, + "@vue/cli-plugin-babel": { + "version": "3.12.1", + "resolved": "https://registry.npm.taobao.org/@vue/cli-plugin-babel/download/@vue/cli-plugin-babel-3.12.1.tgz", + "integrity": "sha1-mnkVnejNCGsBP6bXijmDCy4uxwY=", + "dev": true, + "requires": { + "@babel/core": "^7.0.0", + "@vue/babel-preset-app": "^3.12.1", + "@vue/cli-shared-utils": "^3.12.1", + "babel-loader": "^8.0.5", + "webpack": "^4.0.0" + } + }, + "@vue/cli-plugin-eslint": { + "version": "3.12.1", + "resolved": "https://registry.npm.taobao.org/@vue/cli-plugin-eslint/download/@vue/cli-plugin-eslint-3.12.1.tgz", + "integrity": "sha1-MCxGOGfzjnkLuZbq/fcVnHgtyM8=", + "dev": true, + "requires": { + "@vue/cli-shared-utils": "^3.12.1", + "babel-eslint": "^10.0.1", + "eslint": "^4.19.1", + "eslint-loader": "^2.1.2", + "eslint-plugin-vue": "^4.7.1", + "globby": "^9.2.0", + "webpack": "^4.0.0", + "yorkie": "^2.0.0" + } + }, + "@vue/cli-plugin-unit-mocha": { + "version": "3.12.1", + "resolved": "https://registry.npm.taobao.org/@vue/cli-plugin-unit-mocha/download/@vue/cli-plugin-unit-mocha-3.12.1.tgz?cache=0&sync_timestamp=1592978125871&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40vue%2Fcli-plugin-unit-mocha%2Fdownload%2F%40vue%2Fcli-plugin-unit-mocha-3.12.1.tgz", + "integrity": "sha1-lwxTZHW/RwqoVLDUzEFO2bJCZjY=", + "dev": true, + "requires": { + "@vue/cli-shared-utils": "^3.12.1", + "jsdom": "^13.2.0", + "jsdom-global": "^3.0.2", + "mocha": "^5.2.0", + "mocha-webpack": "^2.0.0-beta.0" + } + }, + "@vue/cli-service": { + "version": "3.12.1", + "resolved": "https://registry.npm.taobao.org/@vue/cli-service/download/@vue/cli-service-3.12.1.tgz", + "integrity": "sha1-EyILHBiSVOfAAzkN8ykIb5tud+Y=", + "dev": true, + "requires": { + "@intervolga/optimize-cssnano-plugin": "^1.0.5", + "@soda/friendly-errors-webpack-plugin": "^1.7.1", + "@vue/cli-overlay": "^3.12.1", + "@vue/cli-shared-utils": "^3.12.1", + "@vue/component-compiler-utils": "^3.0.0", + "@vue/preload-webpack-plugin": "^1.1.0", + "@vue/web-component-wrapper": "^1.2.0", + "acorn": "^6.1.1", + "acorn-walk": "^6.1.1", + "address": "^1.0.3", + "autoprefixer": "^9.5.1", + "browserslist": "^4.5.4", + "cache-loader": "^2.0.1", + "case-sensitive-paths-webpack-plugin": "^2.2.0", + "chalk": "^2.4.2", + "cli-highlight": "^2.1.0", + "clipboardy": "^2.0.0", + "cliui": "^5.0.0", + "copy-webpack-plugin": "^4.6.0", + "css-loader": "^1.0.1", + "cssnano": "^4.1.10", + "current-script-polyfill": "^1.0.0", + "debug": "^4.1.1", + "default-gateway": "^5.0.2", + "dotenv": "^7.0.0", + "dotenv-expand": "^5.1.0", + "escape-string-regexp": "^1.0.5", + "file-loader": "^3.0.1", + "fs-extra": "^7.0.1", + "globby": "^9.2.0", + "hash-sum": "^1.0.2", + "html-webpack-plugin": "^3.2.0", + "launch-editor-middleware": "^2.2.1", + "lodash.defaultsdeep": "^4.6.1", + "lodash.mapvalues": "^4.6.0", + "lodash.transform": "^4.6.0", + "mini-css-extract-plugin": "^0.8.0", + "minimist": "^1.2.0", + "ora": "^3.4.0", + "portfinder": "^1.0.20", + "postcss-loader": "^3.0.0", + "read-pkg": "^5.0.0", + "semver": "^6.0.0", + "slash": "^2.0.0", + "source-map-url": "^0.4.0", + "ssri": "^6.0.1", + "string.prototype.padend": "^3.0.0", + "terser-webpack-plugin": "^1.2.3", + "thread-loader": "^2.1.2", + "url-loader": "^1.1.2", + "vue-loader": "^15.7.0", + "webpack": "^4.0.0", + "webpack-bundle-analyzer": "^3.3.0", + "webpack-chain": "^4.11.0", + "webpack-dev-server": "^3.4.1", + "webpack-merge": "^4.2.1" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-5.0.0.tgz", + "integrity": "sha1-3u/P2y6AB4SqNPRvoI4GhRx7u8U=", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.1.1.tgz", + "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-7.0.3.tgz", + "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=", + "dev": true + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", + "dev": true + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1586886301819&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-3.1.0.tgz", + "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-5.1.0.tgz", + "integrity": "sha1-H9H2cjXVttD+54EFYAG/tpTAOwk=", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + } + } + } + }, + "@vue/cli-shared-utils": { + "version": "3.12.1", + "resolved": "https://registry.npm.taobao.org/@vue/cli-shared-utils/download/@vue/cli-shared-utils-3.12.1.tgz", + "integrity": "sha1-vPB2KH3a3uu7l8anSN/p/1DsjfA=", + "dev": true, + "requires": { + "@hapi/joi": "^15.0.1", + "chalk": "^2.4.1", + "execa": "^1.0.0", + "launch-editor": "^2.2.1", + "lru-cache": "^5.1.1", + "node-ipc": "^9.1.1", + "open": "^6.3.0", + "ora": "^3.4.0", + "request": "^2.87.0", + "request-promise-native": "^1.0.7", + "semver": "^6.0.0", + "string.prototype.padstart": "^3.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1586886301819&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@vue/component-compiler-utils": { + "version": "3.1.2", + "resolved": "https://registry.npm.taobao.org/@vue/component-compiler-utils/download/@vue/component-compiler-utils-3.1.2.tgz", + "integrity": "sha1-ghOl/zIC+fITf+VTcPnouWVggcM=", + "dev": true, + "requires": { + "consolidate": "^0.15.1", + "hash-sum": "^1.0.2", + "lru-cache": "^4.1.2", + "merge-source-map": "^1.1.0", + "postcss": "^7.0.14", + "postcss-selector-parser": "^6.0.2", + "prettier": "^1.18.2", + "source-map": "~0.6.1", + "vue-template-es2015-compiler": "^1.9.0" + }, + "dependencies": { + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz?cache=0&sync_timestamp=1594427569171&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-4.1.5.tgz", + "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } + }, + "@vue/eslint-config-standard": { + "version": "3.0.5", + "resolved": "https://registry.npm.taobao.org/@vue/eslint-config-standard/download/@vue/eslint-config-standard-3.0.5.tgz", + "integrity": "sha1-fWroCerskJk8YDPZVD9I9oe56/E=", + "dev": true, + "requires": { + "eslint-config-standard": "^12.0.0-alpha.0", + "eslint-plugin-import": "^2.11.0", + "eslint-plugin-node": "^6.0.1", + "eslint-plugin-promise": "^3.7.0", + "eslint-plugin-standard": "^3.1.0" + } + }, + "@vue/preload-webpack-plugin": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/@vue/preload-webpack-plugin/download/@vue/preload-webpack-plugin-1.1.1.tgz", + "integrity": "sha1-GHI1MNME9EMCHaIpLW7JUCgmEEo=", + "dev": true, + "requires": {} + }, + "@vue/test-utils": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/@vue/test-utils/download/@vue/test-utils-1.0.3.tgz", + "integrity": "sha1-WHxN2bQktmAi8YjBm8YF2izpHG8=", + "dev": true, + "requires": { + "dom-event-types": "^1.0.0", + "lodash": "^4.17.15", + "pretty": "^2.0.0" + } + }, + "@vue/web-component-wrapper": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/@vue/web-component-wrapper/download/@vue/web-component-wrapper-1.2.0.tgz", + "integrity": "sha1-uw5G8VhafiibTuYGfcxaauYvHdE=", + "dev": true + }, + "@webassemblyjs/ast": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/ast/download/@webassemblyjs/ast-1.9.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fast%2Fdownload%2F%40webassemblyjs%2Fast-1.9.0.tgz", + "integrity": "sha1-vYUGBLQEJFmlpBzX0zjL7Wle2WQ=", + "dev": true, + "requires": { + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/floating-point-hex-parser/download/@webassemblyjs/floating-point-hex-parser-1.9.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Ffloating-point-hex-parser%2Fdownload%2F%40webassemblyjs%2Ffloating-point-hex-parser-1.9.0.tgz", + "integrity": "sha1-PD07Jxvd/ITesA9xNEQ4MR1S/7Q=", + "dev": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-api-error/download/@webassemblyjs/helper-api-error-1.9.0.tgz", + "integrity": "sha1-ID9nbjM7lsnaLuqzzO8zxFkotqI=", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-buffer/download/@webassemblyjs/helper-buffer-1.9.0.tgz?cache=0&sync_timestamp=1580600188490&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-buffer%2Fdownload%2F%40webassemblyjs%2Fhelper-buffer-1.9.0.tgz", + "integrity": "sha1-oUQtJpxf6yP8vJ73WdrDVH8p3gA=", + "dev": true + }, + "@webassemblyjs/helper-code-frame": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-code-frame/download/@webassemblyjs/helper-code-frame-1.9.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-code-frame%2Fdownload%2F%40webassemblyjs%2Fhelper-code-frame-1.9.0.tgz", + "integrity": "sha1-ZH+Iks0gQ6gqwMjF51w28dkVnyc=", + "dev": true, + "requires": { + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/helper-fsm": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-fsm/download/@webassemblyjs/helper-fsm-1.9.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-fsm%2Fdownload%2F%40webassemblyjs%2Fhelper-fsm-1.9.0.tgz", + "integrity": "sha1-wFJWtxJEIUZx9LCOwQitY7cO3bg=", + "dev": true + }, + "@webassemblyjs/helper-module-context": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-module-context/download/@webassemblyjs/helper-module-context-1.9.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-module-context%2Fdownload%2F%40webassemblyjs%2Fhelper-module-context-1.9.0.tgz", + "integrity": "sha1-JdiIS3aDmHGgimxvgGw5ee9xLwc=", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-wasm-bytecode/download/@webassemblyjs/helper-wasm-bytecode-1.9.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-wasm-bytecode%2Fdownload%2F%40webassemblyjs%2Fhelper-wasm-bytecode-1.9.0.tgz", + "integrity": "sha1-T+2L6sm4wU+MWLcNEk1UndH+V5A=", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/helper-wasm-section/download/@webassemblyjs/helper-wasm-section-1.9.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fhelper-wasm-section%2Fdownload%2F%40webassemblyjs%2Fhelper-wasm-section-1.9.0.tgz", + "integrity": "sha1-WkE41aYpK6GLBMWuSXF+QWeWU0Y=", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/ieee754/download/@webassemblyjs/ieee754-1.9.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fieee754%2Fdownload%2F%40webassemblyjs%2Fieee754-1.9.0.tgz", + "integrity": "sha1-Fceg+6roP7JhQ7us9tbfFwKtOeQ=", + "dev": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/leb128/download/@webassemblyjs/leb128-1.9.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fleb128%2Fdownload%2F%40webassemblyjs%2Fleb128-1.9.0.tgz", + "integrity": "sha1-8Zygt2ptxVYjoJz/p2noOPoeHJU=", + "dev": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/utf8/download/@webassemblyjs/utf8-1.9.0.tgz", + "integrity": "sha1-BNM7Y2945qaBMifoJAL3Y3tiKas=", + "dev": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-edit/download/@webassemblyjs/wasm-edit-1.9.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-edit%2Fdownload%2F%40webassemblyjs%2Fwasm-edit-1.9.0.tgz", + "integrity": "sha1-P+bXnT8PkiGDqoYALELdJWz+6c8=", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/helper-wasm-section": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-opt": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "@webassemblyjs/wast-printer": "1.9.0" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-gen/download/@webassemblyjs/wasm-gen-1.9.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-gen%2Fdownload%2F%40webassemblyjs%2Fwasm-gen-1.9.0.tgz", + "integrity": "sha1-ULxw7Gje2OJ2OwGhQYv0NJGnpJw=", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-opt/download/@webassemblyjs/wasm-opt-1.9.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-opt%2Fdownload%2F%40webassemblyjs%2Fwasm-opt-1.9.0.tgz", + "integrity": "sha1-IhEYHlsxMmRDzIES658LkChyGmE=", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-buffer": "1.9.0", + "@webassemblyjs/wasm-gen": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wasm-parser/download/@webassemblyjs/wasm-parser-1.9.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwasm-parser%2Fdownload%2F%40webassemblyjs%2Fwasm-parser-1.9.0.tgz", + "integrity": "sha1-nUjkSCbfSmWYKUqmyHRp1kL/9l4=", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-wasm-bytecode": "1.9.0", + "@webassemblyjs/ieee754": "1.9.0", + "@webassemblyjs/leb128": "1.9.0", + "@webassemblyjs/utf8": "1.9.0" + } + }, + "@webassemblyjs/wast-parser": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wast-parser/download/@webassemblyjs/wast-parser-1.9.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwast-parser%2Fdownload%2F%40webassemblyjs%2Fwast-parser-1.9.0.tgz", + "integrity": "sha1-MDERXXmsW9JhVWzsw/qQo+9FGRQ=", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/floating-point-hex-parser": "1.9.0", + "@webassemblyjs/helper-api-error": "1.9.0", + "@webassemblyjs/helper-code-frame": "1.9.0", + "@webassemblyjs/helper-fsm": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.9.0", + "resolved": "https://registry.npm.taobao.org/@webassemblyjs/wast-printer/download/@webassemblyjs/wast-printer-1.9.0.tgz?cache=0&sync_timestamp=1580599638157&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2F%40webassemblyjs%2Fwast-printer%2Fdownload%2F%40webassemblyjs%2Fwast-printer-1.9.0.tgz", + "integrity": "sha1-STXVTIX+9jewDOn1I3dFHQDUeJk=", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/wast-parser": "1.9.0", + "@xtuc/long": "4.2.2" + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/@xtuc/ieee754/download/@xtuc/ieee754-1.2.0.tgz", + "integrity": "sha1-7vAUoxRa5Hehy8AM0eVSM23Ot5A=", + "dev": true + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npm.taobao.org/@xtuc/long/download/@xtuc/long-4.2.2.tgz", + "integrity": "sha1-0pHGpOl5ibXGHZrPOWrk/hM6cY0=", + "dev": true + }, + "abab": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/abab/download/abab-2.0.3.tgz", + "integrity": "sha1-Yj4gdeAustPyR15J+ZyRhGRnkHo=", + "dev": true + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/abbrev/download/abbrev-1.1.1.tgz", + "integrity": "sha1-+PLIh60Qv2f2NPAFtph/7TF5qsg=", + "dev": true + }, + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npm.taobao.org/accepts/download/accepts-1.3.7.tgz", + "integrity": "sha1-UxvHJlF6OytB+FACHGzBXqq1B80=", + "dev": true, + "requires": { + "mime-types": "~2.1.24", + "negotiator": "0.6.2" + } + }, + "acorn": { + "version": "6.4.1", + "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-6.4.1.tgz?cache=0&sync_timestamp=1591869432510&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-6.4.1.tgz", + "integrity": "sha1-Ux5Yuj9RudrLmmZGyk3r9bFMpHQ=", + "dev": true + }, + "acorn-globals": { + "version": "4.3.4", + "resolved": "https://registry.npm.taobao.org/acorn-globals/download/acorn-globals-4.3.4.tgz", + "integrity": "sha1-n6GSat3BHJcwjE5m163Q1Awycuc=", + "dev": true, + "requires": { + "acorn": "^6.0.1", + "acorn-walk": "^6.0.1" + } + }, + "acorn-jsx": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/acorn-jsx/download/acorn-jsx-3.0.1.tgz", + "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", + "dev": true, + "requires": { + "acorn": "^3.0.4" + }, + "dependencies": { + "acorn": { + "version": "3.3.0", + "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-3.3.0.tgz?cache=0&sync_timestamp=1591869432510&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-3.3.0.tgz", + "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", + "dev": true + } + } + }, + "acorn-walk": { + "version": "6.2.0", + "resolved": "https://registry.npm.taobao.org/acorn-walk/download/acorn-walk-6.2.0.tgz", + "integrity": "sha1-Ejy487hMIXHx9/slJhWxx4prGow=", + "dev": true + }, + "address": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/address/download/address-1.1.2.tgz?cache=0&sync_timestamp=1588851806210&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faddress%2Fdownload%2Faddress-1.1.2.tgz", + "integrity": "sha1-vxEWycdYxRt6kz0pa3LCIe2UKLY=", + "dev": true + }, + "adler-32": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/adler-32/download/adler-32-1.2.0.tgz", + "integrity": "sha1-aj5r8KY5ALoVZSgIyxXGgT0aXyU=", + "requires": { + "exit-on-epipe": "~1.0.1", + "printj": "~1.1.0" + } + }, + "aggregate-error": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/aggregate-error/download/aggregate-error-3.0.1.tgz?cache=0&sync_timestamp=1570167911603&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Faggregate-error%2Fdownload%2Faggregate-error-3.0.1.tgz", + "integrity": "sha1-2y/nJG5Tb0DZtUQqOeEX191qJOA=", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ajv": { + "version": "6.12.3", + "resolved": "https://registry.npm.taobao.org/ajv/download/ajv-6.12.3.tgz", + "integrity": "sha1-GMWvOKER3etPJpe9eNaKvByr1wY=", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-errors": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/ajv-errors/download/ajv-errors-1.0.1.tgz", + "integrity": "sha1-81mGrOuRr63sQQL72FAUlQzvpk0=", + "dev": true, + "requires": {} + }, + "ajv-keywords": { + "version": "3.5.1", + "resolved": "https://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-3.5.1.tgz", + "integrity": "sha1-uDyonF1C1pAx9CTK1JqtoCNsaVc=", + "dev": true, + "requires": {} + }, + "align-text": { + "version": "0.1.4", + "resolved": "https://registry.npm.taobao.org/align-text/download/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "requires": { + "kind-of": "^3.0.2", + "longest": "^1.0.1", + "repeat-string": "^1.5.2" + } + }, + "alphanum-sort": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/alphanum-sort/download/alphanum-sort-1.0.2.tgz", + "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", + "dev": true + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/amdefine/download/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=" + }, + "ansi-colors": { + "version": "3.2.4", + "resolved": "https://registry.npm.taobao.org/ansi-colors/download/ansi-colors-3.2.4.tgz", + "integrity": "sha1-46PaS/uubIapwoViXeEkojQCb78=", + "dev": true + }, + "ansi-escapes": { + "version": "3.2.0", + "resolved": "https://registry.npm.taobao.org/ansi-escapes/download/ansi-escapes-3.2.0.tgz", + "integrity": "sha1-h4C5j/nb9WOBUtHx/lwde0RCl2s=", + "dev": true + }, + "ansi-html": { + "version": "0.0.7", + "resolved": "https://registry.npm.taobao.org/ansi-html/download/ansi-html-0.0.7.tgz", + "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "any-observable": { + "version": "0.2.0", + "resolved": "https://registry.npm.taobao.org/any-observable/download/any-observable-0.2.0.tgz", + "integrity": "sha1-xnhwBYADV5AJCD9UrAq6+1wz0kI=", + "dev": true + }, + "any-promise": { + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/any-promise/download/any-promise-1.3.0.tgz", + "integrity": "sha1-q8av7tzqUugJzcA3au0845Y10X8=", + "dev": true + }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-3.1.1.tgz", + "integrity": "sha1-xV7PAhheJGklk5kxDBc84xIzsUI=", + "dev": true, + "optional": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "app-root-path": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/app-root-path/download/app-root-path-2.2.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fapp-root-path%2Fdownload%2Fapp-root-path-2.2.1.tgz", + "integrity": "sha1-0N9KaC7kCCc1g9Q/b3npiSYkvJo=", + "dev": true + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/aproba/download/aproba-1.2.0.tgz", + "integrity": "sha1-aALmJk79GMeQobDVF/DyYnvyyUo=", + "dev": true + }, + "arch": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/arch/download/arch-2.1.2.tgz", + "integrity": "sha1-DFK75zRLtPomDEQ9LLrZwA/y8L8=", + "dev": true + }, + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npm.taobao.org/argparse/download/argparse-1.0.10.tgz", + "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", + "dev": true, + "requires": { + "sprintf-js": "~1.0.2" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/arr-diff/download/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "dev": true + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/arr-flatten/download/arr-flatten-1.1.0.tgz", + "integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE=", + "dev": true + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/arr-union/download/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "dev": true + }, + "array-equal": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/array-equal/download/array-equal-1.0.0.tgz", + "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", + "dev": true + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/array-flatten/download/array-flatten-1.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-flatten%2Fdownload%2Farray-flatten-1.1.1.tgz", + "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", + "dev": true + }, + "array-includes": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/array-includes/download/array-includes-3.1.1.tgz", + "integrity": "sha1-zdZ+aFK9+cEhVGB4ZzIlXtJFk0g=", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0", + "is-string": "^1.0.5" + } + }, + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/array-union/download/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", + "dev": true, + "requires": { + "array-uniq": "^1.0.1" + } + }, + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/array-uniq/download/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", + "dev": true + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npm.taobao.org/array-unique/download/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "dev": true + }, + "array.prototype.flat": { + "version": "1.2.3", + "resolved": "https://registry.npm.taobao.org/array.prototype.flat/download/array.prototype.flat-1.2.3.tgz", + "integrity": "sha1-DegrQmsDGNv9uUAInjiwQ9N/bHs=", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + } + }, + "asap": { + "version": "2.0.6", + "resolved": "https://registry.npm.taobao.org/asap/download/asap-2.0.6.tgz", + "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", + "dev": true, + "optional": true + }, + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npm.taobao.org/asn1/download/asn1-0.2.4.tgz", + "integrity": "sha1-jSR136tVO7M+d7VOWeiAu4ziMTY=", + "dev": true, + "requires": { + "safer-buffer": "~2.1.0" + } + }, + "asn1.js": { + "version": "4.10.1", + "resolved": "https://registry.npm.taobao.org/asn1.js/download/asn1.js-4.10.1.tgz", + "integrity": "sha1-ucK/WAXx5kqt7tbfOiv6+1pz9aA=", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.9.tgz", + "integrity": "sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=", + "dev": true + } + } + }, + "assert": { + "version": "1.5.0", + "resolved": "https://registry.npm.taobao.org/assert/download/assert-1.5.0.tgz", + "integrity": "sha1-VcEJqvbgrv2z3EtxJAxwv1dLGOs=", + "dev": true, + "requires": { + "object-assign": "^4.1.1", + "util": "0.10.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npm.taobao.org/util/download/util-0.10.3.tgz?cache=0&sync_timestamp=1588238457176&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Futil%2Fdownload%2Futil-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + } + } + } + }, + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/assert-plus/download/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/assertion-error/download/assertion-error-1.1.0.tgz", + "integrity": "sha1-5gtrDo8wG9l+U3UhW9pAbIURjAs=", + "dev": true + }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/assign-symbols/download/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "dev": true + }, + "async": { + "version": "2.6.3", + "resolved": "https://registry.npm.taobao.org/async/download/async-2.6.3.tgz", + "integrity": "sha1-1yYl4jRKNlbjo61Pp0n6gymdgv8=", + "dev": true, + "requires": { + "lodash": "^4.17.14" + } + }, + "async-each": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/async-each/download/async-each-1.0.3.tgz", + "integrity": "sha1-tyfb+H12UWAvBvTUrDh/R9kbDL8=", + "dev": true + }, + "async-limiter": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/async-limiter/download/async-limiter-1.0.1.tgz?cache=0&sync_timestamp=1574272018408&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fasync-limiter%2Fdownload%2Fasync-limiter-1.0.1.tgz", + "integrity": "sha1-3TeelPDbgxCwgpH51kwyCXZmF/0=", + "dev": true + }, + "async-validator": { + "version": "1.12.2", + "resolved": "https://registry.npm.taobao.org/async-validator/download/async-validator-1.12.2.tgz", + "integrity": "sha1-vq5nHnF00pOLe0tp0vt+cit/1yw=" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npm.taobao.org/asynckit/download/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/atob/download/atob-2.1.2.tgz", + "integrity": "sha1-bZUX654DDSQ2ZmZR6GvZ9vE1M8k=", + "dev": true + }, + "autoprefixer": { + "version": "9.8.5", + "resolved": "https://registry.npm.taobao.org/autoprefixer/download/autoprefixer-9.8.5.tgz?cache=0&sync_timestamp=1594444612318&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fautoprefixer%2Fdownload%2Fautoprefixer-9.8.5.tgz", + "integrity": "sha1-LCJd4indr+HRQkwCeR0MPhDMzKo=", + "dev": true, + "requires": { + "browserslist": "^4.12.0", + "caniuse-lite": "^1.0.30001097", + "colorette": "^1.2.0", + "normalize-range": "^0.1.2", + "num2fraction": "^1.2.2", + "postcss": "^7.0.32", + "postcss-value-parser": "^4.1.0" + } + }, + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npm.taobao.org/aws-sign2/download/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "aws4": { + "version": "1.10.0", + "resolved": "https://registry.npm.taobao.org/aws4/download/aws4-1.10.0.tgz", + "integrity": "sha1-oXs6jqgRBg501H0wYSJACtRJeuI=", + "dev": true + }, + "axios": { + "version": "0.18.1", + "resolved": "https://registry.npm.taobao.org/axios/download/axios-0.18.1.tgz", + "integrity": "sha1-/z8N4ue10YDnV62YAA8Qgbh7zqM=", + "requires": { + "follow-redirects": "1.5.10", + "is-buffer": "^2.0.2" + }, + "dependencies": { + "is-buffer": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-2.0.4.tgz", + "integrity": "sha1-PlcvI8hBGlz9lVfISeNmXgspBiM=" + } + } + }, + "babel-code-frame": { + "version": "6.26.0", + "resolved": "https://registry.npm.taobao.org/babel-code-frame/download/babel-code-frame-6.26.0.tgz", + "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "esutils": "^2.0.2", + "js-tokens": "^3.0.2" + }, + "dependencies": { + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/js-tokens/download/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true + } + } + }, + "babel-eslint": { + "version": "10.1.0", + "resolved": "https://registry.npm.taobao.org/babel-eslint/download/babel-eslint-10.1.0.tgz", + "integrity": "sha1-aWjlaKkQt4+zd5zdi2rC9HmUMjI=", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "@babel/parser": "^7.7.0", + "@babel/traverse": "^7.7.0", + "@babel/types": "^7.7.0", + "eslint-visitor-keys": "^1.0.0", + "resolve": "^1.12.0" + } + }, + "babel-loader": { + "version": "8.1.0", + "resolved": "https://registry.npm.taobao.org/babel-loader/download/babel-loader-8.1.0.tgz", + "integrity": "sha1-xhHVESvVIJq+i5+oTD5NolJ18cM=", + "dev": true, + "requires": { + "find-cache-dir": "^2.1.0", + "loader-utils": "^1.4.0", + "mkdirp": "^0.5.3", + "pify": "^4.0.1", + "schema-utils": "^2.6.5" + } + }, + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npm.taobao.org/babel-plugin-dynamic-import-node/download/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha1-hP2hnJduxcbe/vV/lCez3vZuF6M=", + "dev": true, + "requires": { + "object.assign": "^4.1.0" + } + }, + "babel-plugin-module-resolver": { + "version": "3.2.0", + "resolved": "https://registry.npm.taobao.org/babel-plugin-module-resolver/download/babel-plugin-module-resolver-3.2.0.tgz", + "integrity": "sha1-3fpeMB47mqEthSqZefGLN4gf9ac=", + "dev": true, + "requires": { + "find-babel-config": "^1.1.0", + "glob": "^7.1.2", + "pkg-up": "^2.0.0", + "reselect": "^3.0.1", + "resolve": "^1.4.0" + } + }, + "babel-runtime": { + "version": "6.26.0", + "resolved": "https://registry.npm.taobao.org/babel-runtime/download/babel-runtime-6.26.0.tgz", + "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", + "dev": true, + "requires": { + "core-js": "^2.4.0", + "regenerator-runtime": "^0.11.0" + }, + "dependencies": { + "regenerator-runtime": { + "version": "0.11.1", + "resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.11.1.tgz?cache=0&sync_timestamp=1584052597708&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.11.1.tgz", + "integrity": "sha1-vgWtf5v30i4Fb5cmzuUBf78Z4uk=", + "dev": true + } + } + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/balanced-match/download/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npm.taobao.org/base/download/base-0.11.2.tgz", + "integrity": "sha1-e95c7RRbbVUakNuH+DxVi060io8=", + "dev": true, + "requires": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-6.0.3.tgz", + "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=", + "dev": true + } + } + }, + "base64-arraybuffer": { + "version": "0.2.0", + "resolved": "https://registry.npm.taobao.org/base64-arraybuffer/download/base64-arraybuffer-0.2.0.tgz", + "integrity": "sha1-S5RPrAGRqlkHr+LYyZnMxXzoD0U=" + }, + "base64-js": { + "version": "1.3.1", + "resolved": "https://registry.npm.taobao.org/base64-js/download/base64-js-1.3.1.tgz", + "integrity": "sha1-WOzoy3XdB+ce0IxzarxfrE2/jfE=", + "dev": true + }, + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/batch/download/batch-0.6.1.tgz", + "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", + "dev": true + }, + "batch-processor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/batch-processor/download/batch-processor-1.0.0.tgz", + "integrity": "sha1-dclcMrdI4IUNEMKxaPa9vpiRrOg=" + }, + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/bcrypt-pbkdf/download/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", + "dev": true, + "requires": { + "tweetnacl": "^0.14.3" + } + }, + "bfj": { + "version": "6.1.2", + "resolved": "https://registry.npm.taobao.org/bfj/download/bfj-6.1.2.tgz", + "integrity": "sha1-MlyGGoIryzWKQceKM7jm4ght3n8=", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "check-types": "^8.0.3", + "hoopy": "^0.1.4", + "tryer": "^1.0.1" + } + }, + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npm.taobao.org/big.js/download/big.js-5.2.2.tgz", + "integrity": "sha1-ZfCvOC9Xi83HQr2cKB6cstd2gyg=", + "dev": true + }, + "binary-extensions": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-2.1.0.tgz?cache=0&sync_timestamp=1593261363626&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-2.1.0.tgz", + "integrity": "sha1-MPpAyef+B9vIlWeM0ocCTeokHdk=", + "dev": true, + "optional": true + }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npm.taobao.org/bindings/download/bindings-1.5.0.tgz", + "integrity": "sha1-EDU8npRTNLwFEabZCzj7x8nFBN8=", + "dev": true, + "optional": true, + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "bluebird": { + "version": "3.7.2", + "resolved": "https://registry.npm.taobao.org/bluebird/download/bluebird-3.7.2.tgz", + "integrity": "sha1-nyKcFb4nJFT/qXOs4NvueaGww28=", + "dev": true + }, + "bn.js": { + "version": "5.1.2", + "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-5.1.2.tgz", + "integrity": "sha1-yWhpAtPJoncp9DqxD515wgBNp7A=", + "dev": true + }, + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npm.taobao.org/body-parser/download/body-parser-1.19.0.tgz", + "integrity": "sha1-lrJwnlfJxOCab9Zqj9l5hE9p8Io=", + "dev": true, + "requires": { + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.7.0.tgz", + "integrity": "sha1-QdwaAV49WB8WIXdr4xr7KHapsbw=", + "dev": true + } + } + }, + "bonjour": { + "version": "3.5.0", + "resolved": "https://registry.npm.taobao.org/bonjour/download/bonjour-3.5.0.tgz", + "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", + "dev": true, + "requires": { + "array-flatten": "^2.1.0", + "deep-equal": "^1.0.1", + "dns-equal": "^1.0.0", + "dns-txt": "^2.0.2", + "multicast-dns": "^6.0.1", + "multicast-dns-service-types": "^1.1.0" + }, + "dependencies": { + "array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/array-flatten/download/array-flatten-2.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Farray-flatten%2Fdownload%2Farray-flatten-2.1.2.tgz", + "integrity": "sha1-JO+AoowaiTYX4hSbDG0NeIKTsJk=", + "dev": true + } + } + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/boolbase/download/boolbase-1.0.0.tgz", + "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", + "dev": true + }, + "boom": { + "version": "2.10.1", + "resolved": "https://registry.npm.taobao.org/boom/download/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "dev": true, + "optional": true, + "requires": { + "hoek": "2.x.x" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npm.taobao.org/brace-expansion/download/brace-expansion-1.1.11.tgz", + "integrity": "sha1-PH/L9SnYcibz0vUrlm/1Jx60Qd0=", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "2.3.2", + "resolved": "https://registry.npm.taobao.org/braces/download/braces-2.3.2.tgz", + "integrity": "sha1-WXn9PxTNUxVl5fot8av/8d+u5yk=", + "dev": true, + "requires": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/brorand/download/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true + }, + "browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/browser-process-hrtime/download/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha1-PJtLfXgsgSHlbxAQbYTA0P/JRiY=", + "dev": true + }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npm.taobao.org/browser-stdout/download/browser-stdout-1.3.1.tgz", + "integrity": "sha1-uqVZ7hTO1zRSIputcyZGfGH6vWA=", + "dev": true + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/browserify-aes/download/browserify-aes-1.2.0.tgz", + "integrity": "sha1-Mmc0ZC9APavDADIJhTu3CtQo70g=", + "dev": true, + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/browserify-cipher/download/browserify-cipher-1.0.1.tgz", + "integrity": "sha1-jWR0wbhwv9q807z8wZNKEOlPFfA=", + "dev": true, + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/browserify-des/download/browserify-des-1.0.2.tgz", + "integrity": "sha1-OvTx9Zg5QDVy8cZiBDdfen9wPpw=", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/browserify-rsa/download/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "randombytes": "^2.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.9.tgz", + "integrity": "sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=", + "dev": true + } + } + }, + "browserify-sign": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/browserify-sign/download/browserify-sign-4.2.0.tgz", + "integrity": "sha1-VF0LGwfmssmSEQgr8bEsznoLDhE=", + "dev": true, + "requires": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.2", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz", + "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.1.tgz", + "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=", + "dev": true + } + } + }, + "browserify-zlib": { + "version": "0.2.0", + "resolved": "https://registry.npm.taobao.org/browserify-zlib/download/browserify-zlib-0.2.0.tgz", + "integrity": "sha1-KGlFnZqjviRf6P4sofRuLn9U1z8=", + "dev": true, + "requires": { + "pako": "~1.0.5" + } + }, + "browserslist": { + "version": "4.13.0", + "resolved": "https://registry.npm.taobao.org/browserslist/download/browserslist-4.13.0.tgz?cache=0&sync_timestamp=1593912387376&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbrowserslist%2Fdownload%2Fbrowserslist-4.13.0.tgz", + "integrity": "sha1-QlVsugEeGwondbYRy6ao7KGOlA0=", + "dev": true, + "requires": { + "caniuse-lite": "^1.0.30001093", + "electron-to-chromium": "^1.3.488", + "escalade": "^3.0.1", + "node-releases": "^1.1.58" + } + }, + "buffer": { + "version": "4.9.2", + "resolved": "https://registry.npm.taobao.org/buffer/download/buffer-4.9.2.tgz?cache=0&sync_timestamp=1588706716358&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbuffer%2Fdownload%2Fbuffer-4.9.2.tgz", + "integrity": "sha1-Iw6tNEACmIZEhBqwJEr4xEu+Pvg=", + "dev": true, + "requires": { + "base64-js": "^1.0.2", + "ieee754": "^1.1.4", + "isarray": "^1.0.0" + } + }, + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/buffer-from/download/buffer-from-1.1.1.tgz", + "integrity": "sha1-MnE7wCj3XAL9txDXx7zsHyxgcO8=", + "dev": true + }, + "buffer-indexof": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/buffer-indexof/download/buffer-indexof-1.1.1.tgz", + "integrity": "sha1-Uvq8xqYG0aADAoAmSO9o9jnaJow=", + "dev": true + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/buffer-xor/download/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true + }, + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/builtin-status-codes/download/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true + }, + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/bytes/download/bytes-3.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbytes%2Fdownload%2Fbytes-3.1.0.tgz", + "integrity": "sha1-9s95M6Ng4FiPqf3oVlHNx/gF0fY=", + "dev": true + }, + "cacache": { + "version": "12.0.4", + "resolved": "https://registry.npm.taobao.org/cacache/download/cacache-12.0.4.tgz?cache=0&sync_timestamp=1594429684526&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacache%2Fdownload%2Fcacache-12.0.4.tgz", + "integrity": "sha1-ZovL0QWutfHZL+JVcOyVJcj6pAw=", + "dev": true, + "requires": { + "bluebird": "^3.5.5", + "chownr": "^1.1.1", + "figgy-pudding": "^3.5.1", + "glob": "^7.1.4", + "graceful-fs": "^4.1.15", + "infer-owner": "^1.0.3", + "lru-cache": "^5.1.1", + "mississippi": "^3.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.3", + "ssri": "^6.0.1", + "unique-filename": "^1.1.1", + "y18n": "^4.0.0" + } + }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/cache-base/download/cache-base-1.0.1.tgz", + "integrity": "sha1-Cn9GQWgxyLZi7jb+TnxZ129marI=", + "dev": true, + "requires": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + } + }, + "cache-loader": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/cache-loader/download/cache-loader-2.0.1.tgz", + "integrity": "sha1-V1j0GmLXwjlB48PHAW5vrrA6ywc=", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "mkdirp": "^0.5.1", + "neo-async": "^2.6.0", + "normalize-path": "^3.0.0", + "schema-utils": "^1.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", + "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "call-me-maybe": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/call-me-maybe/download/call-me-maybe-1.0.1.tgz", + "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", + "dev": true + }, + "caller-callsite": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/caller-callsite/download/caller-callsite-2.0.0.tgz?cache=0&sync_timestamp=1562668933683&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaller-callsite%2Fdownload%2Fcaller-callsite-2.0.0.tgz", + "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", + "dev": true, + "requires": { + "callsites": "^2.0.0" + }, + "dependencies": { + "callsites": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/callsites/download/callsites-2.0.0.tgz", + "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", + "dev": true + } + } + }, + "caller-path": { + "version": "0.1.0", + "resolved": "https://registry.npm.taobao.org/caller-path/download/caller-path-0.1.0.tgz", + "integrity": "sha1-lAhe9jWB7NPaqSREqP6U6CV3dR8=", + "dev": true, + "requires": { + "callsites": "^0.2.0" + } + }, + "callsites": { + "version": "0.2.0", + "resolved": "https://registry.npm.taobao.org/callsites/download/callsites-0.2.0.tgz", + "integrity": "sha1-r6uWJikQp/M8GaV3WCXGnzTjUMo=", + "dev": true + }, + "camel-case": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/camel-case/download/camel-case-3.0.0.tgz?cache=0&sync_timestamp=1576748709736&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcamel-case%2Fdownload%2Fcamel-case-3.0.0.tgz", + "integrity": "sha1-yjw2iKTpzzpM2nd9xNy8cTJJz3M=", + "dev": true, + "requires": { + "no-case": "^2.2.0", + "upper-case": "^1.1.1" + } + }, + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=" + }, + "caniuse-api": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/caniuse-api/download/caniuse-api-3.0.0.tgz", + "integrity": "sha1-Xk2Q4idJYdRikZl99Znj7QCO5MA=", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-lite": "^1.0.0", + "lodash.memoize": "^4.1.2", + "lodash.uniq": "^4.5.0" + } + }, + "caniuse-lite": { + "version": "1.0.30001104", + "resolved": "https://registry.npm.taobao.org/caniuse-lite/download/caniuse-lite-1.0.30001104.tgz?cache=0&sync_timestamp=1595226955587&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcaniuse-lite%2Fdownload%2Fcaniuse-lite-1.0.30001104.tgz", + "integrity": "sha1-Tj1bOx3Tw1KfEMt/UZxiuj5Xn10=", + "dev": true + }, + "case-sensitive-paths-webpack-plugin": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/case-sensitive-paths-webpack-plugin/download/case-sensitive-paths-webpack-plugin-2.3.0.tgz", + "integrity": "sha1-I6xhPMmoVuT4j/i7c7u16YmCXPc=", + "dev": true + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npm.taobao.org/caseless/download/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "center-align": { + "version": "0.1.3", + "resolved": "https://registry.npm.taobao.org/center-align/download/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "requires": { + "align-text": "^0.1.3", + "lazy-cache": "^1.0.3" + } + }, + "cfb": { + "version": "1.0.8", + "resolved": "https://registry.npm.taobao.org/cfb/download/cfb-1.0.8.tgz?cache=0&sync_timestamp=1594276069691&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcfb%2Fdownload%2Fcfb-1.0.8.tgz", + "integrity": "sha1-d/ITST1pfXVP2cD1UR6rWtctAs8=", + "requires": { + "commander": "^2.14.1", + "printj": "~1.1.2" + } + }, + "chai": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/chai/download/chai-4.2.0.tgz", + "integrity": "sha1-dgqnLPION5XoSxKHfODoNzeqKeU=", + "dev": true, + "requires": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^3.0.1", + "get-func-name": "^2.0.0", + "pathval": "^1.1.0", + "type-detect": "^4.0.5" + } + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "requires": { + "ansi-styles": "^2.2.1", + "escape-string-regexp": "^1.0.2", + "has-ansi": "^2.0.0", + "strip-ansi": "^3.0.0", + "supports-color": "^2.0.0" + } + }, + "chardet": { + "version": "0.4.2", + "resolved": "https://registry.npm.taobao.org/chardet/download/chardet-0.4.2.tgz?cache=0&sync_timestamp=1594010705529&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchardet%2Fdownload%2Fchardet-0.4.2.tgz", + "integrity": "sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I=", + "dev": true + }, + "check-error": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/check-error/download/check-error-1.0.2.tgz", + "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", + "dev": true + }, + "check-types": { + "version": "8.0.3", + "resolved": "https://registry.npm.taobao.org/check-types/download/check-types-8.0.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcheck-types%2Fdownload%2Fcheck-types-8.0.3.tgz", + "integrity": "sha1-M1bMoZyIlUTy16le1JzlCKDs9VI=", + "dev": true + }, + "chokidar": { + "version": "3.4.1", + "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-3.4.1.tgz?cache=0&sync_timestamp=1594864731636&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-3.4.1.tgz", + "integrity": "sha1-6QW97PEOqgoLHbDGZEgcxMvCK6E=", + "dev": true, + "optional": true, + "requires": { + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.1.2", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.4.0" + }, + "dependencies": { + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/braces/download/braces-3.0.2.tgz", + "integrity": "sha1-NFThpGLujVmeI23zNs2epPiv4Qc=", + "dev": true, + "optional": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-7.0.1.tgz", + "integrity": "sha1-GRmmp8df44ssfHflGYU12prN2kA=", + "dev": true, + "optional": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-7.0.0.tgz", + "integrity": "sha1-dTU0W4lnNNX4DE0GxQlVUnoU8Ss=", + "dev": true, + "optional": true + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-5.0.1.tgz", + "integrity": "sha1-FkjESq58jZiKMmAY7XL1tN0DkuQ=", + "dev": true, + "optional": true, + "requires": { + "is-number": "^7.0.0" + } + } + } + }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/chownr/download/chownr-1.1.4.tgz", + "integrity": "sha1-b8nXtC0ypYNZYzdmbn0ICE2izGs=", + "dev": true + }, + "chrome-trace-event": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/chrome-trace-event/download/chrome-trace-event-1.0.2.tgz", + "integrity": "sha1-I0CQ7pfH1K0aLEvq4nUF3v/GCKQ=", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "ci-info": { + "version": "1.6.0", + "resolved": "https://registry.npm.taobao.org/ci-info/download/ci-info-1.6.0.tgz", + "integrity": "sha1-LKINu5zrMtRSSmgzAzE/AwSx5Jc=", + "dev": true + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/cipher-base/download/cipher-base-1.0.4.tgz", + "integrity": "sha1-h2Dk7MJy9MNjUy+SbYdKriwTl94=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "circular-json": { + "version": "0.3.3", + "resolved": "https://registry.npm.taobao.org/circular-json/download/circular-json-0.3.3.tgz", + "integrity": "sha1-gVyZ6oT2gJUp0vRXkb34JxE1LWY=", + "dev": true + }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npm.taobao.org/class-utils/download/class-utils-0.3.6.tgz", + "integrity": "sha1-+TNprouafOAv1B+q0MqDAzGQxGM=", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "clean-css": { + "version": "4.2.3", + "resolved": "https://registry.npm.taobao.org/clean-css/download/clean-css-4.2.3.tgz", + "integrity": "sha1-UHtd59l7SO5T2ErbAWD/YhY4D3g=", + "dev": true, + "requires": { + "source-map": "~0.6.0" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + } + } + }, + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/clean-stack/download/clean-stack-2.2.0.tgz?cache=0&sync_timestamp=1592035230294&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fclean-stack%2Fdownload%2Fclean-stack-2.2.0.tgz", + "integrity": "sha1-7oRy27Ep5yezHooQpCfe6d/kAIs=", + "dev": true + }, + "cli-cursor": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/cli-cursor/download/cli-cursor-2.1.0.tgz", + "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", + "dev": true, + "requires": { + "restore-cursor": "^2.0.0" + } + }, + "cli-highlight": { + "version": "2.1.4", + "resolved": "https://registry.npm.taobao.org/cli-highlight/download/cli-highlight-2.1.4.tgz?cache=0&sync_timestamp=1573948719956&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcli-highlight%2Fdownload%2Fcli-highlight-2.1.4.tgz", + "integrity": "sha1-CYy2Qs8X9CrcHBFF4H+WDsTXUis=", + "dev": true, + "requires": { + "chalk": "^3.0.0", + "highlight.js": "^9.6.0", + "mz": "^2.4.0", + "parse5": "^5.1.1", + "parse5-htmlparser2-tree-adapter": "^5.1.1", + "yargs": "^15.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-5.0.0.tgz", + "integrity": "sha1-OIU59VF5vzkznIGvMKZU1p+Hy3U=", + "dev": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-4.2.1.tgz", + "integrity": "sha1-kK51xCTQCNJiTFvynq0xd+v881k=", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz", + "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", + "dev": true + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-3.0.0.tgz", + "integrity": "sha1-P3PCv1JlkfV0zEksUeJFY0n4ROQ=", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-6.0.0.tgz", + "integrity": "sha1-UR1wLAxOQcoVbX0OlgIfI+EyJbE=", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-2.0.1.tgz", + "integrity": "sha1-ctOmjVmMm9s68q0ehPIdiWq9TeM=", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.4.tgz", + "integrity": "sha1-wqCah6y95pVD3m9j+jmVyCbFNqI=", + "dev": true + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-4.1.0.tgz", + "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npm.taobao.org/get-caller-file/download/get-caller-file-2.0.5.tgz", + "integrity": "sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-4.0.0.tgz", + "integrity": "sha1-lEdx/ZyByBJlxNaUGGDaBrtZR5s=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha1-8Rb4Bk/pCz94RKOJl8C3UFEmnx0=", + "dev": true + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-5.0.0.tgz", + "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.3.0.tgz?cache=0&sync_timestamp=1594559696906&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-2.3.0.tgz", + "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-4.1.0.tgz", + "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz", + "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", + "dev": true + }, + "parse5": { + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/parse5/download/parse5-5.1.1.tgz", + "integrity": "sha1-9o5OW6GFKsLK3AD0VV//bCq7YXg=", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-4.0.0.tgz", + "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=", + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/require-main-filename/download/require-main-filename-2.0.0.tgz", + "integrity": "sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs=", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-4.2.0.tgz", + "integrity": "sha1-lSGCxGzHssMT0VluYjmSvRY7crU=", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-6.0.0.tgz", + "integrity": "sha1-CxVx3XZpzNTz4G4U7x7tJiJa5TI=", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-7.1.0.tgz", + "integrity": "sha1-aOMlkd9z4lrRxLSRCKLsUHliv9E=", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-6.2.0.tgz", + "integrity": "sha1-6Tk7oHEC5skaOyIUePAlfNKFblM=", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "yargs": { + "version": "15.4.1", + "resolved": "https://registry.npm.taobao.org/yargs/download/yargs-15.4.1.tgz?cache=0&sync_timestamp=1594421046064&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-15.4.1.tgz", + "integrity": "sha1-DYehbeAa7p2L7Cv7909nhRcw9Pg=", + "dev": true, + "requires": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + } + }, + "yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-18.1.3.tgz?cache=0&sync_timestamp=1595125190020&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-18.1.3.tgz", + "integrity": "sha1-vmjEl1xrKr9GkjawyHA2L6sJp7A=", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "cli-spinners": { + "version": "2.4.0", + "resolved": "https://registry.npm.taobao.org/cli-spinners/download/cli-spinners-2.4.0.tgz?cache=0&sync_timestamp=1595080565423&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcli-spinners%2Fdownload%2Fcli-spinners-2.4.0.tgz", + "integrity": "sha1-xiVtsha4eM+6RyDnGc7Hz3JoXX8=", + "dev": true + }, + "cli-truncate": { + "version": "0.2.1", + "resolved": "https://registry.npm.taobao.org/cli-truncate/download/cli-truncate-0.2.1.tgz", + "integrity": "sha1-nxXPuwcFAFNpIWxiasfQWrkN1XQ=", + "dev": true, + "requires": { + "slice-ansi": "0.0.4", + "string-width": "^1.0.1" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "slice-ansi": { + "version": "0.0.4", + "resolved": "https://registry.npm.taobao.org/slice-ansi/download/slice-ansi-0.0.4.tgz", + "integrity": "sha1-7b+JA/ZvfOL46v1s7tZeJkyDGzU=", + "dev": true + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + }, + "cli-width": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/cli-width/download/cli-width-2.2.1.tgz", + "integrity": "sha1-sEM9C06chH7xiGik7xb9X8gnHEg=", + "dev": true + }, + "clipboard": { + "version": "2.0.6", + "resolved": "https://registry.npm.taobao.org/clipboard/download/clipboard-2.0.6.tgz", + "integrity": "sha1-UpISlu7A/fd+rRdJQhshyWhkc3Y=", + "requires": { + "good-listener": "^1.2.2", + "select": "^1.1.2", + "tiny-emitter": "^2.0.0" + } + }, + "clipboardy": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/clipboardy/download/clipboardy-2.3.0.tgz", + "integrity": "sha1-PCkDZQxo5GqRs4iYW8J3QofbopA=", + "dev": true, + "requires": { + "arch": "^2.1.1", + "execa": "^1.0.0", + "is-wsl": "^2.1.1" + }, + "dependencies": { + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/is-wsl/download/is-wsl-2.2.0.tgz?cache=0&sync_timestamp=1588494180082&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-wsl%2Fdownload%2Fis-wsl-2.2.0.tgz", + "integrity": "sha1-dKTHbnfKn9P5MvKQwX6jJs0VcnE=", + "dev": true, + "requires": { + "is-docker": "^2.0.0" + } + } + } + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "requires": { + "center-align": "^0.1.1", + "right-align": "^0.1.1", + "wordwrap": "0.0.2" + } + }, + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/clone/download/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "dev": true + }, + "clonedeep": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/clonedeep/download/clonedeep-2.0.0.tgz", + "integrity": "sha1-jOygd39He78x/oyHGq9jo5C7wnI=" + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npm.taobao.org/co/download/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true + }, + "coa": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/coa/download/coa-2.0.2.tgz", + "integrity": "sha1-Q/bCEVG07yv1cYfbDXPeIp4+fsM=", + "dev": true, + "requires": { + "@types/q": "^1.5.1", + "chalk": "^2.4.1", + "q": "^1.1.2" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/code-point-at/download/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, + "codemirror": { + "version": "5.56.0", + "resolved": "https://registry.npm.taobao.org/codemirror/download/codemirror-5.56.0.tgz", + "integrity": "sha1-Z1ZA/MeAEFzSLT+qc4tdfqZCb2E=" + }, + "codemirror-spell-checker": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/codemirror-spell-checker/download/codemirror-spell-checker-1.1.2.tgz", + "integrity": "sha1-HGYPkIlIPMtRE7m6nKGcP0mTNx4=", + "requires": { + "typo-js": "*" + } + }, + "codepage": { + "version": "1.14.0", + "resolved": "https://registry.npm.taobao.org/codepage/download/codepage-1.14.0.tgz", + "integrity": "sha1-jL4lSBMjVZ19MHVxsP/5HnodL5k=", + "requires": { + "commander": "~2.14.1", + "exit-on-epipe": "~1.0.1" + }, + "dependencies": { + "commander": { + "version": "2.14.1", + "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.14.1.tgz?cache=0&sync_timestamp=1595168173997&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.14.1.tgz", + "integrity": "sha1-IjUSPjevjKPGXfRbAm29NXsBuao=" + } + } + }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/collection-visit/download/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dev": true, + "requires": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + } + }, + "color": { + "version": "3.1.2", + "resolved": "https://registry.npm.taobao.org/color/download/color-3.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolor%2Fdownload%2Fcolor-3.1.2.tgz", + "integrity": "sha1-aBSOf4XUGtdknF+oyBBvCY0inhA=", + "dev": true, + "requires": { + "color-convert": "^1.9.1", + "color-string": "^1.5.2" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npm.taobao.org/color-convert/download/color-convert-1.9.3.tgz", + "integrity": "sha1-u3GFBpDh8TZWfeYp0tVHHe2kweg=", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/color-name/download/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", + "dev": true + }, + "color-string": { + "version": "1.5.3", + "resolved": "https://registry.npm.taobao.org/color-string/download/color-string-1.5.3.tgz", + "integrity": "sha1-ybvF8BtYtUkvPWhXRZy2WQziBMw=", + "dev": true, + "requires": { + "color-name": "^1.0.0", + "simple-swizzle": "^0.2.2" + } + }, + "colorette": { + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/colorette/download/colorette-1.2.1.tgz?cache=0&sync_timestamp=1593955829055&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcolorette%2Fdownload%2Fcolorette-1.2.1.tgz", + "integrity": "sha1-TQuSEyXBT6+SYzCGpTbbbolWSxs=", + "dev": true + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npm.taobao.org/combined-stream/download/combined-stream-1.0.8.tgz", + "integrity": "sha1-w9RaizT9cwYxoRCoolIGgrMdWn8=", + "dev": true, + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.20.3.tgz?cache=0&sync_timestamp=1595168173997&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.20.3.tgz", + "integrity": "sha1-/UhehMA+tIgcIHIrpIA16FMa6zM=" + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/commondir/download/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/component-emitter/download/component-emitter-1.3.0.tgz", + "integrity": "sha1-FuQHD7qK4ptnnyIVhT7hgasuq8A=", + "dev": true + }, + "compressible": { + "version": "2.0.18", + "resolved": "https://registry.npm.taobao.org/compressible/download/compressible-2.0.18.tgz?cache=0&sync_timestamp=1578286264482&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcompressible%2Fdownload%2Fcompressible-2.0.18.tgz", + "integrity": "sha1-r1PMprBw1MPAdQ+9dyhqbXzEb7o=", + "dev": true, + "requires": { + "mime-db": ">= 1.43.0 < 2" + } + }, + "compression": { + "version": "1.7.4", + "resolved": "https://registry.npm.taobao.org/compression/download/compression-1.7.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcompression%2Fdownload%2Fcompression-1.7.4.tgz", + "integrity": "sha1-lVI+/xcMpXwpoMpB5v4TH0Hlu48=", + "dev": true, + "requires": { + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" + }, + "dependencies": { + "bytes": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/bytes/download/bytes-3.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbytes%2Fdownload%2Fbytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "compression-webpack-plugin": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/compression-webpack-plugin/download/compression-webpack-plugin-3.1.0.tgz?cache=0&sync_timestamp=1589291140068&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcompression-webpack-plugin%2Fdownload%2Fcompression-webpack-plugin-3.1.0.tgz", + "integrity": "sha1-n1EBcqe1+uWq07ZwZS6L15l67so=", + "dev": true, + "requires": { + "cacache": "^13.0.1", + "find-cache-dir": "^3.0.0", + "neo-async": "^2.5.0", + "schema-utils": "^2.6.1", + "serialize-javascript": "^2.1.2", + "webpack-sources": "^1.0.1" + }, + "dependencies": { + "cacache": { + "version": "13.0.1", + "resolved": "https://registry.npm.taobao.org/cacache/download/cacache-13.0.1.tgz?cache=0&sync_timestamp=1594429684526&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacache%2Fdownload%2Fcacache-13.0.1.tgz", + "integrity": "sha1-qAAMIWlwiQgvhSh6GuxuOCAkpxw=", + "dev": true, + "requires": { + "chownr": "^1.1.2", + "figgy-pudding": "^3.5.1", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.2", + "infer-owner": "^1.0.4", + "lru-cache": "^5.1.1", + "minipass": "^3.0.0", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "p-map": "^3.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^2.7.1", + "ssri": "^7.0.0", + "unique-filename": "^1.1.1" + } + }, + "find-cache-dir": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-3.3.1.tgz", + "integrity": "sha1-ibM/rUpGcNqpT4Vff74x1thP6IA=", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" + } + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-4.1.0.tgz", + "integrity": "sha1-l6/n1s3AvFkoWEt8jXsW6KmqXRk=", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-5.0.0.tgz", + "integrity": "sha1-Gvujlq/WdqbUJQTQpno6frn2KqA=", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-3.1.0.tgz?cache=0&sync_timestamp=1587567875186&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-3.1.0.tgz", + "integrity": "sha1-QV6WcEazp/HRhSd9hKpYIDcmoT8=", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.3.0.tgz?cache=0&sync_timestamp=1594559696906&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-2.3.0.tgz", + "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-4.1.0.tgz", + "integrity": "sha1-o0KLtwiLOmApL2aRkni3wpetTwc=", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "p-map": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/p-map/download/p-map-3.0.0.tgz", + "integrity": "sha1-1wTZr4orpoTiYA2aIVmD1BQal50=", + "dev": true, + "requires": { + "aggregate-error": "^3.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz", + "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-4.0.0.tgz", + "integrity": "sha1-UTvb4tO5XXdi6METfvoZXGxhtbM=", + "dev": true + }, + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-4.2.0.tgz", + "integrity": "sha1-8JkTPfft5CLoHR2ESCcO6z5CYfM=", + "dev": true, + "requires": { + "find-up": "^4.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1586886301819&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true + }, + "serialize-javascript": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-2.1.2.tgz", + "integrity": "sha1-7OxTsOAxe9yV73arcHS3OEeF+mE=", + "dev": true + }, + "ssri": { + "version": "7.1.0", + "resolved": "https://registry.npm.taobao.org/ssri/download/ssri-7.1.0.tgz", + "integrity": "sha1-ksJBv23oI2W1x/tL126XVSLhKU0=", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1", + "minipass": "^3.1.1" + } + } + } + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npm.taobao.org/concat-map/download/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npm.taobao.org/concat-stream/download/concat-stream-1.6.2.tgz", + "integrity": "sha1-kEvfGUzTEi/Gdcd/xKw9T/D9GjQ=", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "condense-newlines": { + "version": "0.2.1", + "resolved": "https://registry.npm.taobao.org/condense-newlines/download/condense-newlines-0.2.1.tgz", + "integrity": "sha1-PemFVTE5R10yUCyDsC9gaE0kxV8=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-whitespace": "^0.3.0", + "kind-of": "^3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "config-chain": { + "version": "1.1.12", + "resolved": "https://registry.npm.taobao.org/config-chain/download/config-chain-1.1.12.tgz", + "integrity": "sha1-D96NCRIA616AjK8l/mGMAvSOTvo=", + "dev": true, + "requires": { + "ini": "^1.3.4", + "proto-list": "~1.2.1" + } + }, + "connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npm.taobao.org/connect-history-api-fallback/download/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha1-izIIk1kwjRERFdgcrT/Oq4iPl7w=", + "dev": true + }, + "console-browserify": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/console-browserify/download/console-browserify-1.2.0.tgz", + "integrity": "sha1-ZwY871fOts9Jk6KrOlWECujEkzY=", + "dev": true + }, + "consolidate": { + "version": "0.15.1", + "resolved": "https://registry.npm.taobao.org/consolidate/download/consolidate-0.15.1.tgz", + "integrity": "sha1-IasEMjXHGgfUXZqtmFk7DbpWurc=", + "dev": true, + "requires": { + "bluebird": "^3.1.1" + } + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/constants-browserify/download/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true + }, + "contains-path": { + "version": "0.1.0", + "resolved": "https://registry.npm.taobao.org/contains-path/download/contains-path-0.1.0.tgz", + "integrity": "sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo=", + "dev": true + }, + "content-disposition": { + "version": "0.5.3", + "resolved": "https://registry.npm.taobao.org/content-disposition/download/content-disposition-0.5.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcontent-disposition%2Fdownload%2Fcontent-disposition-0.5.3.tgz", + "integrity": "sha1-4TDK9+cnkIfFYWwgB9BIVpiYT70=", + "dev": true, + "requires": { + "safe-buffer": "5.1.2" + } + }, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/content-type/download/content-type-1.0.4.tgz", + "integrity": "sha1-4TjMdeBAxyexlm/l5fjJruJW/js=", + "dev": true + }, + "contour_plot": { + "version": "0.0.1", + "resolved": "https://registry.npm.taobao.org/contour_plot/download/contour_plot-0.0.1.tgz", + "integrity": "sha1-R1hw8DK44zhBKqX8UHiA8L9JXHc=" + }, + "convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npm.taobao.org/convert-source-map/download/convert-source-map-1.7.0.tgz", + "integrity": "sha1-F6LLiC1/d9NJBYXizmxSRCSjpEI=", + "dev": true, + "requires": { + "safe-buffer": "~5.1.1" + } + }, + "cookie": { + "version": "0.4.0", + "resolved": "https://registry.npm.taobao.org/cookie/download/cookie-0.4.0.tgz", + "integrity": "sha1-vrQ35wIrO21JAZ0IhmUwPr6cFLo=", + "dev": true + }, + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npm.taobao.org/cookie-signature/download/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", + "dev": true + }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/copy-concurrently/download/copy-concurrently-1.0.5.tgz", + "integrity": "sha1-kilzmMrjSTf8r9bsgTnBgFHwteA=", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "fs-write-stream-atomic": "^1.0.8", + "iferr": "^0.1.5", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.0" + } + }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/copy-descriptor/download/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "dev": true + }, + "copy-webpack-plugin": { + "version": "4.6.0", + "resolved": "https://registry.npm.taobao.org/copy-webpack-plugin/download/copy-webpack-plugin-4.6.0.tgz", + "integrity": "sha1-5/QN2KaEd9QF3Rt6hUquMksVi64=", + "dev": true, + "requires": { + "cacache": "^10.0.4", + "find-cache-dir": "^1.0.0", + "globby": "^7.1.1", + "is-glob": "^4.0.0", + "loader-utils": "^1.1.0", + "minimatch": "^3.0.4", + "p-limit": "^1.0.0", + "serialize-javascript": "^1.4.0" + }, + "dependencies": { + "cacache": { + "version": "10.0.4", + "resolved": "https://registry.npm.taobao.org/cacache/download/cacache-10.0.4.tgz?cache=0&sync_timestamp=1594429684526&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacache%2Fdownload%2Fcacache-10.0.4.tgz", + "integrity": "sha1-ZFI2eZnv+dQYiu/ZoU6dfGomNGA=", + "dev": true, + "requires": { + "bluebird": "^3.5.1", + "chownr": "^1.0.1", + "glob": "^7.1.2", + "graceful-fs": "^4.1.11", + "lru-cache": "^4.1.1", + "mississippi": "^2.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.2", + "ssri": "^5.2.4", + "unique-filename": "^1.1.0", + "y18n": "^4.0.0" + } + }, + "find-cache-dir": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-1.0.0.tgz", + "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^2.0.0" + } + }, + "globby": { + "version": "7.1.1", + "resolved": "https://registry.npm.taobao.org/globby/download/globby-7.1.1.tgz", + "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "dir-glob": "^2.0.0", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + } + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz?cache=0&sync_timestamp=1594427569171&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-4.1.5.tgz", + "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-1.3.0.tgz?cache=0&sync_timestamp=1587567875186&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-1.3.0.tgz", + "integrity": "sha1-ecEDO4BRW9bSTsmTPoYMp17ifww=", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "mississippi": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/mississippi/download/mississippi-2.0.0.tgz", + "integrity": "sha1-NEKlCPr8KFAEhv7qmUCWduTuWm8=", + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^2.0.1", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, + "requires": { + "find-up": "^2.1.0" + } + }, + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/pump/download/pump-2.0.1.tgz", + "integrity": "sha1-Ejma3W5M91Jtlzy8i1zi4pCLOQk=", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "serialize-javascript": { + "version": "1.9.1", + "resolved": "https://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-1.9.1.tgz", + "integrity": "sha1-z8IArvd7YAxH2pu4FJyUPnmML9s=", + "dev": true + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/slash/download/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + }, + "ssri": { + "version": "5.3.0", + "resolved": "https://registry.npm.taobao.org/ssri/download/ssri-5.3.0.tgz", + "integrity": "sha1-ujhyycbTOgcEp9cf8EXl7EiZnQY=", + "dev": true, + "requires": { + "safe-buffer": "^5.1.1" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } + }, + "core-js": { + "version": "2.6.11", + "resolved": "https://registry.npm.taobao.org/core-js/download/core-js-2.6.11.tgz?cache=0&sync_timestamp=1586450269267&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-2.6.11.tgz", + "integrity": "sha1-OIMUafmSK97Y7iHJ3EaYXgOZMIw=" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/core-util-is/download/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "cosmiconfig": { + "version": "5.2.1", + "resolved": "https://registry.npm.taobao.org/cosmiconfig/download/cosmiconfig-5.2.1.tgz", + "integrity": "sha1-BA9yaAnFked6F8CjYmykW08Wixo=", + "dev": true, + "requires": { + "import-fresh": "^2.0.0", + "is-directory": "^0.3.1", + "js-yaml": "^3.13.1", + "parse-json": "^4.0.0" + } + }, + "countup": { + "version": "1.8.2", + "resolved": "https://registry.npm.taobao.org/countup/download/countup-1.8.2.tgz", + "integrity": "sha1-AhzMam+WRUDGsn7WRoGvJ/tV8BA=" + }, + "crc-32": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/crc-32/download/crc-32-1.2.0.tgz", + "integrity": "sha1-yy224puIUI4y2d0OwWk+e0Ghggg=", + "requires": { + "exit-on-epipe": "~1.0.1", + "printj": "~1.1.0" + } + }, + "create-ecdh": { + "version": "4.0.3", + "resolved": "https://registry.npm.taobao.org/create-ecdh/download/create-ecdh-4.0.3.tgz", + "integrity": "sha1-yREbbzMEXEaX8UR4f5JUzcd8Rf8=", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.9.tgz", + "integrity": "sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=", + "dev": true + } + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/create-hash/download/create-hash-1.2.0.tgz", + "integrity": "sha1-iJB4rxGmN1a8+1m9IhmWvjqe8ZY=", + "dev": true, + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npm.taobao.org/create-hmac/download/create-hmac-1.1.7.tgz", + "integrity": "sha1-aRcMeLOrlXFHsriwRXLkfq0iQ/8=", + "dev": true, + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "cropperjs": { + "version": "1.5.7", + "resolved": "https://registry.npm.taobao.org/cropperjs/download/cropperjs-1.5.7.tgz", + "integrity": "sha1-tlAZcluuHGKF6IH7ZhshQfpXAls=" + }, + "cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-6.0.5.tgz", + "integrity": "sha1-Sl7Hxk364iw6FBJNus3uhG2Ay8Q=", + "dev": true, + "requires": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "cryptiles": { + "version": "2.0.5", + "resolved": "https://registry.npm.taobao.org/cryptiles/download/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "dev": true, + "optional": true, + "requires": { + "boom": "2.x.x" + } + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npm.taobao.org/crypto-browserify/download/crypto-browserify-3.12.0.tgz", + "integrity": "sha1-OWz58xN/A+S45TLFj2mCVOAPgOw=", + "dev": true, + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "css-color-names": { + "version": "0.0.4", + "resolved": "https://registry.npm.taobao.org/css-color-names/download/css-color-names-0.0.4.tgz", + "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", + "dev": true + }, + "css-declaration-sorter": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/css-declaration-sorter/download/css-declaration-sorter-4.0.1.tgz", + "integrity": "sha1-wZiUD2OnbX42wecQGLABchBUyyI=", + "dev": true, + "requires": { + "postcss": "^7.0.1", + "timsort": "^0.3.0" + } + }, + "css-line-break": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/css-line-break/download/css-line-break-1.1.1.tgz", + "integrity": "sha1-1em90peEAJnrBQPHMQ/TSSegJu8=", + "requires": { + "base64-arraybuffer": "^0.2.0" + } + }, + "css-loader": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/css-loader/download/css-loader-1.0.1.tgz?cache=0&sync_timestamp=1592056914630&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-loader%2Fdownload%2Fcss-loader-1.0.1.tgz", + "integrity": "sha1-aIW7UjOzXsR7AGBX2gHMZAtref4=", + "dev": true, + "requires": { + "babel-code-frame": "^6.26.0", + "css-selector-tokenizer": "^0.7.0", + "icss-utils": "^2.1.0", + "loader-utils": "^1.0.2", + "lodash": "^4.17.11", + "postcss": "^6.0.23", + "postcss-modules-extract-imports": "^1.2.0", + "postcss-modules-local-by-default": "^1.2.0", + "postcss-modules-scope": "^1.1.0", + "postcss-modules-values": "^1.3.0", + "postcss-value-parser": "^3.3.0", + "source-list-map": "^2.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npm.taobao.org/postcss/download/postcss-6.0.23.tgz?cache=0&sync_timestamp=1591102414113&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-6.0.23.tgz", + "integrity": "sha1-YcgswyisYOZ3ZF+XkFTrmLwOMyQ=", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083210998&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "css-select": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/css-select/download/css-select-2.1.0.tgz", + "integrity": "sha1-ajRlM1ZjWTSoG6ymjQJVQyEF2+8=", + "dev": true, + "requires": { + "boolbase": "^1.0.0", + "css-what": "^3.2.1", + "domutils": "^1.7.0", + "nth-check": "^1.0.2" + } + }, + "css-select-base-adapter": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/css-select-base-adapter/download/css-select-base-adapter-0.1.1.tgz", + "integrity": "sha1-Oy/0lyzDYquIVhUHqVQIoUMhNdc=", + "dev": true + }, + "css-selector-tokenizer": { + "version": "0.7.2", + "resolved": "https://registry.npm.taobao.org/css-selector-tokenizer/download/css-selector-tokenizer-0.7.2.tgz", + "integrity": "sha1-EeXifJpI2QKE8i1FBhwwPXolrYc=", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "fastparse": "^1.1.2", + "regexpu-core": "^4.6.0" + } + }, + "css-tree": { + "version": "1.0.0-alpha.37", + "resolved": "https://registry.npm.taobao.org/css-tree/download/css-tree-1.0.0-alpha.37.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-tree%2Fdownload%2Fcss-tree-1.0.0-alpha.37.tgz", + "integrity": "sha1-mL69YsTB2flg7DQM+fdSLjBwmiI=", + "dev": true, + "requires": { + "mdn-data": "2.0.4", + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + } + } + }, + "css-what": { + "version": "3.3.0", + "resolved": "https://registry.npm.taobao.org/css-what/download/css-what-3.3.0.tgz", + "integrity": "sha1-EP7Glqns4uWRrHctdZqsq6w4zTk=", + "dev": true + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/cssesc/download/cssesc-3.0.0.tgz", + "integrity": "sha1-N3QZGZA7hoVl4cCep0dEXNGJg+4=", + "dev": true + }, + "cssfilter": { + "version": "0.0.10", + "resolved": "https://registry.npm.taobao.org/cssfilter/download/cssfilter-0.0.10.tgz", + "integrity": "sha1-xtJnJjKi5cg+AT5oZKQs6N79IK4=" + }, + "cssnano": { + "version": "4.1.10", + "resolved": "https://registry.npm.taobao.org/cssnano/download/cssnano-4.1.10.tgz", + "integrity": "sha1-CsQfCxPRPUZUh+ERt3jULaYxuLI=", + "dev": true, + "requires": { + "cosmiconfig": "^5.0.0", + "cssnano-preset-default": "^4.0.7", + "is-resolvable": "^1.0.0", + "postcss": "^7.0.0" + } + }, + "cssnano-preset-default": { + "version": "4.0.7", + "resolved": "https://registry.npm.taobao.org/cssnano-preset-default/download/cssnano-preset-default-4.0.7.tgz", + "integrity": "sha1-UexmLM/KD4izltzZZ5zbkxvhf3Y=", + "dev": true, + "requires": { + "css-declaration-sorter": "^4.0.1", + "cssnano-util-raw-cache": "^4.0.1", + "postcss": "^7.0.0", + "postcss-calc": "^7.0.1", + "postcss-colormin": "^4.0.3", + "postcss-convert-values": "^4.0.1", + "postcss-discard-comments": "^4.0.2", + "postcss-discard-duplicates": "^4.0.2", + "postcss-discard-empty": "^4.0.1", + "postcss-discard-overridden": "^4.0.1", + "postcss-merge-longhand": "^4.0.11", + "postcss-merge-rules": "^4.0.3", + "postcss-minify-font-values": "^4.0.2", + "postcss-minify-gradients": "^4.0.2", + "postcss-minify-params": "^4.0.2", + "postcss-minify-selectors": "^4.0.2", + "postcss-normalize-charset": "^4.0.1", + "postcss-normalize-display-values": "^4.0.2", + "postcss-normalize-positions": "^4.0.2", + "postcss-normalize-repeat-style": "^4.0.2", + "postcss-normalize-string": "^4.0.2", + "postcss-normalize-timing-functions": "^4.0.2", + "postcss-normalize-unicode": "^4.0.1", + "postcss-normalize-url": "^4.0.1", + "postcss-normalize-whitespace": "^4.0.2", + "postcss-ordered-values": "^4.1.2", + "postcss-reduce-initial": "^4.0.3", + "postcss-reduce-transforms": "^4.0.2", + "postcss-svgo": "^4.0.2", + "postcss-unique-selectors": "^4.0.1" + } + }, + "cssnano-util-get-arguments": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/cssnano-util-get-arguments/download/cssnano-util-get-arguments-4.0.0.tgz", + "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=", + "dev": true + }, + "cssnano-util-get-match": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/cssnano-util-get-match/download/cssnano-util-get-match-4.0.0.tgz", + "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=", + "dev": true + }, + "cssnano-util-raw-cache": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/cssnano-util-raw-cache/download/cssnano-util-raw-cache-4.0.1.tgz", + "integrity": "sha1-sm1f1fcqEd/np4RvtMZyYPlr8oI=", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "cssnano-util-same-parent": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/cssnano-util-same-parent/download/cssnano-util-same-parent-4.0.1.tgz", + "integrity": "sha1-V0CC+yhZ0ttDOFWDXZqEVuoYu/M=", + "dev": true + }, + "csso": { + "version": "4.0.3", + "resolved": "https://registry.npm.taobao.org/csso/download/csso-4.0.3.tgz?cache=0&sync_timestamp=1585052130344&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcsso%2Fdownload%2Fcsso-4.0.3.tgz", + "integrity": "sha1-DZmF3IUsfMKyys+74QeQFNGo6QM=", + "dev": true, + "requires": { + "css-tree": "1.0.0-alpha.39" + }, + "dependencies": { + "css-tree": { + "version": "1.0.0-alpha.39", + "resolved": "https://registry.npm.taobao.org/css-tree/download/css-tree-1.0.0-alpha.39.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcss-tree%2Fdownload%2Fcss-tree-1.0.0-alpha.39.tgz", + "integrity": "sha1-K/8//huz93bPfu/ZHuXLp3oUnus=", + "dev": true, + "requires": { + "mdn-data": "2.0.6", + "source-map": "^0.6.1" + } + }, + "mdn-data": { + "version": "2.0.6", + "resolved": "https://registry.npm.taobao.org/mdn-data/download/mdn-data-2.0.6.tgz?cache=0&sync_timestamp=1593510420945&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmdn-data%2Fdownload%2Fmdn-data-2.0.6.tgz", + "integrity": "sha1-hS3GD8ql2qLoz2yRicRA7T4EKXg=", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + } + } + }, + "cssom": { + "version": "0.3.8", + "resolved": "https://registry.npm.taobao.org/cssom/download/cssom-0.3.8.tgz?cache=0&sync_timestamp=1573719337707&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcssom%2Fdownload%2Fcssom-0.3.8.tgz", + "integrity": "sha1-nxJ29bK0Y/IRTT8sdSUK+MGjb0o=", + "dev": true + }, + "cssstyle": { + "version": "1.4.0", + "resolved": "https://registry.npm.taobao.org/cssstyle/download/cssstyle-1.4.0.tgz?cache=0&sync_timestamp=1588171504463&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcssstyle%2Fdownload%2Fcssstyle-1.4.0.tgz", + "integrity": "sha1-nTEyginTxWXGHlhrAgQaKPzNzPE=", + "dev": true, + "requires": { + "cssom": "0.3.x" + } + }, + "current-script-polyfill": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/current-script-polyfill/download/current-script-polyfill-1.0.0.tgz", + "integrity": "sha1-8xz35PPiGLBybnOMqSoC00iO9hU=", + "dev": true + }, + "cyclist": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/cyclist/download/cyclist-1.0.1.tgz", + "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", + "dev": true + }, + "d3-color": { + "version": "1.4.1", + "resolved": "https://registry.npm.taobao.org/d3-color/download/d3-color-1.4.1.tgz", + "integrity": "sha1-xSACv4hGraRCTVXZeYL+8m6zvIo=" + }, + "d3-dispatch": { + "version": "1.0.6", + "resolved": "https://registry.npm.taobao.org/d3-dispatch/download/d3-dispatch-1.0.6.tgz", + "integrity": "sha1-ANN7zuTdjNl3Kd2JOgrCnKq6XVg=" + }, + "d3-ease": { + "version": "1.0.6", + "resolved": "https://registry.npm.taobao.org/d3-ease/download/d3-ease-1.0.6.tgz?cache=0&sync_timestamp=1592460740468&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fd3-ease%2Fdownload%2Fd3-ease-1.0.6.tgz", + "integrity": "sha1-69ttoi36wKIiIvLU2gb2bEFqDsA=" + }, + "d3-interpolate": { + "version": "1.1.6", + "resolved": "https://registry.npm.taobao.org/d3-interpolate/download/d3-interpolate-1.1.6.tgz", + "integrity": "sha1-LPOVriOBgE3wiqG/dmt/l7X2j7Y=", + "requires": { + "d3-color": "1" + } + }, + "d3-selection": { + "version": "1.4.1", + "resolved": "https://registry.npm.taobao.org/d3-selection/download/d3-selection-1.4.1.tgz", + "integrity": "sha1-mO7bvghfvaW6+i+ePzovTX1iKpg=" + }, + "d3-timer": { + "version": "1.0.10", + "resolved": "https://registry.npm.taobao.org/d3-timer/download/d3-timer-1.0.10.tgz", + "integrity": "sha1-3+dripF0iDGxO22ceT/71QjdneU=" + }, + "d3-transition": { + "version": "1.3.2", + "resolved": "https://registry.npm.taobao.org/d3-transition/download/d3-transition-1.3.2.tgz", + "integrity": "sha1-qY7yFRvo2GAFQ0NMHKgBQK4js5g=", + "requires": { + "d3-color": "1", + "d3-dispatch": "1", + "d3-ease": "1", + "d3-interpolate": "1", + "d3-selection": "^1.1.0", + "d3-timer": "1" + } + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npm.taobao.org/dashdash/download/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "data-urls": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/data-urls/download/data-urls-1.1.0.tgz", + "integrity": "sha1-Fe4Fgrql4iu1nHcUDaj5x2lju/4=", + "dev": true, + "requires": { + "abab": "^2.0.0", + "whatwg-mimetype": "^2.2.0", + "whatwg-url": "^7.0.0" + } + }, + "date-fns": { + "version": "1.30.1", + "resolved": "https://registry.npm.taobao.org/date-fns/download/date-fns-1.30.1.tgz?cache=0&sync_timestamp=1594999213209&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdate-fns%2Fdownload%2Fdate-fns-1.30.1.tgz", + "integrity": "sha1-LnG/CxGRU9u0zE6I2epaz7UNwFw=", + "dev": true + }, + "dayjs": { + "version": "1.8.29", + "resolved": "https://registry.npm.taobao.org/dayjs/download/dayjs-1.8.29.tgz?cache=0&sync_timestamp=1593707172703&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdayjs%2Fdownload%2Fdayjs-1.8.29.tgz", + "integrity": "sha1-XSPjQd5r+9IGwBE20vsPAYd4IPU=" + }, + "de-indent": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/de-indent/download/de-indent-1.0.2.tgz", + "integrity": "sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=", + "dev": true + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.1.0.tgz", + "integrity": "sha1-W7WgZyYotkFJVmuhaBnmFRjGcmE=", + "requires": { + "ms": "2.0.0" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/decamelize/download/decamelize-1.2.0.tgz?cache=0&sync_timestamp=1580010393599&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdecamelize%2Fdownload%2Fdecamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, + "decimal.js": { + "version": "10.2.0", + "resolved": "https://registry.npm.taobao.org/decimal.js/download/decimal.js-10.2.0.tgz", + "integrity": "sha1-OUZhE6ngNhEdAvgkibX9awte0jE=" + }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npm.taobao.org/decode-uri-component/download/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "dev": true + }, + "dedent": { + "version": "0.7.0", + "resolved": "https://registry.npm.taobao.org/dedent/download/dedent-0.7.0.tgz", + "integrity": "sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=", + "dev": true + }, + "deep-eql": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/deep-eql/download/deep-eql-3.0.1.tgz", + "integrity": "sha1-38lARACtHI/gI+faHfHBR8S0RN8=", + "dev": true, + "requires": { + "type-detect": "^4.0.0" + } + }, + "deep-equal": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/deep-equal/download/deep-equal-1.1.1.tgz", + "integrity": "sha1-tcmMlCzv+vfLBR4k4UNKJaLmB2o=", + "requires": { + "is-arguments": "^1.0.4", + "is-date-object": "^1.0.1", + "is-regex": "^1.0.4", + "object-is": "^1.0.1", + "object-keys": "^1.1.1", + "regexp.prototype.flags": "^1.2.0" + } + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npm.taobao.org/deep-is/download/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "deepmerge": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/deepmerge/download/deepmerge-2.2.1.tgz", + "integrity": "sha1-XT/yKgHAD2RUBaL7wX0HeKGAEXA=" + }, + "default-gateway": { + "version": "5.0.5", + "resolved": "https://registry.npm.taobao.org/default-gateway/download/default-gateway-5.0.5.tgz?cache=0&sync_timestamp=1590419212936&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefault-gateway%2Fdownload%2Fdefault-gateway-5.0.5.tgz", + "integrity": "sha1-T9a9XShV05s0zFpZUFSG6ar8mxA=", + "dev": true, + "requires": { + "execa": "^3.3.0" + }, + "dependencies": { + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-7.0.3.tgz", + "integrity": "sha1-9zqFudXUHQRVUcF34ogtSshXKKY=", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "execa": { + "version": "3.4.0", + "resolved": "https://registry.npm.taobao.org/execa/download/execa-3.4.0.tgz?cache=0&sync_timestamp=1594145237072&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-3.4.0.tgz", + "integrity": "sha1-wI7UVQ72XYWPrCaf/IVyRG8364k=", + "dev": true, + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "p-finally": "^2.0.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-5.1.0.tgz", + "integrity": "sha1-ASA83JJZf5uQkGfD5lbMH008Tck=", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/is-stream/download/is-stream-2.0.0.tgz", + "integrity": "sha1-venDJoDW+uBBKdasnZIc54FfeOM=", + "dev": true + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-2.1.0.tgz", + "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=", + "dev": true + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/npm-run-path/download/npm-run-path-4.0.1.tgz", + "integrity": "sha1-t+zR5e1T2o43pV4cImnguX7XSOo=", + "dev": true, + "requires": { + "path-key": "^3.0.0" + } + }, + "onetime": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/onetime/download/onetime-5.1.0.tgz", + "integrity": "sha1-//DzyRYX/mK7UBiWNumayKbfe+U=", + "dev": true, + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "p-finally": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/p-finally/download/p-finally-2.0.1.tgz", + "integrity": "sha1-vW/KqcVZoJa2gIBvTWV7Pw8kBWE=", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/path-key/download/path-key-3.1.1.tgz?cache=0&sync_timestamp=1574441431664&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-key%2Fdownload%2Fpath-key-3.1.1.tgz", + "integrity": "sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U=", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/shebang-command/download/shebang-command-2.0.0.tgz", + "integrity": "sha1-zNCvT4g1+9wmW4JGGq8MNmY/NOo=", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/shebang-regex/download/shebang-regex-3.0.0.tgz", + "integrity": "sha1-rhbxZE2HPsrYQ7AwexQzYtTEIXI=", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/which/download/which-2.0.2.tgz?cache=0&sync_timestamp=1574116262707&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-2.0.2.tgz", + "integrity": "sha1-fGqN0KY2oDJ+ELWckobu6T8/UbE=", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "defaults": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/defaults/download/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "dev": true, + "requires": { + "clone": "^1.0.2" + } + }, + "define-properties": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/define-properties/download/define-properties-1.1.3.tgz", + "integrity": "sha1-z4jabL7ib+bbcJT2HYcMvYTO6fE=", + "requires": { + "object-keys": "^1.0.12" + } + }, + "define-property": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-2.0.2.tgz", + "integrity": "sha1-1Flono1lS6d+AqgX+HENcCyxbp0=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "dependencies": { + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-6.0.3.tgz", + "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=", + "dev": true + } + } + }, + "defined": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/defined/download/defined-1.0.0.tgz", + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" + }, + "del": { + "version": "4.1.1", + "resolved": "https://registry.npm.taobao.org/del/download/del-4.1.1.tgz", + "integrity": "sha1-no8RciLqRKMf86FWwEm5kFKp8LQ=", + "dev": true, + "requires": { + "@types/glob": "^7.1.1", + "globby": "^6.1.0", + "is-path-cwd": "^2.0.0", + "is-path-in-cwd": "^2.0.0", + "p-map": "^2.0.0", + "pify": "^4.0.1", + "rimraf": "^2.6.3" + }, + "dependencies": { + "globby": { + "version": "6.1.0", + "resolved": "https://registry.npm.taobao.org/globby/download/globby-6.1.0.tgz", + "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + }, + "dependencies": { + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + } + } + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/delayed-stream/download/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true + }, + "delegate": { + "version": "3.2.0", + "resolved": "https://registry.npm.taobao.org/delegate/download/delegate-3.2.0.tgz", + "integrity": "sha1-tmtxwxWFIuirV0T3INjKDCr1kWY=" + }, + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/depd/download/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", + "dev": true + }, + "des.js": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/des.js/download/des.js-1.0.1.tgz", + "integrity": "sha1-U4IULhvcU/hdhtU+X0qn3rkeCEM=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "destroy": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/destroy/download/destroy-1.0.4.tgz", + "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", + "dev": true + }, + "detect-browser": { + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/detect-browser/download/detect-browser-5.1.1.tgz?cache=0&sync_timestamp=1592803473542&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdetect-browser%2Fdownload%2Fdetect-browser-5.1.1.tgz", + "integrity": "sha1-qADbkdP9YNCGFmn1mE8b6f++AJw=" + }, + "detect-node": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/detect-node/download/detect-node-2.0.4.tgz", + "integrity": "sha1-AU7o+PZpxcWAI9pkuBecCDooxGw=", + "dev": true + }, + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npm.taobao.org/diff/download/diff-3.5.0.tgz", + "integrity": "sha1-gAwN0eCov7yVg1wgKtIg/jF+WhI=", + "dev": true + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npm.taobao.org/diffie-hellman/download/diffie-hellman-5.0.3.tgz", + "integrity": "sha1-QOjumPVaIUlgcUaSHGPhrl89KHU=", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.9.tgz", + "integrity": "sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=", + "dev": true + } + } + }, + "dir-glob": { + "version": "2.2.2", + "resolved": "https://registry.npm.taobao.org/dir-glob/download/dir-glob-2.2.2.tgz", + "integrity": "sha1-+gnwaUFTyJGLGLoN6vrpR2n8UMQ=", + "dev": true, + "requires": { + "path-type": "^3.0.0" + } + }, + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/dns-equal/download/dns-equal-1.0.0.tgz", + "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", + "dev": true + }, + "dns-packet": { + "version": "1.3.1", + "resolved": "https://registry.npm.taobao.org/dns-packet/download/dns-packet-1.3.1.tgz", + "integrity": "sha1-EqpCaYEHW+UAuRDu3NC0fdfe2lo=", + "dev": true, + "requires": { + "ip": "^1.1.0", + "safe-buffer": "^5.0.1" + } + }, + "dns-txt": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/dns-txt/download/dns-txt-2.0.2.tgz", + "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "dev": true, + "requires": { + "buffer-indexof": "^1.0.0" + } + }, + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/doctrine/download/doctrine-2.1.0.tgz", + "integrity": "sha1-XNAfwQFiG0LEzX9dGmYkNxbT850=", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "dom-converter": { + "version": "0.2.0", + "resolved": "https://registry.npm.taobao.org/dom-converter/download/dom-converter-0.2.0.tgz", + "integrity": "sha1-ZyGp2u4uKTaClVtq/kFncWJ7t2g=", + "dev": true, + "requires": { + "utila": "~0.4" + } + }, + "dom-event-types": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/dom-event-types/download/dom-event-types-1.0.0.tgz", + "integrity": "sha1-WDCgop4b+Df+UKcM2ApZcjKBPK4=", + "dev": true + }, + "dom-serializer": { + "version": "0.2.2", + "resolved": "https://registry.npm.taobao.org/dom-serializer/download/dom-serializer-0.2.2.tgz?cache=0&sync_timestamp=1589067578490&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdom-serializer%2Fdownload%2Fdom-serializer-0.2.2.tgz", + "integrity": "sha1-GvuB9TNxcXXUeGVd68XjMtn5u1E=", + "dev": true, + "requires": { + "domelementtype": "^2.0.1", + "entities": "^2.0.0" + }, + "dependencies": { + "domelementtype": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/domelementtype/download/domelementtype-2.0.1.tgz", + "integrity": "sha1-H4vf6R9aeAYydOgDtL3O326U+U0=", + "dev": true + } + } + }, + "domain-browser": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/domain-browser/download/domain-browser-1.2.0.tgz", + "integrity": "sha1-PTH1AZGmdJ3RN1p/Ui6CPULlTto=", + "dev": true + }, + "domelementtype": { + "version": "1.3.1", + "resolved": "https://registry.npm.taobao.org/domelementtype/download/domelementtype-1.3.1.tgz", + "integrity": "sha1-0EjESzew0Qp/Kj1f7j9DM9eQSB8=", + "dev": true + }, + "domexception": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/domexception/download/domexception-1.0.1.tgz?cache=0&sync_timestamp=1576355459111&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomexception%2Fdownload%2Fdomexception-1.0.1.tgz", + "integrity": "sha1-k3RCZEymoxJh7zbj7Gd/6AVYLJA=", + "dev": true, + "requires": { + "webidl-conversions": "^4.0.2" + } + }, + "domhandler": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/domhandler/download/domhandler-2.4.2.tgz", + "integrity": "sha1-iAUJfpM9ZehVRvcm1g9euItE+AM=", + "dev": true, + "requires": { + "domelementtype": "1" + } + }, + "domutils": { + "version": "1.7.0", + "resolved": "https://registry.npm.taobao.org/domutils/download/domutils-1.7.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomutils%2Fdownload%2Fdomutils-1.7.0.tgz", + "integrity": "sha1-Vuo0HoNOBuZ0ivehyyXaZ+qfjCo=", + "dev": true, + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + }, + "dot-prop": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/dot-prop/download/dot-prop-5.2.0.tgz?cache=0&sync_timestamp=1572621117377&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdot-prop%2Fdownload%2Fdot-prop-5.2.0.tgz", + "integrity": "sha1-w07MKVVtxF8fTCJpe29JBODMT8s=", + "dev": true, + "requires": { + "is-obj": "^2.0.0" + } + }, + "dotenv": { + "version": "7.0.0", + "resolved": "https://registry.npm.taobao.org/dotenv/download/dotenv-7.0.0.tgz", + "integrity": "sha1-or481Sc2ZzIG6KhftSEO6ilijnw=", + "dev": true + }, + "dotenv-expand": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/dotenv-expand/download/dotenv-expand-5.1.0.tgz", + "integrity": "sha1-P7rwIL/XlIhAcuomsel5HUWmKfA=", + "dev": true + }, + "dotignore": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/dotignore/download/dotignore-0.1.2.tgz", + "integrity": "sha1-+ULyIA0ow6dvvdbw7p8yV8ii6QU=", + "requires": { + "minimatch": "^3.0.4" + } + }, + "duplexer": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/duplexer/download/duplexer-0.1.1.tgz", + "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", + "dev": true + }, + "duplexify": { + "version": "3.7.1", + "resolved": "https://registry.npm.taobao.org/duplexify/download/duplexify-3.7.1.tgz", + "integrity": "sha1-Kk31MX9sz9kfhtb9JdjYoQO4gwk=", + "dev": true, + "requires": { + "end-of-stream": "^1.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.0.0", + "stream-shift": "^1.0.0" + } + }, + "e-guide-layer": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/e-guide-layer/download/e-guide-layer-0.1.1.tgz", + "integrity": "sha1-AcGvAJqak9CQaSnWAFGrHH6I/V8=", + "requires": { + "core-js": "^3.6.5", + "normalize.css": "^8.0.1", + "vue": "^2.6.11" + }, + "dependencies": { + "core-js": { + "version": "3.8.1", + "resolved": "https://registry.npm.taobao.org/core-js/download/core-js-3.8.1.tgz?cache=0&sync_timestamp=1607215997560&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcore-js%2Fdownload%2Fcore-js-3.8.1.tgz", + "integrity": "sha1-9RUjZorIopTRKFw7nbRAJf2mbUc=" + } + } + }, + "easy-stack": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/easy-stack/download/easy-stack-1.0.0.tgz", + "integrity": "sha1-EskbMIWjfwuqM26UhurEv5Tj54g=", + "dev": true + }, + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/ecc-jsbn/download/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "dev": true, + "requires": { + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" + } + }, + "echarts": { + "version": "4.8.0", + "resolved": "https://registry.npm.taobao.org/echarts/download/echarts-4.8.0.tgz", + "integrity": "sha1-ssHPuSKbE9No7hBPyO6mALV01MQ=", + "requires": { + "zrender": "4.3.1" + } + }, + "editorconfig": { + "version": "0.15.3", + "resolved": "https://registry.npm.taobao.org/editorconfig/download/editorconfig-0.15.3.tgz", + "integrity": "sha1-vvhMTnX7jcsM5c7o79UcFZmb78U=", + "dev": true, + "requires": { + "commander": "^2.19.0", + "lru-cache": "^4.1.5", + "semver": "^5.6.0", + "sigmund": "^1.0.1" + }, + "dependencies": { + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz?cache=0&sync_timestamp=1594427569171&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-4.1.5.tgz", + "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/ee-first/download/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "ejs": { + "version": "2.7.4", + "resolved": "https://registry.npm.taobao.org/ejs/download/ejs-2.7.4.tgz", + "integrity": "sha1-SGYSh1c9zFPjZsehrlLDoSDuybo=", + "dev": true + }, + "electron-to-chromium": { + "version": "1.3.502", + "resolved": "https://registry.npm.taobao.org/electron-to-chromium/download/electron-to-chromium-1.3.502.tgz?cache=0&sync_timestamp=1595302504119&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Felectron-to-chromium%2Fdownload%2Felectron-to-chromium-1.3.502.tgz", + "integrity": "sha1-alXpk+9goB+9whUu9eR+4AyIXJg=", + "dev": true + }, + "elegant-spinner": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/elegant-spinner/download/elegant-spinner-1.0.1.tgz", + "integrity": "sha1-2wQ1IcldfjA/2PNFvtwzSc+wcp4=", + "dev": true + }, + "element-resize-detector": { + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/element-resize-detector/download/element-resize-detector-1.2.1.tgz", + "integrity": "sha1-sDBRlER6SGMVXljxMyOgrvMIUdE=", + "requires": { + "batch-processor": "1.0.0" + } + }, + "elliptic": { + "version": "6.5.3", + "resolved": "https://registry.npm.taobao.org/elliptic/download/elliptic-6.5.3.tgz?cache=0&sync_timestamp=1592492805287&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Felliptic%2Fdownload%2Felliptic-6.5.3.tgz", + "integrity": "sha1-y1nrLv2vc6C9eMzXAVpirW4Pk9Y=", + "dev": true, + "requires": { + "bn.js": "^4.4.0", + "brorand": "^1.0.1", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.9.tgz", + "integrity": "sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=", + "dev": true + } + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-8.0.0.tgz", + "integrity": "sha1-6Bj9ac5cz8tARZT4QpY79TFkzDc=", + "dev": true + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/emojis-list/download/emojis-list-3.0.0.tgz", + "integrity": "sha1-VXBmIEatKeLpFucariYKvf9Pang=", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/encodeurl/download/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true + }, + "end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npm.taobao.org/end-of-stream/download/end-of-stream-1.4.4.tgz", + "integrity": "sha1-WuZKX0UFe682JuwU2gyl5LJDHrA=", + "dev": true, + "requires": { + "once": "^1.4.0" + } + }, + "enhanced-resolve": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/enhanced-resolve/download/enhanced-resolve-4.3.0.tgz?cache=0&sync_timestamp=1594972300336&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fenhanced-resolve%2Fdownload%2Fenhanced-resolve-4.3.0.tgz", + "integrity": "sha1-O4BvO/r8HsfeaVUe+TzKRsFwQSY=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "memory-fs": "^0.5.0", + "tapable": "^1.0.0" + }, + "dependencies": { + "memory-fs": { + "version": "0.5.0", + "resolved": "https://registry.npm.taobao.org/memory-fs/download/memory-fs-0.5.0.tgz?cache=0&sync_timestamp=1570537491040&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmemory-fs%2Fdownload%2Fmemory-fs-0.5.0.tgz", + "integrity": "sha1-MkwBKIuIZSlm0WHbd4OHIIRajjw=", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + } + } + }, + "entities": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/entities/download/entities-2.0.3.tgz?cache=0&sync_timestamp=1591227679482&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fentities%2Fdownload%2Fentities-2.0.3.tgz", + "integrity": "sha1-XEh+V0Krk8Fau12iJ1m4WQ7AO38=", + "dev": true + }, + "errno": { + "version": "0.1.7", + "resolved": "https://registry.npm.taobao.org/errno/download/errno-0.1.7.tgz", + "integrity": "sha1-RoTXF3mtOa8Xfj8AeZb3xnyFJhg=", + "dev": true, + "requires": { + "prr": "~1.0.1" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npm.taobao.org/error-ex/download/error-ex-1.3.2.tgz", + "integrity": "sha1-tKxAZIEH/c3PriQvQovqihTU8b8=", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "error-stack-parser": { + "version": "2.0.6", + "resolved": "https://registry.npm.taobao.org/error-stack-parser/download/error-stack-parser-2.0.6.tgz?cache=0&sync_timestamp=1578288503034&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ferror-stack-parser%2Fdownload%2Ferror-stack-parser-2.0.6.tgz", + "integrity": "sha1-WpmnB716TFinl5AtSNgoA+3mqtg=", + "dev": true, + "requires": { + "stackframe": "^1.1.1" + } + }, + "es-abstract": { + "version": "1.17.6", + "resolved": "https://registry.npm.taobao.org/es-abstract/download/es-abstract-1.17.6.tgz?cache=0&sync_timestamp=1592109199190&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fes-abstract%2Fdownload%2Fes-abstract-1.17.6.tgz", + "integrity": "sha1-kUIHFweFeyysx7iey2cDFsPi1So=", + "requires": { + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.1", + "is-callable": "^1.2.0", + "is-regex": "^1.1.0", + "object-inspect": "^1.7.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.0", + "string.prototype.trimend": "^1.0.1", + "string.prototype.trimstart": "^1.0.1" + }, + "dependencies": { + "is-regex": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/is-regex/download/is-regex-1.1.0.tgz", + "integrity": "sha1-7OOOOJ5JDfDcIcrqK9WW+Yf3Z/8=", + "requires": { + "has-symbols": "^1.0.1" + } + } + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/es-to-primitive/download/es-to-primitive-1.2.1.tgz", + "integrity": "sha1-5VzUyc3BiLzvsDs2bHNjI/xciYo=", + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, + "escalade": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/escalade/download/escalade-3.0.2.tgz?cache=0&sync_timestamp=1594743037384&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescalade%2Fdownload%2Fescalade-3.0.2.tgz", + "integrity": "sha1-algNcO24eIDyK0yR0NVgeN9pYsQ=", + "dev": true + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/escape-html/download/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/escape-string-regexp/download/escape-string-regexp-1.0.5.tgz?cache=0&sync_timestamp=1587627107924&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescape-string-regexp%2Fdownload%2Fescape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "escodegen": { + "version": "1.14.3", + "resolved": "https://registry.npm.taobao.org/escodegen/download/escodegen-1.14.3.tgz?cache=0&sync_timestamp=1592866195968&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fescodegen%2Fdownload%2Fescodegen-1.14.3.tgz", + "integrity": "sha1-TnuB+6YVgdyXWC7XjKt/Do1j9QM=", + "dev": true, + "requires": { + "esprima": "^4.0.1", + "estraverse": "^4.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true, + "optional": true + } + } + }, + "eslint": { + "version": "4.19.1", + "resolved": "https://registry.npm.taobao.org/eslint/download/eslint-4.19.1.tgz?cache=0&sync_timestamp=1595098868314&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint%2Fdownload%2Feslint-4.19.1.tgz", + "integrity": "sha1-MtHWU+HZBAiFS/spbwdux+GGowA=", + "dev": true, + "requires": { + "ajv": "^5.3.0", + "babel-code-frame": "^6.22.0", + "chalk": "^2.1.0", + "concat-stream": "^1.6.0", + "cross-spawn": "^5.1.0", + "debug": "^3.1.0", + "doctrine": "^2.1.0", + "eslint-scope": "^3.7.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^3.5.4", + "esquery": "^1.0.0", + "esutils": "^2.0.2", + "file-entry-cache": "^2.0.0", + "functional-red-black-tree": "^1.0.1", + "glob": "^7.1.2", + "globals": "^11.0.1", + "ignore": "^3.3.3", + "imurmurhash": "^0.1.4", + "inquirer": "^3.0.6", + "is-resolvable": "^1.0.0", + "js-yaml": "^3.9.1", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.3.0", + "lodash": "^4.17.4", + "minimatch": "^3.0.2", + "mkdirp": "^0.5.1", + "natural-compare": "^1.4.0", + "optionator": "^0.8.2", + "path-is-inside": "^1.0.2", + "pluralize": "^7.0.0", + "progress": "^2.0.0", + "regexpp": "^1.0.1", + "require-uncached": "^1.0.3", + "semver": "^5.3.0", + "strip-ansi": "^4.0.0", + "strip-json-comments": "~2.0.1", + "table": "4.0.2", + "text-table": "~0.2.0" + }, + "dependencies": { + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npm.taobao.org/ajv/download/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "eslint-scope": { + "version": "3.7.3", + "resolved": "https://registry.npm.taobao.org/eslint-scope/download/eslint-scope-3.7.3.tgz", + "integrity": "sha1-u1ByANPRf2AkdjYWC0gmKEsQhTU=", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-1.1.0.tgz?cache=0&sync_timestamp=1591599666712&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-deep-equal%2Fdownload%2Ffast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz?cache=0&sync_timestamp=1594427569171&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-4.1.5.tgz", + "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } + }, + "eslint-config-standard": { + "version": "12.0.0", + "resolved": "https://registry.npm.taobao.org/eslint-config-standard/download/eslint-config-standard-12.0.0.tgz?cache=0&sync_timestamp=1584727519567&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-config-standard%2Fdownload%2Feslint-config-standard-12.0.0.tgz", + "integrity": "sha1-Y4tMZdsL1aQTGflruh8V3a0hB9k=", + "dev": true, + "requires": {} + }, + "eslint-import-resolver-node": { + "version": "0.3.4", + "resolved": "https://registry.npm.taobao.org/eslint-import-resolver-node/download/eslint-import-resolver-node-0.3.4.tgz", + "integrity": "sha1-hf+oGULCUBLYIxCW3fZ5wDBCxxc=", + "dev": true, + "requires": { + "debug": "^2.6.9", + "resolve": "^1.13.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "eslint-loader": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/eslint-loader/download/eslint-loader-2.2.1.tgz", + "integrity": "sha1-KLnBLaVAV68IReKmEScBova/gzc=", + "dev": true, + "requires": { + "loader-fs-cache": "^1.0.0", + "loader-utils": "^1.0.2", + "object-assign": "^4.0.1", + "object-hash": "^1.1.4", + "rimraf": "^2.6.1" + } + }, + "eslint-module-utils": { + "version": "2.6.0", + "resolved": "https://registry.npm.taobao.org/eslint-module-utils/download/eslint-module-utils-2.6.0.tgz", + "integrity": "sha1-V569CU9Wr3eX0ZyYZsnJSGYpv6Y=", + "dev": true, + "requires": { + "debug": "^2.6.9", + "pkg-dir": "^2.0.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, + "requires": { + "find-up": "^2.1.0" + } + } + } + }, + "eslint-plugin-cypress": { + "version": "2.11.1", + "resolved": "https://registry.npm.taobao.org/eslint-plugin-cypress/download/eslint-plugin-cypress-2.11.1.tgz", + "integrity": "sha1-qUXid0uIIR4scGoFnUMeJitcKGI=", + "dev": true, + "requires": { + "globals": "^11.12.0" + } + }, + "eslint-plugin-import": { + "version": "2.22.0", + "resolved": "https://registry.npm.taobao.org/eslint-plugin-import/download/eslint-plugin-import-2.22.0.tgz?cache=0&sync_timestamp=1593237313662&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-plugin-import%2Fdownload%2Feslint-plugin-import-2.22.0.tgz", + "integrity": "sha1-kvdzb+H94+Led2I8g43Zkv9f+34=", + "dev": true, + "requires": { + "array-includes": "^3.1.1", + "array.prototype.flat": "^1.2.3", + "contains-path": "^0.1.0", + "debug": "^2.6.9", + "doctrine": "1.5.0", + "eslint-import-resolver-node": "^0.3.3", + "eslint-module-utils": "^2.6.0", + "has": "^1.0.3", + "minimatch": "^3.0.4", + "object.values": "^1.1.1", + "read-pkg-up": "^2.0.0", + "resolve": "^1.17.0", + "tsconfig-paths": "^3.9.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "doctrine": { + "version": "1.5.0", + "resolved": "https://registry.npm.taobao.org/doctrine/download/doctrine-1.5.0.tgz", + "integrity": "sha1-N53Ocw9hZvds76TmcHoVmwLFpvo=", + "dev": true, + "requires": { + "esutils": "^2.0.2", + "isarray": "^1.0.0" + } + } + } + }, + "eslint-plugin-node": { + "version": "6.0.1", + "resolved": "https://registry.npm.taobao.org/eslint-plugin-node/download/eslint-plugin-node-6.0.1.tgz?cache=0&sync_timestamp=1585396050025&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-plugin-node%2Fdownload%2Feslint-plugin-node-6.0.1.tgz", + "integrity": "sha1-vxlkIpgGQ3kxXXpLKnWTc3b6BeQ=", + "dev": true, + "requires": { + "ignore": "^3.3.6", + "minimatch": "^3.0.4", + "resolve": "^1.3.3", + "semver": "^5.4.1" + } + }, + "eslint-plugin-promise": { + "version": "3.8.0", + "resolved": "https://registry.npm.taobao.org/eslint-plugin-promise/download/eslint-plugin-promise-3.8.0.tgz", + "integrity": "sha1-ZevyeoRePB6db2pWIt3TgBaUtiE=", + "dev": true + }, + "eslint-plugin-standard": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/eslint-plugin-standard/download/eslint-plugin-standard-3.1.0.tgz", + "integrity": "sha1-Kp4hJZukxHwC1TstDJE11LECLUc=", + "dev": true, + "requires": {} + }, + "eslint-plugin-vue": { + "version": "4.7.1", + "resolved": "https://registry.npm.taobao.org/eslint-plugin-vue/download/eslint-plugin-vue-4.7.1.tgz?cache=0&sync_timestamp=1595148924086&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feslint-plugin-vue%2Fdownload%2Feslint-plugin-vue-4.7.1.tgz", + "integrity": "sha1-yCm5/GJYLBiXtaC5Sv1E7MpRHmM=", + "dev": true, + "optional": true, + "requires": { + "vue-eslint-parser": "^2.0.3" + } + }, + "eslint-scope": { + "version": "4.0.3", + "resolved": "https://registry.npm.taobao.org/eslint-scope/download/eslint-scope-4.0.3.tgz", + "integrity": "sha1-ygODMxD2iJoyZHgaqC5j65z+eEg=", + "dev": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + }, + "eslint-visitor-keys": { + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/eslint-visitor-keys/download/eslint-visitor-keys-1.3.0.tgz", + "integrity": "sha1-MOvR73wv3/AcOk8VEESvJfqwUj4=", + "dev": true + }, + "espree": { + "version": "3.5.4", + "resolved": "https://registry.npm.taobao.org/espree/download/espree-3.5.4.tgz?cache=0&sync_timestamp=1595033675028&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fespree%2Fdownload%2Fespree-3.5.4.tgz", + "integrity": "sha1-sPRHGHyKi+2US4FaZgvd9d610ac=", + "dev": true, + "requires": { + "acorn": "^5.5.0", + "acorn-jsx": "^3.0.0" + }, + "dependencies": { + "acorn": { + "version": "5.7.4", + "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-5.7.4.tgz?cache=0&sync_timestamp=1591869432510&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-5.7.4.tgz", + "integrity": "sha1-Po2KmUfQWZoXltECJddDL0pKz14=", + "dev": true + } + } + }, + "esprima": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/esprima/download/esprima-4.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fesprima%2Fdownload%2Fesprima-4.0.1.tgz", + "integrity": "sha1-E7BM2z5sXRnfkatph6hpVhmwqnE=", + "dev": true + }, + "esquery": { + "version": "1.3.1", + "resolved": "https://registry.npm.taobao.org/esquery/download/esquery-1.3.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fesquery%2Fdownload%2Fesquery-1.3.1.tgz", + "integrity": "sha1-t4tYKKqOIU4p+3TE1bdS4cAz2lc=", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/estraverse/download/estraverse-5.1.0.tgz?cache=0&sync_timestamp=1586996117385&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Festraverse%2Fdownload%2Festraverse-5.1.0.tgz", + "integrity": "sha1-N0MJ05/ZNa5QDnuS6Ka0xyDllkI=", + "dev": true + } + } + }, + "esrecurse": { + "version": "4.2.1", + "resolved": "https://registry.npm.taobao.org/esrecurse/download/esrecurse-4.2.1.tgz", + "integrity": "sha1-AHo7n9vCs7uH5IeeoZyS/b05Qs8=", + "dev": true, + "requires": { + "estraverse": "^4.1.0" + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/estraverse/download/estraverse-4.3.0.tgz?cache=0&sync_timestamp=1586996117385&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Festraverse%2Fdownload%2Festraverse-4.3.0.tgz", + "integrity": "sha1-OYrT88WiSUi+dyXoPRGn3ijNvR0=", + "dev": true + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/esutils/download/esutils-2.0.3.tgz?cache=0&sync_timestamp=1564535492241&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fesutils%2Fdownload%2Fesutils-2.0.3.tgz", + "integrity": "sha1-dNLrTeC42hKTcRkQ1Qd1ubcQ72Q=", + "dev": true + }, + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npm.taobao.org/etag/download/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true + }, + "event-pubsub": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/event-pubsub/download/event-pubsub-4.3.0.tgz", + "integrity": "sha1-9o2Ba8KfHsAsU53FjI3UDOcss24=", + "dev": true + }, + "eventemitter3": { + "version": "4.0.4", + "resolved": "https://registry.npm.taobao.org/eventemitter3/download/eventemitter3-4.0.4.tgz?cache=0&sync_timestamp=1589283150629&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Feventemitter3%2Fdownload%2Feventemitter3-4.0.4.tgz", + "integrity": "sha1-tUY6zmNaCD0Bi9x8kXtMXxCoU4Q=", + "dev": true + }, + "events": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/events/download/events-3.1.0.tgz?cache=0&sync_timestamp=1578498298945&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fevents%2Fdownload%2Fevents-3.1.0.tgz", + "integrity": "sha1-hCea8bNMt1qoi/X/KR9tC9mzGlk=", + "dev": true + }, + "eventsource": { + "version": "1.0.7", + "resolved": "https://registry.npm.taobao.org/eventsource/download/eventsource-1.0.7.tgz", + "integrity": "sha1-j7xyyT/NNAiAkLwKTmT0tc7m2NA=", + "dev": true, + "requires": { + "original": "^1.0.0" + } + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/evp_bytestokey/download/evp_bytestokey-1.0.3.tgz", + "integrity": "sha1-f8vbGY3HGVlDLv4ThCaE4FJaywI=", + "dev": true, + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "execa": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/execa/download/execa-1.0.0.tgz?cache=0&sync_timestamp=1594145237072&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-1.0.0.tgz", + "integrity": "sha1-xiNqW7TfbW8V6I5/AXeYIWdJ3dg=", + "dev": true, + "requires": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "exit-hook": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/exit-hook/download/exit-hook-1.1.1.tgz", + "integrity": "sha1-8FyiM7SMBdVP/wd2XfhQfpXAL/g=", + "dev": true + }, + "exit-on-epipe": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/exit-on-epipe/download/exit-on-epipe-1.0.1.tgz", + "integrity": "sha1-C92S6H1ShdJn2qgXHQ6wYVlolpI=" + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npm.taobao.org/expand-brackets/download/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dev": true, + "requires": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "express": { + "version": "4.17.1", + "resolved": "https://registry.npm.taobao.org/express/download/express-4.17.1.tgz?cache=0&sync_timestamp=1585185316222&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexpress%2Fdownload%2Fexpress-4.17.1.tgz", + "integrity": "sha1-RJH8OGBc9R+GKdOcK10Cb5ikwTQ=", + "dev": true, + "requires": { + "accepts": "~1.3.7", + "array-flatten": "1.1.1", + "body-parser": "1.19.0", + "content-disposition": "0.5.3", + "content-type": "~1.0.4", + "cookie": "0.4.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "~1.1.2", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "~1.1.2", + "fresh": "0.5.2", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "~2.3.0", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.5", + "qs": "6.7.0", + "range-parser": "~1.2.1", + "safe-buffer": "5.1.2", + "send": "0.17.1", + "serve-static": "1.14.1", + "setprototypeof": "1.1.1", + "statuses": "~1.5.0", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.7.0.tgz", + "integrity": "sha1-QdwaAV49WB8WIXdr4xr7KHapsbw=", + "dev": true + } + } + }, + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/extend/download/extend-3.0.2.tgz", + "integrity": "sha1-+LETa0Bx+9jrFAr/hYsQGewpFfo=", + "dev": true + }, + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dev": true, + "requires": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz", + "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "external-editor": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/external-editor/download/external-editor-2.2.0.tgz?cache=0&sync_timestamp=1562602052556&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexternal-editor%2Fdownload%2Fexternal-editor-2.2.0.tgz", + "integrity": "sha1-BFURz9jRM/OEZnPRBHwVTiFK09U=", + "dev": true, + "requires": { + "chardet": "^0.4.0", + "iconv-lite": "^0.4.17", + "tmp": "^0.0.33" + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/extglob/download/extglob-2.0.4.tgz", + "integrity": "sha1-rQD+TcYSqSMuhxhxHcXLWrAoVUM=", + "dev": true, + "requires": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-6.0.3.tgz", + "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=", + "dev": true + } + } + }, + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/extsprintf/download/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-3.1.3.tgz?cache=0&sync_timestamp=1591599666712&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-deep-equal%2Fdownload%2Ffast-deep-equal-3.1.3.tgz", + "integrity": "sha1-On1WtVnWy8PrUSMlJE5hmmXGxSU=", + "dev": true + }, + "fast-glob": { + "version": "2.2.7", + "resolved": "https://registry.npm.taobao.org/fast-glob/download/fast-glob-2.2.7.tgz", + "integrity": "sha1-aVOFfDr6R1//ku5gFdUtpwpM050=", + "dev": true, + "requires": { + "@mrmlnc/readdir-enhanced": "^2.2.1", + "@nodelib/fs.stat": "^1.1.2", + "glob-parent": "^3.1.0", + "is-glob": "^4.0.0", + "merge2": "^1.2.3", + "micromatch": "^3.1.10" + }, + "dependencies": { + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + } + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/fast-json-stable-stringify/download/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha1-h0v2nG9ATCtdmcSBNBOZ/VWJJjM=", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npm.taobao.org/fast-levenshtein/download/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "fastparse": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/fastparse/download/fastparse-1.1.2.tgz", + "integrity": "sha1-kXKMWllC7O2FMSg8eUQe5BIsNak=", + "dev": true + }, + "faye-websocket": { + "version": "0.10.0", + "resolved": "https://registry.npm.taobao.org/faye-websocket/download/faye-websocket-0.10.0.tgz", + "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "fecha": { + "version": "2.3.3", + "resolved": "https://registry.npm.taobao.org/fecha/download/fecha-2.3.3.tgz", + "integrity": "sha1-lI50FX3xoy/RsSw6PDzctuydls0=" + }, + "figgy-pudding": { + "version": "3.5.2", + "resolved": "https://registry.npm.taobao.org/figgy-pudding/download/figgy-pudding-3.5.2.tgz", + "integrity": "sha1-tO7oFIq7Adzx0aw0Nn1Z4S+mHW4=", + "dev": true + }, + "figures": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/figures/download/figures-2.0.0.tgz", + "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "file-entry-cache": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/file-entry-cache/download/file-entry-cache-2.0.0.tgz", + "integrity": "sha1-w5KZDD5oR4PYOLjISkXYoEhFg2E=", + "dev": true, + "requires": { + "flat-cache": "^1.2.1", + "object-assign": "^4.0.1" + } + }, + "file-loader": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/file-loader/download/file-loader-3.0.1.tgz", + "integrity": "sha1-+OC6C1mZGLUa3+RdZtHnca1WD6o=", + "dev": true, + "requires": { + "loader-utils": "^1.0.2", + "schema-utils": "^1.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", + "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/file-uri-to-path/download/file-uri-to-path-1.0.0.tgz", + "integrity": "sha1-VTp7hEb/b2hDWcRF8eN6BdrMM90=", + "dev": true, + "optional": true + }, + "filesize": { + "version": "3.6.1", + "resolved": "https://registry.npm.taobao.org/filesize/download/filesize-3.6.1.tgz", + "integrity": "sha1-CQuz7gG2+AGoqL6Z0xcQs0Irsxc=", + "dev": true + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/fill-range/download/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/finalhandler/download/finalhandler-1.1.2.tgz", + "integrity": "sha1-t+fQAP/RGTjQ/bBTUG9uur6fWH0=", + "dev": true, + "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.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "requires": { + "ms": "2.0.0" + } + } + } + }, + "find-babel-config": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/find-babel-config/download/find-babel-config-1.2.0.tgz", + "integrity": "sha1-qbezF+tbmGDNqdVHQKjIM3oig6I=", + "dev": true, + "requires": { + "json5": "^0.5.1", + "path-exists": "^3.0.0" + }, + "dependencies": { + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npm.taobao.org/json5/download/json5-0.5.1.tgz?cache=0&sync_timestamp=1586046271069&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true + } + } + }, + "find-cache-dir": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-2.1.0.tgz", + "integrity": "sha1-jQ+UzRP+Q8bHwmGg2GEVypGMBfc=", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^2.0.0", + "pkg-dir": "^3.0.0" + } + }, + "find-parent-dir": { + "version": "0.3.0", + "resolved": "https://registry.npm.taobao.org/find-parent-dir/download/find-parent-dir-0.3.0.tgz", + "integrity": "sha1-M8RLQpqysvBkYpnF+fcY83b/jVQ=", + "dev": true + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "^2.0.0" + } + }, + "flat-cache": { + "version": "1.3.4", + "resolved": "https://registry.npm.taobao.org/flat-cache/download/flat-cache-1.3.4.tgz", + "integrity": "sha1-LC73dSXMKSkAff/6HdMUqpyd7m8=", + "dev": true, + "requires": { + "circular-json": "^0.3.1", + "graceful-fs": "^4.1.2", + "rimraf": "~2.6.2", + "write": "^0.2.1" + }, + "dependencies": { + "rimraf": { + "version": "2.6.3", + "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.6.3.tgz?cache=0&sync_timestamp=1581229865753&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.6.3.tgz", + "integrity": "sha1-stEE/g2Psnz54KHNqCYt04M8bKs=", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + } + } + }, + "flush-write-stream": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/flush-write-stream/download/flush-write-stream-1.1.1.tgz", + "integrity": "sha1-jdfYc6G6vCB9lOrQwuDkQnbr8ug=", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "readable-stream": "^2.3.6" + } + }, + "fmin": { + "version": "0.0.2", + "resolved": "https://registry.npm.taobao.org/fmin/download/fmin-0.0.2.tgz", + "integrity": "sha1-Wbu0DUP/3ByUzQClaMQflfGXMBc=", + "requires": { + "contour_plot": "^0.0.1", + "json2module": "^0.0.3", + "rollup": "^0.25.8", + "tape": "^4.5.1", + "uglify-js": "^2.6.2" + } + }, + "follow-redirects": { + "version": "1.5.10", + "resolved": "https://registry.npm.taobao.org/follow-redirects/download/follow-redirects-1.5.10.tgz?cache=0&sync_timestamp=1592518281721&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffollow-redirects%2Fdownload%2Ffollow-redirects-1.5.10.tgz", + "integrity": "sha1-e3qfmuov3/NnhqlP9kPtB/T/Xio=", + "requires": { + "debug": "=3.1.0" + } + }, + "for-each": { + "version": "0.3.3", + "resolved": "https://registry.npm.taobao.org/for-each/download/for-each-0.3.3.tgz", + "integrity": "sha1-abRH6IoKXTLD5whPPxcQA0shN24=", + "requires": { + "is-callable": "^1.1.3" + } + }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/for-in/download/for-in-1.0.2.tgz?cache=0&sync_timestamp=1573184298867&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffor-in%2Fdownload%2Ffor-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/forever-agent/download/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npm.taobao.org/form-data/download/form-data-2.3.3.tgz", + "integrity": "sha1-3M5SwF9kTymManq5Nr1yTO/786Y=", + "dev": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" + } + }, + "forwarded": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/forwarded/download/forwarded-0.1.2.tgz", + "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", + "dev": true + }, + "frac": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/frac/download/frac-1.1.2.tgz", + "integrity": "sha1-PXT39keMiKG1AgMG10fcYxPHTQs=" + }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npm.taobao.org/fragment-cache/download/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dev": true, + "requires": { + "map-cache": "^0.2.2" + } + }, + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npm.taobao.org/fresh/download/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/from2/download/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "readable-stream": "^2.0.0" + } + }, + "fs-extra": { + "version": "7.0.1", + "resolved": "https://registry.npm.taobao.org/fs-extra/download/fs-extra-7.0.1.tgz", + "integrity": "sha1-TxicRKoSO4lfcigE9V6iPq3DSOk=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "jsonfile": "^4.0.0", + "universalify": "^0.1.0" + } + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/fs-minipass/download/fs-minipass-2.1.0.tgz?cache=0&sync_timestamp=1579628584498&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffs-minipass%2Fdownload%2Ffs-minipass-2.1.0.tgz", + "integrity": "sha1-f1A2/b8SxjwWkZDL5BmchSJx+fs=", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npm.taobao.org/fs-write-stream-atomic/download/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "iferr": "^0.1.5", + "imurmurhash": "^0.1.4", + "readable-stream": "1 || 2" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/fs.realpath/download/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "2.1.3", + "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-2.1.3.tgz?cache=0&sync_timestamp=1588787369955&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffsevents%2Fdownload%2Ffsevents-2.1.3.tgz", + "integrity": "sha1-+3OHA66NL5/pAMM4Nt3r7ouX8j4=", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/function-bind/download/function-bind-1.1.1.tgz", + "integrity": "sha1-pWiZ0+o8m6uHS7l3O3xe3pL0iV0=" + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/functional-red-black-tree/download/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true + }, + "gensync": { + "version": "1.0.0-beta.1", + "resolved": "https://registry.npm.taobao.org/gensync/download/gensync-1.0.0-beta.1.tgz", + "integrity": "sha1-WPQ2H/mH5f9uHnohCCeqNx6qwmk=", + "dev": true + }, + "get-caller-file": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/get-caller-file/download/get-caller-file-1.0.3.tgz", + "integrity": "sha1-+Xj6TJDR3+f/LWvtoqUV5xO9z0o=", + "dev": true + }, + "get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/get-func-name/download/get-func-name-2.0.0.tgz", + "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", + "dev": true + }, + "get-own-enumerable-property-symbols": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/get-own-enumerable-property-symbols/download/get-own-enumerable-property-symbols-3.0.2.tgz", + "integrity": "sha1-tf3nfyLL4185C04ImSLFC85u9mQ=", + "dev": true + }, + "get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-4.1.0.tgz", + "integrity": "sha1-wbJVV189wh1Zv8ec09K0axw6VLU=", + "dev": true, + "requires": { + "pump": "^3.0.0" + } + }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npm.taobao.org/get-value/download/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npm.taobao.org/getpass/download/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } + }, + "glob": { + "version": "7.1.6", + "resolved": "https://registry.npm.taobao.org/glob/download/glob-7.1.6.tgz?cache=0&sync_timestamp=1573078079496&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob%2Fdownload%2Fglob-7.1.6.tgz", + "integrity": "sha1-FB8zuBp8JJLhJVlDB0gMRmeSeKY=", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-5.1.1.tgz", + "integrity": "sha1-tsHvQXxOVmPqSY8cRa+saRa7wik=", + "dev": true, + "optional": true, + "requires": { + "is-glob": "^4.0.1" + } + }, + "glob-to-regexp": { + "version": "0.3.0", + "resolved": "https://registry.npm.taobao.org/glob-to-regexp/download/glob-to-regexp-0.3.0.tgz", + "integrity": "sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs=", + "dev": true + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npm.taobao.org/globals/download/globals-11.12.0.tgz", + "integrity": "sha1-q4eVM4hooLq9hSV1gBjCp+uVxC4=", + "dev": true + }, + "globby": { + "version": "9.2.0", + "resolved": "https://registry.npm.taobao.org/globby/download/globby-9.2.0.tgz", + "integrity": "sha1-/QKacGxwPSm90XD0tts6P3p8tj0=", + "dev": true, + "requires": { + "@types/glob": "^7.1.1", + "array-union": "^1.0.2", + "dir-glob": "^2.2.2", + "fast-glob": "^2.2.6", + "glob": "^7.1.3", + "ignore": "^4.0.3", + "pify": "^4.0.1", + "slash": "^2.0.0" + }, + "dependencies": { + "ignore": { + "version": "4.0.6", + "resolved": "https://registry.npm.taobao.org/ignore/download/ignore-4.0.6.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fignore%2Fdownload%2Fignore-4.0.6.tgz", + "integrity": "sha1-dQ49tYYgh7RzfrrIIH/9HvJ7Jfw=", + "dev": true + } + } + }, + "good-listener": { + "version": "1.2.2", + "resolved": "https://registry.npm.taobao.org/good-listener/download/good-listener-1.2.2.tgz", + "integrity": "sha1-1TswzfkxPf+33JoNR3CWqm0UXFA=", + "requires": { + "delegate": "^3.1.2" + } + }, + "gq-plus": { + "version": "2.1.5", + "resolved": "https://registry.npm.taobao.org/gq-plus/download/gq-plus-2.1.5.tgz", + "integrity": "sha1-xGkLE10oAAukXd7nuopA10RvVJM=", + "requires": { + "async-validator": "^1.10.0", + "axios": "^0.15.3", + "deepmerge": "^2.2.1", + "element-resize-detector": "^1.2.0", + "js-calendar": "^1.2.3", + "lodash.throttle": "^4.1.1", + "popper.js": "^1.14.6", + "tinycolor2": "^1.4.1", + "v-click-outside-x": "^3.5.6" + }, + "dependencies": { + "axios": { + "version": "0.15.3", + "resolved": "https://registry.npm.taobao.org/axios/download/axios-0.15.3.tgz", + "integrity": "sha1-LJ1jiy4ZGgjqHWzJiOrda6W9wFM=", + "requires": { + "follow-redirects": "1.0.0" + } + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "requires": { + "ms": "2.0.0" + } + }, + "follow-redirects": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/follow-redirects/download/follow-redirects-1.0.0.tgz?cache=0&sync_timestamp=1592518281721&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffollow-redirects%2Fdownload%2Ffollow-redirects-1.0.0.tgz", + "integrity": "sha1-jjQpjL0uF28lTv/sdaHHjMhJ/Tc=", + "requires": { + "debug": "^2.2.0" + } + } + } + }, + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npm.taobao.org/graceful-fs/download/graceful-fs-4.2.4.tgz?cache=0&sync_timestamp=1588086924019&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fgraceful-fs%2Fdownload%2Fgraceful-fs-4.2.4.tgz", + "integrity": "sha1-Ila94U02MpWMRl68ltxGfKB6Kfs=", + "dev": true + }, + "growl": { + "version": "1.10.5", + "resolved": "https://registry.npm.taobao.org/growl/download/growl-1.10.5.tgz", + "integrity": "sha1-8nNdwig2dPpnR4sQGBBZNVw2nl4=", + "dev": true + }, + "gzip-size": { + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/gzip-size/download/gzip-size-5.1.1.tgz", + "integrity": "sha1-y5vuaS+HwGErIyhAqHOQTkwTUnQ=", + "dev": true, + "requires": { + "duplexer": "^0.1.1", + "pify": "^4.0.1" + } + }, + "handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/handle-thing/download/handle-thing-2.0.1.tgz", + "integrity": "sha1-hX95zjWVgMNA1DCBzGSJcNC7I04=", + "dev": true + }, + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/har-schema/download/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "dev": true + }, + "har-validator": { + "version": "5.1.3", + "resolved": "https://registry.npm.taobao.org/har-validator/download/har-validator-5.1.3.tgz", + "integrity": "sha1-HvievT5JllV2de7ZiTEQ3DUPoIA=", + "dev": true, + "requires": { + "ajv": "^6.5.5", + "har-schema": "^2.0.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/has/download/has-1.0.3.tgz", + "integrity": "sha1-ci18v8H2qoJB8W3YFOAR4fQeh5Y=", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/has-ansi/download/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/has-flag/download/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "dev": true + }, + "has-symbols": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/has-symbols/download/has-symbols-1.0.1.tgz", + "integrity": "sha1-n1IUdYpEGWxAbZvXbOv4HsLdMeg=" + }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/has-value/download/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dev": true, + "requires": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/has-values/download/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "dependencies": { + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "^1.1.5" + } + } + } + }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/hash-base/download/hash-base-3.1.0.tgz", + "integrity": "sha1-VcOB2eBuHSmXqIO0o/3f5/DTrzM=", + "dev": true, + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz", + "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.2.1.tgz", + "integrity": "sha1-Hq+fqb2x/dTsdfWPnNtOa3gn7sY=", + "dev": true + } + } + }, + "hash-sum": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/hash-sum/download/hash-sum-1.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhash-sum%2Fdownload%2Fhash-sum-1.0.2.tgz", + "integrity": "sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=", + "dev": true + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npm.taobao.org/hash.js/download/hash.js-1.1.7.tgz", + "integrity": "sha1-C6vKU46NTuSg+JiNaIZlN6ADz0I=", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "hawk": { + "version": "3.1.3", + "resolved": "https://registry.npm.taobao.org/hawk/download/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "dev": true, + "optional": true, + "requires": { + "boom": "2.x.x", + "cryptiles": "2.x.x", + "hoek": "2.x.x", + "sntp": "1.x.x" + } + }, + "he": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/he/download/he-1.1.1.tgz", + "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", + "dev": true + }, + "hex-color-regex": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/hex-color-regex/download/hex-color-regex-1.1.0.tgz", + "integrity": "sha1-TAb8y0YC/iYCs8k9+C1+fb8aio4=", + "dev": true + }, + "highlight.js": { + "version": "9.18.1", + "resolved": "https://registry.npm.taobao.org/highlight.js/download/highlight.js-9.18.1.tgz", + "integrity": "sha1-7SGqAB/mJSuxCj121HVzxlOf4Tw=" + }, + "highlight.js-async-webpack": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/highlight.js-async-webpack/download/highlight.js-async-webpack-1.0.4.tgz", + "integrity": "sha1-wGtnv5nwSQRdYrdW5YVbCRLsYWw=" + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/hmac-drbg/download/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "hoek": { + "version": "2.16.3", + "resolved": "https://registry.npm.taobao.org/hoek/download/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", + "dev": true, + "optional": true + }, + "hoopy": { + "version": "0.1.4", + "resolved": "https://registry.npm.taobao.org/hoopy/download/hoopy-0.1.4.tgz", + "integrity": "sha1-YJIH1mEQADOpqUAq096mdzgcGx0=", + "dev": true + }, + "hosted-git-info": { + "version": "2.8.8", + "resolved": "https://registry.npm.taobao.org/hosted-git-info/download/hosted-git-info-2.8.8.tgz?cache=0&sync_timestamp=1594428020608&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhosted-git-info%2Fdownload%2Fhosted-git-info-2.8.8.tgz", + "integrity": "sha1-dTm9S8Hg4KiVgVouAmJCCxKFhIg=", + "dev": true + }, + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npm.taobao.org/hpack.js/download/hpack.js-2.1.6.tgz", + "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" + } + }, + "hsl-regex": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/hsl-regex/download/hsl-regex-1.0.0.tgz", + "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", + "dev": true + }, + "hsla-regex": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/hsla-regex/download/hsla-regex-1.0.0.tgz", + "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", + "dev": true + }, + "html-comment-regex": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/html-comment-regex/download/html-comment-regex-1.1.2.tgz", + "integrity": "sha1-l9RoiutcgYhqNk+qDK0d2hTUM6c=", + "dev": true + }, + "html-encoding-sniffer": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/html-encoding-sniffer/download/html-encoding-sniffer-1.0.2.tgz", + "integrity": "sha1-5w2EuU2lOqN14R/jo1G+ZkLKRvg=", + "dev": true, + "requires": { + "whatwg-encoding": "^1.0.1" + } + }, + "html-entities": { + "version": "1.3.1", + "resolved": "https://registry.npm.taobao.org/html-entities/download/html-entities-1.3.1.tgz", + "integrity": "sha1-+5oaS1sUxdq6gtPjTGrk/nAaDkQ=", + "dev": true + }, + "html-minifier": { + "version": "3.5.21", + "resolved": "https://registry.npm.taobao.org/html-minifier/download/html-minifier-3.5.21.tgz", + "integrity": "sha1-0AQOBUcw41TbAIRjWTGUAVIS0gw=", + "dev": true, + "requires": { + "camel-case": "3.0.x", + "clean-css": "4.2.x", + "commander": "2.17.x", + "he": "1.2.x", + "param-case": "2.1.x", + "relateurl": "0.2.x", + "uglify-js": "3.4.x" + }, + "dependencies": { + "commander": { + "version": "2.17.1", + "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.17.1.tgz?cache=0&sync_timestamp=1595168173997&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.17.1.tgz", + "integrity": "sha1-vXerfebelCBc6sxy8XFtKfIKd78=", + "dev": true + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/he/download/he-1.2.0.tgz", + "integrity": "sha1-hK5l+n6vsWX922FWauFLrwVmTw8=", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "uglify-js": { + "version": "3.4.10", + "resolved": "https://registry.npm.taobao.org/uglify-js/download/uglify-js-3.4.10.tgz?cache=0&sync_timestamp=1592744803278&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fuglify-js%2Fdownload%2Fuglify-js-3.4.10.tgz", + "integrity": "sha1-mtlWPY6zrN+404WX0q8dgV9qdV8=", + "dev": true, + "requires": { + "commander": "~2.19.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "commander": { + "version": "2.19.0", + "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.19.0.tgz?cache=0&sync_timestamp=1595168173997&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.19.0.tgz", + "integrity": "sha1-9hmKqE5bg8RgVLlN3tv+1e6f8So=", + "dev": true + } + } + } + } + }, + "html-tags": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/html-tags/download/html-tags-2.0.0.tgz", + "integrity": "sha1-ELMKOGCF9Dzt41PMj6fLDe7qZos=", + "dev": true + }, + "html-webpack-plugin": { + "version": "3.2.0", + "resolved": "https://registry.npm.taobao.org/html-webpack-plugin/download/html-webpack-plugin-3.2.0.tgz?cache=0&sync_timestamp=1588268411154&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhtml-webpack-plugin%2Fdownload%2Fhtml-webpack-plugin-3.2.0.tgz", + "integrity": "sha1-sBq71yOsqqeze2r0SS69oD2d03s=", + "dev": true, + "requires": { + "html-minifier": "^3.2.3", + "loader-utils": "^0.2.16", + "lodash": "^4.17.3", + "pretty-error": "^2.0.2", + "tapable": "^1.0.0", + "toposort": "^1.0.0", + "util.promisify": "1.0.0" + }, + "dependencies": { + "big.js": { + "version": "3.2.0", + "resolved": "https://registry.npm.taobao.org/big.js/download/big.js-3.2.0.tgz", + "integrity": "sha1-pfwpi4G54Nyi5FiCR4S2XFK6WI4=", + "dev": true + }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/emojis-list/download/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npm.taobao.org/json5/download/json5-0.5.1.tgz?cache=0&sync_timestamp=1586046271069&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true + }, + "loader-utils": { + "version": "0.2.17", + "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-0.2.17.tgz", + "integrity": "sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=", + "dev": true, + "requires": { + "big.js": "^3.1.3", + "emojis-list": "^2.0.0", + "json5": "^0.5.0", + "object-assign": "^4.0.1" + } + }, + "util.promisify": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/util.promisify/download/util.promisify-1.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Futil.promisify%2Fdownload%2Futil.promisify-1.0.0.tgz", + "integrity": "sha1-RA9xZaRZyaFtwUXrjnLzVocJcDA=", + "dev": true, + "requires": { + "define-properties": "^1.1.2", + "object.getownpropertydescriptors": "^2.0.3" + } + } + } + }, + "html2canvas": { + "version": "1.0.0-rc.5", + "resolved": "https://registry.npm.taobao.org/html2canvas/download/html2canvas-1.0.0-rc.5.tgz", + "integrity": "sha1-TuPKyfbiCg+gwvNab5nJYK5+xME=", + "requires": { + "css-line-break": "1.1.1" + } + }, + "htmlparser2": { + "version": "3.10.1", + "resolved": "https://registry.npm.taobao.org/htmlparser2/download/htmlparser2-3.10.1.tgz", + "integrity": "sha1-vWedw/WYl7ajS7EHSchVu1OpOS8=", + "dev": true, + "requires": { + "domelementtype": "^1.3.1", + "domhandler": "^2.3.0", + "domutils": "^1.5.1", + "entities": "^1.1.1", + "inherits": "^2.0.1", + "readable-stream": "^3.1.1" + }, + "dependencies": { + "entities": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/entities/download/entities-1.1.2.tgz?cache=0&sync_timestamp=1591227679482&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fentities%2Fdownload%2Fentities-1.1.2.tgz", + "integrity": "sha1-vfpzUplmTfr9NFKe1PhSKidf6lY=", + "dev": true + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz", + "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npm.taobao.org/http-deceiver/download/http-deceiver-1.2.7.tgz", + "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", + "dev": true + }, + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npm.taobao.org/http-errors/download/http-errors-1.7.2.tgz?cache=0&sync_timestamp=1593407710477&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.7.2.tgz", + "integrity": "sha1-T1ApzxMjnzEDblsuVSkrz7zIXI8=", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npm.taobao.org/http-proxy/download/http-proxy-1.18.1.tgz", + "integrity": "sha1-QBVB8FNIhLv5UmAzTnL4juOXZUk=", + "dev": true, + "requires": { + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" + } + }, + "http-proxy-middleware": { + "version": "0.19.1", + "resolved": "https://registry.npm.taobao.org/http-proxy-middleware/download/http-proxy-middleware-0.19.1.tgz?cache=0&sync_timestamp=1594312982456&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-proxy-middleware%2Fdownload%2Fhttp-proxy-middleware-0.19.1.tgz", + "integrity": "sha1-GDx9xKoUeRUDBkmMIQza+WCApDo=", + "dev": true, + "requires": { + "http-proxy": "^1.17.0", + "is-glob": "^4.0.0", + "lodash": "^4.17.11", + "micromatch": "^3.1.10" + } + }, + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/http-signature/download/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "https-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/https-browserify/download/https-browserify-1.0.0.tgz", + "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "dev": true + }, + "human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/human-signals/download/human-signals-1.1.1.tgz?cache=0&sync_timestamp=1584198662293&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhuman-signals%2Fdownload%2Fhuman-signals-1.1.1.tgz", + "integrity": "sha1-xbHNFPUK6uCatsWf5jujOV/k36M=", + "dev": true + }, + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npm.taobao.org/iconv-lite/download/iconv-lite-0.4.24.tgz", + "integrity": "sha1-ICK0sl+93CHS9SSXSkdKr+czkIs=", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3" + } + }, + "icss-replace-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/icss-replace-symbols/download/icss-replace-symbols-1.1.0.tgz", + "integrity": "sha1-Bupvg2ead0njhs/h/oEq5dsiPe0=", + "dev": true + }, + "icss-utils": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/icss-utils/download/icss-utils-2.1.0.tgz", + "integrity": "sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI=", + "dev": true, + "requires": { + "postcss": "^6.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npm.taobao.org/postcss/download/postcss-6.0.23.tgz?cache=0&sync_timestamp=1591102414113&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-6.0.23.tgz", + "integrity": "sha1-YcgswyisYOZ3ZF+XkFTrmLwOMyQ=", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "ieee754": { + "version": "1.1.13", + "resolved": "https://registry.npm.taobao.org/ieee754/download/ieee754-1.1.13.tgz", + "integrity": "sha1-7BaFWOlaoYH9h9N/VcMrvLZwi4Q=", + "dev": true + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npm.taobao.org/iferr/download/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true + }, + "ignore": { + "version": "3.3.10", + "resolved": "https://registry.npm.taobao.org/ignore/download/ignore-3.3.10.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fignore%2Fdownload%2Fignore-3.3.10.tgz", + "integrity": "sha1-Cpf7h2mG6AgcYxFg+PnziRV/AEM=", + "dev": true + }, + "image-size": { + "version": "0.5.5", + "resolved": "https://registry.npm.taobao.org/image-size/download/image-size-0.5.5.tgz", + "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", + "dev": true, + "optional": true + }, + "import-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/import-cwd/download/import-cwd-2.1.0.tgz", + "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", + "dev": true, + "requires": { + "import-from": "^2.1.0" + } + }, + "import-fresh": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/import-fresh/download/import-fresh-2.0.0.tgz", + "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "dev": true, + "requires": { + "caller-path": "^2.0.0", + "resolve-from": "^3.0.0" + }, + "dependencies": { + "caller-path": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/caller-path/download/caller-path-2.0.0.tgz", + "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", + "dev": true, + "requires": { + "caller-callsite": "^2.0.0" + } + }, + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + } + } + }, + "import-from": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/import-from/download/import-from-2.1.0.tgz", + "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + } + } + }, + "import-local": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/import-local/download/import-local-2.0.0.tgz", + "integrity": "sha1-VQcL44pZk88Y72236WH1vuXFoJ0=", + "dev": true, + "requires": { + "pkg-dir": "^3.0.0", + "resolve-cwd": "^2.0.0" + } + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npm.taobao.org/imurmurhash/download/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/indent-string/download/indent-string-4.0.0.tgz", + "integrity": "sha1-Yk+PRJfWGbLZdoUx1Y9BIoVNclE=", + "dev": true + }, + "indexes-of": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/indexes-of/download/indexes-of-1.0.1.tgz", + "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "dev": true + }, + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/infer-owner/download/infer-owner-1.0.4.tgz", + "integrity": "sha1-xM78qo5RBRwqQLos6KPScpWvlGc=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npm.taobao.org/inflight/download/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.4.tgz", + "integrity": "sha1-D6LGT5MpF8NDOg3tVTY6rjdBa3w=" + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npm.taobao.org/ini/download/ini-1.3.5.tgz", + "integrity": "sha1-7uJfVtscnsYIXgwid4CD9Zar+Sc=", + "dev": true + }, + "inquirer": { + "version": "3.3.0", + "resolved": "https://registry.npm.taobao.org/inquirer/download/inquirer-3.3.0.tgz?cache=0&sync_timestamp=1594661205347&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finquirer%2Fdownload%2Finquirer-3.3.0.tgz", + "integrity": "sha1-ndLyrXZdyrH/BEO0kUQqILoifck=", + "dev": true, + "requires": { + "ansi-escapes": "^3.0.0", + "chalk": "^2.0.0", + "cli-cursor": "^2.1.0", + "cli-width": "^2.0.0", + "external-editor": "^2.0.4", + "figures": "^2.0.0", + "lodash": "^4.3.0", + "mute-stream": "0.0.7", + "run-async": "^2.2.0", + "rx-lite": "^4.0.8", + "rx-lite-aggregates": "^4.0.8", + "string-width": "^2.1.0", + "strip-ansi": "^4.0.0", + "through": "^2.3.6" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "internal-ip": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/internal-ip/download/internal-ip-4.3.0.tgz", + "integrity": "sha1-hFRSuq2dLKO2nGNaE3rLmg2tCQc=", + "dev": true, + "requires": { + "default-gateway": "^4.2.0", + "ipaddr.js": "^1.9.0" + }, + "dependencies": { + "default-gateway": { + "version": "4.2.0", + "resolved": "https://registry.npm.taobao.org/default-gateway/download/default-gateway-4.2.0.tgz?cache=0&sync_timestamp=1590419212936&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdefault-gateway%2Fdownload%2Fdefault-gateway-4.2.0.tgz", + "integrity": "sha1-FnEEx1AMIRX23WmwpTa7jtcgVSs=", + "dev": true, + "requires": { + "execa": "^1.0.0", + "ip-regex": "^2.1.0" + } + } + } + }, + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npm.taobao.org/interpret/download/interpret-1.4.0.tgz", + "integrity": "sha1-Zlq4vE2iendKQFhOgS4+D6RbGh4=", + "dev": true + }, + "invariant": { + "version": "2.2.4", + "resolved": "https://registry.npm.taobao.org/invariant/download/invariant-2.2.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finvariant%2Fdownload%2Finvariant-2.2.4.tgz", + "integrity": "sha1-YQ88ksk1nOHbYW5TgAjSP/NRWOY=", + "dev": true, + "requires": { + "loose-envify": "^1.0.0" + } + }, + "invert-kv": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/invert-kv/download/invert-kv-2.0.0.tgz?cache=0&sync_timestamp=1589565904735&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Finvert-kv%2Fdownload%2Finvert-kv-2.0.0.tgz", + "integrity": "sha1-c5P1r6Weyf9fZ6J2INEcIm4+7AI=", + "dev": true + }, + "ip": { + "version": "1.1.5", + "resolved": "https://registry.npm.taobao.org/ip/download/ip-1.1.5.tgz", + "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "dev": true + }, + "ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/ip-regex/download/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "dev": true + }, + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npm.taobao.org/ipaddr.js/download/ipaddr.js-1.9.1.tgz", + "integrity": "sha1-v/OFQ+64mEglB5/zoqjmy9RngbM=", + "dev": true + }, + "is-absolute-url": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/is-absolute-url/download/is-absolute-url-2.1.0.tgz", + "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", + "dev": true + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-arguments": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/is-arguments/download/is-arguments-1.0.4.tgz", + "integrity": "sha1-P6+WbHy6D/Q3+zH2JQCC/PBEjPM=" + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-2.1.0.tgz", + "integrity": "sha1-6h9/O4DwZCNug0cPhsCcJU+0Wwk=", + "dev": true, + "optional": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npm.taobao.org/is-buffer/download/is-buffer-1.1.6.tgz", + "integrity": "sha1-76ouqdqg16suoTqXsritUf776L4=" + }, + "is-callable": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/is-callable/download/is-callable-1.2.0.tgz?cache=0&sync_timestamp=1591427607174&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-callable%2Fdownload%2Fis-callable-1.2.0.tgz", + "integrity": "sha1-gzNlYLVKOONeOi33r9BFTWkUaLs=" + }, + "is-ci": { + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/is-ci/download/is-ci-1.2.1.tgz", + "integrity": "sha1-43ecjuF/zPQoSI9uKBGH8uYyhBw=", + "dev": true, + "requires": { + "ci-info": "^1.5.0" + } + }, + "is-color-stop": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/is-color-stop/download/is-color-stop-1.1.0.tgz", + "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", + "dev": true, + "requires": { + "css-color-names": "^0.0.4", + "hex-color-regex": "^1.1.0", + "hsl-regex": "^1.0.0", + "hsla-regex": "^1.0.0", + "rgb-regex": "^1.0.1", + "rgba-regex": "^1.0.0" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-date-object": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/is-date-object/download/is-date-object-1.0.2.tgz?cache=0&sync_timestamp=1576729182289&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-date-object%2Fdownload%2Fis-date-object-1.0.2.tgz", + "integrity": "sha1-vac28s2P0G0yhE53Q7+nSUw7/X4=" + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-0.1.6.tgz", + "integrity": "sha1-Nm2CQN3kh8pRgjsaufB6EKeCUco=", + "dev": true, + "requires": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-5.1.0.tgz", + "integrity": "sha1-cpyR4thXt6QZofmqZWhcTDP1hF0=", + "dev": true + } + } + }, + "is-directory": { + "version": "0.3.1", + "resolved": "https://registry.npm.taobao.org/is-directory/download/is-directory-0.3.1.tgz", + "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", + "dev": true + }, + "is-docker": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/is-docker/download/is-docker-2.0.0.tgz", + "integrity": "sha1-LLDfDnXi0GT+GGTDfN6st7Lc8ls=", + "dev": true + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/is-extendable/download/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/is-extglob/download/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-finite": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/is-finite/download/is-finite-1.1.0.tgz", + "integrity": "sha1-kEE1x3+0LAZB1qobzbxNqo2ggvM=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-4.0.1.tgz", + "integrity": "sha1-dWfb6fL14kZ7x3q4PEopSCQHpdw=", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/is-number/download/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/is-obj/download/is-obj-2.0.0.tgz", + "integrity": "sha1-Rz+wXZc3BeP9liBUUBjKjiLvSYI=", + "dev": true + }, + "is-observable": { + "version": "0.2.0", + "resolved": "https://registry.npm.taobao.org/is-observable/download/is-observable-0.2.0.tgz", + "integrity": "sha1-s2ExHYPG5dcmyr9eJQsCNxBvWuI=", + "dev": true, + "requires": { + "symbol-observable": "^0.2.2" + } + }, + "is-path-cwd": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/is-path-cwd/download/is-path-cwd-2.2.0.tgz", + "integrity": "sha1-Z9Q7gmZKe1GR/ZEZEn6zAASKn9s=", + "dev": true + }, + "is-path-in-cwd": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/is-path-in-cwd/download/is-path-in-cwd-2.1.0.tgz", + "integrity": "sha1-v+Lcomxp85cmWkAJljYCk1oFOss=", + "dev": true, + "requires": { + "is-path-inside": "^2.1.0" + } + }, + "is-path-inside": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/is-path-inside/download/is-path-inside-2.1.0.tgz", + "integrity": "sha1-fJgQWH1lmkDSe8201WFuqwWUlLI=", + "dev": true, + "requires": { + "path-is-inside": "^1.0.2" + } + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/is-plain-obj/download/is-plain-obj-1.1.0.tgz", + "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "dev": true + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/is-plain-object/download/is-plain-object-2.0.4.tgz?cache=0&sync_timestamp=1595290593289&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-plain-object%2Fdownload%2Fis-plain-object-2.0.4.tgz", + "integrity": "sha1-LBY7P6+xtgbZ0Xko8FwqHDjgdnc=", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "is-promise": { + "version": "2.2.2", + "resolved": "https://registry.npm.taobao.org/is-promise/download/is-promise-2.2.2.tgz?cache=0&sync_timestamp=1588001830257&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-promise%2Fdownload%2Fis-promise-2.2.2.tgz", + "integrity": "sha1-OauVnMv5p3TPB597QMeib3YxNfE=", + "dev": true + }, + "is-regex": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/is-regex/download/is-regex-1.0.5.tgz", + "integrity": "sha1-OdWJo1i/GJZ/cmlnEguPwa7XTq4=", + "requires": { + "has": "^1.0.3" + } + }, + "is-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-regexp/download/is-regexp-1.0.0.tgz", + "integrity": "sha1-/S2INUXEa6xaYz57mgnof6LLUGk=", + "dev": true + }, + "is-resolvable": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/is-resolvable/download/is-resolvable-1.1.0.tgz", + "integrity": "sha1-+xj4fOH+uSUWnJpAfBkxijIG7Yg=", + "dev": true + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/is-stream/download/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true + }, + "is-string": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/is-string/download/is-string-1.0.5.tgz", + "integrity": "sha1-QEk+0ZjvP/R3uMf5L2ROyCpc06Y=", + "dev": true + }, + "is-svg": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/is-svg/download/is-svg-3.0.0.tgz", + "integrity": "sha1-kyHb0pwhLlypnE+peUxxS8r6L3U=", + "dev": true, + "requires": { + "html-comment-regex": "^1.1.0" + } + }, + "is-symbol": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/is-symbol/download/is-symbol-1.0.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-symbol%2Fdownload%2Fis-symbol-1.0.3.tgz", + "integrity": "sha1-OOEBS55jKb4N6dJKQU/XRB7GGTc=", + "requires": { + "has-symbols": "^1.0.1" + } + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-typedarray/download/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-whitespace": { + "version": "0.3.0", + "resolved": "https://registry.npm.taobao.org/is-whitespace/download/is-whitespace-0.3.0.tgz", + "integrity": "sha1-Fjnssb4DauxppUy7QBz77XEUq38=", + "dev": true + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/is-windows/download/is-windows-1.0.2.tgz", + "integrity": "sha1-0YUOuXkezRjmGCzhKjDzlmNLsZ0=", + "dev": true + }, + "is-wsl": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/is-wsl/download/is-wsl-1.1.0.tgz?cache=0&sync_timestamp=1588494180082&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fis-wsl%2Fdownload%2Fis-wsl-1.1.0.tgz", + "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/isarray/download/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/isexe/download/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/isobject/download/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/isstream/download/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true + }, + "iview": { + "version": "3.5.4", + "resolved": "https://registry.npm.taobao.org/iview/download/iview-3.5.4.tgz", + "integrity": "sha1-1Ra5LnO2F/Lcf0WDH5kFnWmTL4I=", + "requires": { + "async-validator": "^1.12.2", + "deepmerge": "^2.2.1", + "element-resize-detector": "^1.2.0", + "js-calendar": "^1.2.3", + "lodash.throttle": "^4.1.1", + "popper.js": "^1.14.6", + "tinycolor2": "^1.4.1", + "v-click-outside-x": "^4.0.19" + }, + "dependencies": { + "v-click-outside-x": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/v-click-outside-x/download/v-click-outside-x-4.1.0.tgz?cache=0&sync_timestamp=1579043108278&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fv-click-outside-x%2Fdownload%2Fv-click-outside-x-4.1.0.tgz", + "integrity": "sha1-voJmgOLSVmaooYUzKSnUYkSqJEc=" + } + } + }, + "javascript-stringify": { + "version": "1.6.0", + "resolved": "https://registry.npm.taobao.org/javascript-stringify/download/javascript-stringify-1.6.0.tgz", + "integrity": "sha1-FC0RHzpuPa6PSpr9d9RYVbWpzOM=", + "dev": true + }, + "jest-get-type": { + "version": "21.2.0", + "resolved": "https://registry.npm.taobao.org/jest-get-type/download/jest-get-type-21.2.0.tgz", + "integrity": "sha1-9jdqudtLYNgeOfMHScbEZvQNSiM=", + "dev": true + }, + "jest-validate": { + "version": "21.2.1", + "resolved": "https://registry.npm.taobao.org/jest-validate/download/jest-validate-21.2.1.tgz?cache=0&sync_timestamp=1592925336825&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjest-validate%2Fdownload%2Fjest-validate-21.2.1.tgz", + "integrity": "sha1-zAy8plPNVJN7pPKhEXlndFMN08c=", + "dev": true, + "requires": { + "chalk": "^2.0.1", + "jest-get-type": "^21.2.0", + "leven": "^2.1.0", + "pretty-format": "^21.2.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "jquery": { + "version": "2.2.4", + "resolved": "https://registry.npm.taobao.org/jquery/download/jquery-2.2.4.tgz", + "integrity": "sha1-LInWiJterFIqfuoywUUhVZxsvwI=" + }, + "js-beautify": { + "version": "1.11.0", + "resolved": "https://registry.npm.taobao.org/js-beautify/download/js-beautify-1.11.0.tgz", + "integrity": "sha1-r7hz3EfViYY2AJPctplR6LzV3tI=", + "dev": true, + "requires": { + "config-chain": "^1.1.12", + "editorconfig": "^0.15.3", + "glob": "^7.1.3", + "mkdirp": "~1.0.3", + "nopt": "^4.0.3" + }, + "dependencies": { + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/mkdirp/download/mkdirp-1.0.4.tgz?cache=0&sync_timestamp=1587535418745&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-1.0.4.tgz", + "integrity": "sha1-PrXtYmInVteaXw4qIh3+utdcL34=", + "dev": true + } + } + }, + "js-calendar": { + "version": "1.2.3", + "resolved": "https://registry.npm.taobao.org/js-calendar/download/js-calendar-1.2.3.tgz", + "integrity": "sha1-pYOwZEtOaVujlPNE0QPbzHp6fT4=" + }, + "js-cookie": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/js-cookie/download/js-cookie-2.2.1.tgz", + "integrity": "sha1-aeEG3F1YBolFYpAqpbrsN0Tpsrg=" + }, + "js-levenshtein": { + "version": "1.1.6", + "resolved": "https://registry.npm.taobao.org/js-levenshtein/download/js-levenshtein-1.1.6.tgz", + "integrity": "sha1-xs7ljrNVA3LfjeuF+tXOZs4B1Z0=", + "dev": true + }, + "js-message": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/js-message/download/js-message-1.0.5.tgz", + "integrity": "sha1-IwDSSxrwjondCVvBpMnJz8uJLRU=", + "dev": true + }, + "js-queue": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/js-queue/download/js-queue-2.0.0.tgz", + "integrity": "sha1-NiITz4YPRo8BJfxslqvBdCUx+Ug=", + "dev": true, + "requires": { + "easy-stack": "^1.0.0" + } + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/js-tokens/download/js-tokens-4.0.0.tgz", + "integrity": "sha1-GSA/tZmR35jjoocFDUZHzerzJJk=", + "dev": true + }, + "js-yaml": { + "version": "3.14.0", + "resolved": "https://registry.npm.taobao.org/js-yaml/download/js-yaml-3.14.0.tgz?cache=0&sync_timestamp=1590172122543&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjs-yaml%2Fdownload%2Fjs-yaml-3.14.0.tgz", + "integrity": "sha1-p6NBcPJqIbsWJCTYray0ETpp5II=", + "dev": true, + "requires": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + } + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/jsbn/download/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true + }, + "jsdom": { + "version": "13.2.0", + "resolved": "https://registry.npm.taobao.org/jsdom/download/jsdom-13.2.0.tgz?cache=0&sync_timestamp=1594341172783&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjsdom%2Fdownload%2Fjsdom-13.2.0.tgz", + "integrity": "sha1-saDb2twlVDUmK+jqNyPS26DX6zo=", + "dev": true, + "requires": { + "abab": "^2.0.0", + "acorn": "^6.0.4", + "acorn-globals": "^4.3.0", + "array-equal": "^1.0.0", + "cssom": "^0.3.4", + "cssstyle": "^1.1.1", + "data-urls": "^1.1.0", + "domexception": "^1.0.1", + "escodegen": "^1.11.0", + "html-encoding-sniffer": "^1.0.2", + "nwsapi": "^2.0.9", + "parse5": "5.1.0", + "pn": "^1.1.0", + "request": "^2.88.0", + "request-promise-native": "^1.0.5", + "saxes": "^3.1.5", + "symbol-tree": "^3.2.2", + "tough-cookie": "^2.5.0", + "w3c-hr-time": "^1.0.1", + "w3c-xmlserializer": "^1.0.1", + "webidl-conversions": "^4.0.2", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^7.0.0", + "ws": "^6.1.2", + "xml-name-validator": "^3.0.0" + } + }, + "jsdom-global": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/jsdom-global/download/jsdom-global-3.0.2.tgz", + "integrity": "sha1-a9KZwTsMRiay2iwDk81DhdYGrLk=", + "dev": true, + "requires": {} + }, + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npm.taobao.org/jsesc/download/jsesc-2.5.2.tgz", + "integrity": "sha1-gFZNLkg9rPbo7yCWUKZ98/DCg6Q=", + "dev": true + }, + "json-parse-better-errors": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/json-parse-better-errors/download/json-parse-better-errors-1.0.2.tgz", + "integrity": "sha1-u4Z8+zRQ5pEHwTHRxRS6s9yLyqk=", + "dev": true + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npm.taobao.org/json-schema/download/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.4.1.tgz", + "integrity": "sha1-afaofZUTq4u4/mO9sJecRI5oRmA=", + "dev": true + }, + "json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/json-stable-stringify/download/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "dev": true, + "optional": true, + "requires": { + "jsonify": "~0.0.0" + } + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/json-stable-stringify-without-jsonify/download/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=", + "dev": true + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npm.taobao.org/json-stringify-safe/download/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true + }, + "json2module": { + "version": "0.0.3", + "resolved": "https://registry.npm.taobao.org/json2module/download/json2module-0.0.3.tgz", + "integrity": "sha1-APtfSpt638PwZHwpyxe80Zeb6bI=", + "requires": { + "rw": "^1.3.2" + } + }, + "json3": { + "version": "3.3.3", + "resolved": "https://registry.npm.taobao.org/json3/download/json3-3.3.3.tgz", + "integrity": "sha1-f8EON1/FrkLEcFpcwKpvYr4wW4E=", + "dev": true + }, + "json5": { + "version": "2.1.3", + "resolved": "https://registry.npm.taobao.org/json5/download/json5-2.1.3.tgz?cache=0&sync_timestamp=1586046271069&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-2.1.3.tgz", + "integrity": "sha1-ybD3+pIzv+WAf+ZvzzpWF+1ZfUM=", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "jsonfile": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/jsonfile/download/jsonfile-4.0.0.tgz", + "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6" + } + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npm.taobao.org/jsonify/download/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "dev": true, + "optional": true + }, + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npm.taobao.org/jsprim/download/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + } + }, + "killable": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/killable/download/killable-1.0.1.tgz", + "integrity": "sha1-TIzkQRh6Bhx0dPuHygjipjgZSJI=", + "dev": true + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "^1.1.5" + } + }, + "launch-editor": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/launch-editor/download/launch-editor-2.2.1.tgz", + "integrity": "sha1-hxtaPuOdZoD8wm03kwtu7aidsMo=", + "dev": true, + "requires": { + "chalk": "^2.3.0", + "shell-quote": "^1.6.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "launch-editor-middleware": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/launch-editor-middleware/download/launch-editor-middleware-2.2.1.tgz", + "integrity": "sha1-4UsH5scVSwpLhqD9NFeE5FgEwVc=", + "dev": true, + "requires": { + "launch-editor": "^2.2.1" + } + }, + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/lazy-cache/download/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=" + }, + "lcid": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/lcid/download/lcid-2.0.0.tgz", + "integrity": "sha1-bvXS32DlL4LrIopMNz6NHzlyU88=", + "dev": true, + "requires": { + "invert-kv": "^2.0.0" + } + }, + "less": { + "version": "2.7.3", + "resolved": "https://registry.npm.taobao.org/less/download/less-2.7.3.tgz?cache=0&sync_timestamp=1594913896834&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fless%2Fdownload%2Fless-2.7.3.tgz", + "integrity": "sha1-zBJg9RyQCp7A2R+2mYE54CUHtjs=", + "dev": true, + "requires": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "mime": "^1.2.11", + "mkdirp": "^0.5.0", + "promise": "^7.1.1", + "request": "2.81.0", + "source-map": "^0.5.3" + }, + "dependencies": { + "ajv": { + "version": "4.11.8", + "resolved": "https://registry.npm.taobao.org/ajv/download/ajv-4.11.8.tgz", + "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=", + "dev": true, + "optional": true, + "requires": { + "co": "^4.6.0", + "json-stable-stringify": "^1.0.1" + } + }, + "assert-plus": { + "version": "0.2.0", + "resolved": "https://registry.npm.taobao.org/assert-plus/download/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", + "dev": true, + "optional": true + }, + "aws-sign2": { + "version": "0.6.0", + "resolved": "https://registry.npm.taobao.org/aws-sign2/download/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", + "dev": true, + "optional": true + }, + "form-data": { + "version": "2.1.4", + "resolved": "https://registry.npm.taobao.org/form-data/download/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "dev": true, + "optional": true, + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.5", + "mime-types": "^2.1.12" + } + }, + "har-schema": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/har-schema/download/har-schema-1.0.5.tgz", + "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=", + "dev": true, + "optional": true + }, + "har-validator": { + "version": "4.2.1", + "resolved": "https://registry.npm.taobao.org/har-validator/download/har-validator-4.2.1.tgz", + "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=", + "dev": true, + "optional": true, + "requires": { + "ajv": "^4.9.1", + "har-schema": "^1.0.5" + } + }, + "http-signature": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/http-signature/download/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "dev": true, + "optional": true, + "requires": { + "assert-plus": "^0.2.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npm.taobao.org/mime/download/mime-1.6.0.tgz?cache=0&sync_timestamp=1590596706367&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-1.6.0.tgz", + "integrity": "sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE=", + "dev": true, + "optional": true + }, + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npm.taobao.org/oauth-sign/download/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "dev": true, + "optional": true + }, + "performance-now": { + "version": "0.2.0", + "resolved": "https://registry.npm.taobao.org/performance-now/download/performance-now-0.2.0.tgz", + "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=", + "dev": true, + "optional": true + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true, + "optional": true + }, + "qs": { + "version": "6.4.0", + "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.4.0.tgz", + "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=", + "dev": true, + "optional": true + }, + "request": { + "version": "2.81.0", + "resolved": "https://registry.npm.taobao.org/request/download/request-2.81.0.tgz?cache=0&sync_timestamp=1581439006948&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frequest%2Fdownload%2Frequest-2.81.0.tgz", + "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", + "dev": true, + "optional": true, + "requires": { + "aws-sign2": "~0.6.0", + "aws4": "^1.2.1", + "caseless": "~0.12.0", + "combined-stream": "~1.0.5", + "extend": "~3.0.0", + "forever-agent": "~0.6.1", + "form-data": "~2.1.1", + "har-validator": "~4.2.1", + "hawk": "~3.1.3", + "http-signature": "~1.1.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.7", + "oauth-sign": "~0.8.1", + "performance-now": "^0.2.0", + "qs": "~6.4.0", + "safe-buffer": "^5.0.1", + "stringstream": "~0.0.4", + "tough-cookie": "~2.3.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.0.0" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true, + "optional": true + }, + "tough-cookie": { + "version": "2.3.4", + "resolved": "https://registry.npm.taobao.org/tough-cookie/download/tough-cookie-2.3.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftough-cookie%2Fdownload%2Ftough-cookie-2.3.4.tgz", + "integrity": "sha1-7GDO44rGdQY//JelwYlwV47oNlU=", + "dev": true, + "optional": true, + "requires": { + "punycode": "^1.4.1" + } + } + } + }, + "less-loader": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/less-loader/download/less-loader-4.1.0.tgz?cache=0&sync_timestamp=1593787586071&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fless-loader%2Fdownload%2Fless-loader-4.1.0.tgz", + "integrity": "sha1-LBNSxbCaT4QQFJAnT9UWdN5BNj4=", + "dev": true, + "requires": { + "clone": "^2.1.1", + "loader-utils": "^1.1.0", + "pify": "^3.0.0" + }, + "dependencies": { + "clone": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/clone/download/clone-2.1.2.tgz", + "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", + "dev": true + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "leven": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/leven/download/leven-2.1.0.tgz", + "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=", + "dev": true + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npm.taobao.org/levn/download/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + } + }, + "lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npm.taobao.org/lines-and-columns/download/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=", + "dev": true + }, + "lint-staged": { + "version": "6.1.1", + "resolved": "https://registry.npm.taobao.org/lint-staged/download/lint-staged-6.1.1.tgz?cache=0&sync_timestamp=1592387031001&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flint-staged%2Fdownload%2Flint-staged-6.1.1.tgz", + "integrity": "sha1-zQjE2bjMwtNxmNHEfOd9Ir5s8yQ=", + "dev": true, + "requires": { + "app-root-path": "^2.0.0", + "chalk": "^2.1.0", + "commander": "^2.11.0", + "cosmiconfig": "^4.0.0", + "debug": "^3.1.0", + "dedent": "^0.7.0", + "execa": "^0.8.0", + "find-parent-dir": "^0.3.0", + "is-glob": "^4.0.0", + "jest-validate": "^21.1.0", + "listr": "^0.13.0", + "lodash": "^4.17.4", + "log-symbols": "^2.0.0", + "minimatch": "^3.0.0", + "npm-which": "^3.0.1", + "p-map": "^1.1.1", + "path-is-inside": "^1.0.2", + "pify": "^3.0.0", + "staged-git-files": "1.0.0", + "stringify-object": "^3.2.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "cosmiconfig": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/cosmiconfig/download/cosmiconfig-4.0.0.tgz", + "integrity": "sha1-dgORVJWAu9LfHlYrwXexPCkJctw=", + "dev": true, + "requires": { + "is-directory": "^0.3.1", + "js-yaml": "^3.9.0", + "parse-json": "^4.0.0", + "require-from-string": "^2.0.1" + } + }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "0.8.0", + "resolved": "https://registry.npm.taobao.org/execa/download/execa-0.8.0.tgz?cache=0&sync_timestamp=1594145237072&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-0.8.0.tgz", + "integrity": "sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=", + "dev": true, + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz?cache=0&sync_timestamp=1594427569171&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-4.1.5.tgz", + "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "p-map": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/p-map/download/p-map-1.2.0.tgz", + "integrity": "sha1-5OlPMR6rvIYzoeeZCBZfyiYkG2s=", + "dev": true + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } + }, + "listr": { + "version": "0.13.0", + "resolved": "https://registry.npm.taobao.org/listr/download/listr-0.13.0.tgz", + "integrity": "sha1-ILsLowuuZg7oTMBQPfS+PVYjiH0=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "cli-truncate": "^0.2.1", + "figures": "^1.7.0", + "indent-string": "^2.1.0", + "is-observable": "^0.2.0", + "is-promise": "^2.1.0", + "is-stream": "^1.1.0", + "listr-silent-renderer": "^1.1.1", + "listr-update-renderer": "^0.4.0", + "listr-verbose-renderer": "^0.4.0", + "log-symbols": "^1.0.2", + "log-update": "^1.0.2", + "ora": "^0.2.3", + "p-map": "^1.1.1", + "rxjs": "^5.4.2", + "stream-to-observable": "^0.2.0", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "cli-cursor": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/cli-cursor/download/cli-cursor-1.0.2.tgz", + "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", + "dev": true, + "requires": { + "restore-cursor": "^1.0.1" + } + }, + "cli-spinners": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/cli-spinners/download/cli-spinners-0.1.2.tgz?cache=0&sync_timestamp=1595080565423&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcli-spinners%2Fdownload%2Fcli-spinners-0.1.2.tgz", + "integrity": "sha1-u3ZNiOGF+54eaiofGXcjGPYF4xw=", + "dev": true + }, + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npm.taobao.org/figures/download/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + } + }, + "indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/indent-string/download/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", + "dev": true, + "requires": { + "repeating": "^2.0.0" + } + }, + "log-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/log-symbols/download/log-symbols-1.0.2.tgz", + "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", + "dev": true, + "requires": { + "chalk": "^1.0.0" + } + }, + "onetime": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/onetime/download/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", + "dev": true + }, + "ora": { + "version": "0.2.3", + "resolved": "https://registry.npm.taobao.org/ora/download/ora-0.2.3.tgz?cache=0&sync_timestamp=1594997498208&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fora%2Fdownload%2Fora-0.2.3.tgz", + "integrity": "sha1-N1J9Igrc1Tw5tzVx11QVbV22V6Q=", + "dev": true, + "requires": { + "chalk": "^1.1.1", + "cli-cursor": "^1.0.2", + "cli-spinners": "^0.1.2", + "object-assign": "^4.0.1" + } + }, + "p-map": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/p-map/download/p-map-1.2.0.tgz", + "integrity": "sha1-5OlPMR6rvIYzoeeZCBZfyiYkG2s=", + "dev": true + }, + "restore-cursor": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/restore-cursor/download/restore-cursor-1.0.1.tgz", + "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", + "dev": true, + "requires": { + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" + } + } + } + }, + "listr-silent-renderer": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/listr-silent-renderer/download/listr-silent-renderer-1.1.1.tgz", + "integrity": "sha1-kktaN1cVN3C/Go4/v3S4u/P5JC4=", + "dev": true + }, + "listr-update-renderer": { + "version": "0.4.0", + "resolved": "https://registry.npm.taobao.org/listr-update-renderer/download/listr-update-renderer-0.4.0.tgz", + "integrity": "sha1-NE2YDaLKLosUW6MFkI8yrj9MyKc=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "cli-truncate": "^0.2.1", + "elegant-spinner": "^1.0.1", + "figures": "^1.7.0", + "indent-string": "^3.0.0", + "log-symbols": "^1.0.2", + "log-update": "^1.0.2", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npm.taobao.org/figures/download/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + } + }, + "indent-string": { + "version": "3.2.0", + "resolved": "https://registry.npm.taobao.org/indent-string/download/indent-string-3.2.0.tgz", + "integrity": "sha1-Sl/W0nzDMvN+VBmlBNu4NxBckok=", + "dev": true + }, + "log-symbols": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/log-symbols/download/log-symbols-1.0.2.tgz", + "integrity": "sha1-N2/3tY6jCGoPCfrMdGF+ylAeGhg=", + "dev": true, + "requires": { + "chalk": "^1.0.0" + } + } + } + }, + "listr-verbose-renderer": { + "version": "0.4.1", + "resolved": "https://registry.npm.taobao.org/listr-verbose-renderer/download/listr-verbose-renderer-0.4.1.tgz", + "integrity": "sha1-ggb0z21S3cWCfl/RSYng6WWTOjU=", + "dev": true, + "requires": { + "chalk": "^1.1.3", + "cli-cursor": "^1.0.2", + "date-fns": "^1.27.2", + "figures": "^1.7.0" + }, + "dependencies": { + "cli-cursor": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/cli-cursor/download/cli-cursor-1.0.2.tgz", + "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", + "dev": true, + "requires": { + "restore-cursor": "^1.0.1" + } + }, + "figures": { + "version": "1.7.0", + "resolved": "https://registry.npm.taobao.org/figures/download/figures-1.7.0.tgz", + "integrity": "sha1-y+Hjr/zxzUS4DK3+0o3Hk6lwHS4=", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5", + "object-assign": "^4.1.0" + } + }, + "onetime": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/onetime/download/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", + "dev": true + }, + "restore-cursor": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/restore-cursor/download/restore-cursor-1.0.1.tgz", + "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", + "dev": true, + "requires": { + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" + } + } + } + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/load-json-file/download/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/parse-json/download/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "^1.2.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + } + } + }, + "loader-fs-cache": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/loader-fs-cache/download/loader-fs-cache-1.0.3.tgz", + "integrity": "sha1-8IZXZG1gcHi+LwoDL4vWndbyd9k=", + "dev": true, + "requires": { + "find-cache-dir": "^0.1.1", + "mkdirp": "^0.5.1" + }, + "dependencies": { + "find-cache-dir": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-0.1.1.tgz", + "integrity": "sha1-yN765XyKUqinhPnjHFfHQumToLk=", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "mkdirp": "^0.5.1", + "pkg-dir": "^1.0.0" + } + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "pkg-dir": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-1.0.0.tgz", + "integrity": "sha1-ektQio1bstYp1EcFb/TpyTFM89Q=", + "dev": true, + "requires": { + "find-up": "^1.0.0" + } + } + } + }, + "loader-runner": { + "version": "2.4.0", + "resolved": "https://registry.npm.taobao.org/loader-runner/download/loader-runner-2.4.0.tgz?cache=0&sync_timestamp=1593786163963&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Floader-runner%2Fdownload%2Floader-runner-2.4.0.tgz", + "integrity": "sha1-7UcGa/5TTX6ExMe5mYwqdWB9k1c=", + "dev": true + }, + "loader-utils": { + "version": "1.4.0", + "resolved": "https://registry.npm.taobao.org/loader-utils/download/loader-utils-1.4.0.tgz", + "integrity": "sha1-xXm140yzSxp07cbB+za/o3HVphM=", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^1.0.1" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz?cache=0&sync_timestamp=1586046271069&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-1.0.1.tgz", + "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + } + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "^2.0.0", + "path-exists": "^3.0.0" + } + }, + "lodash": { + "version": "4.17.19", + "resolved": "https://registry.npm.taobao.org/lodash/download/lodash-4.17.19.tgz?cache=0&sync_timestamp=1594226805918&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flodash%2Fdownload%2Flodash-4.17.19.tgz", + "integrity": "sha1-5I3e2+MLMyF4PFtDAfvTU7weSks=" + }, + "lodash.defaultsdeep": { + "version": "4.6.1", + "resolved": "https://registry.npm.taobao.org/lodash.defaultsdeep/download/lodash.defaultsdeep-4.6.1.tgz", + "integrity": "sha1-US6b1yHSctlOPTpjZT+hdRZ0HKY=", + "dev": true + }, + "lodash.kebabcase": { + "version": "4.1.1", + "resolved": "https://registry.npm.taobao.org/lodash.kebabcase/download/lodash.kebabcase-4.1.1.tgz", + "integrity": "sha1-hImxyw0p/4gZXM7KRI/21swpXDY=", + "dev": true + }, + "lodash.mapvalues": { + "version": "4.6.0", + "resolved": "https://registry.npm.taobao.org/lodash.mapvalues/download/lodash.mapvalues-4.6.0.tgz", + "integrity": "sha1-G6+lAF3p3W9PJmaMMMo3IwzJaJw=", + "dev": true + }, + "lodash.memoize": { + "version": "4.1.2", + "resolved": "https://registry.npm.taobao.org/lodash.memoize/download/lodash.memoize-4.1.2.tgz", + "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "dev": true + }, + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npm.taobao.org/lodash.sortby/download/lodash.sortby-4.7.0.tgz", + "integrity": "sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=", + "dev": true + }, + "lodash.throttle": { + "version": "4.1.1", + "resolved": "https://registry.npm.taobao.org/lodash.throttle/download/lodash.throttle-4.1.1.tgz", + "integrity": "sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ=" + }, + "lodash.transform": { + "version": "4.6.0", + "resolved": "https://registry.npm.taobao.org/lodash.transform/download/lodash.transform-4.6.0.tgz", + "integrity": "sha1-EjBkIvYzJK7YSD0/ODMrX2cFR6A=", + "dev": true + }, + "lodash.uniq": { + "version": "4.5.0", + "resolved": "https://registry.npm.taobao.org/lodash.uniq/download/lodash.uniq-4.5.0.tgz", + "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "dev": true + }, + "log-symbols": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/log-symbols/download/log-symbols-2.2.0.tgz", + "integrity": "sha1-V0Dhxdbw39pK2TI7UzIQfva0xAo=", + "dev": true, + "requires": { + "chalk": "^2.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "log-update": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/log-update/download/log-update-1.0.2.tgz?cache=0&sync_timestamp=1582186637481&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flog-update%2Fdownload%2Flog-update-1.0.2.tgz", + "integrity": "sha1-GZKfZMQJPS0ucHWh2tivWcKWuNE=", + "dev": true, + "requires": { + "ansi-escapes": "^1.0.0", + "cli-cursor": "^1.0.2" + }, + "dependencies": { + "ansi-escapes": { + "version": "1.4.0", + "resolved": "https://registry.npm.taobao.org/ansi-escapes/download/ansi-escapes-1.4.0.tgz", + "integrity": "sha1-06ioOzGapneTZisT52HHkRQiMG4=", + "dev": true + }, + "cli-cursor": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/cli-cursor/download/cli-cursor-1.0.2.tgz", + "integrity": "sha1-ZNo/fValRBLll5S9Ytw1KV6PKYc=", + "dev": true, + "requires": { + "restore-cursor": "^1.0.1" + } + }, + "onetime": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/onetime/download/onetime-1.1.0.tgz", + "integrity": "sha1-ofeDj4MUxRbwXs78vEzP4EtO14k=", + "dev": true + }, + "restore-cursor": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/restore-cursor/download/restore-cursor-1.0.1.tgz", + "integrity": "sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=", + "dev": true, + "requires": { + "exit-hook": "^1.0.0", + "onetime": "^1.0.0" + } + } + } + }, + "loglevel": { + "version": "1.6.8", + "resolved": "https://registry.npm.taobao.org/loglevel/download/loglevel-1.6.8.tgz", + "integrity": "sha1-iiX7ddCSIw7NRFcnDYC1TigBEXE=", + "dev": true + }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/longest/download/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=" + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npm.taobao.org/loose-envify/download/loose-envify-1.4.0.tgz", + "integrity": "sha1-ce5R+nvkyuwaY4OffmgtgTLTDK8=", + "dev": true, + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "lower-case": { + "version": "1.1.4", + "resolved": "https://registry.npm.taobao.org/lower-case/download/lower-case-1.1.4.tgz", + "integrity": "sha1-miyr0bno4K6ZOkv31YdcOcQujqw=", + "dev": true + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-5.1.1.tgz?cache=0&sync_timestamp=1594427569171&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-5.1.1.tgz", + "integrity": "sha1-HaJ+ZxAnGUdpXa9oSOhH8B2EuSA=", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-2.1.0.tgz?cache=0&sync_timestamp=1587567875186&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-2.1.0.tgz", + "integrity": "sha1-XwMQ4YuL6JjMBwCSlaMK5B6R5vU=", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + } + }, + "map-age-cleaner": { + "version": "0.1.3", + "resolved": "https://registry.npm.taobao.org/map-age-cleaner/download/map-age-cleaner-0.1.3.tgz", + "integrity": "sha1-fVg6cwZDTAVf5HSw9FB45uG0uSo=", + "dev": true, + "requires": { + "p-defer": "^1.0.0" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npm.taobao.org/map-cache/download/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "dev": true + }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/map-visit/download/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dev": true, + "requires": { + "object-visit": "^1.0.0" + } + }, + "marked": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/marked/download/marked-1.1.1.tgz?cache=0&sync_timestamp=1594690149591&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmarked%2Fdownload%2Fmarked-1.1.1.tgz", + "integrity": "sha1-5dYbaYQiENXfV7BYVuDJFXJwPmo=" + }, + "mavon-editor": { + "version": "2.9.0", + "resolved": "https://registry.npm.taobao.org/mavon-editor/download/mavon-editor-2.9.0.tgz", + "integrity": "sha1-5Ru83N4YuSNjM6nOsS/tLYRUKQA=", + "requires": { + "highlight.js": "^9.11.0", + "highlight.js-async-webpack": "^1.0.4", + "xss": "^1.0.6" + } + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npm.taobao.org/md5.js/download/md5.js-1.3.5.tgz", + "integrity": "sha1-tdB7jjIW4+J81yjXL3DR5qNCAF8=", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "mdn-data": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/mdn-data/download/mdn-data-2.0.4.tgz?cache=0&sync_timestamp=1593510420945&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmdn-data%2Fdownload%2Fmdn-data-2.0.4.tgz", + "integrity": "sha1-aZs8OKxvHXKAkaZGULZdOIUC/Vs=", + "dev": true + }, + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npm.taobao.org/media-typer/download/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true + }, + "mem": { + "version": "4.3.0", + "resolved": "https://registry.npm.taobao.org/mem/download/mem-4.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmem%2Fdownload%2Fmem-4.3.0.tgz", + "integrity": "sha1-Rhr0l7xK4JYIzbLmDu+2m/90QXg=", + "dev": true, + "requires": { + "map-age-cleaner": "^0.1.1", + "mimic-fn": "^2.0.0", + "p-is-promise": "^2.0.0" + }, + "dependencies": { + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-2.1.0.tgz", + "integrity": "sha1-ftLCzMyvhNP/y3pptXcR/CCDQBs=", + "dev": true + } + } + }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npm.taobao.org/memory-fs/download/memory-fs-0.4.1.tgz?cache=0&sync_timestamp=1570537491040&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmemory-fs%2Fdownload%2Fmemory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "requires": { + "errno": "^0.1.3", + "readable-stream": "^2.0.1" + } + }, + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/merge-descriptors/download/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "dev": true + }, + "merge-source-map": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/merge-source-map/download/merge-source-map-1.1.0.tgz", + "integrity": "sha1-L93n5gIJOfcJBqaPLXrmheTIxkY=", + "dev": true, + "requires": { + "source-map": "^0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + } + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/merge-stream/download/merge-stream-2.0.0.tgz", + "integrity": "sha1-UoI2KaFN0AyXcPtq1H3GMQ8sH2A=", + "dev": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npm.taobao.org/merge2/download/merge2-1.4.1.tgz", + "integrity": "sha1-Q2iJL4hekHRVpv19xVwMnUBJkK4=", + "dev": true + }, + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/methods/download/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true + }, + "micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npm.taobao.org/micromatch/download/micromatch-3.1.10.tgz", + "integrity": "sha1-cIWbyVyYQJUvNZoGij/En57PrCM=", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-6.0.3.tgz", + "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=", + "dev": true + } + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/miller-rabin/download/miller-rabin-4.0.1.tgz", + "integrity": "sha1-8IA1HIZbDcViqEYpZtqlNUPHik0=", + "dev": true, + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.9.tgz", + "integrity": "sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=", + "dev": true + } + } + }, + "mime": { + "version": "2.4.6", + "resolved": "https://registry.npm.taobao.org/mime/download/mime-2.4.6.tgz?cache=0&sync_timestamp=1590596706367&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-2.4.6.tgz", + "integrity": "sha1-5bQHyQ20QvK+tbFiNz0Htpr/pNE=", + "dev": true + }, + "mime-db": { + "version": "1.44.0", + "resolved": "https://registry.npm.taobao.org/mime-db/download/mime-db-1.44.0.tgz", + "integrity": "sha1-+hHF6wrKEzS0Izy01S8QxaYnL5I=", + "dev": true + }, + "mime-types": { + "version": "2.1.27", + "resolved": "https://registry.npm.taobao.org/mime-types/download/mime-types-2.1.27.tgz?cache=0&sync_timestamp=1587700357245&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime-types%2Fdownload%2Fmime-types-2.1.27.tgz", + "integrity": "sha1-R5SfmOJ56lMRn1ci4PNOUpvsAJ8=", + "dev": true, + "requires": { + "mime-db": "1.44.0" + } + }, + "mimic-fn": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/mimic-fn/download/mimic-fn-1.2.0.tgz", + "integrity": "sha1-ggyGo5M0ZA6ZUWkovQP8qIBX0CI=", + "dev": true + }, + "mini-css-extract-plugin": { + "version": "0.8.2", + "resolved": "https://registry.npm.taobao.org/mini-css-extract-plugin/download/mini-css-extract-plugin-0.8.2.tgz?cache=0&sync_timestamp=1576856580721&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmini-css-extract-plugin%2Fdownload%2Fmini-css-extract-plugin-0.8.2.tgz", + "integrity": "sha1-qHXhab6yfIivd92WJ3HJ7tw9oWE=", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "normalize-url": "1.9.1", + "schema-utils": "^1.0.0", + "webpack-sources": "^1.1.0" + }, + "dependencies": { + "normalize-url": { + "version": "1.9.1", + "resolved": "https://registry.npm.taobao.org/normalize-url/download/normalize-url-1.9.1.tgz", + "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "dev": true, + "requires": { + "object-assign": "^4.0.1", + "prepend-http": "^1.0.0", + "query-string": "^4.1.0", + "sort-keys": "^1.0.0" + } + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", + "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/minimalistic-assert/download/minimalistic-assert-1.0.1.tgz", + "integrity": "sha1-LhlN4ERibUoQ5/f7wAznPoPk1cc=", + "dev": true + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/minimalistic-crypto-utils/download/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npm.taobao.org/minimatch/download/minimatch-3.0.4.tgz", + "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npm.taobao.org/minimist/download/minimist-1.2.5.tgz", + "integrity": "sha1-Z9ZgFLZqaoqqDAg8X9WN9OTpdgI=" + }, + "minipass": { + "version": "3.1.3", + "resolved": "https://registry.npm.taobao.org/minipass/download/minipass-3.1.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fminipass%2Fdownload%2Fminipass-3.1.3.tgz", + "integrity": "sha1-fUL/HzljVILhX5zbUxhN7r1YFf0=", + "dev": true, + "requires": { + "yallist": "^4.0.0" + }, + "dependencies": { + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-4.0.0.tgz", + "integrity": "sha1-m7knkNnA7/7GO+c1GeEaNQGaOnI=", + "dev": true + } + } + }, + "minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/minipass-collect/download/minipass-collect-1.0.2.tgz", + "integrity": "sha1-IrgTv3Rdxu26JXa5QAIq1u3Ixhc=", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/minipass-flush/download/minipass-flush-1.0.5.tgz", + "integrity": "sha1-gucTXX6JpQ/+ZGEKeHlTxMTLs3M=", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "minipass-pipeline": { + "version": "1.2.3", + "resolved": "https://registry.npm.taobao.org/minipass-pipeline/download/minipass-pipeline-1.2.3.tgz", + "integrity": "sha1-VfeDkwfXSFnW6K2pw+vnLOwhajQ=", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "mississippi": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/mississippi/download/mississippi-3.0.0.tgz", + "integrity": "sha1-6goykfl+C16HdrNj1fChLZTGcCI=", + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^3.0.0", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npm.taobao.org/mixin-deep/download/mixin-deep-1.3.2.tgz", + "integrity": "sha1-ESC0PcNZp4Xc5ltVuC4lfM9HlWY=", + "dev": true, + "requires": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/is-extendable/download/is-extendable-1.0.1.tgz", + "integrity": "sha1-p0cPnkJnM9gb2B4RVSZOOjUHyrQ=", + "dev": true, + "requires": { + "is-plain-object": "^2.0.4" + } + } + } + }, + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.5.tgz?cache=0&sync_timestamp=1587535418745&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-0.5.5.tgz", + "integrity": "sha1-2Rzv1i0UNsoPQWIOJRKI1CAJne8=", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "mocha": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/mocha/download/mocha-5.2.0.tgz", + "integrity": "sha1-bYrlCPWRZ/lA8rWzxKYSrlDJCuY=", + "dev": true, + "requires": { + "browser-stdout": "1.3.1", + "commander": "2.15.1", + "debug": "3.1.0", + "diff": "3.5.0", + "escape-string-regexp": "1.0.5", + "glob": "7.1.2", + "growl": "1.10.5", + "he": "1.1.1", + "minimatch": "3.0.4", + "mkdirp": "0.5.1", + "supports-color": "5.4.0" + }, + "dependencies": { + "commander": { + "version": "2.15.1", + "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.15.1.tgz?cache=0&sync_timestamp=1595168173997&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.15.1.tgz", + "integrity": "sha1-30boZ9D8Kuxmo0ZitAapzK//Ww8=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npm.taobao.org/glob/download/glob-7.1.2.tgz?cache=0&sync_timestamp=1573078079496&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fglob%2Fdownload%2Fglob-7.1.2.tgz", + "integrity": "sha1-wZyd+aAocC1nhhI4SmVSQExjbRU=", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npm.taobao.org/minimist/download/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npm.taobao.org/mkdirp/download/mkdirp-0.5.1.tgz?cache=0&sync_timestamp=1587535418745&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmkdirp%2Fdownload%2Fmkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "supports-color": { + "version": "5.4.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.4.0.tgz", + "integrity": "sha1-HGszdALCE3YF7+GfEP7DkPb6q1Q=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "mocha-webpack": { + "version": "2.0.0-beta.0", + "resolved": "https://registry.npm.taobao.org/mocha-webpack/download/mocha-webpack-2.0.0-beta.0.tgz", + "integrity": "sha1-2F/Jpw+CpK1ZW3cCoRgWBd+llUk=", + "dev": true, + "requires": { + "babel-runtime": "^6.18.0", + "chalk": "^2.3.0", + "chokidar": "^2.0.2", + "glob-parent": "^3.1.0", + "globby": "^7.1.1", + "interpret": "^1.0.1", + "is-glob": "^4.0.0", + "loader-utils": "^1.1.0", + "lodash": "^4.3.0", + "memory-fs": "^0.4.1", + "nodent-runtime": "^3.0.3", + "normalize-path": "^2.0.1", + "progress": "^2.0.0", + "source-map-support": "^0.5.0", + "strip-ansi": "^4.0.0", + "toposort": "^1.0.0", + "yargs": "^11.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz", + "integrity": "sha1-vLJLTzeTTZqnrBe0ra+J58du8us=", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.13.1.tgz?cache=0&sync_timestamp=1593261363626&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-1.13.1.tgz", + "integrity": "sha1-WYr+VHVbKGilMw0q/51Ou1Mgm2U=", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-2.1.8.tgz?cache=0&sync_timestamp=1594864731636&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-2.1.8.tgz", + "integrity": "sha1-gEs6e2qZNYw8XGHnHYco8EHP+Rc=", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-3.0.0.tgz", + "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=", + "dev": true + } + } + }, + "cliui": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-4.1.0.tgz", + "integrity": "sha1-NIQi2+gtgAswIu709qwQvy5NG0k=", + "dev": true, + "requires": { + "string-width": "^2.1.1", + "strip-ansi": "^4.0.0", + "wrap-ansi": "^2.0.0" + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-1.2.13.tgz?cache=0&sync_timestamp=1588787369955&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffsevents%2Fdownload%2Ffsevents-1.2.13.tgz", + "integrity": "sha1-8yXLBFVZJCi88Rs4M3DvcOO/zDg=", + "dev": true, + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "globby": { + "version": "7.1.1", + "resolved": "https://registry.npm.taobao.org/globby/download/globby-7.1.1.tgz", + "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", + "dev": true, + "requires": { + "array-union": "^1.0.1", + "dir-glob": "^2.0.0", + "glob": "^7.1.2", + "ignore": "^3.3.5", + "pify": "^3.0.0", + "slash": "^1.0.0" + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-2.2.1.tgz?cache=0&sync_timestamp=1584985910691&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-2.2.1.tgz", + "integrity": "sha1-DodiKjMlqjPokihcr4tOhGUppSU=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/slash/download/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npm.taobao.org/source-map-support/download/source-map-support-0.5.19.tgz?cache=0&sync_timestamp=1587719517036&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-support%2Fdownload%2Fsource-map-support-0.5.19.tgz", + "integrity": "sha1-qYti+G3K9PZzmWSMCFKRq56P7WE=", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/y18n/download/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true + }, + "yargs": { + "version": "11.1.1", + "resolved": "https://registry.npm.taobao.org/yargs/download/yargs-11.1.1.tgz?cache=0&sync_timestamp=1594421046064&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-11.1.1.tgz", + "integrity": "sha1-UFLv40RqTfXtZpyZWIbMDxNwJ2Y=", + "dev": true, + "requires": { + "cliui": "^4.0.0", + "decamelize": "^1.1.1", + "find-up": "^2.1.0", + "get-caller-file": "^1.0.1", + "os-locale": "^3.1.0", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^2.0.0", + "which-module": "^2.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^9.0.2" + } + } + } + }, + "moment": { + "version": "2.27.0", + "resolved": "https://registry.npm.taobao.org/moment/download/moment-2.27.0.tgz?cache=0&sync_timestamp=1592516115109&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmoment%2Fdownload%2Fmoment-2.27.0.tgz", + "integrity": "sha1-i/9OPiaiNiIN/j423nVrbrqgEF0=" + }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/move-concurrently/download/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "dev": true, + "requires": { + "aproba": "^1.1.1", + "copy-concurrently": "^1.0.0", + "fs-write-stream-atomic": "^1.0.8", + "mkdirp": "^0.5.1", + "rimraf": "^2.5.4", + "run-queue": "^1.0.3" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "multicast-dns": { + "version": "6.2.3", + "resolved": "https://registry.npm.taobao.org/multicast-dns/download/multicast-dns-6.2.3.tgz", + "integrity": "sha1-oOx72QVcQoL3kMPIL04o2zsxsik=", + "dev": true, + "requires": { + "dns-packet": "^1.3.1", + "thunky": "^1.0.2" + } + }, + "multicast-dns-service-types": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/multicast-dns-service-types/download/multicast-dns-service-types-1.1.0.tgz", + "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", + "dev": true + }, + "mute-stream": { + "version": "0.0.7", + "resolved": "https://registry.npm.taobao.org/mute-stream/download/mute-stream-0.0.7.tgz", + "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "dev": true + }, + "mz": { + "version": "2.7.0", + "resolved": "https://registry.npm.taobao.org/mz/download/mz-2.7.0.tgz", + "integrity": "sha1-lQCAV6Vsr63CvGPd5/n/aVWUjjI=", + "dev": true, + "requires": { + "any-promise": "^1.0.0", + "object-assign": "^4.0.1", + "thenify-all": "^1.0.0" + } + }, + "nan": { + "version": "2.14.1", + "resolved": "https://registry.npm.taobao.org/nan/download/nan-2.14.1.tgz?cache=0&sync_timestamp=1587497111086&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnan%2Fdownload%2Fnan-2.14.1.tgz", + "integrity": "sha1-174036MQW5FJTDFHCJMV7/iHSwE=", + "dev": true, + "optional": true + }, + "nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npm.taobao.org/nanomatch/download/nanomatch-1.2.13.tgz", + "integrity": "sha1-uHqKpPwN6P5r6IiVs4mD/yZb0Rk=", + "dev": true, + "requires": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "dependencies": { + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-6.0.3.tgz", + "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=", + "dev": true + } + } + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npm.taobao.org/natural-compare/download/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=", + "dev": true + }, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npm.taobao.org/negotiator/download/negotiator-0.6.2.tgz", + "integrity": "sha1-/qz3zPUlp3rpY0Q2pkiD/+yjRvs=", + "dev": true + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npm.taobao.org/neo-async/download/neo-async-2.6.2.tgz", + "integrity": "sha1-tKr7k+OustgXTKU88WOrfXMIMF8=", + "dev": true + }, + "nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/nice-try/download/nice-try-1.0.5.tgz", + "integrity": "sha1-ozeKdpbOfSI+iPybdkvX7xCJ42Y=", + "dev": true + }, + "no-case": { + "version": "2.3.2", + "resolved": "https://registry.npm.taobao.org/no-case/download/no-case-2.3.2.tgz?cache=0&sync_timestamp=1576748705107&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fno-case%2Fdownload%2Fno-case-2.3.2.tgz", + "integrity": "sha1-YLgTOWvjmz8SiKTB7V0efSi0ZKw=", + "dev": true, + "requires": { + "lower-case": "^1.1.1" + } + }, + "node-forge": { + "version": "0.9.0", + "resolved": "https://registry.npm.taobao.org/node-forge/download/node-forge-0.9.0.tgz", + "integrity": "sha1-1iQFDtu0SHStyhK7mlLsY8t4JXk=", + "dev": true + }, + "node-ipc": { + "version": "9.1.1", + "resolved": "https://registry.npm.taobao.org/node-ipc/download/node-ipc-9.1.1.tgz", + "integrity": "sha1-TiRe1pOOZRAOWV68XcNLFujdXWk=", + "dev": true, + "requires": { + "event-pubsub": "4.3.0", + "js-message": "1.0.5", + "js-queue": "2.0.0" + } + }, + "node-libs-browser": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/node-libs-browser/download/node-libs-browser-2.2.1.tgz", + "integrity": "sha1-tk9RPRgzhiX5A0bSew0jXmMfZCU=", + "dev": true, + "requires": { + "assert": "^1.1.1", + "browserify-zlib": "^0.2.0", + "buffer": "^4.3.0", + "console-browserify": "^1.1.0", + "constants-browserify": "^1.0.0", + "crypto-browserify": "^3.11.0", + "domain-browser": "^1.1.1", + "events": "^3.0.0", + "https-browserify": "^1.0.0", + "os-browserify": "^0.3.0", + "path-browserify": "0.0.1", + "process": "^0.11.10", + "punycode": "^1.2.4", + "querystring-es3": "^0.2.0", + "readable-stream": "^2.3.3", + "stream-browserify": "^2.0.1", + "stream-http": "^2.7.2", + "string_decoder": "^1.0.0", + "timers-browserify": "^2.0.4", + "tty-browserify": "0.0.0", + "url": "^0.11.0", + "util": "^0.11.0", + "vm-browserify": "^1.0.1" + }, + "dependencies": { + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true + } + } + }, + "node-releases": { + "version": "1.1.59", + "resolved": "https://registry.npm.taobao.org/node-releases/download/node-releases-1.1.59.tgz?cache=0&sync_timestamp=1594212234484&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnode-releases%2Fdownload%2Fnode-releases-1.1.59.tgz", + "integrity": "sha1-TWSDMGQc7HBL/xD45P4o5FOrjo4=", + "dev": true + }, + "nodent-runtime": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/nodent-runtime/download/nodent-runtime-3.2.1.tgz", + "integrity": "sha1-nidV2F4592Qojw1HUuvP4+VB4A4=", + "dev": true + }, + "nopt": { + "version": "4.0.3", + "resolved": "https://registry.npm.taobao.org/nopt/download/nopt-4.0.3.tgz", + "integrity": "sha1-o3XK2dAv2SEnjZVMIlTVqlfhXkg=", + "dev": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npm.taobao.org/normalize-package-data/download/normalize-package-data-2.5.0.tgz", + "integrity": "sha1-5m2xg4sgDB38IzIl0SyzZSDiNKg=", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-3.0.0.tgz", + "integrity": "sha1-Dc1p/yOhybEf0JeDFmRKA4ghamU=", + "dev": true + }, + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/normalize-range/download/normalize-range-0.1.2.tgz", + "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "dev": true + }, + "normalize-url": { + "version": "3.3.0", + "resolved": "https://registry.npm.taobao.org/normalize-url/download/normalize-url-3.3.0.tgz", + "integrity": "sha1-suHE3E98bVd0PfczpPWXjRhlBVk=", + "dev": true + }, + "normalize.css": { + "version": "8.0.1", + "resolved": "https://registry.npm.taobao.org/normalize.css/download/normalize.css-8.0.1.tgz?cache=0&sync_timestamp=1588361527323&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fnormalize.css%2Fdownload%2Fnormalize.css-8.0.1.tgz", + "integrity": "sha1-m5iiCHOLnMJjTKrLxC0THJdIe/M=" + }, + "npm-path": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/npm-path/download/npm-path-2.0.4.tgz", + "integrity": "sha1-xkE0el/51qCeTZvOVYDE9QUnjmQ=", + "dev": true, + "requires": { + "which": "^1.2.10" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/npm-run-path/download/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "^2.0.0" + } + }, + "npm-which": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/npm-which/download/npm-which-3.0.1.tgz", + "integrity": "sha1-kiXybsOihcIJyuZ8OxGmtKtxQKo=", + "dev": true, + "requires": { + "commander": "^2.9.0", + "npm-path": "^2.0.2", + "which": "^1.2.10" + } + }, + "nth-check": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/nth-check/download/nth-check-1.0.2.tgz", + "integrity": "sha1-sr0pXDfj3VijvwcAN2Zjuk2c8Fw=", + "dev": true, + "requires": { + "boolbase": "~1.0.0" + } + }, + "num2fraction": { + "version": "1.2.2", + "resolved": "https://registry.npm.taobao.org/num2fraction/download/num2fraction-1.2.2.tgz", + "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "dev": true + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/number-is-nan/download/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "nwsapi": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/nwsapi/download/nwsapi-2.2.0.tgz", + "integrity": "sha1-IEh5qePQaP8qVROcLHcngGgaOLc=", + "dev": true + }, + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npm.taobao.org/oauth-sign/download/oauth-sign-0.9.0.tgz", + "integrity": "sha1-R6ewFrqmi1+g7PPe4IqFxnmsZFU=", + "dev": true + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npm.taobao.org/object-assign/download/object-assign-4.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-assign%2Fdownload%2Fobject-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true + }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npm.taobao.org/object-copy/download/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dev": true, + "requires": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "object-hash": { + "version": "1.3.1", + "resolved": "https://registry.npm.taobao.org/object-hash/download/object-hash-1.3.1.tgz", + "integrity": "sha1-/eRSCYqVHLFF8Dm7fUVUSd3BJt8=", + "dev": true + }, + "object-inspect": { + "version": "1.7.0", + "resolved": "https://registry.npm.taobao.org/object-inspect/download/object-inspect-1.7.0.tgz?cache=0&sync_timestamp=1592545149361&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-inspect%2Fdownload%2Fobject-inspect-1.7.0.tgz", + "integrity": "sha1-9Pa9GBrXfwBrXs5gvQtvOY/3Smc=" + }, + "object-is": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/object-is/download/object-is-1.1.2.tgz?cache=0&sync_timestamp=1586894009620&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject-is%2Fdownload%2Fobject-is-1.1.2.tgz", + "integrity": "sha1-xdLof/nhGfeLegiEQVGeLuwVc7Y=", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/object-keys/download/object-keys-1.1.1.tgz", + "integrity": "sha1-HEfyct8nfzsdrwYWd9nILiMixg4=" + }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/object-visit/download/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dev": true, + "requires": { + "isobject": "^3.0.0" + } + }, + "object.assign": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/object.assign/download/object.assign-4.1.0.tgz", + "integrity": "sha1-lovxEA15Vrs8oIbwBvhGs7xACNo=", + "requires": { + "define-properties": "^1.1.2", + "function-bind": "^1.1.1", + "has-symbols": "^1.0.0", + "object-keys": "^1.0.11" + } + }, + "object.getownpropertydescriptors": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/object.getownpropertydescriptors/download/object.getownpropertydescriptors-2.1.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fobject.getownpropertydescriptors%2Fdownload%2Fobject.getownpropertydescriptors-2.1.0.tgz", + "integrity": "sha1-Npvx+VktiridcS3O1cuBx8U1Jkk=", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/object.pick/download/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dev": true, + "requires": { + "isobject": "^3.0.1" + } + }, + "object.values": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/object.values/download/object.values-1.1.1.tgz", + "integrity": "sha1-aKmezeNWt+kpWjxeDOMdyMlT3l4=", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1", + "has": "^1.0.3" + } + }, + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/obuf/download/obuf-1.1.2.tgz", + "integrity": "sha1-Cb6jND1BhZ69RGKS0RydTbYZCE4=", + "dev": true + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/on-finished/download/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/on-headers/download/on-headers-1.0.2.tgz", + "integrity": "sha1-dysK5qqlJcOZ5Imt+tkMQD6zwo8=", + "dev": true + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npm.taobao.org/once/download/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/onetime/download/onetime-2.0.1.tgz", + "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", + "dev": true, + "requires": { + "mimic-fn": "^1.0.0" + } + }, + "open": { + "version": "6.4.0", + "resolved": "https://registry.npm.taobao.org/open/download/open-6.4.0.tgz?cache=0&sync_timestamp=1595208391438&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fopen%2Fdownload%2Fopen-6.4.0.tgz", + "integrity": "sha1-XBPpbQ3IlGhhZPGJZez+iJ7PyKk=", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + } + }, + "opener": { + "version": "1.5.1", + "resolved": "https://registry.npm.taobao.org/opener/download/opener-1.5.1.tgz", + "integrity": "sha1-bS8Od/GgrwAyrKcWwsH7uOfoq+0=", + "dev": true + }, + "opn": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/opn/download/opn-5.5.0.tgz", + "integrity": "sha1-/HFk+rVtI1kExRw7J9pnWMo7m/w=", + "dev": true, + "requires": { + "is-wsl": "^1.1.0" + } + }, + "optionator": { + "version": "0.8.3", + "resolved": "https://registry.npm.taobao.org/optionator/download/optionator-0.8.3.tgz?cache=0&sync_timestamp=1585966141328&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Foptionator%2Fdownload%2Foptionator-0.8.3.tgz", + "integrity": "sha1-hPodA2/p08fiHZmIS2ARZ+yPtJU=", + "dev": true, + "requires": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + } + }, + "ora": { + "version": "3.4.0", + "resolved": "https://registry.npm.taobao.org/ora/download/ora-3.4.0.tgz?cache=0&sync_timestamp=1594997498208&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fora%2Fdownload%2Fora-3.4.0.tgz", + "integrity": "sha1-vwdSSRBZo+8+1MhQl1Md6f280xg=", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "cli-cursor": "^2.1.0", + "cli-spinners": "^2.0.0", + "log-symbols": "^2.2.0", + "strip-ansi": "^5.2.0", + "wcwidth": "^1.0.1" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "original": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/original/download/original-1.0.2.tgz", + "integrity": "sha1-5EKmHP/hxf0gpl8yYcJmY7MD8l8=", + "dev": true, + "requires": { + "url-parse": "^1.4.3" + } + }, + "os-browserify": { + "version": "0.3.0", + "resolved": "https://registry.npm.taobao.org/os-browserify/download/os-browserify-0.3.0.tgz", + "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", + "dev": true + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/os-homedir/download/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "os-locale": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/os-locale/download/os-locale-3.1.0.tgz?cache=0&sync_timestamp=1584865484693&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fos-locale%2Fdownload%2Fos-locale-3.1.0.tgz", + "integrity": "sha1-qAKm7hfyTBBIOrmTVxnO9O0Wvxo=", + "dev": true, + "requires": { + "execa": "^1.0.0", + "lcid": "^2.0.0", + "mem": "^4.0.0" + } + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/os-tmpdir/download/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npm.taobao.org/osenv/download/osenv-0.1.5.tgz", + "integrity": "sha1-hc36+uso6Gd/QW4odZK18/SepBA=", + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, + "p-defer": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/p-defer/download/p-defer-1.0.0.tgz?cache=0&sync_timestamp=1559922734651&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-defer%2Fdownload%2Fp-defer-1.0.0.tgz", + "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", + "dev": true + }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/p-finally/download/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-is-promise": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/p-is-promise/download/p-is-promise-2.1.0.tgz", + "integrity": "sha1-kYzrrqJIpiz3/6uOO8qMX4gvxC4=", + "dev": true + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-1.3.0.tgz?cache=0&sync_timestamp=1594559696906&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-1.3.0.tgz", + "integrity": "sha1-uGvV8MJWkJEcdZD8v8IBDVSzzLg=", + "dev": true, + "requires": { + "p-try": "^1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "^1.1.0" + } + }, + "p-map": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/p-map/download/p-map-2.1.0.tgz", + "integrity": "sha1-MQko/u+cnsxltosXaTAYpmXOoXU=", + "dev": true + }, + "p-retry": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/p-retry/download/p-retry-3.0.1.tgz", + "integrity": "sha1-MWtMiJPiyNwc+okfQGxLQivr8yg=", + "dev": true, + "requires": { + "retry": "^0.12.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npm.taobao.org/pako/download/pako-1.0.11.tgz", + "integrity": "sha1-bJWZ00DVTf05RjgCUqNXBaa5kr8=", + "dev": true + }, + "parallel-transform": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/parallel-transform/download/parallel-transform-1.2.0.tgz", + "integrity": "sha1-kEnKN9bLIYLDsdLHIL6U0UpYFPw=", + "dev": true, + "requires": { + "cyclist": "^1.0.1", + "inherits": "^2.0.3", + "readable-stream": "^2.1.5" + } + }, + "param-case": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/param-case/download/param-case-2.1.1.tgz?cache=0&sync_timestamp=1576721608924&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fparam-case%2Fdownload%2Fparam-case-2.1.1.tgz", + "integrity": "sha1-35T9jPZTHs915r75oIWPvHK+Ikc=", + "dev": true, + "requires": { + "no-case": "^2.2.0" + } + }, + "parse-asn1": { + "version": "5.1.5", + "resolved": "https://registry.npm.taobao.org/parse-asn1/download/parse-asn1-5.1.5.tgz", + "integrity": "sha1-ADJxND2ljclMrOSU+u89IUfs6g4=", + "dev": true, + "requires": { + "asn1.js": "^4.0.0", + "browserify-aes": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/parse-json/download/parse-json-4.0.0.tgz", + "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "dev": true, + "requires": { + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1" + } + }, + "parse5": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/parse5/download/parse5-5.1.0.tgz", + "integrity": "sha1-xZNByXI/QUxFKXVWTHwApo1YrNI=", + "dev": true + }, + "parse5-htmlparser2-tree-adapter": { + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/parse5-htmlparser2-tree-adapter/download/parse5-htmlparser2-tree-adapter-5.1.1.tgz", + "integrity": "sha1-6MdD1OkhlNUpPs3isIvjHmdGHLw=", + "dev": true, + "requires": { + "parse5": "^5.1.1" + }, + "dependencies": { + "parse5": { + "version": "5.1.1", + "resolved": "https://registry.npm.taobao.org/parse5/download/parse5-5.1.1.tgz", + "integrity": "sha1-9o5OW6GFKsLK3AD0VV//bCq7YXg=", + "dev": true + } + } + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npm.taobao.org/parseurl/download/parseurl-1.3.3.tgz", + "integrity": "sha1-naGee+6NEt/wUT7Vt2lXeTvC6NQ=", + "dev": true + }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/pascalcase/download/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "dev": true + }, + "path-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npm.taobao.org/path-browserify/download/path-browserify-0.0.1.tgz", + "integrity": "sha1-5sTd1+06onxoogzE5Q4aTug7vEo=", + "dev": true + }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/path-dirname/download/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", + "dev": true + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/path-exists/download/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/path-is-absolute/download/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/path-is-inside/download/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true + }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/path-key/download/path-key-2.0.1.tgz?cache=0&sync_timestamp=1574441431664&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpath-key%2Fdownload%2Fpath-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npm.taobao.org/path-parse/download/path-parse-1.0.6.tgz", + "integrity": "sha1-1i27VnlAXXLEc37FhgDp3c8G0kw=" + }, + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npm.taobao.org/path-to-regexp/download/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "dev": true + }, + "path-type": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/path-type/download/path-type-3.0.0.tgz", + "integrity": "sha1-zvMdyOCho7sNEFwM2Xzzv0f0428=", + "dev": true, + "requires": { + "pify": "^3.0.0" + }, + "dependencies": { + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + } + } + }, + "pathval": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/pathval/download/pathval-1.1.0.tgz", + "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", + "dev": true + }, + "pbkdf2": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/pbkdf2/download/pbkdf2-3.1.1.tgz?cache=0&sync_timestamp=1591275684229&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpbkdf2%2Fdownload%2Fpbkdf2-3.1.1.tgz", + "integrity": "sha1-y4cksPramEWWhW0abrr9NYRlS5Q=", + "dev": true, + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/performance-now/download/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true + }, + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npm.taobao.org/picomatch/download/picomatch-2.2.2.tgz", + "integrity": "sha1-IfMz6ba46v8CRo9RRupAbTRfTa0=", + "dev": true, + "optional": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/pify/download/pify-4.0.1.tgz", + "integrity": "sha1-SyzSXFDVmHNcUCkiJP2MbfQeMjE=", + "dev": true + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npm.taobao.org/pinkie/download/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/pinkie-promise/download/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "^2.0.0" + } + }, + "pkg-dir": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-3.0.0.tgz", + "integrity": "sha1-J0kCDyOe2ZCIGx9xIQ1R62UjvqM=", + "dev": true, + "requires": { + "find-up": "^3.0.0" + }, + "dependencies": { + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz", + "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz", + "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.3.0.tgz?cache=0&sync_timestamp=1594559696906&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-2.3.0.tgz", + "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz", + "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz", + "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", + "dev": true + } + } + }, + "pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/pkg-up/download/pkg-up-2.0.0.tgz", + "integrity": "sha1-yBmscoBZpGHKscOImivjxJoATX8=", + "dev": true, + "requires": { + "find-up": "^2.1.0" + } + }, + "pluralize": { + "version": "7.0.0", + "resolved": "https://registry.npm.taobao.org/pluralize/download/pluralize-7.0.0.tgz", + "integrity": "sha1-KYuJ34uTsCIdv0Ia0rGx6iP8Z3c=", + "dev": true + }, + "pn": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/pn/download/pn-1.1.0.tgz", + "integrity": "sha1-4vTO8OIZ9GPBeas3Rj5OHs3Muvs=", + "dev": true + }, + "popper.js": { + "version": "1.16.1", + "resolved": "https://registry.npm.taobao.org/popper.js/download/popper.js-1.16.1.tgz", + "integrity": "sha1-KiI8s9x7YhPXQOQDcr5A3kPmWxs=" + }, + "portfinder": { + "version": "1.0.27", + "resolved": "https://registry.npm.taobao.org/portfinder/download/portfinder-1.0.27.tgz?cache=0&sync_timestamp=1595216077180&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fportfinder%2Fdownload%2Fportfinder-1.0.27.tgz", + "integrity": "sha1-pBMzwRa15fPTgPl0WsLzUITEx1g=", + "dev": true, + "requires": { + "async": "^2.6.2", + "debug": "^3.1.1", + "mkdirp": "^0.5.1" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.6.tgz", + "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", + "dev": true + } + } + }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/posix-character-classes/download/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "dev": true + }, + "postcss": { + "version": "7.0.32", + "resolved": "https://registry.npm.taobao.org/postcss/download/postcss-7.0.32.tgz?cache=0&sync_timestamp=1591102414113&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-7.0.32.tgz", + "integrity": "sha1-QxDW7jRwU9o0M9sr5JKIPWLOxZ0=", + "dev": true, + "requires": { + "chalk": "^2.4.2", + "source-map": "^0.6.1", + "supports-color": "^6.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "dependencies": { + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-calc": { + "version": "7.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-calc/download/postcss-calc-7.0.2.tgz?cache=0&sync_timestamp=1582014221563&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-calc%2Fdownload%2Fpostcss-calc-7.0.2.tgz", + "integrity": "sha1-UE780AjKAnMSBWiweSsWzc3oqsE=", + "dev": true, + "requires": { + "postcss": "^7.0.27", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.0.2" + } + }, + "postcss-colormin": { + "version": "4.0.3", + "resolved": "https://registry.npm.taobao.org/postcss-colormin/download/postcss-colormin-4.0.3.tgz", + "integrity": "sha1-rgYLzpPteUrHEmTwgTLVUJVr04E=", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "color": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083210998&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-convert-values": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/postcss-convert-values/download/postcss-convert-values-4.0.1.tgz", + "integrity": "sha1-yjgT7U2g+BL51DcDWE5Enr4Ymn8=", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083210998&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-discard-comments": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-discard-comments/download/postcss-discard-comments-4.0.2.tgz", + "integrity": "sha1-H7q9LCRr/2qq15l7KwkY9NevQDM=", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-duplicates": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-discard-duplicates/download/postcss-discard-duplicates-4.0.2.tgz", + "integrity": "sha1-P+EzzTyCKC5VD8myORdqkge3hOs=", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-empty": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/postcss-discard-empty/download/postcss-discard-empty-4.0.1.tgz", + "integrity": "sha1-yMlR6fc+2UKAGUWERKAq2Qu592U=", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-discard-overridden": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/postcss-discard-overridden/download/postcss-discard-overridden-4.0.1.tgz", + "integrity": "sha1-ZSrvipZybwKfXj4AFG7npOdV/1c=", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-load-config": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/postcss-load-config/download/postcss-load-config-2.1.0.tgz", + "integrity": "sha1-yE1pK3u3tB3c7ZTuYuirMbQXsAM=", + "dev": true, + "requires": { + "cosmiconfig": "^5.0.0", + "import-cwd": "^2.0.0" + } + }, + "postcss-loader": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/postcss-loader/download/postcss-loader-3.0.0.tgz", + "integrity": "sha1-a5eUPkfHLYRfqeA/Jzdz1OjdbC0=", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "postcss": "^7.0.0", + "postcss-load-config": "^2.0.0", + "schema-utils": "^1.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", + "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "postcss-merge-longhand": { + "version": "4.0.11", + "resolved": "https://registry.npm.taobao.org/postcss-merge-longhand/download/postcss-merge-longhand-4.0.11.tgz", + "integrity": "sha1-YvSaE+Sg7gTnuY9CuxYGLKJUniQ=", + "dev": true, + "requires": { + "css-color-names": "0.0.4", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "stylehacks": "^4.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083210998&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-merge-rules": { + "version": "4.0.3", + "resolved": "https://registry.npm.taobao.org/postcss-merge-rules/download/postcss-merge-rules-4.0.3.tgz", + "integrity": "sha1-NivqT/Wh+Y5AdacTxsslrv75plA=", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "cssnano-util-same-parent": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0", + "vendors": "^1.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-3.1.2.tgz", + "integrity": "sha1-sxD1xMD9r3b5SQK7qjDbaqhPUnA=", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-minify-font-values": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-minify-font-values/download/postcss-minify-font-values-4.0.2.tgz", + "integrity": "sha1-zUw0TM5HQ0P6xdgiBqssvLiv1aY=", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083210998&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-minify-gradients": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-minify-gradients/download/postcss-minify-gradients-4.0.2.tgz", + "integrity": "sha1-k7KcL/UJnFNe7NpWxKpuZlpmNHE=", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "is-color-stop": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083210998&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-minify-params": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-minify-params/download/postcss-minify-params-4.0.2.tgz", + "integrity": "sha1-a5zvAwwR41Jh+V9hjJADbWgNuHQ=", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "browserslist": "^4.0.0", + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "uniqs": "^2.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083210998&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-minify-selectors": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-minify-selectors/download/postcss-minify-selectors-4.0.2.tgz", + "integrity": "sha1-4uXrQL/uUA0M2SQ1APX46kJi+9g=", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-3.1.2.tgz", + "integrity": "sha1-sxD1xMD9r3b5SQK7qjDbaqhPUnA=", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "postcss-modules-extract-imports": { + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/postcss-modules-extract-imports/download/postcss-modules-extract-imports-1.2.1.tgz", + "integrity": "sha1-3IfjQUjsfqtfeR981YSYMzdbdBo=", + "dev": true, + "requires": { + "postcss": "^6.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npm.taobao.org/postcss/download/postcss-6.0.23.tgz?cache=0&sync_timestamp=1591102414113&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-6.0.23.tgz", + "integrity": "sha1-YcgswyisYOZ3ZF+XkFTrmLwOMyQ=", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-modules-local-by-default": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/postcss-modules-local-by-default/download/postcss-modules-local-by-default-1.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-local-by-default%2Fdownload%2Fpostcss-modules-local-by-default-1.2.0.tgz", + "integrity": "sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk=", + "dev": true, + "requires": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npm.taobao.org/postcss/download/postcss-6.0.23.tgz?cache=0&sync_timestamp=1591102414113&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-6.0.23.tgz", + "integrity": "sha1-YcgswyisYOZ3ZF+XkFTrmLwOMyQ=", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-modules-scope": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/postcss-modules-scope/download/postcss-modules-scope-1.1.0.tgz", + "integrity": "sha1-1upkmUx5+XtipytCb75gVqGUu5A=", + "dev": true, + "requires": { + "css-selector-tokenizer": "^0.7.0", + "postcss": "^6.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npm.taobao.org/postcss/download/postcss-6.0.23.tgz?cache=0&sync_timestamp=1591102414113&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-6.0.23.tgz", + "integrity": "sha1-YcgswyisYOZ3ZF+XkFTrmLwOMyQ=", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-modules-values": { + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/postcss-modules-values/download/postcss-modules-values-1.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-modules-values%2Fdownload%2Fpostcss-modules-values-1.3.0.tgz", + "integrity": "sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA=", + "dev": true, + "requires": { + "icss-replace-symbols": "^1.1.0", + "postcss": "^6.0.1" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "postcss": { + "version": "6.0.23", + "resolved": "https://registry.npm.taobao.org/postcss/download/postcss-6.0.23.tgz?cache=0&sync_timestamp=1591102414113&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss%2Fdownload%2Fpostcss-6.0.23.tgz", + "integrity": "sha1-YcgswyisYOZ3ZF+XkFTrmLwOMyQ=", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "source-map": "^0.6.1", + "supports-color": "^5.4.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "postcss-normalize-charset": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-charset/download/postcss-normalize-charset-4.0.1.tgz", + "integrity": "sha1-izWt067oOhNrBHHg1ZvlilAoXdQ=", + "dev": true, + "requires": { + "postcss": "^7.0.0" + } + }, + "postcss-normalize-display-values": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-display-values/download/postcss-normalize-display-values-4.0.2.tgz", + "integrity": "sha1-Db4EpM6QY9RmftK+R2u4MMglk1o=", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083210998&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-normalize-positions": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-positions/download/postcss-normalize-positions-4.0.2.tgz", + "integrity": "sha1-BfdX+E8mBDc3g2ipH4ky1LECkX8=", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083210998&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-normalize-repeat-style": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-repeat-style/download/postcss-normalize-repeat-style-4.0.2.tgz", + "integrity": "sha1-xOu8KJ85kaAo1EdRy90RkYsXkQw=", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083210998&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-normalize-string": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-string/download/postcss-normalize-string-4.0.2.tgz", + "integrity": "sha1-zUTECrB6DHo23F6Zqs4eyk7CaQw=", + "dev": true, + "requires": { + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083210998&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-normalize-timing-functions": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-timing-functions/download/postcss-normalize-timing-functions-4.0.2.tgz", + "integrity": "sha1-jgCcoqOUnNr4rSPmtquZy159KNk=", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083210998&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-normalize-unicode": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-unicode/download/postcss-normalize-unicode-4.0.1.tgz", + "integrity": "sha1-hBvUj9zzAZrUuqdJOj02O1KuHPs=", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083210998&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-normalize-url": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-url/download/postcss-normalize-url-4.0.1.tgz", + "integrity": "sha1-EOQ3+GvHx+WPe5ZS7YeNqqlfquE=", + "dev": true, + "requires": { + "is-absolute-url": "^2.0.0", + "normalize-url": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083210998&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-normalize-whitespace": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-normalize-whitespace/download/postcss-normalize-whitespace-4.0.2.tgz", + "integrity": "sha1-vx1AcP5Pzqh9E0joJdjMDF+qfYI=", + "dev": true, + "requires": { + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083210998&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-ordered-values": { + "version": "4.1.2", + "resolved": "https://registry.npm.taobao.org/postcss-ordered-values/download/postcss-ordered-values-4.1.2.tgz", + "integrity": "sha1-DPdcgg7H1cTSgBiVWeC1ceusDu4=", + "dev": true, + "requires": { + "cssnano-util-get-arguments": "^4.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083210998&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-reduce-initial": { + "version": "4.0.3", + "resolved": "https://registry.npm.taobao.org/postcss-reduce-initial/download/postcss-reduce-initial-4.0.3.tgz", + "integrity": "sha1-f9QuvqXpyBRgljniwuhK4nC6SN8=", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "caniuse-api": "^3.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0" + } + }, + "postcss-reduce-transforms": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-reduce-transforms/download/postcss-reduce-transforms-4.0.2.tgz", + "integrity": "sha1-F++kBerMbge+NBSlyi0QdGgdTik=", + "dev": true, + "requires": { + "cssnano-util-get-match": "^4.0.0", + "has": "^1.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083210998&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-selector-parser": { + "version": "6.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-6.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-6.0.2.tgz", + "integrity": "sha1-k0z3mdAWyDQRhZ4J3Oyt4BKG7Fw=", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + }, + "postcss-svgo": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/postcss-svgo/download/postcss-svgo-4.0.2.tgz", + "integrity": "sha1-F7mXvHEbMzurFDqu07jT1uPTglg=", + "dev": true, + "requires": { + "is-svg": "^3.0.0", + "postcss": "^7.0.0", + "postcss-value-parser": "^3.0.0", + "svgo": "^1.0.0" + }, + "dependencies": { + "postcss-value-parser": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-3.3.1.tgz?cache=0&sync_timestamp=1588083210998&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-3.3.1.tgz", + "integrity": "sha1-n/giVH4okyE88cMO+lGsX9G6goE=", + "dev": true + } + } + }, + "postcss-unique-selectors": { + "version": "4.0.1", + "resolved": "https://registry.npm.taobao.org/postcss-unique-selectors/download/postcss-unique-selectors-4.0.1.tgz", + "integrity": "sha1-lEaRHzKJv9ZMbWgPBzwDsfnuS6w=", + "dev": true, + "requires": { + "alphanum-sort": "^1.0.0", + "postcss": "^7.0.0", + "uniqs": "^2.0.0" + } + }, + "postcss-value-parser": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/postcss-value-parser/download/postcss-value-parser-4.1.0.tgz?cache=0&sync_timestamp=1588083210998&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-value-parser%2Fdownload%2Fpostcss-value-parser-4.1.0.tgz", + "integrity": "sha1-RD9qIM7WSBor2k+oUypuVdeJoss=", + "dev": true + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/prelude-ls/download/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "prepend-http": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/prepend-http/download/prepend-http-1.0.4.tgz", + "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", + "dev": true + }, + "prettier": { + "version": "1.19.1", + "resolved": "https://registry.npm.taobao.org/prettier/download/prettier-1.19.1.tgz?cache=0&sync_timestamp=1587491448785&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fprettier%2Fdownload%2Fprettier-1.19.1.tgz", + "integrity": "sha1-99f1/4qc2HKnvkyhQglZVqYHl8s=", + "dev": true, + "optional": true + }, + "pretty": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/pretty/download/pretty-2.0.0.tgz", + "integrity": "sha1-rbx5YLe7/iiaVX3F9zdhmiINBqU=", + "dev": true, + "requires": { + "condense-newlines": "^0.2.1", + "extend-shallow": "^2.0.1", + "js-beautify": "^1.6.12" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "pretty-error": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/pretty-error/download/pretty-error-2.1.1.tgz", + "integrity": "sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM=", + "dev": true, + "requires": { + "renderkid": "^2.0.1", + "utila": "~0.4" + } + }, + "pretty-format": { + "version": "21.2.1", + "resolved": "https://registry.npm.taobao.org/pretty-format/download/pretty-format-21.2.1.tgz?cache=0&sync_timestamp=1592925335887&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpretty-format%2Fdownload%2Fpretty-format-21.2.1.tgz", + "integrity": "sha1-rlQH888hBmzQEaobpfzntqLt2zY=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0", + "ansi-styles": "^3.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + } + } + }, + "printj": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/printj/download/printj-1.1.2.tgz", + "integrity": "sha1-2Q3rKXWoufYA+zoclOP0xTx4oiI=" + }, + "process": { + "version": "0.11.10", + "resolved": "https://registry.npm.taobao.org/process/download/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/process-nextick-args/download/process-nextick-args-2.0.1.tgz", + "integrity": "sha1-eCDZsWEgzFXKmud5JoCufbptf+I=", + "dev": true + }, + "progress": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/progress/download/progress-2.0.3.tgz", + "integrity": "sha1-foz42PW48jnBvGi+tOt4Vn1XLvg=", + "dev": true + }, + "promise": { + "version": "7.3.1", + "resolved": "https://registry.npm.taobao.org/promise/download/promise-7.3.1.tgz", + "integrity": "sha1-BktyYCsY+Q8pGSuLG8QY/9Hr078=", + "dev": true, + "optional": true, + "requires": { + "asap": "~2.0.3" + } + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/promise-inflight/download/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, + "proto-list": { + "version": "1.2.4", + "resolved": "https://registry.npm.taobao.org/proto-list/download/proto-list-1.2.4.tgz", + "integrity": "sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=", + "dev": true + }, + "proxy-addr": { + "version": "2.0.6", + "resolved": "https://registry.npm.taobao.org/proxy-addr/download/proxy-addr-2.0.6.tgz", + "integrity": "sha1-/cIzZQVEfT8vLGOO0nLK9hS7sr8=", + "dev": true, + "requires": { + "forwarded": "~0.1.2", + "ipaddr.js": "1.9.1" + } + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/prr/download/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/pseudomap/download/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npm.taobao.org/psl/download/psl-1.8.0.tgz?cache=0&sync_timestamp=1585142991033&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpsl%2Fdownload%2Fpsl-1.8.0.tgz", + "integrity": "sha1-kyb4vPsBOtzABf3/BWrM4CDlHCQ=", + "dev": true + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npm.taobao.org/public-encrypt/download/public-encrypt-4.0.3.tgz", + "integrity": "sha1-T8ydd6B+SLp1J+fL4N4z0HATMeA=", + "dev": true, + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.11.9", + "resolved": "https://registry.npm.taobao.org/bn.js/download/bn.js-4.11.9.tgz", + "integrity": "sha1-JtVWgpRY+dHoH8SJUkk9C6NQeCg=", + "dev": true + } + } + }, + "pump": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/pump/download/pump-3.0.0.tgz", + "integrity": "sha1-tKIRaBW94vTh6mAjVOjHVWUQemQ=", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npm.taobao.org/pumpify/download/pumpify-1.5.1.tgz?cache=0&sync_timestamp=1569938200736&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpumpify%2Fdownload%2Fpumpify-1.5.1.tgz", + "integrity": "sha1-NlE74karJ1cLGjdKXOJ4v9dDcM4=", + "dev": true, + "requires": { + "duplexify": "^3.6.0", + "inherits": "^2.0.3", + "pump": "^2.0.0" + }, + "dependencies": { + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/pump/download/pump-2.0.1.tgz", + "integrity": "sha1-Ejma3W5M91Jtlzy8i1zi4pCLOQk=", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + } + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-2.1.1.tgz", + "integrity": "sha1-tYsBCsQMIsVldhbI0sLALHv0eew=", + "dev": true + }, + "q": { + "version": "1.5.1", + "resolved": "https://registry.npm.taobao.org/q/download/q-1.5.1.tgz", + "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "dev": true + }, + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npm.taobao.org/qs/download/qs-6.5.2.tgz", + "integrity": "sha1-yzroBuh0BERYTvFUzo7pjUA/PjY=", + "dev": true + }, + "query-string": { + "version": "4.3.4", + "resolved": "https://registry.npm.taobao.org/query-string/download/query-string-4.3.4.tgz", + "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "dev": true, + "requires": { + "object-assign": "^4.1.0", + "strict-uri-encode": "^1.0.0" + } + }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npm.taobao.org/querystring/download/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npm.taobao.org/querystring-es3/download/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true + }, + "querystringify": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/querystringify/download/querystringify-2.1.1.tgz", + "integrity": "sha1-YOWl/WSn+L+k0qsu1v30yFutFU4=", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/randombytes/download/randombytes-2.1.0.tgz", + "integrity": "sha1-32+ENy8CcNxlzfYpE0mrekc9Tyo=", + "dev": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/randomfill/download/randomfill-1.0.4.tgz", + "integrity": "sha1-ySGW/IarQr6YPxvzF3giSTHWFFg=", + "dev": true, + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/range-parser/download/range-parser-1.2.1.tgz", + "integrity": "sha1-PPNwI9GZ4cJNGlW4SADC8+ZGgDE=", + "dev": true + }, + "raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npm.taobao.org/raw-body/download/raw-body-2.4.0.tgz", + "integrity": "sha1-oc5vucm8NWylLoklarWQWeE9AzI=", + "dev": true, + "requires": { + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/read-pkg/download/read-pkg-5.2.0.tgz", + "integrity": "sha1-e/KVQ4yloz5WzTDgU7NO5yUMk8w=", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "parse-json": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/parse-json/download/parse-json-5.0.0.tgz", + "integrity": "sha1-c+URTJhtFD76NxLU6iTbmkJm9g8=", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-better-errors": "^1.0.1", + "lines-and-columns": "^1.1.6" + } + } + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/read-pkg-up/download/read-pkg-up-2.0.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fread-pkg-up%2Fdownload%2Fread-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dev": true, + "requires": { + "find-up": "^2.0.0", + "read-pkg": "^2.0.0" + }, + "dependencies": { + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/path-type/download/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "requires": { + "pify": "^2.0.0" + } + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/pify/download/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/read-pkg/download/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, + "requires": { + "load-json-file": "^2.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^2.0.0" + } + } + } + }, + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-2.3.7.tgz", + "integrity": "sha1-Hsoc9xGu+BTAT2IlKjamL2yyO1c=", + "dev": true, + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "readdirp": { + "version": "3.4.0", + "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-3.4.0.tgz?cache=0&sync_timestamp=1584985910691&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-3.4.0.tgz", + "integrity": "sha1-n9zN+ekVWAVEkiGsZF6DA6tbmto=", + "dev": true, + "optional": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "regenerate": { + "version": "1.4.1", + "resolved": "https://registry.npm.taobao.org/regenerate/download/regenerate-1.4.1.tgz", + "integrity": "sha1-ytkq2Oa1kXc0hfvgWkhcr09Ffm8=", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "8.2.0", + "resolved": "https://registry.npm.taobao.org/regenerate-unicode-properties/download/regenerate-unicode-properties-8.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerate-unicode-properties%2Fdownload%2Fregenerate-unicode-properties-8.2.0.tgz", + "integrity": "sha1-5d5xEdZV57pgwFfb6f83yH5lzew=", + "dev": true, + "requires": { + "regenerate": "^1.4.0" + } + }, + "regenerator-runtime": { + "version": "0.13.5", + "resolved": "https://registry.npm.taobao.org/regenerator-runtime/download/regenerator-runtime-0.13.5.tgz?cache=0&sync_timestamp=1584052597708&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-runtime%2Fdownload%2Fregenerator-runtime-0.13.5.tgz", + "integrity": "sha1-2Hih0JS0MG0QuQlkhLM+vVXiZpc=", + "dev": true + }, + "regenerator-transform": { + "version": "0.14.5", + "resolved": "https://registry.npm.taobao.org/regenerator-transform/download/regenerator-transform-0.14.5.tgz?cache=0&sync_timestamp=1593557393872&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregenerator-transform%2Fdownload%2Fregenerator-transform-0.14.5.tgz", + "integrity": "sha1-yY2hVGg2ccnE3LFuznNlF+G3/rQ=", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/regex-not/download/regex-not-1.0.2.tgz", + "integrity": "sha1-H07OJ+ALC2XgJHpoEOaoXYOldSw=", + "dev": true, + "requires": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + } + }, + "regexp.prototype.flags": { + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/regexp.prototype.flags/download/regexp.prototype.flags-1.3.0.tgz?cache=0&sync_timestamp=1576388379660&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexp.prototype.flags%2Fdownload%2Fregexp.prototype.flags-1.3.0.tgz", + "integrity": "sha1-erqJs8E6ZFCdq888qNn7ub31y3U=", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + } + }, + "regexpp": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/regexpp/download/regexpp-1.1.0.tgz", + "integrity": "sha1-DjUW3Qt5BPQT0tQZPc5GGMOmias=", + "dev": true + }, + "regexpu-core": { + "version": "4.7.0", + "resolved": "https://registry.npm.taobao.org/regexpu-core/download/regexpu-core-4.7.0.tgz?cache=0&sync_timestamp=1583949899397&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fregexpu-core%2Fdownload%2Fregexpu-core-4.7.0.tgz", + "integrity": "sha1-/L9FjFBDGwu3tF1pZ7gZLZHz2Tg=", + "dev": true, + "requires": { + "regenerate": "^1.4.0", + "regenerate-unicode-properties": "^8.2.0", + "regjsgen": "^0.5.1", + "regjsparser": "^0.6.4", + "unicode-match-property-ecmascript": "^1.0.4", + "unicode-match-property-value-ecmascript": "^1.2.0" + } + }, + "regjsgen": { + "version": "0.5.2", + "resolved": "https://registry.npm.taobao.org/regjsgen/download/regjsgen-0.5.2.tgz", + "integrity": "sha1-kv8pX7He7L9uzaslQ9IH6RqjNzM=", + "dev": true + }, + "regjsparser": { + "version": "0.6.4", + "resolved": "https://registry.npm.taobao.org/regjsparser/download/regjsparser-0.6.4.tgz", + "integrity": "sha1-p2n4aEMIQBpm6bUp0kNv9NBmYnI=", + "dev": true, + "requires": { + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npm.taobao.org/jsesc/download/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true + } + } + }, + "relateurl": { + "version": "0.2.7", + "resolved": "https://registry.npm.taobao.org/relateurl/download/relateurl-0.2.7.tgz", + "integrity": "sha1-VNvzd+UUQKypCkzSdGANP/LYiKk=", + "dev": true + }, + "remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/remove-trailing-separator/download/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "dev": true + }, + "renderkid": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/renderkid/download/renderkid-2.0.3.tgz", + "integrity": "sha1-OAF5wv9a4TZcUivy/Pz/AcW3QUk=", + "dev": true, + "requires": { + "css-select": "^1.1.0", + "dom-converter": "^0.2", + "htmlparser2": "^3.3.0", + "strip-ansi": "^3.0.0", + "utila": "^0.4.0" + }, + "dependencies": { + "css-select": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/css-select/download/css-select-1.2.0.tgz", + "integrity": "sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg=", + "dev": true, + "requires": { + "boolbase": "~1.0.0", + "css-what": "2.1", + "domutils": "1.5.1", + "nth-check": "~1.0.1" + } + }, + "css-what": { + "version": "2.1.3", + "resolved": "https://registry.npm.taobao.org/css-what/download/css-what-2.1.3.tgz", + "integrity": "sha1-ptdgRXM2X+dGhsPzEcVlE9iChfI=", + "dev": true + }, + "domutils": { + "version": "1.5.1", + "resolved": "https://registry.npm.taobao.org/domutils/download/domutils-1.5.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdomutils%2Fdownload%2Fdomutils-1.5.1.tgz", + "integrity": "sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8=", + "dev": true, + "requires": { + "dom-serializer": "0", + "domelementtype": "1" + } + } + } + }, + "repeat-element": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/repeat-element/download/repeat-element-1.1.3.tgz", + "integrity": "sha1-eC4NglwMWjuzlzH4Tv7mt0Lmsc4=", + "dev": true + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npm.taobao.org/repeat-string/download/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=" + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/repeating/download/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "^1.0.0" + } + }, + "request": { + "version": "2.88.2", + "resolved": "https://registry.npm.taobao.org/request/download/request-2.88.2.tgz?cache=0&sync_timestamp=1581439006948&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frequest%2Fdownload%2Frequest-2.88.2.tgz", + "integrity": "sha1-1zyRhzHLWofaBH4gcjQUb2ZNErM=", + "dev": true, + "requires": { + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" + } + }, + "request-promise-core": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/request-promise-core/download/request-promise-core-1.1.3.tgz", + "integrity": "sha1-6aPAgbUTgN/qZ3M2Bh/qh5qCnuk=", + "dev": true, + "requires": { + "lodash": "^4.17.15" + } + }, + "request-promise-native": { + "version": "1.0.8", + "resolved": "https://registry.npm.taobao.org/request-promise-native/download/request-promise-native-1.0.8.tgz", + "integrity": "sha1-pFW5YLgm5E4r+Jma9k3/K/5YyzY=", + "dev": true, + "requires": { + "request-promise-core": "1.1.3", + "stealthy-require": "^1.1.1", + "tough-cookie": "^2.3.3" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/require-directory/download/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/require-from-string/download/require-from-string-2.0.2.tgz", + "integrity": "sha1-iaf92TgmEmcxjq/hT5wy5ZjDaQk=", + "dev": true + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/require-main-filename/download/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true + }, + "require-uncached": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/require-uncached/download/require-uncached-1.0.3.tgz", + "integrity": "sha1-Tg1W1slmL9MeQwEcS5WqSZVUIdM=", + "dev": true, + "requires": { + "caller-path": "^0.1.0", + "resolve-from": "^1.0.0" + } + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/requires-port/download/requires-port-1.0.0.tgz", + "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "dev": true + }, + "reselect": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/reselect/download/reselect-3.0.1.tgz", + "integrity": "sha1-79qpjqdFEyTQkrKyFjpqHXqaIUc=", + "dev": true + }, + "resolve": { + "version": "1.17.0", + "resolved": "https://registry.npm.taobao.org/resolve/download/resolve-1.17.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve%2Fdownload%2Fresolve-1.17.0.tgz", + "integrity": "sha1-sllBtUloIxzC0bt2p5y38sC/hEQ=", + "requires": { + "path-parse": "^1.0.6" + } + }, + "resolve-cwd": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/resolve-cwd/download/resolve-cwd-2.0.0.tgz", + "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", + "dev": true, + "requires": { + "resolve-from": "^3.0.0" + }, + "dependencies": { + "resolve-from": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-3.0.0.tgz", + "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "dev": true + } + } + }, + "resolve-from": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/resolve-from/download/resolve-from-1.0.1.tgz", + "integrity": "sha1-Jsv+k10a7uq7Kbw/5a6wHpPUQiY=", + "dev": true + }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npm.taobao.org/resolve-url/download/resolve-url-0.2.1.tgz?cache=0&sync_timestamp=1585438700247&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fresolve-url%2Fdownload%2Fresolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "dev": true + }, + "restore-cursor": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/restore-cursor/download/restore-cursor-2.0.0.tgz", + "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", + "dev": true, + "requires": { + "onetime": "^2.0.0", + "signal-exit": "^3.0.2" + } + }, + "resumer": { + "version": "0.0.0", + "resolved": "https://registry.npm.taobao.org/resumer/download/resumer-0.0.0.tgz", + "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", + "requires": { + "through": "~2.3.4" + } + }, + "ret": { + "version": "0.1.15", + "resolved": "https://registry.npm.taobao.org/ret/download/ret-0.1.15.tgz", + "integrity": "sha1-uKSCXVvbH8P29Twrwz+BOIaBx7w=", + "dev": true + }, + "retry": { + "version": "0.12.0", + "resolved": "https://registry.npm.taobao.org/retry/download/retry-0.12.0.tgz", + "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", + "dev": true + }, + "rgb-regex": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/rgb-regex/download/rgb-regex-1.0.1.tgz", + "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", + "dev": true + }, + "rgba-regex": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/rgba-regex/download/rgba-regex-1.0.0.tgz", + "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", + "dev": true + }, + "right-align": { + "version": "0.1.3", + "resolved": "https://registry.npm.taobao.org/right-align/download/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "requires": { + "align-text": "^0.1.1" + } + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npm.taobao.org/rimraf/download/rimraf-2.7.1.tgz?cache=0&sync_timestamp=1581229865753&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frimraf%2Fdownload%2Frimraf-2.7.1.tgz", + "integrity": "sha1-NXl/E6f9rcVmFCwp1PB8ytSD4+w=", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/ripemd160/download/ripemd160-2.0.2.tgz", + "integrity": "sha1-ocGm9iR1FXe6XQeRTLyShQWFiQw=", + "dev": true, + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "rollup": { + "version": "0.25.8", + "resolved": "https://registry.npm.taobao.org/rollup/download/rollup-0.25.8.tgz?cache=0&sync_timestamp=1595099799360&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frollup%2Fdownload%2Frollup-0.25.8.tgz", + "integrity": "sha1-v2zoO4dRDRY0Ru6qV37WpvxYNeA=", + "requires": { + "chalk": "^1.1.1", + "minimist": "^1.2.0", + "source-map-support": "^0.3.2" + } + }, + "run-async": { + "version": "2.4.1", + "resolved": "https://registry.npm.taobao.org/run-async/download/run-async-2.4.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frun-async%2Fdownload%2Frun-async-2.4.1.tgz", + "integrity": "sha1-hEDsz5nqPnC9QJ1JqriOEMGJpFU=", + "dev": true + }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/run-queue/download/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "dev": true, + "requires": { + "aproba": "^1.1.1" + } + }, + "rw": { + "version": "1.3.3", + "resolved": "https://registry.npm.taobao.org/rw/download/rw-1.3.3.tgz", + "integrity": "sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q=" + }, + "rx-lite": { + "version": "4.0.8", + "resolved": "https://registry.npm.taobao.org/rx-lite/download/rx-lite-4.0.8.tgz", + "integrity": "sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ=", + "dev": true + }, + "rx-lite-aggregates": { + "version": "4.0.8", + "resolved": "https://registry.npm.taobao.org/rx-lite-aggregates/download/rx-lite-aggregates-4.0.8.tgz", + "integrity": "sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74=", + "dev": true, + "requires": { + "rx-lite": "*" + } + }, + "rxjs": { + "version": "5.5.12", + "resolved": "https://registry.npm.taobao.org/rxjs/download/rxjs-5.5.12.tgz?cache=0&sync_timestamp=1593794887039&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Frxjs%2Fdownload%2Frxjs-5.5.12.tgz", + "integrity": "sha1-b6YbinfD15PbrycL7i9D9lLXQcw=", + "dev": true, + "requires": { + "symbol-observable": "1.0.1" + }, + "dependencies": { + "symbol-observable": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/symbol-observable/download/symbol-observable-1.0.1.tgz", + "integrity": "sha1-g0D8RwLDEi310iKI+IKD9RPT/dQ=", + "dev": true + } + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npm.taobao.org/safe-buffer/download/safe-buffer-5.1.2.tgz", + "integrity": "sha1-mR7GnSluAxN0fVm9/St0XDX4go0=", + "dev": true + }, + "safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/safe-regex/download/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dev": true, + "requires": { + "ret": "~0.1.10" + } + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/safer-buffer/download/safer-buffer-2.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsafer-buffer%2Fdownload%2Fsafer-buffer-2.1.2.tgz", + "integrity": "sha1-RPoWGwGHuVSd2Eu5GAL5vYOFzWo=", + "dev": true + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npm.taobao.org/sax/download/sax-1.2.4.tgz", + "integrity": "sha1-KBYjTiN4vdxOU1T6tcqold9xANk=", + "dev": true + }, + "saxes": { + "version": "3.1.11", + "resolved": "https://registry.npm.taobao.org/saxes/download/saxes-3.1.11.tgz", + "integrity": "sha1-1Z0f0zLskq2YouCy7mRHAjhLHFs=", + "dev": true, + "requires": { + "xmlchars": "^2.1.1" + } + }, + "schema-utils": { + "version": "2.7.0", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-2.7.0.tgz", + "integrity": "sha1-FxUfdtjq5n+793lgwzxnatn078c=", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", + "ajv-keywords": "^3.4.1" + } + }, + "select": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/select/download/select-1.1.2.tgz", + "integrity": "sha1-DnNQrN7ICxEIUoeG7B1EGNEbOW0=" + }, + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/select-hose/download/select-hose-2.0.0.tgz", + "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", + "dev": true + }, + "selfsigned": { + "version": "1.10.7", + "resolved": "https://registry.npm.taobao.org/selfsigned/download/selfsigned-1.10.7.tgz", + "integrity": "sha1-2lgZ/QSdVXTyjoipvMbbxubzkGs=", + "dev": true, + "requires": { + "node-forge": "0.9.0" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-5.7.1.tgz?cache=0&sync_timestamp=1586886301819&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-5.7.1.tgz", + "integrity": "sha1-qVT5Ma66UI0we78Gnv8MAclhFvc=", + "dev": true + }, + "send": { + "version": "0.17.1", + "resolved": "https://registry.npm.taobao.org/send/download/send-0.17.1.tgz", + "integrity": "sha1-wdiwWfeQD3Rm3Uk4vcROEd2zdsg=", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "~1.1.2", + "destroy": "~1.0.4", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "~1.7.2", + "mime": "1.6.0", + "ms": "2.1.1", + "on-finished": "~2.3.0", + "range-parser": "~1.2.1", + "statuses": "~1.5.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "requires": { + "ms": "2.0.0" + }, + "dependencies": { + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + } + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npm.taobao.org/mime/download/mime-1.6.0.tgz?cache=0&sync_timestamp=1590596706367&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmime%2Fdownload%2Fmime-1.6.0.tgz", + "integrity": "sha1-Ms2eXGRVO9WNGaVor0Uqz/BJgbE=", + "dev": true + }, + "ms": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.1.tgz", + "integrity": "sha1-MKWGTrPrsKZvLr5tcnrwagnYbgo=", + "dev": true + } + } + }, + "serialize-javascript": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-3.1.0.tgz", + "integrity": "sha1-i/OpFwcSZk7yVhtEtpHq/jmSFOo=", + "dev": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npm.taobao.org/serve-index/download/serve-index-1.9.1.tgz", + "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "dev": true, + "requires": { + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npm.taobao.org/http-errors/download/http-errors-1.6.3.tgz?cache=0&sync_timestamp=1593407710477&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fhttp-errors%2Fdownload%2Fhttp-errors-1.6.3.tgz", + "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "dev": true, + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.0.tgz?cache=0&sync_timestamp=1563425414995&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsetprototypeof%2Fdownload%2Fsetprototypeof-1.1.0.tgz", + "integrity": "sha1-0L2FU2iHtv58DYGMuWLZ2RxU5lY=", + "dev": true + } + } + }, + "serve-static": { + "version": "1.14.1", + "resolved": "https://registry.npm.taobao.org/serve-static/download/serve-static-1.14.1.tgz", + "integrity": "sha1-Zm5jbcTwEPfvKZcKiKZ0MgiYsvk=", + "dev": true, + "requires": { + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.17.1" + } + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/set-blocking/download/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "set-value": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/set-value/download/set-value-2.0.1.tgz?cache=0&sync_timestamp=1585775409029&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fset-value%2Fdownload%2Fset-value-2.0.1.tgz", + "integrity": "sha1-oY1AUw5vB95CKMfe/kInr4ytAFs=", + "dev": true, + "requires": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "dependencies": { + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + } + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/setimmediate/download/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/setprototypeof/download/setprototypeof-1.1.1.tgz?cache=0&sync_timestamp=1563425414995&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsetprototypeof%2Fdownload%2Fsetprototypeof-1.1.1.tgz", + "integrity": "sha1-fpWsskqpL1iF4KvvW6ExMw1K5oM=", + "dev": true + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npm.taobao.org/sha.js/download/sha.js-2.4.11.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsha.js%2Fdownload%2Fsha.js-2.4.11.tgz", + "integrity": "sha1-N6XPC4HsvGlD3hCbopYNGyZYSuc=", + "dev": true, + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/shebang-command/download/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/shebang-regex/download/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, + "shell-quote": { + "version": "1.7.2", + "resolved": "https://registry.npm.taobao.org/shell-quote/download/shell-quote-1.7.2.tgz", + "integrity": "sha1-Z6fQLHbJ2iT5nSCAj8re0ODgS+I=", + "dev": true + }, + "sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/sigmund/download/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", + "dev": true + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npm.taobao.org/signal-exit/download/signal-exit-3.0.3.tgz", + "integrity": "sha1-oUEMLt2PB3sItOJTyOrPyvBXRhw=", + "dev": true + }, + "simple-swizzle": { + "version": "0.2.2", + "resolved": "https://registry.npm.taobao.org/simple-swizzle/download/simple-swizzle-0.2.2.tgz", + "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "dev": true, + "requires": { + "is-arrayish": "^0.3.1" + }, + "dependencies": { + "is-arrayish": { + "version": "0.3.2", + "resolved": "https://registry.npm.taobao.org/is-arrayish/download/is-arrayish-0.3.2.tgz", + "integrity": "sha1-RXSirlb3qyBolvtDHq7tBm/fjwM=", + "dev": true + } + } + }, + "simplemde": { + "version": "1.11.2", + "resolved": "https://registry.npm.taobao.org/simplemde/download/simplemde-1.11.2.tgz", + "integrity": "sha1-ojo12XjSxA7wfewAjJLwcNjggOM=", + "requires": { + "codemirror": "*", + "codemirror-spell-checker": "*", + "marked": "*" + } + }, + "slash": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/slash/download/slash-2.0.0.tgz", + "integrity": "sha1-3lUoUaF1nfOo8gZTVEL17E3eq0Q=", + "dev": true + }, + "slice-ansi": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/slice-ansi/download/slice-ansi-1.0.0.tgz", + "integrity": "sha1-BE8aSdiEL/MHqta1Be0Xi9lQE00=", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0" + } + }, + "slick-carousel": { + "version": "1.8.1", + "resolved": "https://registry.npm.taobao.org/slick-carousel/download/slick-carousel-1.8.1.tgz", + "integrity": "sha1-pL+ykBSIe7Zs5Si5C9DNomLMj40=", + "requires": {} + }, + "snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npm.taobao.org/snapdragon/download/snapdragon-0.8.2.tgz", + "integrity": "sha1-ZJIufFZbDhQgS6GqfWlkJ40lGC0=", + "dev": true, + "requires": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-2.6.9.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-2.6.9.tgz", + "integrity": "sha1-XRKFFd8TT/Mn6QpMk/Tgd6U2NB8=", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/extend-shallow/download/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dev": true, + "requires": { + "is-extendable": "^0.1.0" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "dev": true + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/snapdragon-node/download/snapdragon-node-2.1.1.tgz", + "integrity": "sha1-bBdfhv8UvbByRWPo88GwIaKGhTs=", + "dev": true, + "requires": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "dependencies": { + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dev": true, + "requires": { + "is-descriptor": "^1.0.0" + } + }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-accessor-descriptor/download/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha1-FpwvbT3x+ZJhgHI2XJsOofaHhlY=", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-data-descriptor/download/is-data-descriptor-1.0.0.tgz", + "integrity": "sha1-2Eh2Mh0Oet0DmQQGq7u9NrqSaMc=", + "dev": true, + "requires": { + "kind-of": "^6.0.0" + } + }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/is-descriptor/download/is-descriptor-1.0.2.tgz", + "integrity": "sha1-OxWXRqZmBLBPjIFSS6NlxfFNhuw=", + "dev": true, + "requires": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npm.taobao.org/kind-of/download/kind-of-6.0.3.tgz", + "integrity": "sha1-B8BQNKbDSfoG4k+jWqdttFgM5N0=", + "dev": true + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/snapdragon-util/download/snapdragon-util-3.0.1.tgz", + "integrity": "sha1-+VZHlIbyrNeXAGk/b3uAXkWrVuI=", + "dev": true, + "requires": { + "kind-of": "^3.2.0" + } + }, + "sntp": { + "version": "1.0.9", + "resolved": "https://registry.npm.taobao.org/sntp/download/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "dev": true, + "optional": true, + "requires": { + "hoek": "2.x.x" + } + }, + "sockjs": { + "version": "0.3.20", + "resolved": "https://registry.npm.taobao.org/sockjs/download/sockjs-0.3.20.tgz", + "integrity": "sha1-smooPsVi74smh7RAM6Tuzqx12FU=", + "dev": true, + "requires": { + "faye-websocket": "^0.10.0", + "uuid": "^3.4.0", + "websocket-driver": "0.6.5" + } + }, + "sockjs-client": { + "version": "1.4.0", + "resolved": "https://registry.npm.taobao.org/sockjs-client/download/sockjs-client-1.4.0.tgz", + "integrity": "sha1-yfJWjhnI/YFztJl+o0IOC7MGx9U=", + "dev": true, + "requires": { + "debug": "^3.2.5", + "eventsource": "^1.0.7", + "faye-websocket": "~0.11.1", + "inherits": "^2.0.3", + "json3": "^3.3.2", + "url-parse": "^1.4.3" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-3.2.6.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-3.2.6.tgz", + "integrity": "sha1-6D0X3hbYp++3cX7b5fsQE17uYps=", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "faye-websocket": { + "version": "0.11.3", + "resolved": "https://registry.npm.taobao.org/faye-websocket/download/faye-websocket-0.11.3.tgz", + "integrity": "sha1-XA6aiWjokSwoZjn96XeosgnyUI4=", + "dev": true, + "requires": { + "websocket-driver": ">=0.5.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", + "dev": true + } + } + }, + "sort-keys": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/sort-keys/download/sort-keys-1.1.2.tgz?cache=0&sync_timestamp=1565864727994&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsort-keys%2Fdownload%2Fsort-keys-1.1.2.tgz", + "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "dev": true, + "requires": { + "is-plain-obj": "^1.0.0" + } + }, + "sortablejs": { + "version": "1.10.2", + "resolved": "https://registry.npm.taobao.org/sortablejs/download/sortablejs-1.10.2.tgz", + "integrity": "sha1-bkA2TZE/mLhaFPZnj5K1wSIfUpA=" + }, + "source-list-map": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/source-list-map/download/source-list-map-2.0.1.tgz", + "integrity": "sha1-OZO9hzv8SEecyp6jpUeDXHwVSzQ=", + "dev": true + }, + "source-map": { + "version": "0.1.32", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.1.32.tgz", + "integrity": "sha1-yLbBZ3l7pHQKjqMyUhYv8IWRsmY=", + "requires": { + "amdefine": ">=0.0.4" + } + }, + "source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npm.taobao.org/source-map-resolve/download/source-map-resolve-0.5.3.tgz?cache=0&sync_timestamp=1584831908370&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-resolve%2Fdownload%2Fsource-map-resolve-0.5.3.tgz", + "integrity": "sha1-GQhmvs51U+H48mei7oLGBrVQmho=", + "dev": true, + "requires": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "source-map-support": { + "version": "0.3.3", + "resolved": "https://registry.npm.taobao.org/source-map-support/download/source-map-support-0.3.3.tgz?cache=0&sync_timestamp=1587719517036&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-support%2Fdownload%2Fsource-map-support-0.3.3.tgz", + "integrity": "sha1-NJAJd9W6PwfHdX7nLnO7GptTdU8=", + "requires": { + "source-map": "0.1.32" + } + }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npm.taobao.org/source-map-url/download/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "dev": true + }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/spdx-correct/download/spdx-correct-3.1.1.tgz?cache=0&sync_timestamp=1590161967473&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-correct%2Fdownload%2Fspdx-correct-3.1.1.tgz", + "integrity": "sha1-3s6BrJweZxPl99G28X1Gj6U9iak=", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/spdx-exceptions/download/spdx-exceptions-2.3.0.tgz?cache=0&sync_timestamp=1587422410312&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fspdx-exceptions%2Fdownload%2Fspdx-exceptions-2.3.0.tgz", + "integrity": "sha1-PyjOGnegA3JoPq3kpDMYNSeiFj0=", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/spdx-expression-parse/download/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha1-z3D1BILu/cmOPOCmgz5KU87rpnk=", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.5", + "resolved": "https://registry.npm.taobao.org/spdx-license-ids/download/spdx-license-ids-3.0.5.tgz", + "integrity": "sha1-NpS1gEVnpFjTyARYQqY1hjL2JlQ=", + "dev": true + }, + "spdy": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/spdy/download/spdy-4.0.2.tgz", + "integrity": "sha1-t09GYgOj7aRSwCSSuR+56EonZ3s=", + "dev": true, + "requires": { + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.1.1.tgz", + "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", + "dev": true + } + } + }, + "spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/spdy-transport/download/spdy-transport-3.0.0.tgz", + "integrity": "sha1-ANSGOmQArXXfkzYaFghgXl3NzzE=", + "dev": true, + "requires": { + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + }, + "dependencies": { + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.1.1.tgz", + "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", + "dev": true + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npm.taobao.org/readable-stream/download/readable-stream-3.6.0.tgz", + "integrity": "sha1-M3u9o63AcGvT4CRCaihtS0sskZg=", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } + }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/split-string/download/split-string-3.1.0.tgz", + "integrity": "sha1-fLCd2jqGWFcFxks5pkZgOGguj+I=", + "dev": true, + "requires": { + "extend-shallow": "^3.0.0" + } + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npm.taobao.org/sprintf-js/download/sprintf-js-1.0.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsprintf-js%2Fdownload%2Fsprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "ssf": { + "version": "0.10.3", + "resolved": "https://registry.npm.taobao.org/ssf/download/ssf-0.10.3.tgz", + "integrity": "sha1-jq4fwpyQpVLnkhII+BiS1vd6yys=", + "requires": { + "frac": "~1.1.2" + } + }, + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npm.taobao.org/sshpk/download/sshpk-1.16.1.tgz", + "integrity": "sha1-+2YcC+8ps520B2nuOfpwCT1vaHc=", + "dev": true, + "requires": { + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" + } + }, + "ssri": { + "version": "6.0.1", + "resolved": "https://registry.npm.taobao.org/ssri/download/ssri-6.0.1.tgz", + "integrity": "sha1-KjxBso3UW2K2Nnbst0ABJlrp7dg=", + "dev": true, + "requires": { + "figgy-pudding": "^3.5.1" + } + }, + "stable": { + "version": "0.1.8", + "resolved": "https://registry.npm.taobao.org/stable/download/stable-0.1.8.tgz", + "integrity": "sha1-g26zyDgv4pNv6vVEYxAXzn1Ho88=", + "dev": true + }, + "stackframe": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/stackframe/download/stackframe-1.2.0.tgz?cache=0&sync_timestamp=1590854148142&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstackframe%2Fdownload%2Fstackframe-1.2.0.tgz", + "integrity": "sha1-UkKUktY8YuuYmATBFVLj0i53kwM=", + "dev": true + }, + "staged-git-files": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/staged-git-files/download/staged-git-files-1.0.0.tgz", + "integrity": "sha1-zbhHg3wfzFLAioctSIPMCHdmioA=", + "dev": true + }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/static-extend/download/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dev": true, + "requires": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npm.taobao.org/define-property/download/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dev": true, + "requires": { + "is-descriptor": "^0.1.0" + } + } + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npm.taobao.org/statuses/download/statuses-1.5.0.tgz?cache=0&sync_timestamp=1587328859420&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstatuses%2Fdownload%2Fstatuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "dev": true + }, + "stealthy-require": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/stealthy-require/download/stealthy-require-1.1.1.tgz", + "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", + "dev": true + }, + "stream-browserify": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/stream-browserify/download/stream-browserify-2.0.2.tgz?cache=0&sync_timestamp=1587041519870&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstream-browserify%2Fdownload%2Fstream-browserify-2.0.2.tgz", + "integrity": "sha1-h1IdOKRKp+6RzhzSpH3wy0ndZgs=", + "dev": true, + "requires": { + "inherits": "~2.0.1", + "readable-stream": "^2.0.2" + } + }, + "stream-each": { + "version": "1.2.3", + "resolved": "https://registry.npm.taobao.org/stream-each/download/stream-each-1.2.3.tgz", + "integrity": "sha1-6+J6DDibBPvMIzZClS4Qcxr6m64=", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "stream-shift": "^1.0.0" + } + }, + "stream-http": { + "version": "2.8.3", + "resolved": "https://registry.npm.taobao.org/stream-http/download/stream-http-2.8.3.tgz?cache=0&sync_timestamp=1588701035785&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstream-http%2Fdownload%2Fstream-http-2.8.3.tgz", + "integrity": "sha1-stJCRpKIpaJ+xP6JM6z2I95lFPw=", + "dev": true, + "requires": { + "builtin-status-codes": "^3.0.0", + "inherits": "^2.0.1", + "readable-stream": "^2.3.6", + "to-arraybuffer": "^1.0.0", + "xtend": "^4.0.0" + } + }, + "stream-shift": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/stream-shift/download/stream-shift-1.0.1.tgz?cache=0&sync_timestamp=1576147145118&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstream-shift%2Fdownload%2Fstream-shift-1.0.1.tgz", + "integrity": "sha1-1wiCgVWasneEJCebCHfaPDktWj0=", + "dev": true + }, + "stream-to-observable": { + "version": "0.2.0", + "resolved": "https://registry.npm.taobao.org/stream-to-observable/download/stream-to-observable-0.2.0.tgz", + "integrity": "sha1-WdbqOT2HwsDdrBCqDVYbxrpvDhA=", + "dev": true, + "requires": { + "any-observable": "^0.2.0" + } + }, + "strict-uri-encode": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/strict-uri-encode/download/strict-uri-encode-1.1.0.tgz", + "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/string_decoder/download/string_decoder-1.1.1.tgz", + "integrity": "sha1-nPFhG6YmhdcDCunkujQUnDrwP8g=", + "dev": true, + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-2.1.1.tgz", + "integrity": "sha1-q5Pyeo3BPSjKyBXEYhQ6bZASrp4=", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "^3.0.0" + } + } + } + }, + "string.prototype.padend": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/string.prototype.padend/download/string.prototype.padend-3.1.0.tgz?cache=0&sync_timestamp=1576312069927&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.padend%2Fdownload%2Fstring.prototype.padend-3.1.0.tgz", + "integrity": "sha1-3Aj1eoAQ3FwVNVAxj2fhOtu3KsM=", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + } + }, + "string.prototype.padstart": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/string.prototype.padstart/download/string.prototype.padstart-3.1.0.tgz", + "integrity": "sha1-tHwIdUDQcQvlpJN1dRoKYnvU/5A=", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1" + } + }, + "string.prototype.trim": { + "version": "1.2.1", + "resolved": "https://registry.npm.taobao.org/string.prototype.trim/download/string.prototype.trim-1.2.1.tgz", + "integrity": "sha1-FBIz3/Msgr+tgGhNfl8Iae4Pt4I=", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.0-next.1", + "function-bind": "^1.1.1" + } + }, + "string.prototype.trimend": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/string.prototype.trimend/download/string.prototype.trimend-1.0.1.tgz?cache=0&sync_timestamp=1586465409341&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimend%2Fdownload%2Fstring.prototype.trimend-1.0.1.tgz", + "integrity": "sha1-hYEqa4R6wAInD1gIFGBkyZX7aRM=", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "string.prototype.trimstart": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/string.prototype.trimstart/download/string.prototype.trimstart-1.0.1.tgz?cache=0&sync_timestamp=1586465413621&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstring.prototype.trimstart%2Fdownload%2Fstring.prototype.trimstart-1.0.1.tgz", + "integrity": "sha1-FK9tnzSwU/fPyJty+PLuFLkDmlQ=", + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.5" + } + }, + "stringify-object": { + "version": "3.3.0", + "resolved": "https://registry.npm.taobao.org/stringify-object/download/stringify-object-3.3.0.tgz", + "integrity": "sha1-cDBlrvyhkwDTzoivT1s5VtdVZik=", + "dev": true, + "requires": { + "get-own-enumerable-property-symbols": "^3.0.0", + "is-obj": "^1.0.1", + "is-regexp": "^1.0.0" + }, + "dependencies": { + "is-obj": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/is-obj/download/is-obj-1.0.1.tgz", + "integrity": "sha1-PkcprB9f3gJc19g6iW2rn09n2w8=", + "dev": true + } + } + }, + "stringstream": { + "version": "0.0.6", + "resolved": "https://registry.npm.taobao.org/stringstream/download/stringstream-0.0.6.tgz", + "integrity": "sha1-eIAiWw1K0Q4wkn0Weh1vL9OzOnI=", + "dev": true, + "optional": true + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/strip-bom/download/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/strip-eof/download/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/strip-final-newline/download/strip-final-newline-2.0.0.tgz", + "integrity": "sha1-ibhS+y/L6Tb29LMYevsKEsGrWK0=", + "dev": true + }, + "strip-indent": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/strip-indent/download/strip-indent-2.0.0.tgz", + "integrity": "sha1-XvjbKV0B5u1sv3qrlpmNeCJSe2g=", + "dev": true + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/strip-json-comments/download/strip-json-comments-2.0.1.tgz?cache=0&sync_timestamp=1594567586410&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fstrip-json-comments%2Fdownload%2Fstrip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, + "stylehacks": { + "version": "4.0.3", + "resolved": "https://registry.npm.taobao.org/stylehacks/download/stylehacks-4.0.3.tgz", + "integrity": "sha1-Zxj8r00eB9ihMYaQiB6NlnJqcdU=", + "dev": true, + "requires": { + "browserslist": "^4.0.0", + "postcss": "^7.0.0", + "postcss-selector-parser": "^3.0.0" + }, + "dependencies": { + "postcss-selector-parser": { + "version": "3.1.2", + "resolved": "https://registry.npm.taobao.org/postcss-selector-parser/download/postcss-selector-parser-3.1.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fpostcss-selector-parser%2Fdownload%2Fpostcss-selector-parser-3.1.2.tgz", + "integrity": "sha1-sxD1xMD9r3b5SQK7qjDbaqhPUnA=", + "dev": true, + "requires": { + "dot-prop": "^5.2.0", + "indexes-of": "^1.0.1", + "uniq": "^1.0.1" + } + } + } + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + }, + "svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/svg-tags/download/svg-tags-1.0.0.tgz", + "integrity": "sha1-WPcc7jvVGbWdSyqEO2x95krAR2Q=", + "dev": true + }, + "svgo": { + "version": "1.3.2", + "resolved": "https://registry.npm.taobao.org/svgo/download/svgo-1.3.2.tgz?cache=0&sync_timestamp=1572433264480&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsvgo%2Fdownload%2Fsvgo-1.3.2.tgz", + "integrity": "sha1-ttxRHAYzRsnkFbgeQ0ARRbltQWc=", + "dev": true, + "requires": { + "chalk": "^2.4.1", + "coa": "^2.0.2", + "css-select": "^2.0.0", + "css-select-base-adapter": "^0.1.1", + "css-tree": "1.0.0-alpha.37", + "csso": "^4.0.2", + "js-yaml": "^3.13.1", + "mkdirp": "~0.5.1", + "object.values": "^1.1.0", + "sax": "~1.2.4", + "stable": "^0.1.8", + "unquote": "~1.1.1", + "util.promisify": "~1.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "symbol-observable": { + "version": "0.2.4", + "resolved": "https://registry.npm.taobao.org/symbol-observable/download/symbol-observable-0.2.4.tgz", + "integrity": "sha1-lag9smGG1q9+ehjb2XYKL4bQj0A=", + "dev": true + }, + "symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npm.taobao.org/symbol-tree/download/symbol-tree-3.2.4.tgz", + "integrity": "sha1-QwY30ki6d+B4iDlR+5qg7tfGP6I=", + "dev": true + }, + "table": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/table/download/table-4.0.2.tgz", + "integrity": "sha1-ozRHN1OR52atNNNIbm4q7chNLjY=", + "dev": true, + "requires": { + "ajv": "^5.2.3", + "ajv-keywords": "^2.1.0", + "chalk": "^2.1.0", + "lodash": "^4.17.4", + "slice-ansi": "1.0.0", + "string-width": "^2.1.1" + }, + "dependencies": { + "ajv": { + "version": "5.5.2", + "resolved": "https://registry.npm.taobao.org/ajv/download/ajv-5.5.2.tgz", + "integrity": "sha1-c7Xuyj+rZT49P5Qis0GtQiBdyWU=", + "dev": true, + "requires": { + "co": "^4.6.0", + "fast-deep-equal": "^1.0.0", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.3.0" + } + }, + "ajv-keywords": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/ajv-keywords/download/ajv-keywords-2.1.1.tgz", + "integrity": "sha1-YXmX/F9gV2iUxDX5QNgZ4TW4B2I=", + "dev": true, + "requires": {} + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "fast-deep-equal": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/fast-deep-equal/download/fast-deep-equal-1.1.0.tgz?cache=0&sync_timestamp=1591599666712&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffast-deep-equal%2Fdownload%2Ffast-deep-equal-1.1.0.tgz", + "integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npm.taobao.org/json-schema-traverse/download/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "tapable": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/tapable/download/tapable-1.1.3.tgz", + "integrity": "sha1-ofzMBrWNth/XpF2i2kT186Pme6I=", + "dev": true + }, + "tape": { + "version": "4.13.3", + "resolved": "https://registry.npm.taobao.org/tape/download/tape-4.13.3.tgz?cache=0&sync_timestamp=1590380169759&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftape%2Fdownload%2Ftape-4.13.3.tgz", + "integrity": "sha1-UbPZHINmjHpFsaWUtgfe4KC0Yng=", + "requires": { + "deep-equal": "~1.1.1", + "defined": "~1.0.0", + "dotignore": "~0.1.2", + "for-each": "~0.3.3", + "function-bind": "~1.1.1", + "glob": "~7.1.6", + "has": "~1.0.3", + "inherits": "~2.0.4", + "is-regex": "~1.0.5", + "minimist": "~1.2.5", + "object-inspect": "~1.7.0", + "resolve": "~1.17.0", + "resumer": "~0.0.0", + "string.prototype.trim": "~1.2.1", + "through": "~2.3.8" + } + }, + "terser": { + "version": "4.8.0", + "resolved": "https://registry.npm.taobao.org/terser/download/terser-4.8.0.tgz?cache=0&sync_timestamp=1593953635939&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser%2Fdownload%2Fterser-4.8.0.tgz", + "integrity": "sha1-YwVjQ9fHC7KfOvZlhlpG/gOg3xc=", + "dev": true, + "requires": { + "commander": "^2.20.0", + "source-map": "~0.6.1", + "source-map-support": "~0.5.12" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npm.taobao.org/source-map-support/download/source-map-support-0.5.19.tgz?cache=0&sync_timestamp=1587719517036&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsource-map-support%2Fdownload%2Fsource-map-support-0.5.19.tgz", + "integrity": "sha1-qYti+G3K9PZzmWSMCFKRq56P7WE=", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + } + } + }, + "terser-webpack-plugin": { + "version": "1.4.4", + "resolved": "https://registry.npm.taobao.org/terser-webpack-plugin/download/terser-webpack-plugin-1.4.4.tgz?cache=0&sync_timestamp=1594910785474&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fterser-webpack-plugin%2Fdownload%2Fterser-webpack-plugin-1.4.4.tgz", + "integrity": "sha1-LGNUQ0cyS6r6mla6rd8WNMir/C8=", + "dev": true, + "requires": { + "cacache": "^12.0.2", + "find-cache-dir": "^2.1.0", + "is-wsl": "^1.1.0", + "schema-utils": "^1.0.0", + "serialize-javascript": "^3.1.0", + "source-map": "^0.6.1", + "terser": "^4.1.2", + "webpack-sources": "^1.4.0", + "worker-farm": "^1.7.0" + }, + "dependencies": { + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", + "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + } + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npm.taobao.org/text-table/download/text-table-0.2.0.tgz", + "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", + "dev": true + }, + "thenify": { + "version": "3.3.1", + "resolved": "https://registry.npm.taobao.org/thenify/download/thenify-3.3.1.tgz", + "integrity": "sha1-iTLmhqQGYDigFt2eLKRq3Zg4qV8=", + "dev": true, + "requires": { + "any-promise": "^1.0.0" + } + }, + "thenify-all": { + "version": "1.6.0", + "resolved": "https://registry.npm.taobao.org/thenify-all/download/thenify-all-1.6.0.tgz", + "integrity": "sha1-GhkY1ALY/D+Y+/I02wvMjMEOlyY=", + "dev": true, + "requires": { + "thenify": ">= 3.1.0 < 4" + } + }, + "thread-loader": { + "version": "2.1.3", + "resolved": "https://registry.npm.taobao.org/thread-loader/download/thread-loader-2.1.3.tgz", + "integrity": "sha1-y9LBOfwrLebp0o9iKGq3cMGsvdo=", + "dev": true, + "requires": { + "loader-runner": "^2.3.1", + "loader-utils": "^1.1.0", + "neo-async": "^2.6.0" + } + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npm.taobao.org/through/download/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npm.taobao.org/through2/download/through2-2.0.5.tgz", + "integrity": "sha1-AcHjnrMdB8t9A6lqcIIyYLIxMs0=", + "dev": true, + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "thunky": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/thunky/download/thunky-1.1.0.tgz?cache=0&sync_timestamp=1571043401546&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fthunky%2Fdownload%2Fthunky-1.1.0.tgz", + "integrity": "sha1-Wrr3FKlAXbBQRzK7zNLO3Z75U30=", + "dev": true + }, + "timers-browserify": { + "version": "2.0.11", + "resolved": "https://registry.npm.taobao.org/timers-browserify/download/timers-browserify-2.0.11.tgz", + "integrity": "sha1-gAsfPu4nLlvFPuRloE0OgEwxIR8=", + "dev": true, + "requires": { + "setimmediate": "^1.0.4" + } + }, + "timsort": { + "version": "0.3.0", + "resolved": "https://registry.npm.taobao.org/timsort/download/timsort-0.3.0.tgz", + "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", + "dev": true + }, + "tiny-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/tiny-emitter/download/tiny-emitter-2.1.0.tgz", + "integrity": "sha1-HRpW7fxRxD6GPLtTgqcjMONVVCM=" + }, + "tinycolor2": { + "version": "1.4.1", + "resolved": "https://registry.npm.taobao.org/tinycolor2/download/tinycolor2-1.4.1.tgz", + "integrity": "sha1-9PrTM0R7wLB9TcjpIJ2POaisd+g=" + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npm.taobao.org/tmp/download/tmp-0.0.33.tgz?cache=0&sync_timestamp=1588178571895&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftmp%2Fdownload%2Ftmp-0.0.33.tgz", + "integrity": "sha1-bTQzWIl2jSGyvNoKonfO07G/rfk=", + "dev": true, + "requires": { + "os-tmpdir": "~1.0.2" + } + }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/to-arraybuffer/download/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true + }, + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/to-fast-properties/download/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "dev": true + }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npm.taobao.org/to-object-path/download/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dev": true, + "requires": { + "kind-of": "^3.0.2" + } + }, + "to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npm.taobao.org/to-regex/download/to-regex-3.0.2.tgz", + "integrity": "sha1-E8/dmzNlUvMLUfM6iuG0Knp1mc4=", + "dev": true, + "requires": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/to-regex-range/download/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dev": true, + "requires": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + } + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/toidentifier/download/toidentifier-1.0.0.tgz", + "integrity": "sha1-fhvjRw8ed5SLxD2Uo8j013UrpVM=", + "dev": true + }, + "toposort": { + "version": "1.0.7", + "resolved": "https://registry.npm.taobao.org/toposort/download/toposort-1.0.7.tgz", + "integrity": "sha1-LmhELZ9k7HILjMieZEOsbKqVACk=", + "dev": true + }, + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npm.taobao.org/tough-cookie/download/tough-cookie-2.5.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftough-cookie%2Fdownload%2Ftough-cookie-2.5.0.tgz", + "integrity": "sha1-zZ+yoKodWhK0c72fuW+j3P9lreI=", + "dev": true, + "requires": { + "psl": "^1.1.28", + "punycode": "^2.1.1" + } + }, + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/tr46/download/tr46-1.0.1.tgz", + "integrity": "sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "tree-table-vue": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/tree-table-vue/download/tree-table-vue-1.1.0.tgz", + "integrity": "sha1-ETpL2dhPqmQ5csS4AoCanbZjDYk=", + "requires": { + "clonedeep": "^2.0.0", + "iview": "^3.1.5", + "vue": "^2.5.17" + } + }, + "tryer": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/tryer/download/tryer-1.0.1.tgz", + "integrity": "sha1-8shUBoALmw90yfdGW4HqrSQSUvg=", + "dev": true + }, + "tsconfig-paths": { + "version": "3.9.0", + "resolved": "https://registry.npm.taobao.org/tsconfig-paths/download/tsconfig-paths-3.9.0.tgz", + "integrity": "sha1-CYVHpsREiAfo/Ljq4IEGTumjyQs=", + "dev": true, + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.0", + "strip-bom": "^3.0.0" + }, + "dependencies": { + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/json5/download/json5-1.0.1.tgz?cache=0&sync_timestamp=1586046271069&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fjson5%2Fdownload%2Fjson5-1.0.1.tgz", + "integrity": "sha1-d5+wAYYE+oVOrL9iUhgNg1Q+Pb4=", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + } + } + }, + "tslib": { + "version": "1.13.0", + "resolved": "https://registry.npm.taobao.org/tslib/download/tslib-1.13.0.tgz", + "integrity": "sha1-yIHhPMcBWJTtkUhi0nZDb6mkcEM=", + "dev": true + }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npm.taobao.org/tty-browserify/download/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npm.taobao.org/tunnel-agent/download/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npm.taobao.org/tweetnacl/download/tweetnacl-0.14.5.tgz?cache=0&sync_timestamp=1581365146868&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ftweetnacl%2Fdownload%2Ftweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npm.taobao.org/type-check/download/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true, + "requires": { + "prelude-ls": "~1.1.2" + } + }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npm.taobao.org/type-detect/download/type-detect-4.0.8.tgz", + "integrity": "sha1-dkb7XxiHHPu3dJ5pvTmmOI63RQw=", + "dev": true + }, + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npm.taobao.org/type-fest/download/type-fest-0.6.0.tgz", + "integrity": "sha1-jSojcNPfiG61yQraHFv2GIrPg4s=", + "dev": true + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npm.taobao.org/type-is/download/type-is-1.6.18.tgz", + "integrity": "sha1-TlUs0F3wlGfcvE73Od6J8s83wTE=", + "dev": true, + "requires": { + "media-typer": "0.3.0", + "mime-types": "~2.1.24" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npm.taobao.org/typedarray/download/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "typo-js": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/typo-js/download/typo-js-1.1.0.tgz", + "integrity": "sha1-pan1kry0U2Zr9wyWlNpYcF0CXtg=" + }, + "uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npm.taobao.org/uglify-js/download/uglify-js-2.8.29.tgz?cache=0&sync_timestamp=1592744803278&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fuglify-js%2Fdownload%2Fuglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "requires": { + "source-map": "~0.5.1", + "uglify-to-browserify": "~1.0.0", + "yargs": "~3.10.0" + }, + "dependencies": { + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/uglify-to-browserify/download/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "optional": true + }, + "uglifyjs-webpack-plugin": { + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/uglifyjs-webpack-plugin/download/uglifyjs-webpack-plugin-1.3.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fuglifyjs-webpack-plugin%2Fdownload%2Fuglifyjs-webpack-plugin-1.3.0.tgz", + "integrity": "sha1-dfVIFghYFjoIZD4IbV/v4YpdZ94=", + "dev": true, + "requires": { + "cacache": "^10.0.4", + "find-cache-dir": "^1.0.0", + "schema-utils": "^0.4.5", + "serialize-javascript": "^1.4.0", + "source-map": "^0.6.1", + "uglify-es": "^3.3.4", + "webpack-sources": "^1.1.0", + "worker-farm": "^1.5.2" + }, + "dependencies": { + "cacache": { + "version": "10.0.4", + "resolved": "https://registry.npm.taobao.org/cacache/download/cacache-10.0.4.tgz?cache=0&sync_timestamp=1594429684526&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcacache%2Fdownload%2Fcacache-10.0.4.tgz", + "integrity": "sha1-ZFI2eZnv+dQYiu/ZoU6dfGomNGA=", + "dev": true, + "requires": { + "bluebird": "^3.5.1", + "chownr": "^1.0.1", + "glob": "^7.1.2", + "graceful-fs": "^4.1.11", + "lru-cache": "^4.1.1", + "mississippi": "^2.0.0", + "mkdirp": "^0.5.1", + "move-concurrently": "^1.0.1", + "promise-inflight": "^1.0.1", + "rimraf": "^2.6.2", + "ssri": "^5.2.4", + "unique-filename": "^1.1.0", + "y18n": "^4.0.0" + } + }, + "commander": { + "version": "2.13.0", + "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.13.0.tgz?cache=0&sync_timestamp=1595168173997&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.13.0.tgz", + "integrity": "sha1-aWS8pnaF33wfFDDFhPB9dZeIW5w=", + "dev": true + }, + "find-cache-dir": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/find-cache-dir/download/find-cache-dir-1.0.0.tgz", + "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", + "dev": true, + "requires": { + "commondir": "^1.0.1", + "make-dir": "^1.0.0", + "pkg-dir": "^2.0.0" + } + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz?cache=0&sync_timestamp=1594427569171&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-4.1.5.tgz", + "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npm.taobao.org/make-dir/download/make-dir-1.3.0.tgz?cache=0&sync_timestamp=1587567875186&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fmake-dir%2Fdownload%2Fmake-dir-1.3.0.tgz", + "integrity": "sha1-ecEDO4BRW9bSTsmTPoYMp17ifww=", + "dev": true, + "requires": { + "pify": "^3.0.0" + } + }, + "mississippi": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/mississippi/download/mississippi-2.0.0.tgz", + "integrity": "sha1-NEKlCPr8KFAEhv7qmUCWduTuWm8=", + "dev": true, + "requires": { + "concat-stream": "^1.5.0", + "duplexify": "^3.4.2", + "end-of-stream": "^1.1.0", + "flush-write-stream": "^1.0.0", + "from2": "^2.1.0", + "parallel-transform": "^1.1.0", + "pump": "^2.0.1", + "pumpify": "^1.3.3", + "stream-each": "^1.1.0", + "through2": "^2.0.0" + } + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/pify/download/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/pkg-dir/download/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, + "requires": { + "find-up": "^2.1.0" + } + }, + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npm.taobao.org/pump/download/pump-2.0.1.tgz", + "integrity": "sha1-Ejma3W5M91Jtlzy8i1zi4pCLOQk=", + "dev": true, + "requires": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "schema-utils": { + "version": "0.4.7", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-0.4.7.tgz", + "integrity": "sha1-unT1l9K+LqiAExdG7hfQoJPGgYc=", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-keywords": "^3.1.0" + } + }, + "serialize-javascript": { + "version": "1.9.1", + "resolved": "https://registry.npm.taobao.org/serialize-javascript/download/serialize-javascript-1.9.1.tgz", + "integrity": "sha1-z8IArvd7YAxH2pu4FJyUPnmML9s=", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + }, + "ssri": { + "version": "5.3.0", + "resolved": "https://registry.npm.taobao.org/ssri/download/ssri-5.3.0.tgz", + "integrity": "sha1-ujhyycbTOgcEp9cf8EXl7EiZnQY=", + "dev": true, + "requires": { + "safe-buffer": "^5.1.1" + } + }, + "uglify-es": { + "version": "3.3.9", + "resolved": "https://registry.npm.taobao.org/uglify-es/download/uglify-es-3.3.9.tgz", + "integrity": "sha1-DBxPBwC+2NvBJM2zBNJZLKID5nc=", + "dev": true, + "requires": { + "commander": "~2.13.0", + "source-map": "~0.6.1" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } + }, + "unicode-canonical-property-names-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/unicode-canonical-property-names-ecmascript/download/unicode-canonical-property-names-ecmascript-1.0.4.tgz", + "integrity": "sha1-JhmADEyCWADv3YNDr33Zkzy+KBg=", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/unicode-match-property-ecmascript/download/unicode-match-property-ecmascript-1.0.4.tgz", + "integrity": "sha1-jtKjJWmWG86SJ9Cc0/+7j+1fAgw=", + "dev": true, + "requires": { + "unicode-canonical-property-names-ecmascript": "^1.0.4", + "unicode-property-aliases-ecmascript": "^1.0.4" + } + }, + "unicode-match-property-value-ecmascript": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/unicode-match-property-value-ecmascript/download/unicode-match-property-value-ecmascript-1.2.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funicode-match-property-value-ecmascript%2Fdownload%2Funicode-match-property-value-ecmascript-1.2.0.tgz", + "integrity": "sha1-DZH2AO7rMJaqlisdb8iIduZOpTE=", + "dev": true + }, + "unicode-property-aliases-ecmascript": { + "version": "1.1.0", + "resolved": "https://registry.npm.taobao.org/unicode-property-aliases-ecmascript/download/unicode-property-aliases-ecmascript-1.1.0.tgz?cache=0&sync_timestamp=1583945805856&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funicode-property-aliases-ecmascript%2Fdownload%2Funicode-property-aliases-ecmascript-1.1.0.tgz", + "integrity": "sha1-3Vepn2IHvt/0Yoq++5TFDblByPQ=", + "dev": true + }, + "union-value": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/union-value/download/union-value-1.0.1.tgz", + "integrity": "sha1-C2/nuDWuzaYcbqTU8CwUIh4QmEc=", + "dev": true, + "requires": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + } + }, + "uniq": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/uniq/download/uniq-1.0.1.tgz", + "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", + "dev": true + }, + "uniqs": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/uniqs/download/uniqs-2.0.0.tgz", + "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", + "dev": true + }, + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/unique-filename/download/unique-filename-1.1.1.tgz", + "integrity": "sha1-HWl2k2mtoFgxA6HmrodoG1ZXMjA=", + "dev": true, + "requires": { + "unique-slug": "^2.0.0" + } + }, + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npm.taobao.org/unique-slug/download/unique-slug-2.0.2.tgz", + "integrity": "sha1-uqvOkQg/xk6UWw861hPiZPfNTmw=", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } + }, + "universalify": { + "version": "0.1.2", + "resolved": "https://registry.npm.taobao.org/universalify/download/universalify-0.1.2.tgz?cache=0&sync_timestamp=1583531006552&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Funiversalify%2Fdownload%2Funiversalify-0.1.2.tgz", + "integrity": "sha1-tkb2m+OULavOzJ1mOcgNwQXvqmY=", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/unpipe/download/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "dev": true + }, + "unquote": { + "version": "1.1.1", + "resolved": "https://registry.npm.taobao.org/unquote/download/unquote-1.1.1.tgz", + "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", + "dev": true + }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/unset-value/download/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dev": true, + "requires": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npm.taobao.org/has-value/download/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dev": true, + "requires": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/isobject/download/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npm.taobao.org/has-values/download/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "dev": true + } + } + }, + "upath": { + "version": "1.2.0", + "resolved": "https://registry.npm.taobao.org/upath/download/upath-1.2.0.tgz", + "integrity": "sha1-j2bbzVWog6za5ECK+LA1pQRMGJQ=", + "dev": true + }, + "upper-case": { + "version": "1.1.3", + "resolved": "https://registry.npm.taobao.org/upper-case/download/upper-case-1.1.3.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fupper-case%2Fdownload%2Fupper-case-1.1.3.tgz", + "integrity": "sha1-9rRQHC7EzdJrp4vnIilh3ndiFZg=", + "dev": true + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npm.taobao.org/uri-js/download/uri-js-4.2.2.tgz", + "integrity": "sha1-lMVA4f93KVbiKZUHwBCupsiDjrA=", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npm.taobao.org/urix/download/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "dev": true + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npm.taobao.org/url/download/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npm.taobao.org/punycode/download/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + } + } + }, + "url-loader": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/url-loader/download/url-loader-1.1.2.tgz", + "integrity": "sha1-uXHRkbg69pPF4/6kBkvp4fLX+Ng=", + "dev": true, + "requires": { + "loader-utils": "^1.1.0", + "mime": "^2.0.3", + "schema-utils": "^1.0.0" + }, + "dependencies": { + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", + "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "url-parse": { + "version": "1.4.7", + "resolved": "https://registry.npm.taobao.org/url-parse/download/url-parse-1.4.7.tgz", + "integrity": "sha1-qKg1NejACjFuQDpdtKwbm4U64ng=", + "dev": true, + "requires": { + "querystringify": "^2.1.1", + "requires-port": "^1.0.0" + } + }, + "use": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/use/download/use-3.1.1.tgz", + "integrity": "sha1-1QyMrHmhn7wg8pEfVuuXP04QBw8=", + "dev": true + }, + "util": { + "version": "0.11.1", + "resolved": "https://registry.npm.taobao.org/util/download/util-0.11.1.tgz?cache=0&sync_timestamp=1588238457176&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Futil%2Fdownload%2Futil-0.11.1.tgz", + "integrity": "sha1-MjZzNyDsZLsn9uJvQhqqLhtYjWE=", + "dev": true, + "requires": { + "inherits": "2.0.3" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/inherits/download/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/util-deprecate/download/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "util.promisify": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/util.promisify/download/util.promisify-1.0.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Futil.promisify%2Fdownload%2Futil.promisify-1.0.1.tgz", + "integrity": "sha1-a693dLgO6w91INi4HQeYKlmruu4=", + "dev": true, + "requires": { + "define-properties": "^1.1.3", + "es-abstract": "^1.17.2", + "has-symbols": "^1.0.1", + "object.getownpropertydescriptors": "^2.1.0" + } + }, + "utila": { + "version": "0.4.0", + "resolved": "https://registry.npm.taobao.org/utila/download/utila-0.4.0.tgz", + "integrity": "sha1-ihagXURWV6Oupe7MWxKk+lN5dyw=", + "dev": true + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/utils-merge/download/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npm.taobao.org/uuid/download/uuid-3.4.0.tgz", + "integrity": "sha1-sj5DWK+oogL+ehAK8fX4g/AgB+4=", + "dev": true + }, + "v-click-outside-x": { + "version": "3.7.1", + "resolved": "https://registry.npm.taobao.org/v-click-outside-x/download/v-click-outside-x-3.7.1.tgz?cache=0&sync_timestamp=1579043108278&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fv-click-outside-x%2Fdownload%2Fv-click-outside-x-3.7.1.tgz", + "integrity": "sha1-qgPqoOQeRMtSB9z4bC2fDdZAhME=" + }, + "v-org-tree": { + "version": "1.0.12", + "resolved": "https://registry.npm.taobao.org/v-org-tree/download/v-org-tree-1.0.12.tgz", + "integrity": "sha1-Vmsu8dO4jI+tTO4zZaa0v+rjtI0=", + "requires": { + "clonedeep": "^2.0.0" + } + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npm.taobao.org/validate-npm-package-license/download/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha1-/JH2uce6FchX9MssXe/uw51PQQo=", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/vary/download/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true + }, + "vendors": { + "version": "1.0.4", + "resolved": "https://registry.npm.taobao.org/vendors/download/vendors-1.0.4.tgz?cache=0&sync_timestamp=1579857147055&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvendors%2Fdownload%2Fvendors-1.0.4.tgz", + "integrity": "sha1-4rgApT56Kbk1BsPPQRANFsTErY4=", + "dev": true + }, + "venn.js": { + "version": "0.2.20", + "resolved": "https://registry.npm.taobao.org/venn.js/download/venn.js-0.2.20.tgz", + "integrity": "sha1-Pw5QzHXLofWGkqijL2e9eq8apvo=", + "requires": { + "d3-selection": "^1.0.2", + "d3-transition": "^1.0.1", + "fmin": "0.0.2" + } + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npm.taobao.org/verror/download/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "view-design": { + "version": "4.3.2", + "resolved": "https://registry.npm.taobao.org/view-design/download/view-design-4.3.2.tgz", + "integrity": "sha1-bwgcZzt3QgObs4o6UZOO+rtg0KI=", + "requires": { + "async-validator": "^3.3.0", + "deepmerge": "^2.2.1", + "element-resize-detector": "^1.2.0", + "js-calendar": "^1.2.3", + "lodash.throttle": "^4.1.1", + "popper.js": "^1.14.6", + "tinycolor2": "^1.4.1", + "v-click-outside-x": "^3.7.1" + }, + "dependencies": { + "async-validator": { + "version": "3.3.0", + "resolved": "https://registry.npm.taobao.org/async-validator/download/async-validator-3.3.0.tgz", + "integrity": "sha1-HZIZO75g1tbIskZpLHAF6e0UqO4=" + } + } + }, + "vm-browserify": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/vm-browserify/download/vm-browserify-1.1.2.tgz?cache=0&sync_timestamp=1572870776965&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvm-browserify%2Fdownload%2Fvm-browserify-1.1.2.tgz", + "integrity": "sha1-eGQcSIuObKkadfUR56OzKobl3aA=", + "dev": true + }, + "vue": { + "version": "2.6.11", + "resolved": "https://registry.npm.taobao.org/vue/download/vue-2.6.11.tgz", + "integrity": "sha1-dllNh31LEiNEBuhONSdcbVFBJcU=" + }, + "vue-data-loading": { + "version": "0.2.4", + "resolved": "https://registry.npm.taobao.org/vue-data-loading/download/vue-data-loading-0.2.4.tgz", + "integrity": "sha1-kftt9j7aXGXTrzM2foYqnh/Bhu8=", + "requires": { + "vue": "^2.0.0" + } + }, + "vue-enum": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/vue-enum/download/vue-enum-1.0.5.tgz", + "integrity": "sha1-cQfD4tfXnp1HKLsWzvS83TTBziM=" + }, + "vue-eslint-parser": { + "version": "2.0.3", + "resolved": "https://registry.npm.taobao.org/vue-eslint-parser/download/vue-eslint-parser-2.0.3.tgz?cache=0&sync_timestamp=1589539313907&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-eslint-parser%2Fdownload%2Fvue-eslint-parser-2.0.3.tgz", + "integrity": "sha1-wmjJbG2Uz+PZOKX3WTlZsMozYNE=", + "dev": true, + "optional": true, + "requires": { + "debug": "^3.1.0", + "eslint-scope": "^3.7.1", + "eslint-visitor-keys": "^1.0.0", + "espree": "^3.5.2", + "esquery": "^1.0.0", + "lodash": "^4.17.4" + }, + "dependencies": { + "eslint-scope": { + "version": "3.7.3", + "resolved": "https://registry.npm.taobao.org/eslint-scope/download/eslint-scope-3.7.3.tgz", + "integrity": "sha1-u1ByANPRf2AkdjYWC0gmKEsQhTU=", + "dev": true, + "optional": true, + "requires": { + "esrecurse": "^4.1.0", + "estraverse": "^4.1.1" + } + } + } + }, + "vue-hot-reload-api": { + "version": "2.3.4", + "resolved": "https://registry.npm.taobao.org/vue-hot-reload-api/download/vue-hot-reload-api-2.3.4.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-hot-reload-api%2Fdownload%2Fvue-hot-reload-api-2.3.4.tgz", + "integrity": "sha1-UylVzB6yCKPZkLOp+acFdGV+CPI=", + "dev": true + }, + "vue-i18n": { + "version": "7.8.1", + "resolved": "https://registry.npm.taobao.org/vue-i18n/download/vue-i18n-7.8.1.tgz", + "integrity": "sha1-LOS2795nmh4F3bXZB7/BvCGIA7I=" + }, + "vue-infinite-loading": { + "version": "2.4.5", + "resolved": "https://registry.npm.taobao.org/vue-infinite-loading/download/vue-infinite-loading-2.4.5.tgz", + "integrity": "sha1-zCD9QK9/IBiABkQ8mbYEcM8d4bM=", + "requires": {} + }, + "vue-json-viewer": { + "version": "2.2.12", + "resolved": "https://registry.npm.taobao.org/vue-json-viewer/download/vue-json-viewer-2.2.12.tgz", + "integrity": "sha1-9y94pAIOa+QqQwAOCdIEf2iWJlY=", + "requires": { + "clipboard": "^2.0.4", + "vue": "^2.6.9" + } + }, + "vue-json-views": { + "version": "0.1.1", + "resolved": "https://registry.npm.taobao.org/vue-json-views/download/vue-json-views-0.1.1.tgz", + "integrity": "sha1-8YAXKr4EvK9Cag9DoBkk4EJuvPw=", + "requires": { + "vue": "^2.5.11", + "vue-json-views": "^0.0.2" + }, + "dependencies": { + "vue-json-views": { + "version": "0.0.2", + "resolved": "https://registry.npm.taobao.org/vue-json-views/download/vue-json-views-0.0.2.tgz", + "integrity": "sha1-xadQA6glOnXDN81xftikVMMCXx0=", + "requires": { + "vue": "^2.5.11" + } + } + } + }, + "vue-loader": { + "version": "15.9.3", + "resolved": "https://registry.npm.taobao.org/vue-loader/download/vue-loader-15.9.3.tgz?cache=0&sync_timestamp=1593355754768&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-loader%2Fdownload%2Fvue-loader-15.9.3.tgz", + "integrity": "sha1-DeNdnlVdPtU5aVFsrFziVTEpndo=", + "dev": true, + "requires": { + "@vue/component-compiler-utils": "^3.1.0", + "hash-sum": "^1.0.2", + "loader-utils": "^1.1.0", + "vue-hot-reload-api": "^2.3.0", + "vue-style-loader": "^4.1.0" + } + }, + "vue-router": { + "version": "3.3.4", + "resolved": "https://registry.npm.taobao.org/vue-router/download/vue-router-3.3.4.tgz?cache=0&sync_timestamp=1594111718735&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvue-router%2Fdownload%2Fvue-router-3.3.4.tgz", + "integrity": "sha1-Tjirw0oRxBtsPYJERJouNjumJQs=" + }, + "vue-slick": { + "version": "1.1.15", + "resolved": "https://registry.npm.taobao.org/vue-slick/download/vue-slick-1.1.15.tgz", + "integrity": "sha1-KRYTRTH9H5Y4VI8roVJuTxEDJYg=", + "requires": { + "slick-carousel": "^1.6.0" + } + }, + "vue-style-loader": { + "version": "4.1.2", + "resolved": "https://registry.npm.taobao.org/vue-style-loader/download/vue-style-loader-4.1.2.tgz", + "integrity": "sha1-3t80mAbyXOtOZPOtfApE+6c1/Pg=", + "dev": true, + "requires": { + "hash-sum": "^1.0.2", + "loader-utils": "^1.0.2" + } + }, + "vue-template-compiler": { + "version": "2.6.11", + "resolved": "https://registry.npm.taobao.org/vue-template-compiler/download/vue-template-compiler-2.6.11.tgz", + "integrity": "sha1-wEcE749JixUxMAGJk+VjCdRpgIA=", + "dev": true, + "requires": { + "de-indent": "^1.0.2", + "he": "^1.1.0" + } + }, + "vue-template-es2015-compiler": { + "version": "1.9.1", + "resolved": "https://registry.npm.taobao.org/vue-template-es2015-compiler/download/vue-template-es2015-compiler-1.9.1.tgz", + "integrity": "sha1-HuO8mhbsv1EYvjNLsV+cRvgvWCU=", + "dev": true + }, + "vuedraggable": { + "version": "2.24.0", + "resolved": "https://registry.npm.taobao.org/vuedraggable/download/vuedraggable-2.24.0.tgz?cache=0&sync_timestamp=1594052423588&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvuedraggable%2Fdownload%2Fvuedraggable-2.24.0.tgz", + "integrity": "sha1-HuBp7rkfYfy1QPryDxxrLU2ZCiY=", + "requires": { + "sortablejs": "^1.10.1" + } + }, + "vuex": { + "version": "3.5.1", + "resolved": "https://registry.npm.taobao.org/vuex/download/vuex-3.5.1.tgz?cache=0&sync_timestamp=1593445037188&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fvuex%2Fdownload%2Fvuex-3.5.1.tgz", + "integrity": "sha1-8bjc6mSbwlJUz09DWAgdv12hiz0=", + "requires": {} + }, + "w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/w3c-hr-time/download/w3c-hr-time-1.0.2.tgz?cache=0&sync_timestamp=1583455604765&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fw3c-hr-time%2Fdownload%2Fw3c-hr-time-1.0.2.tgz", + "integrity": "sha1-ConN9cwVgi35w2BUNnaWPgzDCM0=", + "dev": true, + "requires": { + "browser-process-hrtime": "^1.0.0" + } + }, + "w3c-xmlserializer": { + "version": "1.1.2", + "resolved": "https://registry.npm.taobao.org/w3c-xmlserializer/download/w3c-xmlserializer-1.1.2.tgz", + "integrity": "sha1-MEhcp9cKb9BSQgo9Ev2Q5jOc55Q=", + "dev": true, + "requires": { + "domexception": "^1.0.1", + "webidl-conversions": "^4.0.2", + "xml-name-validator": "^3.0.0" + } + }, + "wangeditor": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/wangeditor/download/wangeditor-3.1.1.tgz", + "integrity": "sha1-+9PB1JdpI8nt67hbKdMLNVEq0Dk=" + }, + "watchpack": { + "version": "1.7.2", + "resolved": "https://registry.npm.taobao.org/watchpack/download/watchpack-1.7.2.tgz", + "integrity": "sha1-wC5NTUmRPD5+EiwzJTZa+dMx6ao=", + "dev": true, + "requires": { + "chokidar": "^3.4.0", + "graceful-fs": "^4.1.2", + "neo-async": "^2.5.0", + "watchpack-chokidar2": "^2.0.0" + } + }, + "watchpack-chokidar2": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/watchpack-chokidar2/download/watchpack-chokidar2-2.0.0.tgz", + "integrity": "sha1-mUihhmy71suCTeoTp+1pH2yN3/A=", + "dev": true, + "optional": true, + "requires": { + "chokidar": "^2.1.8" + }, + "dependencies": { + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz", + "integrity": "sha1-vLJLTzeTTZqnrBe0ra+J58du8us=", + "dev": true, + "optional": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "optional": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.13.1.tgz?cache=0&sync_timestamp=1593261363626&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-1.13.1.tgz", + "integrity": "sha1-WYr+VHVbKGilMw0q/51Ou1Mgm2U=", + "dev": true, + "optional": true + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-2.1.8.tgz?cache=0&sync_timestamp=1594864731636&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-2.1.8.tgz", + "integrity": "sha1-gEs6e2qZNYw8XGHnHYco8EHP+Rc=", + "dev": true, + "optional": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-1.2.13.tgz?cache=0&sync_timestamp=1588787369955&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffsevents%2Fdownload%2Ffsevents-1.2.13.tgz", + "integrity": "sha1-8yXLBFVZJCi88Rs4M3DvcOO/zDg=", + "dev": true, + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "optional": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "optional": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "optional": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-2.2.1.tgz?cache=0&sync_timestamp=1584985910691&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-2.2.1.tgz", + "integrity": "sha1-DodiKjMlqjPokihcr4tOhGUppSU=", + "dev": true, + "optional": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + } + } + }, + "wbuf": { + "version": "1.7.3", + "resolved": "https://registry.npm.taobao.org/wbuf/download/wbuf-1.7.3.tgz", + "integrity": "sha1-wdjRSTFtPqhShIiVy2oL/oh7h98=", + "dev": true, + "requires": { + "minimalistic-assert": "^1.0.0" + } + }, + "wcwidth": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/wcwidth/download/wcwidth-1.0.1.tgz", + "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", + "dev": true, + "requires": { + "defaults": "^1.0.3" + } + }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/webidl-conversions/download/webidl-conversions-4.0.2.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebidl-conversions%2Fdownload%2Fwebidl-conversions-4.0.2.tgz", + "integrity": "sha1-qFWYCx8LazWbodXZ+zmulB+qY60=", + "dev": true + }, + "webpack": { + "version": "4.43.0", + "resolved": "https://registry.npm.taobao.org/webpack/download/webpack-4.43.0.tgz?cache=0&sync_timestamp=1594294511041&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack%2Fdownload%2Fwebpack-4.43.0.tgz", + "integrity": "sha1-xIVHsR1WMiTFYdrRFyyKoLimeOY=", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.9.0", + "@webassemblyjs/helper-module-context": "1.9.0", + "@webassemblyjs/wasm-edit": "1.9.0", + "@webassemblyjs/wasm-parser": "1.9.0", + "acorn": "^6.4.1", + "ajv": "^6.10.2", + "ajv-keywords": "^3.4.1", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^4.1.0", + "eslint-scope": "^4.0.3", + "json-parse-better-errors": "^1.0.2", + "loader-runner": "^2.4.0", + "loader-utils": "^1.2.3", + "memory-fs": "^0.4.1", + "micromatch": "^3.1.10", + "mkdirp": "^0.5.3", + "neo-async": "^2.6.1", + "node-libs-browser": "^2.2.1", + "schema-utils": "^1.0.0", + "tapable": "^1.1.3", + "terser-webpack-plugin": "^1.4.3", + "watchpack": "^1.6.1", + "webpack-sources": "^1.4.1" + }, + "dependencies": { + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", + "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + } + } + }, + "webpack-bundle-analyzer": { + "version": "3.8.0", + "resolved": "https://registry.npm.taobao.org/webpack-bundle-analyzer/download/webpack-bundle-analyzer-3.8.0.tgz", + "integrity": "sha1-zms/kI2vBp/R9yZvaSy7O97ZuhY=", + "dev": true, + "requires": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1", + "bfj": "^6.1.1", + "chalk": "^2.4.1", + "commander": "^2.18.0", + "ejs": "^2.6.1", + "express": "^4.16.3", + "filesize": "^3.6.1", + "gzip-size": "^5.0.0", + "lodash": "^4.17.15", + "mkdirp": "^0.5.1", + "opener": "^1.5.1", + "ws": "^6.0.0" + }, + "dependencies": { + "acorn": { + "version": "7.3.1", + "resolved": "https://registry.npm.taobao.org/acorn/download/acorn-7.3.1.tgz?cache=0&sync_timestamp=1591869432510&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Facorn%2Fdownload%2Facorn-7.3.1.tgz", + "integrity": "sha1-hQEHVNtTw/uvO56j4IOqXF0Uf/0=", + "dev": true + }, + "acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npm.taobao.org/acorn-walk/download/acorn-walk-7.2.0.tgz", + "integrity": "sha1-DeiJpgEgOQmw++B7iTjcIdLpZ7w=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npm.taobao.org/chalk/download/chalk-2.4.2.tgz", + "integrity": "sha1-zUJUFnelQzPPVBpJEIwUMrRMlCQ=", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-5.5.0.tgz", + "integrity": "sha1-4uaaRKyHcveKHsCzW2id9lMO/I8=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "webpack-chain": { + "version": "4.12.1", + "resolved": "https://registry.npm.taobao.org/webpack-chain/download/webpack-chain-4.12.1.tgz?cache=0&sync_timestamp=1593639477219&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-chain%2Fdownload%2Fwebpack-chain-4.12.1.tgz", + "integrity": "sha1-bIQ5u7KrVQlS1g4eqTGRQZBsAqY=", + "dev": true, + "requires": { + "deepmerge": "^1.5.2", + "javascript-stringify": "^1.6.0" + }, + "dependencies": { + "deepmerge": { + "version": "1.5.2", + "resolved": "https://registry.npm.taobao.org/deepmerge/download/deepmerge-1.5.2.tgz", + "integrity": "sha1-EEmdhohEza1P7ghC34x/bwyVp1M=", + "dev": true + } + } + }, + "webpack-dev-middleware": { + "version": "3.7.2", + "resolved": "https://registry.npm.taobao.org/webpack-dev-middleware/download/webpack-dev-middleware-3.7.2.tgz?cache=0&sync_timestamp=1594744804453&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-dev-middleware%2Fdownload%2Fwebpack-dev-middleware-3.7.2.tgz", + "integrity": "sha1-ABnD23FuP6XOy/ZPKriKdLqzMfM=", + "dev": true, + "requires": { + "memory-fs": "^0.4.1", + "mime": "^2.4.4", + "mkdirp": "^0.5.1", + "range-parser": "^1.2.1", + "webpack-log": "^2.0.0" + } + }, + "webpack-dev-server": { + "version": "3.11.0", + "resolved": "https://registry.npm.taobao.org/webpack-dev-server/download/webpack-dev-server-3.11.0.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-dev-server%2Fdownload%2Fwebpack-dev-server-3.11.0.tgz", + "integrity": "sha1-jxVKO84bz9HMYY705wMniFXn/4w=", + "dev": true, + "requires": { + "ansi-html": "0.0.7", + "bonjour": "^3.5.0", + "chokidar": "^2.1.8", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "debug": "^4.1.1", + "del": "^4.1.1", + "express": "^4.17.1", + "html-entities": "^1.3.1", + "http-proxy-middleware": "0.19.1", + "import-local": "^2.0.0", + "internal-ip": "^4.3.0", + "ip": "^1.1.5", + "is-absolute-url": "^3.0.3", + "killable": "^1.0.1", + "loglevel": "^1.6.8", + "opn": "^5.5.0", + "p-retry": "^3.0.1", + "portfinder": "^1.0.26", + "schema-utils": "^1.0.0", + "selfsigned": "^1.10.7", + "semver": "^6.3.0", + "serve-index": "^1.9.1", + "sockjs": "0.3.20", + "sockjs-client": "1.4.0", + "spdy": "^4.0.2", + "strip-ansi": "^3.0.1", + "supports-color": "^6.1.0", + "url": "^0.11.0", + "webpack-dev-middleware": "^3.7.2", + "webpack-log": "^2.0.0", + "ws": "^6.2.1", + "yargs": "^13.3.2" + }, + "dependencies": { + "ansi-regex": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/ansi-regex/download/ansi-regex-4.1.0.tgz", + "integrity": "sha1-i5+PCM8ay4Q3Vqg5yox+MWjFGZc=", + "dev": true + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npm.taobao.org/ansi-styles/download/ansi-styles-3.2.1.tgz", + "integrity": "sha1-QfuyAkPlCxK+DwS43tvwdSDOhB0=", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/anymatch/download/anymatch-2.0.0.tgz", + "integrity": "sha1-vLJLTzeTTZqnrBe0ra+J58du8us=", + "dev": true, + "requires": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + }, + "dependencies": { + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "^1.0.1" + } + } + } + }, + "binary-extensions": { + "version": "1.13.1", + "resolved": "https://registry.npm.taobao.org/binary-extensions/download/binary-extensions-1.13.1.tgz?cache=0&sync_timestamp=1593261363626&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fbinary-extensions%2Fdownload%2Fbinary-extensions-1.13.1.tgz", + "integrity": "sha1-WYr+VHVbKGilMw0q/51Ou1Mgm2U=", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-5.3.1.tgz", + "integrity": "sha1-48mzFWnhBoEd8kL3FXJaH0xJQyA=", + "dev": true + }, + "chokidar": { + "version": "2.1.8", + "resolved": "https://registry.npm.taobao.org/chokidar/download/chokidar-2.1.8.tgz?cache=0&sync_timestamp=1594864731636&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fchokidar%2Fdownload%2Fchokidar-2.1.8.tgz", + "integrity": "sha1-gEs6e2qZNYw8XGHnHYco8EHP+Rc=", + "dev": true, + "requires": { + "anymatch": "^2.0.0", + "async-each": "^1.0.1", + "braces": "^2.3.2", + "fsevents": "^1.2.7", + "glob-parent": "^3.1.0", + "inherits": "^2.0.3", + "is-binary-path": "^1.0.0", + "is-glob": "^4.0.0", + "normalize-path": "^3.0.0", + "path-is-absolute": "^1.0.0", + "readdirp": "^2.2.1", + "upath": "^1.1.1" + } + }, + "cliui": { + "version": "5.0.0", + "resolved": "https://registry.npm.taobao.org/cliui/download/cliui-5.0.0.tgz", + "integrity": "sha1-3u/P2y6AB4SqNPRvoI4GhRx7u8U=", + "dev": true, + "requires": { + "string-width": "^3.1.0", + "strip-ansi": "^5.2.0", + "wrap-ansi": "^5.1.0" + }, + "dependencies": { + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "debug": { + "version": "4.1.1", + "resolved": "https://registry.npm.taobao.org/debug/download/debug-4.1.1.tgz?cache=0&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fdebug%2Fdownload%2Fdebug-4.1.1.tgz", + "integrity": "sha1-O3ImAlUQnGtYnO4FDx1RYTlmR5E=", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "emoji-regex": { + "version": "7.0.3", + "resolved": "https://registry.npm.taobao.org/emoji-regex/download/emoji-regex-7.0.3.tgz", + "integrity": "sha1-kzoEBShgyF6DwSJHnEdIqOTHIVY=", + "dev": true + }, + "find-up": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/find-up/download/find-up-3.0.0.tgz", + "integrity": "sha1-SRafHXmTQwZG2mHsxa41XCHJe3M=", + "dev": true, + "requires": { + "locate-path": "^3.0.0" + } + }, + "fsevents": { + "version": "1.2.13", + "resolved": "https://registry.npm.taobao.org/fsevents/download/fsevents-1.2.13.tgz?cache=0&sync_timestamp=1588787369955&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Ffsevents%2Fdownload%2Ffsevents-1.2.13.tgz", + "integrity": "sha1-8yXLBFVZJCi88Rs4M3DvcOO/zDg=", + "dev": true, + "optional": true, + "requires": { + "bindings": "^1.5.0", + "nan": "^2.12.1" + } + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npm.taobao.org/get-caller-file/download/get-caller-file-2.0.5.tgz", + "integrity": "sha1-T5RBKoLbMvNuOwuXQfipf+sDH34=", + "dev": true + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/glob-parent/download/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "dev": true, + "requires": { + "is-glob": "^3.1.0", + "path-dirname": "^1.0.0" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/is-glob/download/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "dev": true, + "requires": { + "is-extglob": "^2.1.0" + } + } + } + }, + "is-absolute-url": { + "version": "3.0.3", + "resolved": "https://registry.npm.taobao.org/is-absolute-url/download/is-absolute-url-3.0.3.tgz", + "integrity": "sha1-lsaiK2ojkpsR6gr7GDbDatSl1pg=", + "dev": true + }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npm.taobao.org/is-binary-path/download/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "^1.0.0" + } + }, + "locate-path": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/locate-path/download/locate-path-3.0.0.tgz", + "integrity": "sha1-2+w7OrdZdYBxtY/ln8QYca8hQA4=", + "dev": true, + "requires": { + "p-locate": "^3.0.0", + "path-exists": "^3.0.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.1.2.tgz", + "integrity": "sha1-0J0fNXtEP0kzgqjrPM0YOHKuYAk=", + "dev": true + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/p-limit/download/p-limit-2.3.0.tgz?cache=0&sync_timestamp=1594559696906&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fp-limit%2Fdownload%2Fp-limit-2.3.0.tgz", + "integrity": "sha1-PdM8ZHohT9//2DWTPrCG2g3CHbE=", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/p-locate/download/p-locate-3.0.0.tgz", + "integrity": "sha1-Mi1poFwCZLJZl9n0DNiokasAZKQ=", + "dev": true, + "requires": { + "p-limit": "^2.0.0" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/p-try/download/p-try-2.2.0.tgz", + "integrity": "sha1-yyhoVA4xPWHeWPr741zpAE1VQOY=", + "dev": true + }, + "readdirp": { + "version": "2.2.1", + "resolved": "https://registry.npm.taobao.org/readdirp/download/readdirp-2.2.1.tgz?cache=0&sync_timestamp=1584985910691&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Freaddirp%2Fdownload%2Freaddirp-2.2.1.tgz", + "integrity": "sha1-DodiKjMlqjPokihcr4tOhGUppSU=", + "dev": true, + "requires": { + "graceful-fs": "^4.1.11", + "micromatch": "^3.1.10", + "readable-stream": "^2.0.2" + } + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/require-main-filename/download/require-main-filename-2.0.0.tgz", + "integrity": "sha1-0LMp7MfMD2Fkn2IhW+aa9UqomJs=", + "dev": true + }, + "schema-utils": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/schema-utils/download/schema-utils-1.0.0.tgz", + "integrity": "sha1-C3mpMgTXtgDUsoUNH2bCo0lRx3A=", + "dev": true, + "requires": { + "ajv": "^6.1.0", + "ajv-errors": "^1.0.0", + "ajv-keywords": "^3.1.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npm.taobao.org/semver/download/semver-6.3.0.tgz?cache=0&sync_timestamp=1586886301819&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fsemver%2Fdownload%2Fsemver-6.3.0.tgz", + "integrity": "sha1-7gpkyK9ejO6mdoexM3YeG+y9HT0=", + "dev": true + }, + "string-width": { + "version": "3.1.0", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-3.1.0.tgz", + "integrity": "sha1-InZ74htirxCBV0MG9prFG2IgOWE=", + "dev": true, + "requires": { + "emoji-regex": "^7.0.1", + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^5.1.0" + }, + "dependencies": { + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "supports-color": { + "version": "6.1.0", + "resolved": "https://registry.npm.taobao.org/supports-color/download/supports-color-6.1.0.tgz", + "integrity": "sha1-B2Srxpxj1ayELdSGfo0CXogN+PM=", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + }, + "wrap-ansi": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-5.1.0.tgz", + "integrity": "sha1-H9H2cjXVttD+54EFYAG/tpTAOwk=", + "dev": true, + "requires": { + "ansi-styles": "^3.2.0", + "string-width": "^3.0.0", + "strip-ansi": "^5.0.0" + }, + "dependencies": { + "strip-ansi": { + "version": "5.2.0", + "resolved": "https://registry.npm.taobao.org/strip-ansi/download/strip-ansi-5.2.0.tgz", + "integrity": "sha1-jJpTb+tq/JYr36WxBKUJHBrZwK4=", + "dev": true, + "requires": { + "ansi-regex": "^4.1.0" + } + } + } + }, + "yargs": { + "version": "13.3.2", + "resolved": "https://registry.npm.taobao.org/yargs/download/yargs-13.3.2.tgz?cache=0&sync_timestamp=1594421046064&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-13.3.2.tgz", + "integrity": "sha1-rX/+/sGqWVZayRX4Lcyzipwxot0=", + "dev": true, + "requires": { + "cliui": "^5.0.0", + "find-up": "^3.0.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^3.0.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^13.1.2" + } + }, + "yargs-parser": { + "version": "13.1.2", + "resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-13.1.2.tgz?cache=0&sync_timestamp=1595125190020&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-13.1.2.tgz", + "integrity": "sha1-Ew8JcC667vJlDVTObj5XBvek+zg=", + "dev": true, + "requires": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + } + } + } + }, + "webpack-log": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/webpack-log/download/webpack-log-2.0.0.tgz", + "integrity": "sha1-W3ko4GN1k/EZ0y9iJ8HgrDHhtH8=", + "dev": true, + "requires": { + "ansi-colors": "^3.0.0", + "uuid": "^3.3.2" + } + }, + "webpack-merge": { + "version": "4.2.2", + "resolved": "https://registry.npm.taobao.org/webpack-merge/download/webpack-merge-4.2.2.tgz?cache=0&sync_timestamp=1594294904067&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebpack-merge%2Fdownload%2Fwebpack-merge-4.2.2.tgz", + "integrity": "sha1-onxS6ng9E5iv0gh/VH17nS9DY00=", + "dev": true, + "requires": { + "lodash": "^4.17.15" + } + }, + "webpack-sources": { + "version": "1.4.3", + "resolved": "https://registry.npm.taobao.org/webpack-sources/download/webpack-sources-1.4.3.tgz", + "integrity": "sha1-7t2OwLko+/HL/plOItLYkPMwqTM=", + "dev": true, + "requires": { + "source-list-map": "^2.0.0", + "source-map": "~0.6.1" + }, + "dependencies": { + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npm.taobao.org/source-map/download/source-map-0.6.1.tgz", + "integrity": "sha1-dHIq8y6WFOnCh6jQu95IteLxomM=", + "dev": true + } + } + }, + "websocket-driver": { + "version": "0.6.5", + "resolved": "https://registry.npm.taobao.org/websocket-driver/download/websocket-driver-0.6.5.tgz?cache=0&sync_timestamp=1591289007652&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwebsocket-driver%2Fdownload%2Fwebsocket-driver-0.6.5.tgz", + "integrity": "sha1-XLJVbOuF9Dc8bYI4qmkchFThOjY=", + "dev": true, + "requires": { + "websocket-extensions": ">=0.1.1" + } + }, + "websocket-extensions": { + "version": "0.1.4", + "resolved": "https://registry.npm.taobao.org/websocket-extensions/download/websocket-extensions-0.1.4.tgz", + "integrity": "sha1-f4RzvIOd/YdgituV1+sHUhFXikI=", + "dev": true + }, + "whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npm.taobao.org/whatwg-encoding/download/whatwg-encoding-1.0.5.tgz", + "integrity": "sha1-WrrPd3wyFmpR0IXWtPPn0nET3bA=", + "dev": true, + "requires": { + "iconv-lite": "0.4.24" + } + }, + "whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npm.taobao.org/whatwg-mimetype/download/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha1-PUseAxLSB5h5+Cav8Y2+7KWWD78=", + "dev": true + }, + "whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npm.taobao.org/whatwg-url/download/whatwg-url-7.1.0.tgz?cache=0&sync_timestamp=1588965133257&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhatwg-url%2Fdownload%2Fwhatwg-url-7.1.0.tgz", + "integrity": "sha1-wsSS8eymEpiO/T0iZr4bn8YXDQY=", + "dev": true, + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://registry.npm.taobao.org/which/download/which-1.3.1.tgz?cache=0&sync_timestamp=1574116262707&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fwhich%2Fdownload%2Fwhich-1.3.1.tgz", + "integrity": "sha1-pFBD1U9YBTFtqNYvn1CRjT2nCwo=", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/which-module/download/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "window-size": { + "version": "0.1.0", + "resolved": "https://registry.npm.taobao.org/window-size/download/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=" + }, + "wolfy87-eventemitter": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/wolfy87-eventemitter/download/wolfy87-eventemitter-5.1.0.tgz", + "integrity": "sha1-NcGsDdGsDBXjXZgVCPwiCEoToBE=" + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npm.taobao.org/word-wrap/download/word-wrap-1.2.3.tgz", + "integrity": "sha1-YQY29rH3A4kb00dxzLF/uTtHB5w=", + "dev": true + }, + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npm.taobao.org/wordwrap/download/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=" + }, + "worker-farm": { + "version": "1.7.0", + "resolved": "https://registry.npm.taobao.org/worker-farm/download/worker-farm-1.7.0.tgz", + "integrity": "sha1-JqlMU5G7ypJhUgAvabhKS/dy5ag=", + "dev": true, + "requires": { + "errno": "~0.1.7" + } + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npm.taobao.org/wrap-ansi/download/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + }, + "dependencies": { + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/is-fullwidth-code-point/download/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/string-width/download/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npm.taobao.org/wrappy/download/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "write": { + "version": "0.2.1", + "resolved": "https://registry.npm.taobao.org/write/download/write-0.2.1.tgz", + "integrity": "sha1-X8A4KOJkzqP+kUVUdvejxWbLB1c=", + "dev": true, + "requires": { + "mkdirp": "^0.5.1" + } + }, + "ws": { + "version": "6.2.1", + "resolved": "https://registry.npm.taobao.org/ws/download/ws-6.2.1.tgz?cache=0&sync_timestamp=1593925420205&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fws%2Fdownload%2Fws-6.2.1.tgz", + "integrity": "sha1-RC/fCkftZPWbal2P8TD0dI7VJPs=", + "dev": true, + "requires": { + "async-limiter": "~1.0.0" + } + }, + "xlsx": { + "version": "0.13.5", + "resolved": "https://registry.npm.taobao.org/xlsx/download/xlsx-0.13.5.tgz", + "integrity": "sha1-ZYJroZRMb01sAjt+tsiea24Ncbc=", + "requires": { + "adler-32": "~1.2.0", + "cfb": "~1.0.8", + "codepage": "~1.14.0", + "commander": "~2.15.1", + "crc-32": "~1.2.0", + "exit-on-epipe": "~1.0.1", + "ssf": "~0.10.2" + }, + "dependencies": { + "commander": { + "version": "2.15.1", + "resolved": "https://registry.npm.taobao.org/commander/download/commander-2.15.1.tgz?cache=0&sync_timestamp=1595168173997&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fcommander%2Fdownload%2Fcommander-2.15.1.tgz", + "integrity": "sha1-30boZ9D8Kuxmo0ZitAapzK//Ww8=" + } + } + }, + "xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/xml-name-validator/download/xml-name-validator-3.0.0.tgz", + "integrity": "sha1-auc+Bt5NjG5H+fsYH3jWSK1FfGo=", + "dev": true + }, + "xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npm.taobao.org/xmlchars/download/xmlchars-2.2.0.tgz", + "integrity": "sha1-Bg/hvLf5x2/ioX24apvDq4lCEMs=", + "dev": true + }, + "xss": { + "version": "1.0.7", + "resolved": "https://registry.npm.taobao.org/xss/download/xss-1.0.7.tgz?cache=0&sync_timestamp=1591583567013&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fxss%2Fdownload%2Fxss-1.0.7.tgz", + "integrity": "sha1-pVTL1ekJMkvWiT+0f/9EGtVOKpU=", + "requires": { + "commander": "^2.20.3", + "cssfilter": "0.0.10" + } + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npm.taobao.org/xtend/download/xtend-4.0.2.tgz", + "integrity": "sha1-u3J3n1+kZRhrH0OPZ0+jR/2121Q=", + "dev": true + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npm.taobao.org/y18n/download/y18n-4.0.0.tgz", + "integrity": "sha1-le+U+F7MgdAHwmThkKEg8KPIVms=", + "dev": true + }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-3.1.1.tgz", + "integrity": "sha1-27fa+b/YusmrRev2ArjLrQ1dCP0=", + "dev": true + }, + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npm.taobao.org/yargs/download/yargs-3.10.0.tgz?cache=0&sync_timestamp=1594421046064&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs%2Fdownload%2Fyargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "requires": { + "camelcase": "^1.0.2", + "cliui": "^2.1.0", + "decamelize": "^1.0.0", + "window-size": "0.1.0" + } + }, + "yargs-parser": { + "version": "9.0.2", + "resolved": "https://registry.npm.taobao.org/yargs-parser/download/yargs-parser-9.0.2.tgz?cache=0&sync_timestamp=1595125190020&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fyargs-parser%2Fdownload%2Fyargs-parser-9.0.2.tgz", + "integrity": "sha1-nM9qQ0YP5O1Aqbto9I1DuKaMwHc=", + "dev": true, + "requires": { + "camelcase": "^4.1.0" + }, + "dependencies": { + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npm.taobao.org/camelcase/download/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true + } + } + }, + "yorkie": { + "version": "2.0.0", + "resolved": "https://registry.npm.taobao.org/yorkie/download/yorkie-2.0.0.tgz", + "integrity": "sha1-kkEZEtQ1IU4SxRwq4Qk+VLa7g9k=", + "dev": true, + "requires": { + "execa": "^0.8.0", + "is-ci": "^1.0.10", + "normalize-path": "^1.0.0", + "strip-indent": "^2.0.0" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npm.taobao.org/cross-spawn/download/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "execa": { + "version": "0.8.0", + "resolved": "https://registry.npm.taobao.org/execa/download/execa-0.8.0.tgz?cache=0&sync_timestamp=1594145237072&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Fexeca%2Fdownload%2Fexeca-0.8.0.tgz", + "integrity": "sha1-2NdrvBtVIX7RkP1t1J08d07PyNo=", + "dev": true, + "requires": { + "cross-spawn": "^5.0.1", + "get-stream": "^3.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + } + }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npm.taobao.org/get-stream/download/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npm.taobao.org/lru-cache/download/lru-cache-4.1.5.tgz?cache=0&sync_timestamp=1594427569171&other_urls=https%3A%2F%2Fregistry.npm.taobao.org%2Flru-cache%2Fdownload%2Flru-cache-4.1.5.tgz", + "integrity": "sha1-i75Q6oW+1ZvJ4z3KuCNe6bz0Q80=", + "dev": true, + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "normalize-path": { + "version": "1.0.0", + "resolved": "https://registry.npm.taobao.org/normalize-path/download/normalize-path-1.0.0.tgz", + "integrity": "sha1-MtDkcvkf80VwHBWoMRAY07CpA3k=", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npm.taobao.org/yallist/download/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } + }, + "zrender": { + "version": "4.3.1", + "resolved": "https://registry.npm.taobao.org/zrender/download/zrender-4.3.1.tgz", + "integrity": "sha1-uviqbcgYei+BlpLX1fm+36K5D6M=" + } + } +} diff --git a/smart_admin_v1/smart-admin-web/package.json b/smart_admin_v1/smart-admin-web/package.json new file mode 100644 index 00000000..ee82b487 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/package.json @@ -0,0 +1,89 @@ +{ + "name": "smart-admin", + "version": "1.0.0", + "author": "1024创新实验室<1024lab@sina.com>", + "private": false, + "scripts": { + "dev": "vue-cli-service serve --open", + "local": "vue-cli-service serve --open --mode local", + "build": "vue-cli-service build", + "lint": "vue-cli-service lint", + "test:unit": "vue-cli-service test:unit", + "test:e2e": "vue-cli-service test:e2e", + "development": "vue-cli-service build --mode development", + "sit": "vue-cli-service build --mode sit", + "prod": "vue-cli-service build --mode prod" + }, + "dependencies": { + "@antv/g2": "^3.5.8-beta.1", + "axios": "^0.18.0", + "clipboard": "^2.0.0", + "codemirror": "^5.38.0", + "countup": "^1.8.2", + "cropperjs": "^1.2.2", + "dayjs": "^1.7.7", + "decimal.js": "^10.1.1", + "core-js":"^2.0.0", + "e-guide-layer": "^0.1.1", + "echarts": "^4.0.4", + "gq-plus": "^2.1.5", + "html2canvas": "^1.0.0-alpha.12", + "jquery": "^2.2.3", + "js-cookie": "^2.2.0", + "lodash": "^4.17.15", + "mavon-editor": "^2.7.5", + "moment": "^2.24.0", + "simplemde": "^1.11.2", + "sortablejs": "^1.7.0", + "tree-table-vue": "^1.1.0", + "v-org-tree": "^1.0.6", + "view-design": "^4.0.2", + "vue": "^2.5.10", + "vue-data-loading": "^0.2.4", + "vue-enum": "1.0.5", + "vue-i18n": "^7.8.0", + "vue-infinite-loading": "^2.4.4", + "vue-json-viewer": "^2.2.0", + "vue-json-views": "^0.1.1", + "vue-router": "^3.1.3", + "vue-slick": "^1.1.15", + "vuedraggable": "^2.16.0", + "vuex": "^3.0.1", + "wangeditor": "^3.1.1", + "xlsx": "^0.13.3" + }, + "devDependencies": { + "@vue/cli-plugin-babel": "^3.0.1", + "@vue/cli-plugin-eslint": "^3.0.1", + "@vue/cli-plugin-unit-mocha": "^3.0.1", + "@vue/cli-service": "^3.0.1", + "@vue/eslint-config-standard": "^3.0.0-beta.10", + "@vue/test-utils": "^1.0.0-beta.10", + "chai": "^4.1.2", + "compression-webpack-plugin": "^3.0.0", + "eslint-plugin-cypress": "^2.0.1", + "less": "^2.7.3", + "less-loader": "^4.0.5", + "lint-staged": "^6.0.0", + "uglifyjs-webpack-plugin": "^1.2.4", + "vue-template-compiler": "^2.5.13" + }, + "browserslist": [ + "> 1%", + "last 2 versions", + "not ie <= 8" + ], + "gitHooks": { + "pre-commit": "lint-staged" + }, + "lint-staged": { + "*.js": [ + "vue-cli-service lint", + "git add" + ], + "*.vue": [ + "vue-cli-service lint", + "git add" + ] + } +} diff --git a/smart-admin-web/typescript-ant-design-vue3/public/favicon.ico b/smart_admin_v1/smart-admin-web/public/favicon.ico similarity index 100% rename from smart-admin-web/typescript-ant-design-vue3/public/favicon.ico rename to smart_admin_v1/smart-admin-web/public/favicon.ico diff --git a/smart_admin_v1/smart-admin-web/public/index.html b/smart_admin_v1/smart-admin-web/public/index.html new file mode 100644 index 00000000..97eb0895 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/public/index.html @@ -0,0 +1,19 @@ + + + + + + + + + + + +
+ + + + diff --git a/smart_admin_v1/smart-admin-web/src/App.vue b/smart_admin_v1/smart-admin-web/src/App.vue new file mode 100644 index 00000000..0d189502 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/App.vue @@ -0,0 +1,31 @@ + + + + + + diff --git a/smart_admin_v1/smart-admin-web/src/api/data-scope.js b/smart_admin_v1/smart-admin-web/src/api/data-scope.js new file mode 100644 index 00000000..14799315 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/api/data-scope.js @@ -0,0 +1,15 @@ +import { postAxios, getAxios } from '@/lib/http'; +export const dataScopeApi = { + // 批量设置某角色数据范围 + updateDataScope: data => { + return postAxios('/dataScope/batchSet', data); + }, + // 数据权限列表 + getDataScopeList: () => { + return getAxios('/dataScope/list'); + }, + // 获取某角色所设置的数据范围 + getDataScopeByRoleId: roleId => { + return getAxios('/dataScope/listByRole/' + roleId); + } +}; diff --git a/smart_admin_v1/smart-admin-web/src/api/department.js b/smart_admin_v1/smart-admin-web/src/api/department.js new file mode 100644 index 00000000..2e4ebfa0 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/api/department.js @@ -0,0 +1,47 @@ +import { postAxios, getAxios } from '@/lib/http'; +export const departmentApi = { + // 加载所有的部门子部门 + getLoadDepartment: () => { + return getAxios('/department/list'); + }, + // 查询部门及员工列表 + getDepartmentEmployeeList: () => { + return getAxios('/department/listEmployee'); + }, + // 添加部门 + addDepartment: (data) => { + return postAxios('/department/add', data); + }, + // 编辑部门 + updateDepartment: (data) => { + return postAxios('/department/update', data); + }, + // 删除部门 + deleteDepartment: (data) => { + return postAxios('/department/delete/' + data); + }, + // 根据id获取部门信息 + getDepartmentById: (data) => { + return getAxios('/department/query/' + data); + }, + // 查询部门列表 + getDepartmentAll: () => { + return getAxios('/department/listAll'); + }, + // 根据部门名称获取员工列表 + getListEmployeeByDepartmentName: (departmentName) => { + return getAxios('/department/listEmployeeByDepartmentName?departmentName=' + departmentName); + }, + // 上下移动 + upOrDown: (departmentId, swapId) => { + return getAxios('/department/upOrDown/' + departmentId + '/' + swapId); + }, + // 升级 + upGrade: (departmentId) => { + return getAxios('/department/upgrade/' + departmentId); + }, + // 降级 + downGrade: (departmentId, preId) => { + return getAxios('/department/downgrade/' + departmentId + '/' + preId); + } +}; diff --git a/smart_admin_v1/smart-admin-web/src/api/email.js b/smart_admin_v1/smart-admin-web/src/api/email.js new file mode 100644 index 00000000..cb541021 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/api/email.js @@ -0,0 +1,27 @@ +import { postAxios, getAxios } from '@/lib/http'; +export const emailApi = { + // 新增邮件 + addEmail: (data) => { + return postAxios('/email/add', data); + }, + // 分页查询邮件 + getEmail: (data) => { + return postAxios('/email/page/query', data); + }, + // 删除邮件 + deleteEmail: (id) => { + return getAxios('/email/delete/' + id); + }, + // 查看邮件详情 + getEmailDetails: (id) => { + return getAxios('/email/detail/' + id); + }, + // 发送邮件 + sendEmail: (id) => { + return getAxios('/email/send/' + id); + }, + // 更新编辑邮件 + updateEmail: (data) => { + return postAxios('/email/update', data); + } +}; diff --git a/smart_admin_v1/smart-admin-web/src/api/employee.js b/smart_admin_v1/smart-admin-web/src/api/employee.js new file mode 100644 index 00000000..7f1d8001 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/api/employee.js @@ -0,0 +1,43 @@ +import { postAxios, getAxios } from '@/lib/http'; +export const employeeApi = { + // 员工管理查询 + getEmployeeList: (data) => { + return postAxios('/employee/query', data); + }, + // 添加员工 + addEmployee: (data) => { + return postAxios('/employee/add', data); + }, + // 更新员工信息 + updateEmployee: (data) => { + return postAxios('/employee/update', data); + }, + // 禁用启用单个员工 + updateStatus: (employeeId, status) => { + return getAxios('/employee/updateStatus/' + employeeId + '/' + status); + }, + // 批量禁用 + updateStatusBatch: (data) => { + return postAxios('/employee/batchUpdateStatus', data); + }, + // 单个员工角色授权 + updateRoles: (data) => { + return postAxios('/employee/updateRoles', data); + }, + // 修改密码 + updatePwd: (data) => { + return postAxios('/employee/updatePwd', data); + }, + // 重置密码 + resetPassword: (employeeId) => { + return getAxios('/employee/resetPasswd/' + employeeId); + }, + // 通过部门id获取当前部门的人员&没有部门的人 + getListEmployeeByDeptId: (departmentId) => { + return getAxios('/employee/listEmployeeByDeptId/' + departmentId); + }, + // 删除员工 + deleteEmployee: (employeeId) => { + return postAxios('/employee/delete/' + employeeId); + } +}; diff --git a/smart_admin_v1/smart-admin-web/src/api/file.js b/smart_admin_v1/smart-admin-web/src/api/file.js new file mode 100644 index 00000000..e8f80248 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/api/file.js @@ -0,0 +1,28 @@ +import { postAxios, getAxios, getDownloadAxios} from '@/lib/http'; +import config from '@/config'; +const baseUrl = config.baseUrl.apiUrl; +export const fileApi = { + // 系统文件查询 + queryFileList: data => { + return postAxios('/api/file/query', data); + }, + // 系统文件下载通过接口 + downLoadFile: id => { + return getDownloadAxios('/api/file/downLoad?id=' + id); + }, + // 文件上传 + fileUpload: (type, data) => { + // return postAxios('/api/file/localUpload/' + type, data); + return this.fileUploadUrl; + }, + // 文件保存 + addFile: data => { + return postAxios('/api/file/save', data); + }, + // 上传路径:本地 + fileUploadLocalUrl: baseUrl + '/api/file/localUpload/', + // 上传路径:阿里OSS + fileUploadAliUrl: baseUrl + '/api/file/aliYunUpload/', + // 上传路径:七牛 + fileUploadQiNiuUrl: baseUrl + '/api/file/qiNiuUpload/' +}; diff --git a/smart_admin_v1/smart-admin-web/src/api/heart-beat.js b/smart_admin_v1/smart-admin-web/src/api/heart-beat.js new file mode 100644 index 00000000..c5ec2486 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/api/heart-beat.js @@ -0,0 +1,7 @@ +import { postAxios, getAxios } from '@/lib/http'; +export const heartBeatApi = { + // 分页查询所有岗位 + queryHeartBeatRecord: data => { + return postAxios('/heartBeat/query', data); + } +}; diff --git a/smart_admin_v1/smart-admin-web/src/api/login.js b/smart_admin_v1/smart-admin-web/src/api/login.js new file mode 100644 index 00000000..83338d56 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/api/login.js @@ -0,0 +1,19 @@ +import { postAxios, getAxios } from '@/lib/http'; +export const loginApi = { + // 登录 + login: data => { + return postAxios('/session/login', data); + }, + // 根据token获取session + getSession: () => { + return getAxios('/session/get'); + }, + // 登出 + logout: (token) => { + return getAxios(`/session/logOut?x-access-token=${token}`); + }, + // 获取验证码 + getVerificationCode: () => { + return getAxios('/session/verificationCode'); + } +}; diff --git a/smart_admin_v1/smart-admin-web/src/api/notice.js b/smart_admin_v1/smart-admin-web/src/api/notice.js new file mode 100644 index 00000000..fad6ad83 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/api/notice.js @@ -0,0 +1,43 @@ +// 任务调度API +import { + postAxios, + getAxios +} from '@/lib/http'; +export const noticeApi = { + // 查询消息列表 + getNoticeList: (data) => { + return postAxios('/notice/page/query', data); + }, + // 未读消息列表 + getNoticeUnreadList: (data) => { + return postAxios('/notice/unread/page/query', data); + }, + // 查询个人消息列表 + getPersonNoticeList: (data) => { + return postAxios('/notice/receive/page/query', data); + }, + // 添加消息 + addNotice: (data) => { + return postAxios('/notice/add', data); + }, + // 标记已读 + addNoticeRecord: (id) => { + return getAxios(`/notice/read/${id}`); + }, + // 修改消息 + updateNotice: (data) => { + return postAxios('/notice/update', data); + }, + // 删除消息 + deleteNotice: (id) => { + return getAxios(`/notice/delete/${id}`); + }, + // 获取通知详情 + getNoticeDetail: (id) => { + return getAxios(`/notice/detail/${id}`); + }, + // 发送消息 + sendNotice: (id) => { + return getAxios(`/notice/send/${id}`); + } +}; diff --git a/smart_admin_v1/smart-admin-web/src/api/online-user.js b/smart_admin_v1/smart-admin-web/src/api/online-user.js new file mode 100644 index 00000000..b7847b9b --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/api/online-user.js @@ -0,0 +1,12 @@ +// 任务调度API +import { + postAxios, + getAxios +} from '@/lib/http'; +export const onlineUserApi = { + // 查询在线员工列表 + getOnlineUserList: (data) => { + return postAxios('/userOnLine/query', data); + } + +}; diff --git a/smart_admin_v1/smart-admin-web/src/api/peony.js b/smart_admin_v1/smart-admin-web/src/api/peony.js new file mode 100644 index 00000000..0c41d54f --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/api/peony.js @@ -0,0 +1,28 @@ +import { postAxios, getAxios, postDownloadAxios } from '@/lib/http'; + +export const peonyApi = { + // 添加牡丹花 @author 卓大 + addPeony: (data) => { + return postAxios('/peony/add', data); + }, + // 分页查询牡丹花 @author 卓大 + queryPeony: (data) => { + return postAxios('/peony/page/query', data); + }, + // 批量删除牡丹花 @author 卓大 + batchDeletePeony: (idList) => { + return postAxios('/peony/deleteByIds', idList); + }, + // 修改牡丹花 @author 卓大 + updatePeony: (data) => { + return postAxios('/peony/update',data); + }, + // 导出全部 @author 卓大 + exportAll:(data)=>{ + return postDownloadAxios('/peony/export/all',data); + }, + // 批量导出 @author 卓大 + batchExport: (idList) => { + return postDownloadAxios('/peony/export/batch', idList); + }, +}; diff --git a/smart_admin_v1/smart-admin-web/src/api/position.js b/smart_admin_v1/smart-admin-web/src/api/position.js new file mode 100644 index 00000000..3756c457 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/api/position.js @@ -0,0 +1,19 @@ +import { postAxios, getAxios } from '@/lib/http'; +export const positionApi = { + // 分页查询所有岗位 + getPositionListPage: data => { + return postAxios('/position/getListPage', data); + }, + // 更新岗位 + updatePosition: data => { + return postAxios('/position/update', data); + }, + // 添加岗位 + addPosition: data => { + return postAxios('/position/add', data); + }, + // 根据ID删除岗位 + deletePosition: id => { + return getAxios('/position/remove/' + id); + } +}; diff --git a/smart_admin_v1/smart-admin-web/src/api/privilege.js b/smart_admin_v1/smart-admin-web/src/api/privilege.js new file mode 100644 index 00000000..3530544c --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/api/privilege.js @@ -0,0 +1,36 @@ +import { postAxios, getAxios } from '@/lib/http'; + +export const privilegeApi = { + // 获取所有请求路径 + getAllUrl: data => { + return getAxios('/privilege/getAllUrl'); + }, + // 获取全部菜单列表 + getMenuList: data => { + return postAxios('/privilege/menu/queryAll'); + }, + // 菜单批量保存 + addBatchSaveMenu: data => { + return postAxios('/privilege/menu/batchSaveMenu', data); + }, + // 功能点批量保存 + addBatchSavePoints: data => { + return postAxios('/privilege/function/batchSave', data); + }, + // 查询菜单功能点 + queryPrivilegeFunctionList: menuKey => { + return postAxios('/privilege/function/query/' + menuKey); + }, + // 保存更新功能点 + addOrUpdate: data => { + return postAxios('/privilege/function/saveOrUpdate', data); + }, + // 更新角色权限 + getRolePower: data => { + return postAxios('/privilege/updateRolePrivilege', data); + }, + // 获取角色可选的功能权限 + getListPrivilegeByRoleId: id => { + return getAxios('/privilege/listPrivilegeByRoleId/' + id); + } +}; diff --git a/smart_admin_v1/smart-admin-web/src/api/role.js b/smart_admin_v1/smart-admin-web/src/api/role.js new file mode 100644 index 00000000..be5f338a --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/api/role.js @@ -0,0 +1,58 @@ +import { postAxios, getAxios } from '@/lib/http'; +export const roleApi = { + // 添加角色 + addRole: (remark, roleName) => { + const data = { + remark: remark, + roleName: roleName + }; + return postAxios('/role/add', data); + }, + // 删除角色 + deleteRole: id => { + return getAxios('/role/delete/' + id); + }, + // 修改角色 + updateRole: (id, remark, roleName) => { + const data = { + id: id, + remark: remark, + roleName: roleName + }; + return postAxios('/role/update', data); + }, + // 获取角色数据 + getRoleDetail: id => { + return getAxios('/role/get/' + id); + }, + // 加载角色列表 + getAllRole: () => { + return getAxios('role/getAll'); + }, + // 根据角色名字获取对应成员列表 + getListEmployee: data => { + return postAxios('/role/listEmployee', data); + }, + // 根据角色id获取角色成员-员工列表 + getAllListEmployee: id => { + return getAxios('/role/listAllEmployee/' + id); + }, + // 从角色成员列表中移除员工 + deleteEmployeeRole: param => { + return getAxios('/role/removeEmployee?employeeId=' + param.employeeId + '&roleId=' + param.roleId); + }, + // 从角色成员列表中批量移除员工 + deleteEmployeeList: data => { + return postAxios('/role/removeEmployeeList', data); + }, + + // 添加角色成员方法 + addEmployeeListRole: data => { + return postAxios('/role/addEmployeeList', data); + }, + // 通过员工id获取所有角色以及员工具有的角色 + getRoles: id => { + return getAxios('/role/getRoles/' + id); + }, + +}; diff --git a/smart_admin_v1/smart-admin-web/src/api/smart-reload.js b/smart_admin_v1/smart-admin-web/src/api/smart-reload.js new file mode 100644 index 00000000..8ee701ed --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/api/smart-reload.js @@ -0,0 +1,20 @@ +// smartReloadAPI +import { + postAxios, + getAxios +} from '@/lib/http'; +export const smartReloadApi = { + // 查询所有 + getSmartReloadList: () => { + return getAxios('/smartReload/all'); + }, + // 更新单条数据 + updateSmartReloadData: (data) => { + return postAxios('/smartReload/update', data); + }, + // 获取执行结果 + getSmartReloadResult: (tag) => { + return getAxios(`/smartReload/result/${tag}`); + } + +}; diff --git a/smart_admin_v1/smart-admin-web/src/api/system-config.js b/smart_admin_v1/smart-admin-web/src/api/system-config.js new file mode 100644 index 00000000..392dd942 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/api/system-config.js @@ -0,0 +1,31 @@ +// 系统参数API +import { + postAxios, + getAxios +} from '@/lib/http'; +export const systemConfigApi = { + // 查询系统参数列表 + getSystemConfigList: (data) => { + return postAxios('/systemConfig/getListPage', data); + }, + // 添加系统参数 + addSystemConfig: (data) => { + return postAxios('/systemConfig/add', data); + }, + // 更新单条系统参数 + updateSystemConfig: (data) => { + return postAxios('/systemConfig/update', data); + }, + // 通过key获取对应的信息 + getConfigListByKey: (key) => { + return getAxios(`/systemConfig/selectByKey?configKey=${key}`); + }, + // 根据分组查询所有系统配置 + getListByGroup: (group) => { + return getAxios(`/systemConfig/getListByGroup?group=${group}`); + }, + // 获取系统版本信息 + getCodeVersion: () => { + return getAxios('/codeVersion'); + } +}; diff --git a/smart_admin_v1/smart-admin-web/src/api/task-manage.js b/smart_admin_v1/smart-admin-web/src/api/task-manage.js new file mode 100644 index 00000000..7e787862 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/api/task-manage.js @@ -0,0 +1,35 @@ +// 任务调度API +import { + postAxios, + getAxios +} from '@/lib/http'; +export const taskApi = { + // 查询任务列表 + getTaskList: (data) => { + return postAxios('/quartz/task/query', data); + }, + // 添加或更新任务 + addOrUpdateTask: (data) => { + return postAxios('/quartz/task/saveOrUpdate', data); + }, + // 查询任务日志 + getTaskLog: (data) => { + return postAxios('/quartz/task/queryLog', data); + }, + // 暂停任务 + updateTaskPause: (taskId) => { + return getAxios(`/quartz/task/pause/${taskId}`); + }, + // 运行任务 + updateTaskRun: (taskId) => { + return getAxios(`/quartz/task/run/${taskId}`); + }, + // 恢复任务 + updateTaskResume: (taskId) => { + return getAxios(`/quartz/task/resume/${taskId}`); + }, + // 删除任务 + deleteTask: (taskId) => { + return getAxios(`/quartz/task/delete/${taskId}`); + } +}; diff --git a/smart_admin_v1/smart-admin-web/src/api/user-log.js b/smart_admin_v1/smart-admin-web/src/api/user-log.js new file mode 100644 index 00000000..eb3a3ad9 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/api/user-log.js @@ -0,0 +1,28 @@ +// 用户日志API +import { + postAxios, + getAxios +} from '@/lib/http.js'; +export const userLogApi = { + // 查询用户操作日志 + getUserOperateLogPage: (data) => { + return postAxios('/userOperateLog/page/query', data); + }, + // 用户操作日志详情 + detailUserOperateLog: (data) => { + return getAxios('/userOperateLog/detail/' + data); + }, + // 删除用户操作日志 + deleteUserOperateLog: (data) => { + return getAxios('/userOperateLog/delete/' + data); + }, + // 查询用户登录日志 + getUserLoginLogPage: (data) => { + return postAxios('/userLoginLog/page/query', data); + }, + // 删除用户登录日志 + deleteUserLoginLog: (data) => { + return getAxios('/userLoginLog/delete/' + data); + } + +}; diff --git a/smart_admin_v1/smart-admin-web/src/api/user.js b/smart_admin_v1/smart-admin-web/src/api/user.js new file mode 100644 index 00000000..8ac0a2a1 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/api/user.js @@ -0,0 +1,20 @@ +import { postAxios, getAxios } from '@/lib/http'; + +export const login = ({ userName, password }) => { + const data = { + userName, + password + }; + return postAxios('login', data); +}; + +export const getUserInfo = (token) => { + let params = { + token + }; + return getAxios('get_info', params); +}; + +export const logout = (token) => { + return postAxios('logout', {}); +}; diff --git a/smart_admin_v1/smart-admin-web/src/assets/icons/demo.css b/smart_admin_v1/smart-admin-web/src/assets/icons/demo.css new file mode 100644 index 00000000..a67054a0 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/assets/icons/demo.css @@ -0,0 +1,539 @@ +/* Logo 字体 */ +@font-face { + font-family: "iconfont logo"; + src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834'); + src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834#iefix') format('embedded-opentype'), + url('https://at.alicdn.com/t/font_985780_km7mi63cihi.woff?t=1545807318834') format('woff'), + url('https://at.alicdn.com/t/font_985780_km7mi63cihi.ttf?t=1545807318834') format('truetype'), + url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont') format('svg'); +} + +.logo { + font-family: "iconfont logo"; + font-size: 160px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +/* tabs */ +.nav-tabs { + position: relative; +} + +.nav-tabs .nav-more { + position: absolute; + right: 0; + bottom: 0; + height: 42px; + line-height: 42px; + color: #666; +} + +#tabs { + border-bottom: 1px solid #eee; +} + +#tabs li { + cursor: pointer; + width: 100px; + height: 40px; + line-height: 40px; + text-align: center; + font-size: 16px; + border-bottom: 2px solid transparent; + position: relative; + z-index: 1; + margin-bottom: -1px; + color: #666; +} + + +#tabs .active { + border-bottom-color: #f00; + color: #222; +} + +.tab-container .content { + display: none; +} + +/* 页面布局 */ +.main { + padding: 30px 100px; + width: 960px; + margin: 0 auto; +} + +.main .logo { + color: #333; + text-align: left; + margin-bottom: 30px; + line-height: 1; + height: 110px; + margin-top: -50px; + overflow: hidden; + *zoom: 1; +} + +.main .logo a { + font-size: 160px; + color: #333; +} + +.helps { + margin-top: 40px; +} + +.helps pre { + padding: 20px; + margin: 10px 0; + border: solid 1px #e7e1cd; + background-color: #fffdef; + overflow: auto; +} + +.icon_lists { + width: 100% !important; + overflow: hidden; + *zoom: 1; +} + +.icon_lists li { + width: 100px; + margin-bottom: 10px; + margin-right: 20px; + text-align: center; + list-style: none !important; + cursor: default; +} + +.icon_lists li .code-name { + line-height: 1.2; +} + +.icon_lists .icon { + display: block; + height: 100px; + line-height: 100px; + font-size: 42px; + margin: 10px auto; + color: #333; + -webkit-transition: font-size 0.25s linear, width 0.25s linear; + -moz-transition: font-size 0.25s linear, width 0.25s linear; + transition: font-size 0.25s linear, width 0.25s linear; +} + +.icon_lists .icon:hover { + font-size: 100px; +} + +.icon_lists .svg-icon { + /* 通过设置 font-size 来改变图标大小 */ + width: 1em; + /* 图标和文字相邻时,垂直对齐 */ + vertical-align: -0.15em; + /* 通过设置 color 来改变 SVG 的颜色/fill */ + fill: currentColor; + /* path 和 stroke 溢出 viewBox 部分在 IE 下会显示 + normalize.css 中也包含这行 */ + overflow: hidden; +} + +.icon_lists li .name, +.icon_lists li .code-name { + color: #666; +} + +/* markdown 样式 */ +.markdown { + color: #666; + font-size: 14px; + line-height: 1.8; +} + +.highlight { + line-height: 1.5; +} + +.markdown img { + vertical-align: middle; + max-width: 100%; +} + +.markdown h1 { + color: #404040; + font-weight: 500; + line-height: 40px; + margin-bottom: 24px; +} + +.markdown h2, +.markdown h3, +.markdown h4, +.markdown h5, +.markdown h6 { + color: #404040; + margin: 1.6em 0 0.6em 0; + font-weight: 500; + clear: both; +} + +.markdown h1 { + font-size: 28px; +} + +.markdown h2 { + font-size: 22px; +} + +.markdown h3 { + font-size: 16px; +} + +.markdown h4 { + font-size: 14px; +} + +.markdown h5 { + font-size: 12px; +} + +.markdown h6 { + font-size: 12px; +} + +.markdown hr { + height: 1px; + border: 0; + background: #e9e9e9; + margin: 16px 0; + clear: both; +} + +.markdown p { + margin: 1em 0; +} + +.markdown>p, +.markdown>blockquote, +.markdown>.highlight, +.markdown>ol, +.markdown>ul { + width: 80%; +} + +.markdown ul>li { + list-style: circle; +} + +.markdown>ul li, +.markdown blockquote ul>li { + margin-left: 20px; + padding-left: 4px; +} + +.markdown>ul li p, +.markdown>ol li p { + margin: 0.6em 0; +} + +.markdown ol>li { + list-style: decimal; +} + +.markdown>ol li, +.markdown blockquote ol>li { + margin-left: 20px; + padding-left: 4px; +} + +.markdown code { + margin: 0 3px; + padding: 0 5px; + background: #eee; + border-radius: 3px; +} + +.markdown strong, +.markdown b { + font-weight: 600; +} + +.markdown>table { + border-collapse: collapse; + border-spacing: 0px; + empty-cells: show; + border: 1px solid #e9e9e9; + width: 95%; + margin-bottom: 24px; +} + +.markdown>table th { + white-space: nowrap; + color: #333; + font-weight: 600; +} + +.markdown>table th, +.markdown>table td { + border: 1px solid #e9e9e9; + padding: 8px 16px; + text-align: left; +} + +.markdown>table th { + background: #F7F7F7; +} + +.markdown blockquote { + font-size: 90%; + color: #999; + border-left: 4px solid #e9e9e9; + padding-left: 0.8em; + margin: 1em 0; +} + +.markdown blockquote p { + margin: 0; +} + +.markdown .anchor { + opacity: 0; + transition: opacity 0.3s ease; + margin-left: 8px; +} + +.markdown .waiting { + color: #ccc; +} + +.markdown h1:hover .anchor, +.markdown h2:hover .anchor, +.markdown h3:hover .anchor, +.markdown h4:hover .anchor, +.markdown h5:hover .anchor, +.markdown h6:hover .anchor { + opacity: 1; + display: inline-block; +} + +.markdown>br, +.markdown>p>br { + clear: both; +} + + +.hljs { + display: block; + background: white; + padding: 0.5em; + color: #333333; + overflow-x: auto; +} + +.hljs-comment, +.hljs-meta { + color: #969896; +} + +.hljs-string, +.hljs-variable, +.hljs-template-variable, +.hljs-strong, +.hljs-emphasis, +.hljs-quote { + color: #df5000; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-type { + color: #a71d5d; +} + +.hljs-literal, +.hljs-symbol, +.hljs-bullet, +.hljs-attribute { + color: #0086b3; +} + +.hljs-section, +.hljs-name { + color: #63a35c; +} + +.hljs-tag { + color: #333333; +} + +.hljs-title, +.hljs-attr, +.hljs-selector-id, +.hljs-selector-class, +.hljs-selector-attr, +.hljs-selector-pseudo { + color: #795da3; +} + +.hljs-addition { + color: #55a532; + background-color: #eaffea; +} + +.hljs-deletion { + color: #bd2c00; + background-color: #ffecec; +} + +.hljs-link { + text-decoration: underline; +} + +/* 代码高亮 */ +/* PrismJS 1.15.0 +https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */ +/** + * prism.js default theme for JavaScript, CSS and HTML + * Based on dabblet (http://dabblet.com) + * @author Lea Verou + */ +code[class*="language-"], +pre[class*="language-"] { + color: black; + background: none; + text-shadow: 0 1px white; + font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; + + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +pre[class*="language-"]::-moz-selection, +pre[class*="language-"] ::-moz-selection, +code[class*="language-"]::-moz-selection, +code[class*="language-"] ::-moz-selection { + text-shadow: none; + background: #b3d4fc; +} + +pre[class*="language-"]::selection, +pre[class*="language-"] ::selection, +code[class*="language-"]::selection, +code[class*="language-"] ::selection { + text-shadow: none; + background: #b3d4fc; +} + +@media print { + + code[class*="language-"], + pre[class*="language-"] { + text-shadow: none; + } +} + +/* Code blocks */ +pre[class*="language-"] { + padding: 1em; + margin: .5em 0; + overflow: auto; +} + +:not(pre)>code[class*="language-"], +pre[class*="language-"] { + background: #f5f2f0; +} + +/* Inline code */ +:not(pre)>code[class*="language-"] { + padding: .1em; + border-radius: .3em; + white-space: normal; +} + +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: slategray; +} + +.token.punctuation { + color: #999; +} + +.namespace { + opacity: .7; +} + +.token.property, +.token.tag, +.token.boolean, +.token.number, +.token.constant, +.token.symbol, +.token.deleted { + color: #905; +} + +.token.selector, +.token.attr-name, +.token.string, +.token.char, +.token.builtin, +.token.inserted { + color: #690; +} + +.token.operator, +.token.entity, +.token.url, +.language-css .token.string, +.style .token.string { + color: #9a6e3a; + background: hsla(0, 0%, 100%, .5); +} + +.token.atrule, +.token.attr-value, +.token.keyword { + color: #07a; +} + +.token.function, +.token.class-name { + color: #DD4A68; +} + +.token.regex, +.token.important, +.token.variable { + color: #e90; +} + +.token.important, +.token.bold { + font-weight: bold; +} + +.token.italic { + font-style: italic; +} + +.token.entity { + cursor: help; +} diff --git a/smart_admin_v1/smart-admin-web/src/assets/icons/demo_index.html b/smart_admin_v1/smart-admin-web/src/assets/icons/demo_index.html new file mode 100644 index 00000000..2c777b68 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/assets/icons/demo_index.html @@ -0,0 +1,722 @@ + + + + + IconFont Demo + + + + + + + + + + + +
+

+ +
+
+
    + +
  • + +
    多级菜单
    +
    &#xe608;
    +
  • + +
  • + +
    导航展开
    +
    &#xe609;
    +
  • + +
  • + +
    导航折叠
    +
    &#xe60a;
    +
  • + +
  • + +
    向上箭头
    +
    &#xe60b;
    +
  • + +
  • + +
    向左箭头
    +
    &#xe60c;
    +
  • + +
  • + +
    向右箭头
    +
    &#xe60d;
    +
  • + +
  • + +
    关闭按钮
    +
    &#xe60e;
    +
  • + +
  • + +
    数据上传
    +
    &#xe60f;
    +
  • + +
  • + +
    系统监控
    +
    &#xe610;
    +
  • + +
  • + +
    邮件管理
    +
    &#xe611;
    +
  • + +
  • + +
    小屏
    +
    &#xe612;
    +
  • + +
  • + +
    人员管理
    +
    &#xe613;
    +
  • + +
  • + +
    向下拉
    +
    &#xe614;
    +
  • + +
  • + +
    excel导入导出
    +
    &#xe615;
    +
  • + +
  • + +
    向下箭头
    +
    &#xe616;
    +
  • + +
  • + +
    首页
    +
    &#xe617;
    +
  • + +
  • + +
    系统设置
    +
    &#xe618;
    +
  • + +
  • + +
    消息
    +
    &#xe619;
    +
  • + +
  • + +
    全屏
    +
    &#xe61a;
    +
  • + +
  • + +
    组件
    +
    &#xe61b;
    +
  • + +
  • + +
    news
    +
    &#xe61e;
    +
  • + +
  • + +
    定时任务
    +
    &#xe622;
    +
  • + +
  • + +
    动态加载
    +
    &#xe623;
    +
  • + +
  • + +
    接口文档
    +
    &#xe624;
    +
  • + +
+
+

Unicode 引用

+
+ +

Unicode 是字体在网页端最原始的应用方式,特点是:

+
    +
  • 兼容性最好,支持 IE6+,及所有现代浏览器。
  • +
  • 支持按字体的方式去动态调整图标大小,颜色等等。
  • +
  • 但是因为是字体,所以不支持多色。只能使用平台里单色的图标,就算项目里有多色图标也会自动去色。
  • +
+
+

注意:新版 iconfont 支持多色图标,这些多色图标在 Unicode 模式下将不能使用,如果有需求建议使用symbol 的引用方式

+
+

Unicode 使用步骤如下:

+

第一步:拷贝项目下面生成的 @font-face

+
@font-face {
+  font-family: 'iconfont';
+  src: url('iconfont.eot');
+  src: url('iconfont.eot?#iefix') format('embedded-opentype'),
+      url('iconfont.woff2') format('woff2'),
+      url('iconfont.woff') format('woff'),
+      url('iconfont.ttf') format('truetype'),
+      url('iconfont.svg#iconfont') format('svg');
+}
+
+

第二步:定义使用 iconfont 的样式

+
.iconfont {
+  font-family: "iconfont" !important;
+  font-size: 16px;
+  font-style: normal;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+
+

第三步:挑选相应图标并获取字体编码,应用于页面

+
+<span class="iconfont">&#x33;</span>
+
+
+

"iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。

+
+
+
+
+
    + +
  • + +
    + 多级菜单 +
    +
    .iconduojicaidan +
    +
  • + +
  • + +
    + 导航展开 +
    +
    .icondaohangzhankai +
    +
  • + +
  • + +
    + 导航折叠 +
    +
    .icondaohangzhedie +
    +
  • + +
  • + +
    + 向上箭头 +
    +
    .iconxiangshangjiantou +
    +
  • + +
  • + +
    + 向左箭头 +
    +
    .iconxiangzuojiantou +
    +
  • + +
  • + +
    + 向右箭头 +
    +
    .iconxiangyoujiantou +
    +
  • + +
  • + +
    + 关闭按钮 +
    +
    .iconguanbianniu +
    +
  • + +
  • + +
    + 数据上传 +
    +
    .iconshujushangchuan +
    +
  • + +
  • + +
    + 系统监控 +
    +
    .iconxitongjiankong +
    +
  • + +
  • + +
    + 邮件管理 +
    +
    .iconyoujianguanli +
    +
  • + +
  • + +
    + 小屏 +
    +
    .iconxiaoping +
    +
  • + +
  • + +
    + 人员管理 +
    +
    .iconrenyuanguanli +
    +
  • + +
  • + +
    + 向下拉 +
    +
    .iconxiangxiala +
    +
  • + +
  • + +
    + excel导入导出 +
    +
    .iconexceldaorudaochu +
    +
  • + +
  • + +
    + 向下箭头 +
    +
    .iconxiangxiajiantou +
    +
  • + +
  • + +
    + 首页 +
    +
    .iconshouye +
    +
  • + +
  • + +
    + 系统设置 +
    +
    .iconxitongshezhi +
    +
  • + +
  • + +
    + 消息 +
    +
    .iconxiaoxi +
    +
  • + +
  • + +
    + 全屏 +
    +
    .iconquanping +
    +
  • + +
  • + +
    + 组件 +
    +
    .iconzujian +
    +
  • + +
  • + +
    + news +
    +
    .iconnews +
    +
  • + +
  • + +
    + 定时任务 +
    +
    .icondingshirenwu +
    +
  • + +
  • + +
    + 动态加载 +
    +
    .icondongtaijiazai +
    +
  • + +
  • + +
    + 接口文档 +
    +
    .iconjiekouwendang +
    +
  • + +
+
+

font-class 引用

+
+ +

font-class 是 Unicode 使用方式的一种变种,主要是解决 Unicode 书写不直观,语意不明确的问题。

+

与 Unicode 使用方式相比,具有如下特点:

+
    +
  • 兼容性良好,支持 IE8+,及所有现代浏览器。
  • +
  • 相比于 Unicode 语意明确,书写更直观。可以很容易分辨这个 icon 是什么。
  • +
  • 因为使用 class 来定义图标,所以当要替换图标时,只需要修改 class 里面的 Unicode 引用。
  • +
  • 不过因为本质上还是使用的字体,所以多色图标还是不支持的。
  • +
+

使用步骤如下:

+

第一步:引入项目下面生成的 fontclass 代码:

+
<link rel="stylesheet" href="./iconfont.css">
+
+

第二步:挑选相应图标并获取类名,应用于页面:

+
<span class="iconfont iconxxx"></span>
+
+
+

" + iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。

+
+
+
+
+
    + +
  • + +
    多级菜单
    +
    #iconduojicaidan
    +
  • + +
  • + +
    导航展开
    +
    #icondaohangzhankai
    +
  • + +
  • + +
    导航折叠
    +
    #icondaohangzhedie
    +
  • + +
  • + +
    向上箭头
    +
    #iconxiangshangjiantou
    +
  • + +
  • + +
    向左箭头
    +
    #iconxiangzuojiantou
    +
  • + +
  • + +
    向右箭头
    +
    #iconxiangyoujiantou
    +
  • + +
  • + +
    关闭按钮
    +
    #iconguanbianniu
    +
  • + +
  • + +
    数据上传
    +
    #iconshujushangchuan
    +
  • + +
  • + +
    系统监控
    +
    #iconxitongjiankong
    +
  • + +
  • + +
    邮件管理
    +
    #iconyoujianguanli
    +
  • + +
  • + +
    小屏
    +
    #iconxiaoping
    +
  • + +
  • + +
    人员管理
    +
    #iconrenyuanguanli
    +
  • + +
  • + +
    向下拉
    +
    #iconxiangxiala
    +
  • + +
  • + +
    excel导入导出
    +
    #iconexceldaorudaochu
    +
  • + +
  • + +
    向下箭头
    +
    #iconxiangxiajiantou
    +
  • + +
  • + +
    首页
    +
    #iconshouye
    +
  • + +
  • + +
    系统设置
    +
    #iconxitongshezhi
    +
  • + +
  • + +
    消息
    +
    #iconxiaoxi
    +
  • + +
  • + +
    全屏
    +
    #iconquanping
    +
  • + +
  • + +
    组件
    +
    #iconzujian
    +
  • + +
  • + +
    news
    +
    #iconnews
    +
  • + +
  • + +
    定时任务
    +
    #icondingshirenwu
    +
  • + +
  • + +
    动态加载
    +
    #icondongtaijiazai
    +
  • + +
  • + +
    接口文档
    +
    #iconjiekouwendang
    +
  • + +
+
+

Symbol 引用

+
+ +

这是一种全新的使用方式,应该说这才是未来的主流,也是平台目前推荐的用法。相关介绍可以参考这篇文章 + 这种用法其实是做了一个 SVG 的集合,与另外两种相比具有如下特点:

+
    +
  • 支持多色图标了,不再受单色限制。
  • +
  • 通过一些技巧,支持像字体那样,通过 font-size, color 来调整样式。
  • +
  • 兼容性较差,支持 IE9+,及现代浏览器。
  • +
  • 浏览器渲染 SVG 的性能一般,还不如 png。
  • +
+

使用步骤如下:

+

第一步:引入项目下面生成的 symbol 代码:

+
<script src="./iconfont.js"></script>
+
+

第二步:加入通用 CSS 代码(引入一次就行):

+
<style>
+.icon {
+  width: 1em;
+  height: 1em;
+  vertical-align: -0.15em;
+  fill: currentColor;
+  overflow: hidden;
+}
+</style>
+
+

第三步:挑选相应图标并获取类名,应用于页面:

+
<svg class="icon" aria-hidden="true">
+  <use xlink:href="#icon-xxx"></use>
+</svg>
+
+
+
+ +
+
+ + + diff --git a/smart_admin_v1/smart-admin-web/src/assets/icons/download (4)/font_1299963_2zqwx2axi0j/demo.css b/smart_admin_v1/smart-admin-web/src/assets/icons/download (4)/font_1299963_2zqwx2axi0j/demo.css new file mode 100644 index 00000000..a67054a0 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/assets/icons/download (4)/font_1299963_2zqwx2axi0j/demo.css @@ -0,0 +1,539 @@ +/* Logo 字体 */ +@font-face { + font-family: "iconfont logo"; + src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834'); + src: url('https://at.alicdn.com/t/font_985780_km7mi63cihi.eot?t=1545807318834#iefix') format('embedded-opentype'), + url('https://at.alicdn.com/t/font_985780_km7mi63cihi.woff?t=1545807318834') format('woff'), + url('https://at.alicdn.com/t/font_985780_km7mi63cihi.ttf?t=1545807318834') format('truetype'), + url('https://at.alicdn.com/t/font_985780_km7mi63cihi.svg?t=1545807318834#iconfont') format('svg'); +} + +.logo { + font-family: "iconfont logo"; + font-size: 160px; + font-style: normal; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +/* tabs */ +.nav-tabs { + position: relative; +} + +.nav-tabs .nav-more { + position: absolute; + right: 0; + bottom: 0; + height: 42px; + line-height: 42px; + color: #666; +} + +#tabs { + border-bottom: 1px solid #eee; +} + +#tabs li { + cursor: pointer; + width: 100px; + height: 40px; + line-height: 40px; + text-align: center; + font-size: 16px; + border-bottom: 2px solid transparent; + position: relative; + z-index: 1; + margin-bottom: -1px; + color: #666; +} + + +#tabs .active { + border-bottom-color: #f00; + color: #222; +} + +.tab-container .content { + display: none; +} + +/* 页面布局 */ +.main { + padding: 30px 100px; + width: 960px; + margin: 0 auto; +} + +.main .logo { + color: #333; + text-align: left; + margin-bottom: 30px; + line-height: 1; + height: 110px; + margin-top: -50px; + overflow: hidden; + *zoom: 1; +} + +.main .logo a { + font-size: 160px; + color: #333; +} + +.helps { + margin-top: 40px; +} + +.helps pre { + padding: 20px; + margin: 10px 0; + border: solid 1px #e7e1cd; + background-color: #fffdef; + overflow: auto; +} + +.icon_lists { + width: 100% !important; + overflow: hidden; + *zoom: 1; +} + +.icon_lists li { + width: 100px; + margin-bottom: 10px; + margin-right: 20px; + text-align: center; + list-style: none !important; + cursor: default; +} + +.icon_lists li .code-name { + line-height: 1.2; +} + +.icon_lists .icon { + display: block; + height: 100px; + line-height: 100px; + font-size: 42px; + margin: 10px auto; + color: #333; + -webkit-transition: font-size 0.25s linear, width 0.25s linear; + -moz-transition: font-size 0.25s linear, width 0.25s linear; + transition: font-size 0.25s linear, width 0.25s linear; +} + +.icon_lists .icon:hover { + font-size: 100px; +} + +.icon_lists .svg-icon { + /* 通过设置 font-size 来改变图标大小 */ + width: 1em; + /* 图标和文字相邻时,垂直对齐 */ + vertical-align: -0.15em; + /* 通过设置 color 来改变 SVG 的颜色/fill */ + fill: currentColor; + /* path 和 stroke 溢出 viewBox 部分在 IE 下会显示 + normalize.css 中也包含这行 */ + overflow: hidden; +} + +.icon_lists li .name, +.icon_lists li .code-name { + color: #666; +} + +/* markdown 样式 */ +.markdown { + color: #666; + font-size: 14px; + line-height: 1.8; +} + +.highlight { + line-height: 1.5; +} + +.markdown img { + vertical-align: middle; + max-width: 100%; +} + +.markdown h1 { + color: #404040; + font-weight: 500; + line-height: 40px; + margin-bottom: 24px; +} + +.markdown h2, +.markdown h3, +.markdown h4, +.markdown h5, +.markdown h6 { + color: #404040; + margin: 1.6em 0 0.6em 0; + font-weight: 500; + clear: both; +} + +.markdown h1 { + font-size: 28px; +} + +.markdown h2 { + font-size: 22px; +} + +.markdown h3 { + font-size: 16px; +} + +.markdown h4 { + font-size: 14px; +} + +.markdown h5 { + font-size: 12px; +} + +.markdown h6 { + font-size: 12px; +} + +.markdown hr { + height: 1px; + border: 0; + background: #e9e9e9; + margin: 16px 0; + clear: both; +} + +.markdown p { + margin: 1em 0; +} + +.markdown>p, +.markdown>blockquote, +.markdown>.highlight, +.markdown>ol, +.markdown>ul { + width: 80%; +} + +.markdown ul>li { + list-style: circle; +} + +.markdown>ul li, +.markdown blockquote ul>li { + margin-left: 20px; + padding-left: 4px; +} + +.markdown>ul li p, +.markdown>ol li p { + margin: 0.6em 0; +} + +.markdown ol>li { + list-style: decimal; +} + +.markdown>ol li, +.markdown blockquote ol>li { + margin-left: 20px; + padding-left: 4px; +} + +.markdown code { + margin: 0 3px; + padding: 0 5px; + background: #eee; + border-radius: 3px; +} + +.markdown strong, +.markdown b { + font-weight: 600; +} + +.markdown>table { + border-collapse: collapse; + border-spacing: 0px; + empty-cells: show; + border: 1px solid #e9e9e9; + width: 95%; + margin-bottom: 24px; +} + +.markdown>table th { + white-space: nowrap; + color: #333; + font-weight: 600; +} + +.markdown>table th, +.markdown>table td { + border: 1px solid #e9e9e9; + padding: 8px 16px; + text-align: left; +} + +.markdown>table th { + background: #F7F7F7; +} + +.markdown blockquote { + font-size: 90%; + color: #999; + border-left: 4px solid #e9e9e9; + padding-left: 0.8em; + margin: 1em 0; +} + +.markdown blockquote p { + margin: 0; +} + +.markdown .anchor { + opacity: 0; + transition: opacity 0.3s ease; + margin-left: 8px; +} + +.markdown .waiting { + color: #ccc; +} + +.markdown h1:hover .anchor, +.markdown h2:hover .anchor, +.markdown h3:hover .anchor, +.markdown h4:hover .anchor, +.markdown h5:hover .anchor, +.markdown h6:hover .anchor { + opacity: 1; + display: inline-block; +} + +.markdown>br, +.markdown>p>br { + clear: both; +} + + +.hljs { + display: block; + background: white; + padding: 0.5em; + color: #333333; + overflow-x: auto; +} + +.hljs-comment, +.hljs-meta { + color: #969896; +} + +.hljs-string, +.hljs-variable, +.hljs-template-variable, +.hljs-strong, +.hljs-emphasis, +.hljs-quote { + color: #df5000; +} + +.hljs-keyword, +.hljs-selector-tag, +.hljs-type { + color: #a71d5d; +} + +.hljs-literal, +.hljs-symbol, +.hljs-bullet, +.hljs-attribute { + color: #0086b3; +} + +.hljs-section, +.hljs-name { + color: #63a35c; +} + +.hljs-tag { + color: #333333; +} + +.hljs-title, +.hljs-attr, +.hljs-selector-id, +.hljs-selector-class, +.hljs-selector-attr, +.hljs-selector-pseudo { + color: #795da3; +} + +.hljs-addition { + color: #55a532; + background-color: #eaffea; +} + +.hljs-deletion { + color: #bd2c00; + background-color: #ffecec; +} + +.hljs-link { + text-decoration: underline; +} + +/* 代码高亮 */ +/* PrismJS 1.15.0 +https://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript */ +/** + * prism.js default theme for JavaScript, CSS and HTML + * Based on dabblet (http://dabblet.com) + * @author Lea Verou + */ +code[class*="language-"], +pre[class*="language-"] { + color: black; + background: none; + text-shadow: 0 1px white; + font-family: Consolas, Monaco, 'Andale Mono', 'Ubuntu Mono', monospace; + text-align: left; + white-space: pre; + word-spacing: normal; + word-break: normal; + word-wrap: normal; + line-height: 1.5; + + -moz-tab-size: 4; + -o-tab-size: 4; + tab-size: 4; + + -webkit-hyphens: none; + -moz-hyphens: none; + -ms-hyphens: none; + hyphens: none; +} + +pre[class*="language-"]::-moz-selection, +pre[class*="language-"] ::-moz-selection, +code[class*="language-"]::-moz-selection, +code[class*="language-"] ::-moz-selection { + text-shadow: none; + background: #b3d4fc; +} + +pre[class*="language-"]::selection, +pre[class*="language-"] ::selection, +code[class*="language-"]::selection, +code[class*="language-"] ::selection { + text-shadow: none; + background: #b3d4fc; +} + +@media print { + + code[class*="language-"], + pre[class*="language-"] { + text-shadow: none; + } +} + +/* Code blocks */ +pre[class*="language-"] { + padding: 1em; + margin: .5em 0; + overflow: auto; +} + +:not(pre)>code[class*="language-"], +pre[class*="language-"] { + background: #f5f2f0; +} + +/* Inline code */ +:not(pre)>code[class*="language-"] { + padding: .1em; + border-radius: .3em; + white-space: normal; +} + +.token.comment, +.token.prolog, +.token.doctype, +.token.cdata { + color: slategray; +} + +.token.punctuation { + color: #999; +} + +.namespace { + opacity: .7; +} + +.token.property, +.token.tag, +.token.boolean, +.token.number, +.token.constant, +.token.symbol, +.token.deleted { + color: #905; +} + +.token.selector, +.token.attr-name, +.token.string, +.token.char, +.token.builtin, +.token.inserted { + color: #690; +} + +.token.operator, +.token.entity, +.token.url, +.language-css .token.string, +.style .token.string { + color: #9a6e3a; + background: hsla(0, 0%, 100%, .5); +} + +.token.atrule, +.token.attr-value, +.token.keyword { + color: #07a; +} + +.token.function, +.token.class-name { + color: #DD4A68; +} + +.token.regex, +.token.important, +.token.variable { + color: #e90; +} + +.token.important, +.token.bold { + font-weight: bold; +} + +.token.italic { + font-style: italic; +} + +.token.entity { + cursor: help; +} diff --git a/smart_admin_v1/smart-admin-web/src/assets/icons/download (4)/font_1299963_2zqwx2axi0j/demo_index.html b/smart_admin_v1/smart-admin-web/src/assets/icons/download (4)/font_1299963_2zqwx2axi0j/demo_index.html new file mode 100644 index 00000000..2c777b68 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/assets/icons/download (4)/font_1299963_2zqwx2axi0j/demo_index.html @@ -0,0 +1,722 @@ + + + + + IconFont Demo + + + + + + + + + + + +
+

+ +
+
+
    + +
  • + +
    多级菜单
    +
    &#xe608;
    +
  • + +
  • + +
    导航展开
    +
    &#xe609;
    +
  • + +
  • + +
    导航折叠
    +
    &#xe60a;
    +
  • + +
  • + +
    向上箭头
    +
    &#xe60b;
    +
  • + +
  • + +
    向左箭头
    +
    &#xe60c;
    +
  • + +
  • + +
    向右箭头
    +
    &#xe60d;
    +
  • + +
  • + +
    关闭按钮
    +
    &#xe60e;
    +
  • + +
  • + +
    数据上传
    +
    &#xe60f;
    +
  • + +
  • + +
    系统监控
    +
    &#xe610;
    +
  • + +
  • + +
    邮件管理
    +
    &#xe611;
    +
  • + +
  • + +
    小屏
    +
    &#xe612;
    +
  • + +
  • + +
    人员管理
    +
    &#xe613;
    +
  • + +
  • + +
    向下拉
    +
    &#xe614;
    +
  • + +
  • + +
    excel导入导出
    +
    &#xe615;
    +
  • + +
  • + +
    向下箭头
    +
    &#xe616;
    +
  • + +
  • + +
    首页
    +
    &#xe617;
    +
  • + +
  • + +
    系统设置
    +
    &#xe618;
    +
  • + +
  • + +
    消息
    +
    &#xe619;
    +
  • + +
  • + +
    全屏
    +
    &#xe61a;
    +
  • + +
  • + +
    组件
    +
    &#xe61b;
    +
  • + +
  • + +
    news
    +
    &#xe61e;
    +
  • + +
  • + +
    定时任务
    +
    &#xe622;
    +
  • + +
  • + +
    动态加载
    +
    &#xe623;
    +
  • + +
  • + +
    接口文档
    +
    &#xe624;
    +
  • + +
+
+

Unicode 引用

+
+ +

Unicode 是字体在网页端最原始的应用方式,特点是:

+
    +
  • 兼容性最好,支持 IE6+,及所有现代浏览器。
  • +
  • 支持按字体的方式去动态调整图标大小,颜色等等。
  • +
  • 但是因为是字体,所以不支持多色。只能使用平台里单色的图标,就算项目里有多色图标也会自动去色。
  • +
+
+

注意:新版 iconfont 支持多色图标,这些多色图标在 Unicode 模式下将不能使用,如果有需求建议使用symbol 的引用方式

+
+

Unicode 使用步骤如下:

+

第一步:拷贝项目下面生成的 @font-face

+
@font-face {
+  font-family: 'iconfont';
+  src: url('iconfont.eot');
+  src: url('iconfont.eot?#iefix') format('embedded-opentype'),
+      url('iconfont.woff2') format('woff2'),
+      url('iconfont.woff') format('woff'),
+      url('iconfont.ttf') format('truetype'),
+      url('iconfont.svg#iconfont') format('svg');
+}
+
+

第二步:定义使用 iconfont 的样式

+
.iconfont {
+  font-family: "iconfont" !important;
+  font-size: 16px;
+  font-style: normal;
+  -webkit-font-smoothing: antialiased;
+  -moz-osx-font-smoothing: grayscale;
+}
+
+

第三步:挑选相应图标并获取字体编码,应用于页面

+
+<span class="iconfont">&#x33;</span>
+
+
+

"iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。

+
+
+
+
+
    + +
  • + +
    + 多级菜单 +
    +
    .iconduojicaidan +
    +
  • + +
  • + +
    + 导航展开 +
    +
    .icondaohangzhankai +
    +
  • + +
  • + +
    + 导航折叠 +
    +
    .icondaohangzhedie +
    +
  • + +
  • + +
    + 向上箭头 +
    +
    .iconxiangshangjiantou +
    +
  • + +
  • + +
    + 向左箭头 +
    +
    .iconxiangzuojiantou +
    +
  • + +
  • + +
    + 向右箭头 +
    +
    .iconxiangyoujiantou +
    +
  • + +
  • + +
    + 关闭按钮 +
    +
    .iconguanbianniu +
    +
  • + +
  • + +
    + 数据上传 +
    +
    .iconshujushangchuan +
    +
  • + +
  • + +
    + 系统监控 +
    +
    .iconxitongjiankong +
    +
  • + +
  • + +
    + 邮件管理 +
    +
    .iconyoujianguanli +
    +
  • + +
  • + +
    + 小屏 +
    +
    .iconxiaoping +
    +
  • + +
  • + +
    + 人员管理 +
    +
    .iconrenyuanguanli +
    +
  • + +
  • + +
    + 向下拉 +
    +
    .iconxiangxiala +
    +
  • + +
  • + +
    + excel导入导出 +
    +
    .iconexceldaorudaochu +
    +
  • + +
  • + +
    + 向下箭头 +
    +
    .iconxiangxiajiantou +
    +
  • + +
  • + +
    + 首页 +
    +
    .iconshouye +
    +
  • + +
  • + +
    + 系统设置 +
    +
    .iconxitongshezhi +
    +
  • + +
  • + +
    + 消息 +
    +
    .iconxiaoxi +
    +
  • + +
  • + +
    + 全屏 +
    +
    .iconquanping +
    +
  • + +
  • + +
    + 组件 +
    +
    .iconzujian +
    +
  • + +
  • + +
    + news +
    +
    .iconnews +
    +
  • + +
  • + +
    + 定时任务 +
    +
    .icondingshirenwu +
    +
  • + +
  • + +
    + 动态加载 +
    +
    .icondongtaijiazai +
    +
  • + +
  • + +
    + 接口文档 +
    +
    .iconjiekouwendang +
    +
  • + +
+
+

font-class 引用

+
+ +

font-class 是 Unicode 使用方式的一种变种,主要是解决 Unicode 书写不直观,语意不明确的问题。

+

与 Unicode 使用方式相比,具有如下特点:

+
    +
  • 兼容性良好,支持 IE8+,及所有现代浏览器。
  • +
  • 相比于 Unicode 语意明确,书写更直观。可以很容易分辨这个 icon 是什么。
  • +
  • 因为使用 class 来定义图标,所以当要替换图标时,只需要修改 class 里面的 Unicode 引用。
  • +
  • 不过因为本质上还是使用的字体,所以多色图标还是不支持的。
  • +
+

使用步骤如下:

+

第一步:引入项目下面生成的 fontclass 代码:

+
<link rel="stylesheet" href="./iconfont.css">
+
+

第二步:挑选相应图标并获取类名,应用于页面:

+
<span class="iconfont iconxxx"></span>
+
+
+

" + iconfont" 是你项目下的 font-family。可以通过编辑项目查看,默认是 "iconfont"。

+
+
+
+
+
    + +
  • + +
    多级菜单
    +
    #iconduojicaidan
    +
  • + +
  • + +
    导航展开
    +
    #icondaohangzhankai
    +
  • + +
  • + +
    导航折叠
    +
    #icondaohangzhedie
    +
  • + +
  • + +
    向上箭头
    +
    #iconxiangshangjiantou
    +
  • + +
  • + +
    向左箭头
    +
    #iconxiangzuojiantou
    +
  • + +
  • + +
    向右箭头
    +
    #iconxiangyoujiantou
    +
  • + +
  • + +
    关闭按钮
    +
    #iconguanbianniu
    +
  • + +
  • + +
    数据上传
    +
    #iconshujushangchuan
    +
  • + +
  • + +
    系统监控
    +
    #iconxitongjiankong
    +
  • + +
  • + +
    邮件管理
    +
    #iconyoujianguanli
    +
  • + +
  • + +
    小屏
    +
    #iconxiaoping
    +
  • + +
  • + +
    人员管理
    +
    #iconrenyuanguanli
    +
  • + +
  • + +
    向下拉
    +
    #iconxiangxiala
    +
  • + +
  • + +
    excel导入导出
    +
    #iconexceldaorudaochu
    +
  • + +
  • + +
    向下箭头
    +
    #iconxiangxiajiantou
    +
  • + +
  • + +
    首页
    +
    #iconshouye
    +
  • + +
  • + +
    系统设置
    +
    #iconxitongshezhi
    +
  • + +
  • + +
    消息
    +
    #iconxiaoxi
    +
  • + +
  • + +
    全屏
    +
    #iconquanping
    +
  • + +
  • + +
    组件
    +
    #iconzujian
    +
  • + +
  • + +
    news
    +
    #iconnews
    +
  • + +
  • + +
    定时任务
    +
    #icondingshirenwu
    +
  • + +
  • + +
    动态加载
    +
    #icondongtaijiazai
    +
  • + +
  • + +
    接口文档
    +
    #iconjiekouwendang
    +
  • + +
+
+

Symbol 引用

+
+ +

这是一种全新的使用方式,应该说这才是未来的主流,也是平台目前推荐的用法。相关介绍可以参考这篇文章 + 这种用法其实是做了一个 SVG 的集合,与另外两种相比具有如下特点:

+
    +
  • 支持多色图标了,不再受单色限制。
  • +
  • 通过一些技巧,支持像字体那样,通过 font-size, color 来调整样式。
  • +
  • 兼容性较差,支持 IE9+,及现代浏览器。
  • +
  • 浏览器渲染 SVG 的性能一般,还不如 png。
  • +
+

使用步骤如下:

+

第一步:引入项目下面生成的 symbol 代码:

+
<script src="./iconfont.js"></script>
+
+

第二步:加入通用 CSS 代码(引入一次就行):

+
<style>
+.icon {
+  width: 1em;
+  height: 1em;
+  vertical-align: -0.15em;
+  fill: currentColor;
+  overflow: hidden;
+}
+</style>
+
+

第三步:挑选相应图标并获取类名,应用于页面:

+
<svg class="icon" aria-hidden="true">
+  <use xlink:href="#icon-xxx"></use>
+</svg>
+
+
+
+ +
+
+ + + diff --git a/smart_admin_v1/smart-admin-web/src/assets/icons/download (4)/font_1299963_2zqwx2axi0j/iconfont.css b/smart_admin_v1/smart-admin-web/src/assets/icons/download (4)/font_1299963_2zqwx2axi0j/iconfont.css new file mode 100644 index 00000000..8c269496 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/assets/icons/download (4)/font_1299963_2zqwx2axi0j/iconfont.css @@ -0,0 +1,113 @@ +@font-face {font-family: "iconfont"; + src: url('iconfont.eot?t=1567826173562'); /* IE9 */ + src: url('iconfont.eot?t=1567826173562#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAABHoAAsAAAAAIcQAABGZAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCFQgqxHKV3ATYCJANkCzQABCAFhG0HgwcbIhsz0lHSipfsvzrgDeWN7mGGx2JaRxQWOkpQJ+9hJazgItaLPcwpUZjctwwMwn32fdA/7fc65wH9uwFmC0AS0YjYAkpdpbdkRALgB9rmvwvqjjjibCS0WRH24uxVgPoHzvgTV+3WLCJgxSpc909x1aCL/oD1o2DwveqTnXtKFj/F4Ai0nQP9lPymv8FgwfLOe5AHNUCwbFo3p3Col70hz/7y03M0QLrSh6Tr/9ZSe1sGj1tCYWLlzOxecn92JrnZ4NyWNsQbniuCCqhGFUji87ch3iK4pArYkTQVslpWOF+DsZmHi36zcKJg4ph+9P0hoKCNEbSytnNCRoRBhQavTw9XZKl0ojsLRZaaUIaM0HeIyYIPqAv45v9+/WdKGQTEIUafB/ertyz4zPeEb0Fy6obAFCeB3XAQAiNABPpJdT6HIYz4VkHzRlwCmekfgG/20T72/V1orM2rw/BUZMaYTsh/4AWERMQkpGTkFJQwHGWUU0ElVVRTQy111NMASjDqG4Am9PIG8Jm9EQKfG7PPCgjCKythIyLwthExeIf1nfgybEQKvpwillWAAlYJClgVKGDVoIDVgAJWCwpYHShg9aCANYAC1ggKWBMoYM2ggLWBAtYFClg3KGA9AJAHNLpDTAH3kJVB/oTBf/kyITanSotITkusdIkiWOGSlhE5UdKiyMvMVRiWOZFaJBww52YbbVkVoVl+qqmrqdWgzVwly4VN7ROqtq/f7Oq0K1WNFlWNHqfNg15LKxwXp8rcHpF1nfIWS6zbKO8goRvTiAXJmnw4D5QM/ncuQPUsovGQhq4QlJR522I3JIFtWQOTGk7fUfScFMgVZKYv+Ry+8MN0Xps//VQMdaS/LPV1WxDN4h78uxC1112QBPlwUIMfZy76HNL4EZ3X5U8/GUMtkU7BEwFE1BP7mSPWXt4Y3jMPKFffJ+7EzcZ+yQ5kD6h7YaO2t0LJPtEU3C3IoWccR94NmjJZRGP30L9VS9R9aYMZJYdx64+ae5RyBQDCmTSyERkFgoeaWSBpJTwpXF9xDlQqTqlkWRNVLtuuotJgH6/dgvT2iGdLpvTpqPa655YflHv1mnTnhzwPbDcevyc4JwJXq9lK5ULZLms2sU6COXxkhWapyDRFGRX8tiIpjc0W5wg5uCe2k4yJ6gYwcbaIu1J2RimMs0PN0Dd5vjZ2u0gOIS89fiPjE/xd/7rUt6atnN/wrjog0V4Zl7B33WfT9xcfPX7/B6mTs8IPpDtnjp27rwifh+kzNU52h6TxBGMb4gcPGAspvTZiwy6mWPXRsHVZ5XeF4ND/uvDKwI3BwzSkMcZdV4eulYkWwNE5KlsfXR+Cl4e8P3z9vMkI/j2mUlLuomu+T1N4B9e5PqSeckUEp+mH/arGfFaNqVQ2ygEf8PjfSKm0a5rGge1Fikhxrft5VF6fKh8O7ryvocGmMptfphrGA3kjpj9CtcCCMUMX4SD/0QTEOO9kxmApPW0pz+m6ALYRxBjXOLl5XYi+yjBFkp3n9WVKYVep2BRdhSXKXKGKPI0RNVHKNBWUBUtIQ+IC0mSggmG5OhahDkRO44gZSEasb6JoqjHd3+X5J4MEvvcruvB0sPz7ztWhewM2fH90fcqOGiImW6LMhJTb/vk+NH4uyjp43AJsnenBudxrSwipwnjJDSj0BqXgb1Sies4BEHWb9yY1WHsZ0jglLZueLKfaUzWB96yEhc3xnSzXfJ247Igrjh4ddQYAXbuBEKSVAtT9XQmQF8FEIRqMVEUxoHsEtFGuCq5p+pGCIVWq23UVwBgVRQL7samax/fjZ96U+7WW8t5W+ndUBy3eu8u6+odVIq9pubabX+KwEHoT6Tmoks7PJ1pT8otpj61j9ehjfPf7RG50jIyPq2XBNIvtt77GP/vIdAuw2OcxDID9b6c70oUh31YoLPQFq37SmGoAu3/l/rIMWniImFZaGbSm8o1XgoGdj5ONPUlT6mE8WVd4tSmZaxv2xRa6+yijHrmhnn+AXfPeN03Mzbcljof4zzItfWhzWmVBvOhac6bYPvyrIy80P2WPexJ9KgoQpdjOgITSV2IaDfYqoXCJZqht03Xw30hFrnAV1NNN/E6QcY6oNPTbArNB2Pj2qVOwiglDfQMxSdVF9ZGdDYjqJeF1TWuYUErG8+S5fQIi8AX3CbBpSZ7Pd2EM+qRheFr39yh17HVN3zRsUP9maTPtGe8bsaf0GXb1QcL3ixBi1yVPNJVH8WzCe0GHJAWEriMeADCEAMrjt4c6XUOwMsEEJYS0c682VeNc83gFGaJ0LPRlwjUVTNDIQKZSUC5sr8yYBdds/pk6EKZLirxVK/lB+GZ5eVU/jecpUuMwjd0QgPQ8beA29jEZB+8rswpmX+Vksbv2Eel1F4vdvHxgV09jUBXZfUjntnrvae/fWp69Wf3Ak149Gh+f5xzgK0QY9gxjRuOVQWrG72WVhxVafVR9770hKd0voS3P42mWtB3C8QMwZe5cqr/bxpIpDXcmMyzQwDnIrl+B7RG+MQ2OzN00LD57bcCTd72Mx85ywJzxFffxjJ2t2n3RQpFUsovrPU3/Vue8OmC8s7gErsk93oE8fjXu6bZodGYoE+/8FCKfSNw6kVMoi3nh2GWc2HOPVUSzvMvWuXtKu5JMiZG4C8l2AQ0EVhAgVYfgR+lM+ojmCJPJHKE7diaQHEfpo3AiXtAUW3Pk7oNBn//xK3RQv4IL8MtMkLmMp+qaQy6gZhZRZfxlQXNSloCXJUEq2uju3hk1/gTfjBneQhqyJMEDD9ShAYGZ6uaQC/QUMvVFc0KWsF5gPp7+JtJwaPg+J5fp1kA7BgQYxpvoZZjAAAfdMH/+61jQ78zJKVAGHKZ93RhfolPspw8P8NFD9UlaNmUYT2ID0y3kzs0Y+NSXEDptDayTCkKrizE5Nq0DeNPI/Rb6jfeMcCXn3WL5yJoqqxcydlbF1Wz7qgkJ6ourrMpiSeWaWVWIiVwUvgfdxZZJ0BcpnT5zMML3h/pOKA96lqujZLSmNGHQocJiY5++BRG7YrOrBiVM//GZI0q93HNQecIX6uebkWkzkVLo23Rs8H8fKJDnRg0bFpUnz98qL4jKHT48Wa9AvjVfnkeZsS0qkhdBnhegj+EC3tqauICdb2u9h5/D29qcd+58a9uuU+ja14lMUcyMxK+8WHVJ4t+SL4maub+mfeGpBBCO3RDF9bXJlBXx064k/sNTMa+S/6H/I/KqS/5O/Cr9mhg/NpYvimgSZDCVhjJpNiEBulMv+zn7FODncTBnOG6y3gUvAmvO7xeFC8rkKs5SV2OXRtdSSnx6o03R9Y/1r36a7lF2UXqmf1vX7/yB8/vB8tyf5EkOOIwJyG6JugrVkqsnu8bax8wR18DVqLcD7Q7H4SeveJTM73DYY7ue3Dl74KPIqxKr5OrNDrElrj/Jl1Qza+zkUnq11qzId+9IIMkbApG3tcXItBmIRZ9cMu7zh5Ga2eeRSfQf9WPoMI5ASJGccFkdjc50HpsuUN3Mpgb8XJ5cgqKWGTNKZuYhFgvkmchtlofE3wteLsHDBHG3DQqGn5hyiwVJ+ivGTuWpLryBFSrAHxkQgkOx27+zvn4ohaRBQw82KssLCyhO27Yh0vPtDE8p/fbN1Vk4zZG5pDjh13RsJxZp1Bo/gTGHcRbNybJuHqMtx1knsOLEmjlFhmcEp5N2zKbqLBrnhFyiMVswuUN7SVZPPDKwBg05QrNwTq+aRUtXsDoht9RyTFOhvybFW7qpjgJ5paE+opwc0T1vw1xeOW9Yr/wNcyHt4RQb92p/s7vfb8Wl9Rwb9Cs6zPeSp/ke4jDhd+UeUmw5I+uaOzx3gZYws8RP+MgDfA9ZQWrAtfuII/9f08HpI+xkgGh3AjyOBhVc4CDpSm1I2sn3kRzSS2qOj5yyxSJgJyvJaL4VBJfwOu8km+/jQ8PWdf4H//d/9Nkw2Lgc69r/dYgKPc70WxSf0mN8ZtNdZNHATselKparf1d82UDTldbyqwOMI1gxmaZO2SruqF2LLoXfvpHZ7BBfmr9rBVfFMKbMGNaIwcZaQP9AsnMQuzqrABlSjhSayG1WgMSfVNZjTLk4tNqQjtVqbqvfo7ZLEXpGF+Yah75TPW/vyjAYYQMTocSEV8PNjTAqIqZHJTahJtRqyEBrNXfU77BxlyNwbHGMSBtex/5+1E0VhW5RYvePJlmiVTMjYPodqbgC4ppO3FBJBWeyI2YNPLt1Xhw81q4b1CsPlxRWZOWdlLynWJVb9upmZUfeuSFBNxxnnXn8fh+nBe83ddrnmBsveqxba9S2w6SpkqzcU+JJ9vGJOAP93kFd3itgs4zy8VsQ6wguufAiVaU0SeaJTSoj/MxfGDYSsY7ZUiJnJTggl1Eq7WBUM1RO1NY6vWQt6QvxkfhyrNPqUPE627/n2Dkj8BDDuVvKR5Rv4Q7/7n2t003UEh6WCJ+47qj5FY1SGs7C8SrfL7WkhwnnMf7RHj4M/F9eE8VNvtcr/INZ+OuLZTnrB8Q4GwP1okCjoFU2aeiTswW7WfUhomfiThVaoXxx2mI59xT7rHPMj8JfTgtHfSRGmlPDpDQZtfi2Mj8XFTNIt5WpP98HgYeasF4ZJ1Hm52BIXm4nwJFH+y8IQDhOQAl8nFnPqIEftENb19goPWWzrUMGaocNoIa+EIkE1I2G0oR0bIAEzc0FHeO/DuUj1prkfO6UcWusXDaGxu/1qLVQfj13SqGs+wlqq96cMdOcLrMTfztlxVuMYc87/hyG3Fx74v6p9BuK2oznYSsLh6eXY2x4gFqWLLSgQ9A1K7DSn9iRiOY7qJ52QiSYIoDwJv4UflANN4K+bAoHvTvRrv0rmi7DdLjchG6OvCg/xJ3OPVS+QtubtNNNmJLH87gRzxahr2n3NT0Vl6J7GaN7Xu4ZbbIilwN0jPa6VNCPBibmg9mC5CH5ZnO+hzaAoDOzpcclnosoJVxSSG0WL+yPl0VckV4BQxO1A+pggR32Pdfecg5zFoDvQDecFccIL8kjvYTWGu/nTJBrK0xKh8gkdDSZmhxCk8gx6cJiyTORblLfmnA7rZNILznbol17Q0QIISQo6PpH9Gy0i3aItjQuTVs6zs7dwXVwe2pNv6R/EdmFobcaHb+ziKDO/9b14MOVSdJIMDNn+8yZU6RuqdWrY5V6pfMrt0ayzC31G2chjBnzK5MUeWBOMEgMX+wseg0geNdJTEu0e1xH08aX1eFhKZiMLH9pPxZf1uY0hrNOPbXrHPoqzQ0iJmsXXkCnXO9xEIsTCXebTtbx8/7U4QhkCLyetvyRUVj75Y+tx9ot99uBiSs+mohF/0ncFdApfWrKRJ1/55L/JZ/3wp79v58brAvDNv+uNZnNP4BNxtPwa7KREY6f/17b6HBlOLRAXoICAGEWAgTB2CMBz7A4zWz+sczpGGEXB+QA7MpjoeFT2+ksIMGgs4EL3XQCNFA4PAlSmAAYIDgPAJJhoaYjQMFxHQUhXNcxoKBew6e6dRaEgFdnA4VgOgFFiHSMpA1e9LR5DaAZUvXsFRqqrJXFm6DhFzgpdEgm+8v+IEQsVLfkmq38hAqCiH5i4+7MVtlApfrQHgyKglQdKAPDiWeuH5eLpfWbGCpHG14DaHbXTRXPfkc0VNn2eZP79V/gpNDhzlEvO/5BiHjrihsJVwbt06qYjjoUNTbuDhNplX1goFLxQSQUZhkpanpnGRhO8A1K6gcXcjbLaiXd83JdXAYUGOPfqEChIsVKlCpTrkIlmZzKVK4KVapK1apRrepUrwY1qontrVCGRmOqq4PtIa8rNzhFucZ90gspwrnDA41XyMI8Jjme6dD08MvSnmTB1gk8430rlGP0kklDYXxR+aFDJiGQ+3zfgDDLAldcJNVYtDpA1Yu1EY0dpdAn6AwUQxNBgIWlHunhbvdbRE/Sw66NmtHD4HHBE9li9S+ICE5fDN3FzSpo4y7FKoA3t5V9yi5Z4x0YZKBmCDlJC5V8Ym40AgAA') format('woff2'), + url('iconfont.woff?t=1567826173562') format('woff'), + url('iconfont.ttf?t=1567826173562') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */ + url('iconfont.svg?t=1567826173562#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; +} + +.iconduojicaidan:before { + content: "\e608"; +} + +.icondaohangzhankai:before { + content: "\e609"; +} + +.icondaohangzhedie:before { + content: "\e60a"; +} + +.iconxiangshangjiantou:before { + content: "\e60b"; +} + +.iconxiangzuojiantou:before { + content: "\e60c"; +} + +.iconxiangyoujiantou:before { + content: "\e60d"; +} + +.iconguanbianniu:before { + content: "\e60e"; +} + +.iconshujushangchuan:before { + content: "\e60f"; +} + +.iconxitongjiankong:before { + content: "\e610"; +} + +.iconyoujianguanli:before { + content: "\e611"; +} + +.iconxiaoping:before { + content: "\e612"; +} + +.iconrenyuanguanli:before { + content: "\e613"; +} + +.iconxiangxiala:before { + content: "\e614"; +} + +.iconexceldaorudaochu:before { + content: "\e615"; +} + +.iconxiangxiajiantou:before { + content: "\e616"; +} + +.iconshouye:before { + content: "\e617"; +} + +.iconxitongshezhi:before { + content: "\e618"; +} + +.iconxiaoxi:before { + content: "\e619"; +} + +.iconquanping:before { + content: "\e61a"; +} + +.iconzujian:before { + content: "\e61b"; +} + +.iconnews:before { + content: "\e61e"; +} + +.icondingshirenwu:before { + content: "\e622"; +} + +.icondongtaijiazai:before { + content: "\e623"; +} + +.iconjiekouwendang:before { + content: "\e624"; +} + diff --git a/smart_admin_v1/smart-admin-web/src/assets/icons/download (4)/font_1299963_2zqwx2axi0j/iconfont.eot b/smart_admin_v1/smart-admin-web/src/assets/icons/download (4)/font_1299963_2zqwx2axi0j/iconfont.eot new file mode 100644 index 00000000..cf0b3fbd Binary files /dev/null and b/smart_admin_v1/smart-admin-web/src/assets/icons/download (4)/font_1299963_2zqwx2axi0j/iconfont.eot differ diff --git a/smart_admin_v1/smart-admin-web/src/assets/icons/download (4)/font_1299963_2zqwx2axi0j/iconfont.js b/smart_admin_v1/smart-admin-web/src/assets/icons/download (4)/font_1299963_2zqwx2axi0j/iconfont.js new file mode 100644 index 00000000..6a3315a1 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/assets/icons/download (4)/font_1299963_2zqwx2axi0j/iconfont.js @@ -0,0 +1 @@ +!function(e){var c,t='',h=(c=document.getElementsByTagName("script"))[c.length-1].getAttribute("data-injectcss");if(h&&!e.__iconfont__svg__cssinject__){e.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(c){console&&console.log(c)}}!function(c){if(document.addEventListener)if(~["complete","loaded","interactive"].indexOf(document.readyState))setTimeout(c,0);else{var h=function(){document.removeEventListener("DOMContentLoaded",h,!1),c()};document.addEventListener("DOMContentLoaded",h,!1)}else document.attachEvent&&(a=c,o=e.document,l=!1,(i=function(){try{o.documentElement.doScroll("left")}catch(c){return void setTimeout(i,50)}t()})(),o.onreadystatechange=function(){"complete"==o.readyState&&(o.onreadystatechange=null,t())});function t(){l||(l=!0,a())}var a,o,l,i}(function(){var c,h;(c=document.createElement("div")).innerHTML=t,t=null,(h=c.getElementsByTagName("svg")[0])&&(h.setAttribute("aria-hidden","true"),h.style.position="absolute",h.style.width=0,h.style.height=0,h.style.overflow="hidden",function(c,h){h.firstChild?function(c,h){h.parentNode.insertBefore(c,h)}(c,h.firstChild):h.appendChild(c)}(h,document.body))})}(window); \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-web/src/assets/icons/download (4)/font_1299963_2zqwx2axi0j/iconfont.svg b/smart_admin_v1/smart-admin-web/src/assets/icons/download (4)/font_1299963_2zqwx2axi0j/iconfont.svg new file mode 100644 index 00000000..a349f5e2 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/assets/icons/download (4)/font_1299963_2zqwx2axi0j/iconfont.svg @@ -0,0 +1,98 @@ + + + + + +Created by iconfont + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/smart_admin_v1/smart-admin-web/src/assets/icons/download (4)/font_1299963_2zqwx2axi0j/iconfont.ttf b/smart_admin_v1/smart-admin-web/src/assets/icons/download (4)/font_1299963_2zqwx2axi0j/iconfont.ttf new file mode 100644 index 00000000..69587d9e Binary files /dev/null and b/smart_admin_v1/smart-admin-web/src/assets/icons/download (4)/font_1299963_2zqwx2axi0j/iconfont.ttf differ diff --git a/smart_admin_v1/smart-admin-web/src/assets/icons/download (4)/font_1299963_2zqwx2axi0j/iconfont.woff b/smart_admin_v1/smart-admin-web/src/assets/icons/download (4)/font_1299963_2zqwx2axi0j/iconfont.woff new file mode 100644 index 00000000..fc0da088 Binary files /dev/null and b/smart_admin_v1/smart-admin-web/src/assets/icons/download (4)/font_1299963_2zqwx2axi0j/iconfont.woff differ diff --git a/smart_admin_v1/smart-admin-web/src/assets/icons/download (4)/font_1299963_2zqwx2axi0j/iconfont.woff2 b/smart_admin_v1/smart-admin-web/src/assets/icons/download (4)/font_1299963_2zqwx2axi0j/iconfont.woff2 new file mode 100644 index 00000000..89c0d09e Binary files /dev/null and b/smart_admin_v1/smart-admin-web/src/assets/icons/download (4)/font_1299963_2zqwx2axi0j/iconfont.woff2 differ diff --git a/smart_admin_v1/smart-admin-web/src/assets/icons/iconfont.css b/smart_admin_v1/smart-admin-web/src/assets/icons/iconfont.css new file mode 100644 index 00000000..8c269496 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/assets/icons/iconfont.css @@ -0,0 +1,113 @@ +@font-face {font-family: "iconfont"; + src: url('iconfont.eot?t=1567826173562'); /* IE9 */ + src: url('iconfont.eot?t=1567826173562#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('data:application/x-font-woff2;charset=utf-8;base64,d09GMgABAAAAABHoAAsAAAAAIcQAABGZAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHEIGVgCFQgqxHKV3ATYCJANkCzQABCAFhG0HgwcbIhsz0lHSipfsvzrgDeWN7mGGx2JaRxQWOkpQJ+9hJazgItaLPcwpUZjctwwMwn32fdA/7fc65wH9uwFmC0AS0YjYAkpdpbdkRALgB9rmvwvqjjjibCS0WRH24uxVgPoHzvgTV+3WLCJgxSpc909x1aCL/oD1o2DwveqTnXtKFj/F4Ai0nQP9lPymv8FgwfLOe5AHNUCwbFo3p3Col70hz/7y03M0QLrSh6Tr/9ZSe1sGj1tCYWLlzOxecn92JrnZ4NyWNsQbniuCCqhGFUji87ch3iK4pArYkTQVslpWOF+DsZmHi36zcKJg4ph+9P0hoKCNEbSytnNCRoRBhQavTw9XZKl0ojsLRZaaUIaM0HeIyYIPqAv45v9+/WdKGQTEIUafB/ertyz4zPeEb0Fy6obAFCeB3XAQAiNABPpJdT6HIYz4VkHzRlwCmekfgG/20T72/V1orM2rw/BUZMaYTsh/4AWERMQkpGTkFJQwHGWUU0ElVVRTQy111NMASjDqG4Am9PIG8Jm9EQKfG7PPCgjCKythIyLwthExeIf1nfgybEQKvpwillWAAlYJClgVKGDVoIDVgAJWCwpYHShg9aCANYAC1ggKWBMoYM2ggLWBAtYFClg3KGA9AJAHNLpDTAH3kJVB/oTBf/kyITanSotITkusdIkiWOGSlhE5UdKiyMvMVRiWOZFaJBww52YbbVkVoVl+qqmrqdWgzVwly4VN7ROqtq/f7Oq0K1WNFlWNHqfNg15LKxwXp8rcHpF1nfIWS6zbKO8goRvTiAXJmnw4D5QM/ncuQPUsovGQhq4QlJR522I3JIFtWQOTGk7fUfScFMgVZKYv+Ry+8MN0Xps//VQMdaS/LPV1WxDN4h78uxC1112QBPlwUIMfZy76HNL4EZ3X5U8/GUMtkU7BEwFE1BP7mSPWXt4Y3jMPKFffJ+7EzcZ+yQ5kD6h7YaO2t0LJPtEU3C3IoWccR94NmjJZRGP30L9VS9R9aYMZJYdx64+ae5RyBQDCmTSyERkFgoeaWSBpJTwpXF9xDlQqTqlkWRNVLtuuotJgH6/dgvT2iGdLpvTpqPa655YflHv1mnTnhzwPbDcevyc4JwJXq9lK5ULZLms2sU6COXxkhWapyDRFGRX8tiIpjc0W5wg5uCe2k4yJ6gYwcbaIu1J2RimMs0PN0Dd5vjZ2u0gOIS89fiPjE/xd/7rUt6atnN/wrjog0V4Zl7B33WfT9xcfPX7/B6mTs8IPpDtnjp27rwifh+kzNU52h6TxBGMb4gcPGAspvTZiwy6mWPXRsHVZ5XeF4ND/uvDKwI3BwzSkMcZdV4eulYkWwNE5KlsfXR+Cl4e8P3z9vMkI/j2mUlLuomu+T1N4B9e5PqSeckUEp+mH/arGfFaNqVQ2ygEf8PjfSKm0a5rGge1Fikhxrft5VF6fKh8O7ryvocGmMptfphrGA3kjpj9CtcCCMUMX4SD/0QTEOO9kxmApPW0pz+m6ALYRxBjXOLl5XYi+yjBFkp3n9WVKYVep2BRdhSXKXKGKPI0RNVHKNBWUBUtIQ+IC0mSggmG5OhahDkRO44gZSEasb6JoqjHd3+X5J4MEvvcruvB0sPz7ztWhewM2fH90fcqOGiImW6LMhJTb/vk+NH4uyjp43AJsnenBudxrSwipwnjJDSj0BqXgb1Sies4BEHWb9yY1WHsZ0jglLZueLKfaUzWB96yEhc3xnSzXfJ247Igrjh4ddQYAXbuBEKSVAtT9XQmQF8FEIRqMVEUxoHsEtFGuCq5p+pGCIVWq23UVwBgVRQL7samax/fjZ96U+7WW8t5W+ndUBy3eu8u6+odVIq9pubabX+KwEHoT6Tmoks7PJ1pT8otpj61j9ehjfPf7RG50jIyPq2XBNIvtt77GP/vIdAuw2OcxDID9b6c70oUh31YoLPQFq37SmGoAu3/l/rIMWniImFZaGbSm8o1XgoGdj5ONPUlT6mE8WVd4tSmZaxv2xRa6+yijHrmhnn+AXfPeN03Mzbcljof4zzItfWhzWmVBvOhac6bYPvyrIy80P2WPexJ9KgoQpdjOgITSV2IaDfYqoXCJZqht03Xw30hFrnAV1NNN/E6QcY6oNPTbArNB2Pj2qVOwiglDfQMxSdVF9ZGdDYjqJeF1TWuYUErG8+S5fQIi8AX3CbBpSZ7Pd2EM+qRheFr39yh17HVN3zRsUP9maTPtGe8bsaf0GXb1QcL3ixBi1yVPNJVH8WzCe0GHJAWEriMeADCEAMrjt4c6XUOwMsEEJYS0c682VeNc83gFGaJ0LPRlwjUVTNDIQKZSUC5sr8yYBdds/pk6EKZLirxVK/lB+GZ5eVU/jecpUuMwjd0QgPQ8beA29jEZB+8rswpmX+Vksbv2Eel1F4vdvHxgV09jUBXZfUjntnrvae/fWp69Wf3Ak149Gh+f5xzgK0QY9gxjRuOVQWrG72WVhxVafVR9770hKd0voS3P42mWtB3C8QMwZe5cqr/bxpIpDXcmMyzQwDnIrl+B7RG+MQ2OzN00LD57bcCTd72Mx85ywJzxFffxjJ2t2n3RQpFUsovrPU3/Vue8OmC8s7gErsk93oE8fjXu6bZodGYoE+/8FCKfSNw6kVMoi3nh2GWc2HOPVUSzvMvWuXtKu5JMiZG4C8l2AQ0EVhAgVYfgR+lM+ojmCJPJHKE7diaQHEfpo3AiXtAUW3Pk7oNBn//xK3RQv4IL8MtMkLmMp+qaQy6gZhZRZfxlQXNSloCXJUEq2uju3hk1/gTfjBneQhqyJMEDD9ShAYGZ6uaQC/QUMvVFc0KWsF5gPp7+JtJwaPg+J5fp1kA7BgQYxpvoZZjAAAfdMH/+61jQ78zJKVAGHKZ93RhfolPspw8P8NFD9UlaNmUYT2ID0y3kzs0Y+NSXEDptDayTCkKrizE5Nq0DeNPI/Rb6jfeMcCXn3WL5yJoqqxcydlbF1Wz7qgkJ6ourrMpiSeWaWVWIiVwUvgfdxZZJ0BcpnT5zMML3h/pOKA96lqujZLSmNGHQocJiY5++BRG7YrOrBiVM//GZI0q93HNQecIX6uebkWkzkVLo23Rs8H8fKJDnRg0bFpUnz98qL4jKHT48Wa9AvjVfnkeZsS0qkhdBnhegj+EC3tqauICdb2u9h5/D29qcd+58a9uuU+ja14lMUcyMxK+8WHVJ4t+SL4maub+mfeGpBBCO3RDF9bXJlBXx064k/sNTMa+S/6H/I/KqS/5O/Cr9mhg/NpYvimgSZDCVhjJpNiEBulMv+zn7FODncTBnOG6y3gUvAmvO7xeFC8rkKs5SV2OXRtdSSnx6o03R9Y/1r36a7lF2UXqmf1vX7/yB8/vB8tyf5EkOOIwJyG6JugrVkqsnu8bax8wR18DVqLcD7Q7H4SeveJTM73DYY7ue3Dl74KPIqxKr5OrNDrElrj/Jl1Qza+zkUnq11qzId+9IIMkbApG3tcXItBmIRZ9cMu7zh5Ga2eeRSfQf9WPoMI5ASJGccFkdjc50HpsuUN3Mpgb8XJ5cgqKWGTNKZuYhFgvkmchtlofE3wteLsHDBHG3DQqGn5hyiwVJ+ivGTuWpLryBFSrAHxkQgkOx27+zvn4ohaRBQw82KssLCyhO27Yh0vPtDE8p/fbN1Vk4zZG5pDjh13RsJxZp1Bo/gTGHcRbNybJuHqMtx1knsOLEmjlFhmcEp5N2zKbqLBrnhFyiMVswuUN7SVZPPDKwBg05QrNwTq+aRUtXsDoht9RyTFOhvybFW7qpjgJ5paE+opwc0T1vw1xeOW9Yr/wNcyHt4RQb92p/s7vfb8Wl9Rwb9Cs6zPeSp/ke4jDhd+UeUmw5I+uaOzx3gZYws8RP+MgDfA9ZQWrAtfuII/9f08HpI+xkgGh3AjyOBhVc4CDpSm1I2sn3kRzSS2qOj5yyxSJgJyvJaL4VBJfwOu8km+/jQ8PWdf4H//d/9Nkw2Lgc69r/dYgKPc70WxSf0mN8ZtNdZNHATselKparf1d82UDTldbyqwOMI1gxmaZO2SruqF2LLoXfvpHZ7BBfmr9rBVfFMKbMGNaIwcZaQP9AsnMQuzqrABlSjhSayG1WgMSfVNZjTLk4tNqQjtVqbqvfo7ZLEXpGF+Yah75TPW/vyjAYYQMTocSEV8PNjTAqIqZHJTahJtRqyEBrNXfU77BxlyNwbHGMSBtex/5+1E0VhW5RYvePJlmiVTMjYPodqbgC4ppO3FBJBWeyI2YNPLt1Xhw81q4b1CsPlxRWZOWdlLynWJVb9upmZUfeuSFBNxxnnXn8fh+nBe83ddrnmBsveqxba9S2w6SpkqzcU+JJ9vGJOAP93kFd3itgs4zy8VsQ6wguufAiVaU0SeaJTSoj/MxfGDYSsY7ZUiJnJTggl1Eq7WBUM1RO1NY6vWQt6QvxkfhyrNPqUPE627/n2Dkj8BDDuVvKR5Rv4Q7/7n2t003UEh6WCJ+47qj5FY1SGs7C8SrfL7WkhwnnMf7RHj4M/F9eE8VNvtcr/INZ+OuLZTnrB8Q4GwP1okCjoFU2aeiTswW7WfUhomfiThVaoXxx2mI59xT7rHPMj8JfTgtHfSRGmlPDpDQZtfi2Mj8XFTNIt5WpP98HgYeasF4ZJ1Hm52BIXm4nwJFH+y8IQDhOQAl8nFnPqIEftENb19goPWWzrUMGaocNoIa+EIkE1I2G0oR0bIAEzc0FHeO/DuUj1prkfO6UcWusXDaGxu/1qLVQfj13SqGs+wlqq96cMdOcLrMTfztlxVuMYc87/hyG3Fx74v6p9BuK2oznYSsLh6eXY2x4gFqWLLSgQ9A1K7DSn9iRiOY7qJ52QiSYIoDwJv4UflANN4K+bAoHvTvRrv0rmi7DdLjchG6OvCg/xJ3OPVS+QtubtNNNmJLH87gRzxahr2n3NT0Vl6J7GaN7Xu4ZbbIilwN0jPa6VNCPBibmg9mC5CH5ZnO+hzaAoDOzpcclnosoJVxSSG0WL+yPl0VckV4BQxO1A+pggR32Pdfecg5zFoDvQDecFccIL8kjvYTWGu/nTJBrK0xKh8gkdDSZmhxCk8gx6cJiyTORblLfmnA7rZNILznbol17Q0QIISQo6PpH9Gy0i3aItjQuTVs6zs7dwXVwe2pNv6R/EdmFobcaHb+ziKDO/9b14MOVSdJIMDNn+8yZU6RuqdWrY5V6pfMrt0ayzC31G2chjBnzK5MUeWBOMEgMX+wseg0geNdJTEu0e1xH08aX1eFhKZiMLH9pPxZf1uY0hrNOPbXrHPoqzQ0iJmsXXkCnXO9xEIsTCXebTtbx8/7U4QhkCLyetvyRUVj75Y+tx9ot99uBiSs+mohF/0ncFdApfWrKRJ1/55L/JZ/3wp79v58brAvDNv+uNZnNP4BNxtPwa7KREY6f/17b6HBlOLRAXoICAGEWAgTB2CMBz7A4zWz+sczpGGEXB+QA7MpjoeFT2+ksIMGgs4EL3XQCNFA4PAlSmAAYIDgPAJJhoaYjQMFxHQUhXNcxoKBew6e6dRaEgFdnA4VgOgFFiHSMpA1e9LR5DaAZUvXsFRqqrJXFm6DhFzgpdEgm+8v+IEQsVLfkmq38hAqCiH5i4+7MVtlApfrQHgyKglQdKAPDiWeuH5eLpfWbGCpHG14DaHbXTRXPfkc0VNn2eZP79V/gpNDhzlEvO/5BiHjrihsJVwbt06qYjjoUNTbuDhNplX1goFLxQSQUZhkpanpnGRhO8A1K6gcXcjbLaiXd83JdXAYUGOPfqEChIsVKlCpTrkIlmZzKVK4KVapK1apRrepUrwY1qontrVCGRmOqq4PtIa8rNzhFucZ90gspwrnDA41XyMI8Jjme6dD08MvSnmTB1gk8430rlGP0kklDYXxR+aFDJiGQ+3zfgDDLAldcJNVYtDpA1Yu1EY0dpdAn6AwUQxNBgIWlHunhbvdbRE/Sw66NmtHD4HHBE9li9S+ICE5fDN3FzSpo4y7FKoA3t5V9yi5Z4x0YZKBmCDlJC5V8Ym40AgAA') format('woff2'), + url('iconfont.woff?t=1567826173562') format('woff'), + url('iconfont.ttf?t=1567826173562') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */ + url('iconfont.svg?t=1567826173562#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; +} + +.iconduojicaidan:before { + content: "\e608"; +} + +.icondaohangzhankai:before { + content: "\e609"; +} + +.icondaohangzhedie:before { + content: "\e60a"; +} + +.iconxiangshangjiantou:before { + content: "\e60b"; +} + +.iconxiangzuojiantou:before { + content: "\e60c"; +} + +.iconxiangyoujiantou:before { + content: "\e60d"; +} + +.iconguanbianniu:before { + content: "\e60e"; +} + +.iconshujushangchuan:before { + content: "\e60f"; +} + +.iconxitongjiankong:before { + content: "\e610"; +} + +.iconyoujianguanli:before { + content: "\e611"; +} + +.iconxiaoping:before { + content: "\e612"; +} + +.iconrenyuanguanli:before { + content: "\e613"; +} + +.iconxiangxiala:before { + content: "\e614"; +} + +.iconexceldaorudaochu:before { + content: "\e615"; +} + +.iconxiangxiajiantou:before { + content: "\e616"; +} + +.iconshouye:before { + content: "\e617"; +} + +.iconxitongshezhi:before { + content: "\e618"; +} + +.iconxiaoxi:before { + content: "\e619"; +} + +.iconquanping:before { + content: "\e61a"; +} + +.iconzujian:before { + content: "\e61b"; +} + +.iconnews:before { + content: "\e61e"; +} + +.icondingshirenwu:before { + content: "\e622"; +} + +.icondongtaijiazai:before { + content: "\e623"; +} + +.iconjiekouwendang:before { + content: "\e624"; +} + diff --git a/smart_admin_v1/smart-admin-web/src/assets/icons/iconfont.eot b/smart_admin_v1/smart-admin-web/src/assets/icons/iconfont.eot new file mode 100644 index 00000000..cf0b3fbd Binary files /dev/null and b/smart_admin_v1/smart-admin-web/src/assets/icons/iconfont.eot differ diff --git a/smart_admin_v1/smart-admin-web/src/assets/icons/iconfont.js b/smart_admin_v1/smart-admin-web/src/assets/icons/iconfont.js new file mode 100644 index 00000000..6a3315a1 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/assets/icons/iconfont.js @@ -0,0 +1 @@ +!function(e){var c,t='',h=(c=document.getElementsByTagName("script"))[c.length-1].getAttribute("data-injectcss");if(h&&!e.__iconfont__svg__cssinject__){e.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(c){console&&console.log(c)}}!function(c){if(document.addEventListener)if(~["complete","loaded","interactive"].indexOf(document.readyState))setTimeout(c,0);else{var h=function(){document.removeEventListener("DOMContentLoaded",h,!1),c()};document.addEventListener("DOMContentLoaded",h,!1)}else document.attachEvent&&(a=c,o=e.document,l=!1,(i=function(){try{o.documentElement.doScroll("left")}catch(c){return void setTimeout(i,50)}t()})(),o.onreadystatechange=function(){"complete"==o.readyState&&(o.onreadystatechange=null,t())});function t(){l||(l=!0,a())}var a,o,l,i}(function(){var c,h;(c=document.createElement("div")).innerHTML=t,t=null,(h=c.getElementsByTagName("svg")[0])&&(h.setAttribute("aria-hidden","true"),h.style.position="absolute",h.style.width=0,h.style.height=0,h.style.overflow="hidden",function(c,h){h.firstChild?function(c,h){h.parentNode.insertBefore(c,h)}(c,h.firstChild):h.appendChild(c)}(h,document.body))})}(window); \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-web/src/assets/icons/iconfont.svg b/smart_admin_v1/smart-admin-web/src/assets/icons/iconfont.svg new file mode 100644 index 00000000..a349f5e2 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/assets/icons/iconfont.svg @@ -0,0 +1,98 @@ + + + + + +Created by iconfont + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/smart_admin_v1/smart-admin-web/src/assets/icons/iconfont.ttf b/smart_admin_v1/smart-admin-web/src/assets/icons/iconfont.ttf new file mode 100644 index 00000000..69587d9e Binary files /dev/null and b/smart_admin_v1/smart-admin-web/src/assets/icons/iconfont.ttf differ diff --git a/smart_admin_v1/smart-admin-web/src/assets/icons/iconfont.woff b/smart_admin_v1/smart-admin-web/src/assets/icons/iconfont.woff new file mode 100644 index 00000000..fc0da088 Binary files /dev/null and b/smart_admin_v1/smart-admin-web/src/assets/icons/iconfont.woff differ diff --git a/smart_admin_v1/smart-admin-web/src/assets/icons/iconfont.woff2 b/smart_admin_v1/smart-admin-web/src/assets/icons/iconfont.woff2 new file mode 100644 index 00000000..89c0d09e Binary files /dev/null and b/smart_admin_v1/smart-admin-web/src/assets/icons/iconfont.woff2 differ diff --git a/smart_admin_v1/smart-admin-web/src/assets/images/default_icon.png b/smart_admin_v1/smart-admin-web/src/assets/images/default_icon.png new file mode 100644 index 00000000..1e0872fd Binary files /dev/null and b/smart_admin_v1/smart-admin-web/src/assets/images/default_icon.png differ diff --git a/smart_admin_v1/smart-admin-web/src/assets/images/error-page/error-401.svg b/smart_admin_v1/smart-admin-web/src/assets/images/error-page/error-401.svg new file mode 100644 index 00000000..19e2f9fa --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/assets/images/error-page/error-401.svg @@ -0,0 +1 @@ +tasting \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-web/src/assets/images/error-page/error-404.svg b/smart_admin_v1/smart-admin-web/src/assets/images/error-page/error-404.svg new file mode 100644 index 00000000..77d97f71 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/assets/images/error-page/error-404.svg @@ -0,0 +1 @@ +drone_delivery \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-web/src/assets/images/error-page/error-500.svg b/smart_admin_v1/smart-admin-web/src/assets/images/error-page/error-500.svg new file mode 100644 index 00000000..ef72fd32 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/assets/images/error-page/error-500.svg @@ -0,0 +1 @@ +co-working \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-web/src/assets/images/icon-qr-qq-wechat.png b/smart_admin_v1/smart-admin-web/src/assets/images/icon-qr-qq-wechat.png new file mode 100644 index 00000000..c5f6b185 Binary files /dev/null and b/smart_admin_v1/smart-admin-web/src/assets/images/icon-qr-qq-wechat.png differ diff --git a/smart_admin_v1/smart-admin-web/src/assets/images/icon-social-bilibili.svg b/smart_admin_v1/smart-admin-web/src/assets/images/icon-social-bilibili.svg new file mode 100644 index 00000000..d655a329 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/assets/images/icon-social-bilibili.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-web/src/assets/images/icon-social-juejin.svg b/smart_admin_v1/smart-admin-web/src/assets/images/icon-social-juejin.svg new file mode 100644 index 00000000..c0ad2aeb --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/assets/images/icon-social-juejin.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-web/src/assets/images/icon-social-twitter.svg b/smart_admin_v1/smart-admin-web/src/assets/images/icon-social-twitter.svg new file mode 100644 index 00000000..cef3ec09 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/assets/images/icon-social-twitter.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-web/src/assets/images/icon-social-zhihu.svg b/smart_admin_v1/smart-admin-web/src/assets/images/icon-social-zhihu.svg new file mode 100644 index 00000000..3a82ca82 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/assets/images/icon-social-zhihu.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-web/src/assets/images/login-alipay.png b/smart_admin_v1/smart-admin-web/src/assets/images/login-alipay.png new file mode 100644 index 00000000..7d9f0306 Binary files /dev/null and b/smart_admin_v1/smart-admin-web/src/assets/images/login-alipay.png differ diff --git a/smart_admin_v1/smart-admin-web/src/assets/images/login-bg.jpg b/smart_admin_v1/smart-admin-web/src/assets/images/login-bg.jpg new file mode 100644 index 00000000..04c27b4f Binary files /dev/null and b/smart_admin_v1/smart-admin-web/src/assets/images/login-bg.jpg differ diff --git a/smart_admin_v1/smart-admin-web/src/assets/images/login-logo.png b/smart_admin_v1/smart-admin-web/src/assets/images/login-logo.png new file mode 100644 index 00000000..61765e6d Binary files /dev/null and b/smart_admin_v1/smart-admin-web/src/assets/images/login-logo.png differ diff --git a/smart_admin_v1/smart-admin-web/src/assets/images/login-sina.png b/smart_admin_v1/smart-admin-web/src/assets/images/login-sina.png new file mode 100644 index 00000000..950619fd Binary files /dev/null and b/smart_admin_v1/smart-admin-web/src/assets/images/login-sina.png differ diff --git a/smart_admin_v1/smart-admin-web/src/assets/images/login-taobao.png b/smart_admin_v1/smart-admin-web/src/assets/images/login-taobao.png new file mode 100644 index 00000000..ecaa608a Binary files /dev/null and b/smart_admin_v1/smart-admin-web/src/assets/images/login-taobao.png differ diff --git a/smart_admin_v1/smart-admin-web/src/assets/images/login_desc_bg.png b/smart_admin_v1/smart-admin-web/src/assets/images/login_desc_bg.png new file mode 100644 index 00000000..70d8d62f Binary files /dev/null and b/smart_admin_v1/smart-admin-web/src/assets/images/login_desc_bg.png differ diff --git a/smart_admin_v1/smart-admin-web/src/assets/images/login_logo.png b/smart_admin_v1/smart-admin-web/src/assets/images/login_logo.png new file mode 100644 index 00000000..2955b838 Binary files /dev/null and b/smart_admin_v1/smart-admin-web/src/assets/images/login_logo.png differ diff --git a/smart-admin-web/javascript-ant-design-vue3/src/assets/images/logo/logo-min.png b/smart_admin_v1/smart-admin-web/src/assets/images/logo-min.png similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/assets/images/logo/logo-min.png rename to smart_admin_v1/smart-admin-web/src/assets/images/logo-min.png diff --git a/smart_admin_v1/smart-admin-web/src/assets/images/logo.png b/smart_admin_v1/smart-admin-web/src/assets/images/logo.png new file mode 100644 index 00000000..829056cc Binary files /dev/null and b/smart_admin_v1/smart-admin-web/src/assets/images/logo.png differ diff --git a/smart_admin_v1/smart-admin-web/src/assets/images/logo1.png b/smart_admin_v1/smart-admin-web/src/assets/images/logo1.png new file mode 100644 index 00000000..f338302e Binary files /dev/null and b/smart_admin_v1/smart-admin-web/src/assets/images/logo1.png differ diff --git a/smart_admin_v1/smart-admin-web/src/assets/images/message.png b/smart_admin_v1/smart-admin-web/src/assets/images/message.png new file mode 100644 index 00000000..b713953e Binary files /dev/null and b/smart_admin_v1/smart-admin-web/src/assets/images/message.png differ diff --git a/smart_admin_v1/smart-admin-web/src/assets/images/shadow.png b/smart_admin_v1/smart-admin-web/src/assets/images/shadow.png new file mode 100644 index 00000000..79cc097f Binary files /dev/null and b/smart_admin_v1/smart-admin-web/src/assets/images/shadow.png differ diff --git a/smart_admin_v1/smart-admin-web/src/assets/images/slider/sub_slider_active.png b/smart_admin_v1/smart-admin-web/src/assets/images/slider/sub_slider_active.png new file mode 100644 index 00000000..bc2ec9aa Binary files /dev/null and b/smart_admin_v1/smart-admin-web/src/assets/images/slider/sub_slider_active.png differ diff --git a/smart_admin_v1/smart-admin-web/src/assets/images/slider/sub_slider_default.png b/smart_admin_v1/smart-admin-web/src/assets/images/slider/sub_slider_default.png new file mode 100644 index 00000000..67a4f279 Binary files /dev/null and b/smart_admin_v1/smart-admin-web/src/assets/images/slider/sub_slider_default.png differ diff --git a/smart_admin_v1/smart-admin-web/src/assets/style/lib/animate.css b/smart_admin_v1/smart-admin-web/src/assets/style/lib/animate.css new file mode 100644 index 00000000..6c72f594 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/assets/style/lib/animate.css @@ -0,0 +1,3625 @@ +@charset "UTF-8"; + +/*! + * animate.css -https://daneden.github.io/animate.css/ + * Version - 3.7.2 + * Licensed under the MIT license - http://opensource.org/licenses/MIT + * + * Copyright (c) 2019 Daniel Eden + */ + +@-webkit-keyframes bounce { + from, + 20%, + 53%, + 80%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + 40%, + 43% { + -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + -webkit-transform: translate3d(0, -30px, 0); + transform: translate3d(0, -30px, 0); + } + + 70% { + -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + -webkit-transform: translate3d(0, -15px, 0); + transform: translate3d(0, -15px, 0); + } + + 90% { + -webkit-transform: translate3d(0, -4px, 0); + transform: translate3d(0, -4px, 0); + } +} + +@keyframes bounce { + from, + 20%, + 53%, + 80%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + 40%, + 43% { + -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + -webkit-transform: translate3d(0, -30px, 0); + transform: translate3d(0, -30px, 0); + } + + 70% { + -webkit-animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); + -webkit-transform: translate3d(0, -15px, 0); + transform: translate3d(0, -15px, 0); + } + + 90% { + -webkit-transform: translate3d(0, -4px, 0); + transform: translate3d(0, -4px, 0); + } +} + +.bounce { + -webkit-animation-name: bounce; + animation-name: bounce; + -webkit-transform-origin: center bottom; + transform-origin: center bottom; +} + +@-webkit-keyframes flash { + from, + 50%, + to { + opacity: 1; + } + + 25%, + 75% { + opacity: 0; + } +} + +@keyframes flash { + from, + 50%, + to { + opacity: 1; + } + + 25%, + 75% { + opacity: 0; + } +} + +.flash { + -webkit-animation-name: flash; + animation-name: flash; +} + +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ + +@-webkit-keyframes pulse { + from { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + + 50% { + -webkit-transform: scale3d(1.05, 1.05, 1.05); + transform: scale3d(1.05, 1.05, 1.05); + } + + to { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +@keyframes pulse { + from { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + + 50% { + -webkit-transform: scale3d(1.05, 1.05, 1.05); + transform: scale3d(1.05, 1.05, 1.05); + } + + to { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +.pulse { + -webkit-animation-name: pulse; + animation-name: pulse; +} + +@-webkit-keyframes rubberBand { + from { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + + 30% { + -webkit-transform: scale3d(1.25, 0.75, 1); + transform: scale3d(1.25, 0.75, 1); + } + + 40% { + -webkit-transform: scale3d(0.75, 1.25, 1); + transform: scale3d(0.75, 1.25, 1); + } + + 50% { + -webkit-transform: scale3d(1.15, 0.85, 1); + transform: scale3d(1.15, 0.85, 1); + } + + 65% { + -webkit-transform: scale3d(0.95, 1.05, 1); + transform: scale3d(0.95, 1.05, 1); + } + + 75% { + -webkit-transform: scale3d(1.05, 0.95, 1); + transform: scale3d(1.05, 0.95, 1); + } + + to { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +@keyframes rubberBand { + from { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + + 30% { + -webkit-transform: scale3d(1.25, 0.75, 1); + transform: scale3d(1.25, 0.75, 1); + } + + 40% { + -webkit-transform: scale3d(0.75, 1.25, 1); + transform: scale3d(0.75, 1.25, 1); + } + + 50% { + -webkit-transform: scale3d(1.15, 0.85, 1); + transform: scale3d(1.15, 0.85, 1); + } + + 65% { + -webkit-transform: scale3d(0.95, 1.05, 1); + transform: scale3d(0.95, 1.05, 1); + } + + 75% { + -webkit-transform: scale3d(1.05, 0.95, 1); + transform: scale3d(1.05, 0.95, 1); + } + + to { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +.rubberBand { + -webkit-animation-name: rubberBand; + animation-name: rubberBand; +} + +@-webkit-keyframes shake { + from, + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + 10%, + 30%, + 50%, + 70%, + 90% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); + } + + 20%, + 40%, + 60%, + 80% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); + } +} + +@keyframes shake { + from, + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + 10%, + 30%, + 50%, + 70%, + 90% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); + } + + 20%, + 40%, + 60%, + 80% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); + } +} + +.shake { + -webkit-animation-name: shake; + animation-name: shake; +} + +@-webkit-keyframes headShake { + 0% { + -webkit-transform: translateX(0); + transform: translateX(0); + } + + 6.5% { + -webkit-transform: translateX(-6px) rotateY(-9deg); + transform: translateX(-6px) rotateY(-9deg); + } + + 18.5% { + -webkit-transform: translateX(5px) rotateY(7deg); + transform: translateX(5px) rotateY(7deg); + } + + 31.5% { + -webkit-transform: translateX(-3px) rotateY(-5deg); + transform: translateX(-3px) rotateY(-5deg); + } + + 43.5% { + -webkit-transform: translateX(2px) rotateY(3deg); + transform: translateX(2px) rotateY(3deg); + } + + 50% { + -webkit-transform: translateX(0); + transform: translateX(0); + } +} + +@keyframes headShake { + 0% { + -webkit-transform: translateX(0); + transform: translateX(0); + } + + 6.5% { + -webkit-transform: translateX(-6px) rotateY(-9deg); + transform: translateX(-6px) rotateY(-9deg); + } + + 18.5% { + -webkit-transform: translateX(5px) rotateY(7deg); + transform: translateX(5px) rotateY(7deg); + } + + 31.5% { + -webkit-transform: translateX(-3px) rotateY(-5deg); + transform: translateX(-3px) rotateY(-5deg); + } + + 43.5% { + -webkit-transform: translateX(2px) rotateY(3deg); + transform: translateX(2px) rotateY(3deg); + } + + 50% { + -webkit-transform: translateX(0); + transform: translateX(0); + } +} + +.headShake { + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + -webkit-animation-name: headShake; + animation-name: headShake; +} + +@-webkit-keyframes swing { + 20% { + -webkit-transform: rotate3d(0, 0, 1, 15deg); + transform: rotate3d(0, 0, 1, 15deg); + } + + 40% { + -webkit-transform: rotate3d(0, 0, 1, -10deg); + transform: rotate3d(0, 0, 1, -10deg); + } + + 60% { + -webkit-transform: rotate3d(0, 0, 1, 5deg); + transform: rotate3d(0, 0, 1, 5deg); + } + + 80% { + -webkit-transform: rotate3d(0, 0, 1, -5deg); + transform: rotate3d(0, 0, 1, -5deg); + } + + to { + -webkit-transform: rotate3d(0, 0, 1, 0deg); + transform: rotate3d(0, 0, 1, 0deg); + } +} + +@keyframes swing { + 20% { + -webkit-transform: rotate3d(0, 0, 1, 15deg); + transform: rotate3d(0, 0, 1, 15deg); + } + + 40% { + -webkit-transform: rotate3d(0, 0, 1, -10deg); + transform: rotate3d(0, 0, 1, -10deg); + } + + 60% { + -webkit-transform: rotate3d(0, 0, 1, 5deg); + transform: rotate3d(0, 0, 1, 5deg); + } + + 80% { + -webkit-transform: rotate3d(0, 0, 1, -5deg); + transform: rotate3d(0, 0, 1, -5deg); + } + + to { + -webkit-transform: rotate3d(0, 0, 1, 0deg); + transform: rotate3d(0, 0, 1, 0deg); + } +} + +.swing { + -webkit-transform-origin: top center; + transform-origin: top center; + -webkit-animation-name: swing; + animation-name: swing; +} + +@-webkit-keyframes tada { + from { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + + 10%, + 20% { + -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); + transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); + } + + 30%, + 50%, + 70%, + 90% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); + } + + 40%, + 60%, + 80% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); + } + + to { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +@keyframes tada { + from { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } + + 10%, + 20% { + -webkit-transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); + transform: scale3d(0.9, 0.9, 0.9) rotate3d(0, 0, 1, -3deg); + } + + 30%, + 50%, + 70%, + 90% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, 3deg); + } + + 40%, + 60%, + 80% { + -webkit-transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); + transform: scale3d(1.1, 1.1, 1.1) rotate3d(0, 0, 1, -3deg); + } + + to { + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +.tada { + -webkit-animation-name: tada; + animation-name: tada; +} + +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ + +@-webkit-keyframes wobble { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + 15% { + -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); + transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); + } + + 30% { + -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); + transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); + } + + 45% { + -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); + transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); + } + + 60% { + -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); + transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); + } + + 75% { + -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); + transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes wobble { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + 15% { + -webkit-transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); + transform: translate3d(-25%, 0, 0) rotate3d(0, 0, 1, -5deg); + } + + 30% { + -webkit-transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); + transform: translate3d(20%, 0, 0) rotate3d(0, 0, 1, 3deg); + } + + 45% { + -webkit-transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); + transform: translate3d(-15%, 0, 0) rotate3d(0, 0, 1, -3deg); + } + + 60% { + -webkit-transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); + transform: translate3d(10%, 0, 0) rotate3d(0, 0, 1, 2deg); + } + + 75% { + -webkit-transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); + transform: translate3d(-5%, 0, 0) rotate3d(0, 0, 1, -1deg); + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.wobble { + -webkit-animation-name: wobble; + animation-name: wobble; +} + +@-webkit-keyframes jello { + from, + 11.1%, + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + 22.2% { + -webkit-transform: skewX(-12.5deg) skewY(-12.5deg); + transform: skewX(-12.5deg) skewY(-12.5deg); + } + + 33.3% { + -webkit-transform: skewX(6.25deg) skewY(6.25deg); + transform: skewX(6.25deg) skewY(6.25deg); + } + + 44.4% { + -webkit-transform: skewX(-3.125deg) skewY(-3.125deg); + transform: skewX(-3.125deg) skewY(-3.125deg); + } + + 55.5% { + -webkit-transform: skewX(1.5625deg) skewY(1.5625deg); + transform: skewX(1.5625deg) skewY(1.5625deg); + } + + 66.6% { + -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg); + transform: skewX(-0.78125deg) skewY(-0.78125deg); + } + + 77.7% { + -webkit-transform: skewX(0.390625deg) skewY(0.390625deg); + transform: skewX(0.390625deg) skewY(0.390625deg); + } + + 88.8% { + -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg); + transform: skewX(-0.1953125deg) skewY(-0.1953125deg); + } +} + +@keyframes jello { + from, + 11.1%, + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + 22.2% { + -webkit-transform: skewX(-12.5deg) skewY(-12.5deg); + transform: skewX(-12.5deg) skewY(-12.5deg); + } + + 33.3% { + -webkit-transform: skewX(6.25deg) skewY(6.25deg); + transform: skewX(6.25deg) skewY(6.25deg); + } + + 44.4% { + -webkit-transform: skewX(-3.125deg) skewY(-3.125deg); + transform: skewX(-3.125deg) skewY(-3.125deg); + } + + 55.5% { + -webkit-transform: skewX(1.5625deg) skewY(1.5625deg); + transform: skewX(1.5625deg) skewY(1.5625deg); + } + + 66.6% { + -webkit-transform: skewX(-0.78125deg) skewY(-0.78125deg); + transform: skewX(-0.78125deg) skewY(-0.78125deg); + } + + 77.7% { + -webkit-transform: skewX(0.390625deg) skewY(0.390625deg); + transform: skewX(0.390625deg) skewY(0.390625deg); + } + + 88.8% { + -webkit-transform: skewX(-0.1953125deg) skewY(-0.1953125deg); + transform: skewX(-0.1953125deg) skewY(-0.1953125deg); + } +} + +.jello { + -webkit-animation-name: jello; + animation-name: jello; + -webkit-transform-origin: center; + transform-origin: center; +} + +@-webkit-keyframes heartBeat { + 0% { + -webkit-transform: scale(1); + transform: scale(1); + } + + 14% { + -webkit-transform: scale(1.3); + transform: scale(1.3); + } + + 28% { + -webkit-transform: scale(1); + transform: scale(1); + } + + 42% { + -webkit-transform: scale(1.3); + transform: scale(1.3); + } + + 70% { + -webkit-transform: scale(1); + transform: scale(1); + } +} + +@keyframes heartBeat { + 0% { + -webkit-transform: scale(1); + transform: scale(1); + } + + 14% { + -webkit-transform: scale(1.3); + transform: scale(1.3); + } + + 28% { + -webkit-transform: scale(1); + transform: scale(1); + } + + 42% { + -webkit-transform: scale(1.3); + transform: scale(1.3); + } + + 70% { + -webkit-transform: scale(1); + transform: scale(1); + } +} + +.heartBeat { + -webkit-animation-name: heartBeat; + animation-name: heartBeat; + -webkit-animation-duration: 1.3s; + animation-duration: 1.3s; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; +} + +@-webkit-keyframes bounceIn { + from, + 20%, + 40%, + 60%, + 80%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + } + + 0% { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); + } + + 20% { + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); + } + + 40% { + -webkit-transform: scale3d(0.9, 0.9, 0.9); + transform: scale3d(0.9, 0.9, 0.9); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(1.03, 1.03, 1.03); + transform: scale3d(1.03, 1.03, 1.03); + } + + 80% { + -webkit-transform: scale3d(0.97, 0.97, 0.97); + transform: scale3d(0.97, 0.97, 0.97); + } + + to { + opacity: 1; + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +@keyframes bounceIn { + from, + 20%, + 40%, + 60%, + 80%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + } + + 0% { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); + } + + 20% { + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); + } + + 40% { + -webkit-transform: scale3d(0.9, 0.9, 0.9); + transform: scale3d(0.9, 0.9, 0.9); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(1.03, 1.03, 1.03); + transform: scale3d(1.03, 1.03, 1.03); + } + + 80% { + -webkit-transform: scale3d(0.97, 0.97, 0.97); + transform: scale3d(0.97, 0.97, 0.97); + } + + to { + opacity: 1; + -webkit-transform: scale3d(1, 1, 1); + transform: scale3d(1, 1, 1); + } +} + +.bounceIn { + -webkit-animation-duration: 0.75s; + animation-duration: 0.75s; + -webkit-animation-name: bounceIn; + animation-name: bounceIn; +} + +@-webkit-keyframes bounceInDown { + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + } + + 0% { + opacity: 0; + -webkit-transform: translate3d(0, -3000px, 0); + transform: translate3d(0, -3000px, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(0, 25px, 0); + transform: translate3d(0, 25px, 0); + } + + 75% { + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); + } + + 90% { + -webkit-transform: translate3d(0, 5px, 0); + transform: translate3d(0, 5px, 0); + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes bounceInDown { + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + } + + 0% { + opacity: 0; + -webkit-transform: translate3d(0, -3000px, 0); + transform: translate3d(0, -3000px, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(0, 25px, 0); + transform: translate3d(0, 25px, 0); + } + + 75% { + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); + } + + 90% { + -webkit-transform: translate3d(0, 5px, 0); + transform: translate3d(0, 5px, 0); + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.bounceInDown { + -webkit-animation-name: bounceInDown; + animation-name: bounceInDown; +} + +@-webkit-keyframes bounceInLeft { + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + } + + 0% { + opacity: 0; + -webkit-transform: translate3d(-3000px, 0, 0); + transform: translate3d(-3000px, 0, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(25px, 0, 0); + transform: translate3d(25px, 0, 0); + } + + 75% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); + } + + 90% { + -webkit-transform: translate3d(5px, 0, 0); + transform: translate3d(5px, 0, 0); + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes bounceInLeft { + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + } + + 0% { + opacity: 0; + -webkit-transform: translate3d(-3000px, 0, 0); + transform: translate3d(-3000px, 0, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(25px, 0, 0); + transform: translate3d(25px, 0, 0); + } + + 75% { + -webkit-transform: translate3d(-10px, 0, 0); + transform: translate3d(-10px, 0, 0); + } + + 90% { + -webkit-transform: translate3d(5px, 0, 0); + transform: translate3d(5px, 0, 0); + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.bounceInLeft { + -webkit-animation-name: bounceInLeft; + animation-name: bounceInLeft; +} + +@-webkit-keyframes bounceInRight { + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + } + + from { + opacity: 0; + -webkit-transform: translate3d(3000px, 0, 0); + transform: translate3d(3000px, 0, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(-25px, 0, 0); + transform: translate3d(-25px, 0, 0); + } + + 75% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); + } + + 90% { + -webkit-transform: translate3d(-5px, 0, 0); + transform: translate3d(-5px, 0, 0); + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes bounceInRight { + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + } + + from { + opacity: 0; + -webkit-transform: translate3d(3000px, 0, 0); + transform: translate3d(3000px, 0, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(-25px, 0, 0); + transform: translate3d(-25px, 0, 0); + } + + 75% { + -webkit-transform: translate3d(10px, 0, 0); + transform: translate3d(10px, 0, 0); + } + + 90% { + -webkit-transform: translate3d(-5px, 0, 0); + transform: translate3d(-5px, 0, 0); + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.bounceInRight { + -webkit-animation-name: bounceInRight; + animation-name: bounceInRight; +} + +@-webkit-keyframes bounceInUp { + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + } + + from { + opacity: 0; + -webkit-transform: translate3d(0, 3000px, 0); + transform: translate3d(0, 3000px, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + } + + 75% { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); + } + + 90% { + -webkit-transform: translate3d(0, -5px, 0); + transform: translate3d(0, -5px, 0); + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes bounceInUp { + from, + 60%, + 75%, + 90%, + to { + -webkit-animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + animation-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); + } + + from { + opacity: 0; + -webkit-transform: translate3d(0, 3000px, 0); + transform: translate3d(0, 3000px, 0); + } + + 60% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + } + + 75% { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); + } + + 90% { + -webkit-transform: translate3d(0, -5px, 0); + transform: translate3d(0, -5px, 0); + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.bounceInUp { + -webkit-animation-name: bounceInUp; + animation-name: bounceInUp; +} + +@-webkit-keyframes bounceOut { + 20% { + -webkit-transform: scale3d(0.9, 0.9, 0.9); + transform: scale3d(0.9, 0.9, 0.9); + } + + 50%, + 55% { + opacity: 1; + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); + } + + to { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); + } +} + +@keyframes bounceOut { + 20% { + -webkit-transform: scale3d(0.9, 0.9, 0.9); + transform: scale3d(0.9, 0.9, 0.9); + } + + 50%, + 55% { + opacity: 1; + -webkit-transform: scale3d(1.1, 1.1, 1.1); + transform: scale3d(1.1, 1.1, 1.1); + } + + to { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); + } +} + +.bounceOut { + -webkit-animation-duration: 0.75s; + animation-duration: 0.75s; + -webkit-animation-name: bounceOut; + animation-name: bounceOut; +} + +@-webkit-keyframes bounceOutDown { + 20% { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); + } + + 40%, + 45% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } +} + +@keyframes bounceOutDown { + 20% { + -webkit-transform: translate3d(0, 10px, 0); + transform: translate3d(0, 10px, 0); + } + + 40%, + 45% { + opacity: 1; + -webkit-transform: translate3d(0, -20px, 0); + transform: translate3d(0, -20px, 0); + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } +} + +.bounceOutDown { + -webkit-animation-name: bounceOutDown; + animation-name: bounceOutDown; +} + +@-webkit-keyframes bounceOutLeft { + 20% { + opacity: 1; + -webkit-transform: translate3d(20px, 0, 0); + transform: translate3d(20px, 0, 0); + } + + to { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } +} + +@keyframes bounceOutLeft { + 20% { + opacity: 1; + -webkit-transform: translate3d(20px, 0, 0); + transform: translate3d(20px, 0, 0); + } + + to { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } +} + +.bounceOutLeft { + -webkit-animation-name: bounceOutLeft; + animation-name: bounceOutLeft; +} + +@-webkit-keyframes bounceOutRight { + 20% { + opacity: 1; + -webkit-transform: translate3d(-20px, 0, 0); + transform: translate3d(-20px, 0, 0); + } + + to { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } +} + +@keyframes bounceOutRight { + 20% { + opacity: 1; + -webkit-transform: translate3d(-20px, 0, 0); + transform: translate3d(-20px, 0, 0); + } + + to { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } +} + +.bounceOutRight { + -webkit-animation-name: bounceOutRight; + animation-name: bounceOutRight; +} + +@-webkit-keyframes bounceOutUp { + 20% { + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); + } + + 40%, + 45% { + opacity: 1; + -webkit-transform: translate3d(0, 20px, 0); + transform: translate3d(0, 20px, 0); + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } +} + +@keyframes bounceOutUp { + 20% { + -webkit-transform: translate3d(0, -10px, 0); + transform: translate3d(0, -10px, 0); + } + + 40%, + 45% { + opacity: 1; + -webkit-transform: translate3d(0, 20px, 0); + transform: translate3d(0, 20px, 0); + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } +} + +.bounceOutUp { + -webkit-animation-name: bounceOutUp; + animation-name: bounceOutUp; +} + +@-webkit-keyframes fadeIn { + from { + opacity: 0; + } + + to { + opacity: 1; + } +} + +@keyframes fadeIn { + from { + opacity: 0; + } + + to { + opacity: 1; + } +} + +.fadeIn { + -webkit-animation-name: fadeIn; + animation-name: fadeIn; +} + +@-webkit-keyframes fadeInDown { + from { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes fadeInDown { + from { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.fadeInDown { + -webkit-animation-name: fadeInDown; + animation-name: fadeInDown; +} + +@-webkit-keyframes fadeInDownBig { + from { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes fadeInDownBig { + from { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.fadeInDownBig { + -webkit-animation-name: fadeInDownBig; + animation-name: fadeInDownBig; +} + +@-webkit-keyframes fadeInLeft { + from { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes fadeInLeft { + from { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.fadeInLeft { + -webkit-animation-name: fadeInLeft; + animation-name: fadeInLeft; +} + +@-webkit-keyframes fadeInLeftBig { + from { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes fadeInLeftBig { + from { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.fadeInLeftBig { + -webkit-animation-name: fadeInLeftBig; + animation-name: fadeInLeftBig; +} + +@-webkit-keyframes fadeInRight { + from { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes fadeInRight { + from { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.fadeInRight { + -webkit-animation-name: fadeInRight; + animation-name: fadeInRight; +} + +@-webkit-keyframes fadeInRightBig { + from { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes fadeInRightBig { + from { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.fadeInRightBig { + -webkit-animation-name: fadeInRightBig; + animation-name: fadeInRightBig; +} + +@-webkit-keyframes fadeInUp { + from { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes fadeInUp { + from { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.fadeInUp { + -webkit-animation-name: fadeInUp; + animation-name: fadeInUp; +} + +@-webkit-keyframes fadeInUpBig { + from { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes fadeInUpBig { + from { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.fadeInUpBig { + -webkit-animation-name: fadeInUpBig; + animation-name: fadeInUpBig; +} + +@-webkit-keyframes fadeOut { + from { + opacity: 1; + } + + to { + opacity: 0; + } +} + +@keyframes fadeOut { + from { + opacity: 1; + } + + to { + opacity: 0; + } +} + +.fadeOut { + -webkit-animation-name: fadeOut; + animation-name: fadeOut; +} + +@-webkit-keyframes fadeOutDown { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } +} + +@keyframes fadeOutDown { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } +} + +.fadeOutDown { + -webkit-animation-name: fadeOutDown; + animation-name: fadeOutDown; +} + +@-webkit-keyframes fadeOutDownBig { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } +} + +@keyframes fadeOutDownBig { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, 2000px, 0); + transform: translate3d(0, 2000px, 0); + } +} + +.fadeOutDownBig { + -webkit-animation-name: fadeOutDownBig; + animation-name: fadeOutDownBig; +} + +@-webkit-keyframes fadeOutLeft { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } +} + +@keyframes fadeOutLeft { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } +} + +.fadeOutLeft { + -webkit-animation-name: fadeOutLeft; + animation-name: fadeOutLeft; +} + +@-webkit-keyframes fadeOutLeftBig { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } +} + +@keyframes fadeOutLeftBig { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(-2000px, 0, 0); + transform: translate3d(-2000px, 0, 0); + } +} + +.fadeOutLeftBig { + -webkit-animation-name: fadeOutLeftBig; + animation-name: fadeOutLeftBig; +} + +@-webkit-keyframes fadeOutRight { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } +} + +@keyframes fadeOutRight { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } +} + +.fadeOutRight { + -webkit-animation-name: fadeOutRight; + animation-name: fadeOutRight; +} + +@-webkit-keyframes fadeOutRightBig { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } +} + +@keyframes fadeOutRightBig { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(2000px, 0, 0); + transform: translate3d(2000px, 0, 0); + } +} + +.fadeOutRightBig { + -webkit-animation-name: fadeOutRightBig; + animation-name: fadeOutRightBig; +} + +@-webkit-keyframes fadeOutUp { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } +} + +@keyframes fadeOutUp { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } +} + +.fadeOutUp { + -webkit-animation-name: fadeOutUp; + animation-name: fadeOutUp; +} + +@-webkit-keyframes fadeOutUpBig { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } +} + +@keyframes fadeOutUpBig { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(0, -2000px, 0); + transform: translate3d(0, -2000px, 0); + } +} + +.fadeOutUpBig { + -webkit-animation-name: fadeOutUpBig; + animation-name: fadeOutUpBig; +} + +@-webkit-keyframes flip { + from { + -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) + rotate3d(0, 1, 0, -360deg); + transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, -360deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + } + + 40% { + -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px) + rotate3d(0, 1, 0, -190deg); + transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px) + rotate3d(0, 1, 0, -190deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + } + + 50% { + -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px) + rotate3d(0, 1, 0, -170deg); + transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px) + rotate3d(0, 1, 0, -170deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + 80% { + -webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0) + rotate3d(0, 1, 0, 0deg); + transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0) + rotate3d(0, 1, 0, 0deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + to { + -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) + rotate3d(0, 1, 0, 0deg); + transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } +} + +@keyframes flip { + from { + -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) + rotate3d(0, 1, 0, -360deg); + transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, -360deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + } + + 40% { + -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px) + rotate3d(0, 1, 0, -190deg); + transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px) + rotate3d(0, 1, 0, -190deg); + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; + } + + 50% { + -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px) + rotate3d(0, 1, 0, -170deg); + transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 150px) + rotate3d(0, 1, 0, -170deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + 80% { + -webkit-transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0) + rotate3d(0, 1, 0, 0deg); + transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translate3d(0, 0, 0) + rotate3d(0, 1, 0, 0deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + to { + -webkit-transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) + rotate3d(0, 1, 0, 0deg); + transform: perspective(400px) scale3d(1, 1, 1) translate3d(0, 0, 0) rotate3d(0, 1, 0, 0deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } +} + +.animated.flip { + -webkit-backface-visibility: visible; + backface-visibility: visible; + -webkit-animation-name: flip; + animation-name: flip; +} + +@-webkit-keyframes flipInX { + from { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + opacity: 0; + } + + 40% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + 60% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + opacity: 1; + } + + 80% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg); + transform: perspective(400px) rotate3d(1, 0, 0, -5deg); + } + + to { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } +} + +@keyframes flipInX { + from { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + opacity: 0; + } + + 40% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + 60% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + transform: perspective(400px) rotate3d(1, 0, 0, 10deg); + opacity: 1; + } + + 80% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -5deg); + transform: perspective(400px) rotate3d(1, 0, 0, -5deg); + } + + to { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } +} + +.flipInX { + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipInX; + animation-name: flipInX; +} + +@-webkit-keyframes flipInY { + from { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + opacity: 0; + } + + 40% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + 60% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + opacity: 1; + } + + 80% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg); + transform: perspective(400px) rotate3d(0, 1, 0, -5deg); + } + + to { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } +} + +@keyframes flipInY { + from { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + opacity: 0; + } + + 40% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + transform: perspective(400px) rotate3d(0, 1, 0, -20deg); + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; + } + + 60% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + transform: perspective(400px) rotate3d(0, 1, 0, 10deg); + opacity: 1; + } + + 80% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -5deg); + transform: perspective(400px) rotate3d(0, 1, 0, -5deg); + } + + to { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } +} + +.flipInY { + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipInY; + animation-name: flipInY; +} + +@-webkit-keyframes flipOutX { + from { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } + + 30% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + opacity: 1; + } + + to { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + opacity: 0; + } +} + +@keyframes flipOutX { + from { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } + + 30% { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + transform: perspective(400px) rotate3d(1, 0, 0, -20deg); + opacity: 1; + } + + to { + -webkit-transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + transform: perspective(400px) rotate3d(1, 0, 0, 90deg); + opacity: 0; + } +} + +.flipOutX { + -webkit-animation-duration: 0.75s; + animation-duration: 0.75s; + -webkit-animation-name: flipOutX; + animation-name: flipOutX; + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; +} + +@-webkit-keyframes flipOutY { + from { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } + + 30% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + opacity: 1; + } + + to { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + opacity: 0; + } +} + +@keyframes flipOutY { + from { + -webkit-transform: perspective(400px); + transform: perspective(400px); + } + + 30% { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + transform: perspective(400px) rotate3d(0, 1, 0, -15deg); + opacity: 1; + } + + to { + -webkit-transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + transform: perspective(400px) rotate3d(0, 1, 0, 90deg); + opacity: 0; + } +} + +.flipOutY { + -webkit-animation-duration: 0.75s; + animation-duration: 0.75s; + -webkit-backface-visibility: visible !important; + backface-visibility: visible !important; + -webkit-animation-name: flipOutY; + animation-name: flipOutY; +} + +@-webkit-keyframes lightSpeedIn { + from { + -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg); + transform: translate3d(100%, 0, 0) skewX(-30deg); + opacity: 0; + } + + 60% { + -webkit-transform: skewX(20deg); + transform: skewX(20deg); + opacity: 1; + } + + 80% { + -webkit-transform: skewX(-5deg); + transform: skewX(-5deg); + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes lightSpeedIn { + from { + -webkit-transform: translate3d(100%, 0, 0) skewX(-30deg); + transform: translate3d(100%, 0, 0) skewX(-30deg); + opacity: 0; + } + + 60% { + -webkit-transform: skewX(20deg); + transform: skewX(20deg); + opacity: 1; + } + + 80% { + -webkit-transform: skewX(-5deg); + transform: skewX(-5deg); + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.lightSpeedIn { + -webkit-animation-name: lightSpeedIn; + animation-name: lightSpeedIn; + -webkit-animation-timing-function: ease-out; + animation-timing-function: ease-out; +} + +@-webkit-keyframes lightSpeedOut { + from { + opacity: 1; + } + + to { + -webkit-transform: translate3d(100%, 0, 0) skewX(30deg); + transform: translate3d(100%, 0, 0) skewX(30deg); + opacity: 0; + } +} + +@keyframes lightSpeedOut { + from { + opacity: 1; + } + + to { + -webkit-transform: translate3d(100%, 0, 0) skewX(30deg); + transform: translate3d(100%, 0, 0) skewX(30deg); + opacity: 0; + } +} + +.lightSpeedOut { + -webkit-animation-name: lightSpeedOut; + animation-name: lightSpeedOut; + -webkit-animation-timing-function: ease-in; + animation-timing-function: ease-in; +} + +@-webkit-keyframes rotateIn { + from { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate3d(0, 0, 1, -200deg); + transform: rotate3d(0, 0, 1, -200deg); + opacity: 0; + } + + to { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} + +@keyframes rotateIn { + from { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate3d(0, 0, 1, -200deg); + transform: rotate3d(0, 0, 1, -200deg); + opacity: 0; + } + + to { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} + +.rotateIn { + -webkit-animation-name: rotateIn; + animation-name: rotateIn; +} + +@-webkit-keyframes rotateInDownLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } + + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} + +@keyframes rotateInDownLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } + + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} + +.rotateInDownLeft { + -webkit-animation-name: rotateInDownLeft; + animation-name: rotateInDownLeft; +} + +@-webkit-keyframes rotateInDownRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } + + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} + +@keyframes rotateInDownRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } + + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} + +.rotateInDownRight { + -webkit-animation-name: rotateInDownRight; + animation-name: rotateInDownRight; +} + +@-webkit-keyframes rotateInUpLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } + + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} + +@keyframes rotateInUpLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } + + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} + +.rotateInUpLeft { + -webkit-animation-name: rotateInUpLeft; + animation-name: rotateInUpLeft; +} + +@-webkit-keyframes rotateInUpRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, -90deg); + transform: rotate3d(0, 0, 1, -90deg); + opacity: 0; + } + + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} + +@keyframes rotateInUpRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, -90deg); + transform: rotate3d(0, 0, 1, -90deg); + opacity: 0; + } + + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + opacity: 1; + } +} + +.rotateInUpRight { + -webkit-animation-name: rotateInUpRight; + animation-name: rotateInUpRight; +} + +@-webkit-keyframes rotateOut { + from { + -webkit-transform-origin: center; + transform-origin: center; + opacity: 1; + } + + to { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate3d(0, 0, 1, 200deg); + transform: rotate3d(0, 0, 1, 200deg); + opacity: 0; + } +} + +@keyframes rotateOut { + from { + -webkit-transform-origin: center; + transform-origin: center; + opacity: 1; + } + + to { + -webkit-transform-origin: center; + transform-origin: center; + -webkit-transform: rotate3d(0, 0, 1, 200deg); + transform: rotate3d(0, 0, 1, 200deg); + opacity: 0; + } +} + +.rotateOut { + -webkit-animation-name: rotateOut; + animation-name: rotateOut; +} + +@-webkit-keyframes rotateOutDownLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1; + } + + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } +} + +@keyframes rotateOutDownLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1; + } + + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, 45deg); + transform: rotate3d(0, 0, 1, 45deg); + opacity: 0; + } +} + +.rotateOutDownLeft { + -webkit-animation-name: rotateOutDownLeft; + animation-name: rotateOutDownLeft; +} + +@-webkit-keyframes rotateOutDownRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1; + } + + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } +} + +@keyframes rotateOutDownRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1; + } + + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } +} + +.rotateOutDownRight { + -webkit-animation-name: rotateOutDownRight; + animation-name: rotateOutDownRight; +} + +@-webkit-keyframes rotateOutUpLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1; + } + + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } +} + +@keyframes rotateOutUpLeft { + from { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + opacity: 1; + } + + to { + -webkit-transform-origin: left bottom; + transform-origin: left bottom; + -webkit-transform: rotate3d(0, 0, 1, -45deg); + transform: rotate3d(0, 0, 1, -45deg); + opacity: 0; + } +} + +.rotateOutUpLeft { + -webkit-animation-name: rotateOutUpLeft; + animation-name: rotateOutUpLeft; +} + +@-webkit-keyframes rotateOutUpRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1; + } + + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, 90deg); + transform: rotate3d(0, 0, 1, 90deg); + opacity: 0; + } +} + +@keyframes rotateOutUpRight { + from { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + opacity: 1; + } + + to { + -webkit-transform-origin: right bottom; + transform-origin: right bottom; + -webkit-transform: rotate3d(0, 0, 1, 90deg); + transform: rotate3d(0, 0, 1, 90deg); + opacity: 0; + } +} + +.rotateOutUpRight { + -webkit-animation-name: rotateOutUpRight; + animation-name: rotateOutUpRight; +} + +@-webkit-keyframes hinge { + 0% { + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + } + + 20%, + 60% { + -webkit-transform: rotate3d(0, 0, 1, 80deg); + transform: rotate3d(0, 0, 1, 80deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + } + + 40%, + 80% { + -webkit-transform: rotate3d(0, 0, 1, 60deg); + transform: rotate3d(0, 0, 1, 60deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + opacity: 1; + } + + to { + -webkit-transform: translate3d(0, 700px, 0); + transform: translate3d(0, 700px, 0); + opacity: 0; + } +} + +@keyframes hinge { + 0% { + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + } + + 20%, + 60% { + -webkit-transform: rotate3d(0, 0, 1, 80deg); + transform: rotate3d(0, 0, 1, 80deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + } + + 40%, + 80% { + -webkit-transform: rotate3d(0, 0, 1, 60deg); + transform: rotate3d(0, 0, 1, 60deg); + -webkit-transform-origin: top left; + transform-origin: top left; + -webkit-animation-timing-function: ease-in-out; + animation-timing-function: ease-in-out; + opacity: 1; + } + + to { + -webkit-transform: translate3d(0, 700px, 0); + transform: translate3d(0, 700px, 0); + opacity: 0; + } +} + +.hinge { + -webkit-animation-duration: 2s; + animation-duration: 2s; + -webkit-animation-name: hinge; + animation-name: hinge; +} + +@-webkit-keyframes jackInTheBox { + from { + opacity: 0; + -webkit-transform: scale(0.1) rotate(30deg); + transform: scale(0.1) rotate(30deg); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + } + + 50% { + -webkit-transform: rotate(-10deg); + transform: rotate(-10deg); + } + + 70% { + -webkit-transform: rotate(3deg); + transform: rotate(3deg); + } + + to { + opacity: 1; + -webkit-transform: scale(1); + transform: scale(1); + } +} + +@keyframes jackInTheBox { + from { + opacity: 0; + -webkit-transform: scale(0.1) rotate(30deg); + transform: scale(0.1) rotate(30deg); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + } + + 50% { + -webkit-transform: rotate(-10deg); + transform: rotate(-10deg); + } + + 70% { + -webkit-transform: rotate(3deg); + transform: rotate(3deg); + } + + to { + opacity: 1; + -webkit-transform: scale(1); + transform: scale(1); + } +} + +.jackInTheBox { + -webkit-animation-name: jackInTheBox; + animation-name: jackInTheBox; +} + +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ + +@-webkit-keyframes rollIn { + from { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); + transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes rollIn { + from { + opacity: 0; + -webkit-transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); + transform: translate3d(-100%, 0, 0) rotate3d(0, 0, 1, -120deg); + } + + to { + opacity: 1; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.rollIn { + -webkit-animation-name: rollIn; + animation-name: rollIn; +} + +/* originally authored by Nick Pettit - https://github.com/nickpettit/glide */ + +@-webkit-keyframes rollOut { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); + transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); + } +} + +@keyframes rollOut { + from { + opacity: 1; + } + + to { + opacity: 0; + -webkit-transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); + transform: translate3d(100%, 0, 0) rotate3d(0, 0, 1, 120deg); + } +} + +.rollOut { + -webkit-animation-name: rollOut; + animation-name: rollOut; +} + +@-webkit-keyframes zoomIn { + from { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); + } + + 50% { + opacity: 1; + } +} + +@keyframes zoomIn { + from { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); + } + + 50% { + opacity: 1; + } +} + +.zoomIn { + -webkit-animation-name: zoomIn; + animation-name: zoomIn; +} + +@-webkit-keyframes zoomInDown { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} + +@keyframes zoomInDown { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} + +.zoomInDown { + -webkit-animation-name: zoomInDown; + animation-name: zoomInDown; +} + +@-webkit-keyframes zoomInLeft { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} + +@keyframes zoomInLeft { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} + +.zoomInLeft { + -webkit-animation-name: zoomInLeft; + animation-name: zoomInLeft; +} + +@-webkit-keyframes zoomInRight { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} + +@keyframes zoomInRight { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(-10px, 0, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} + +.zoomInRight { + -webkit-animation-name: zoomInRight; + animation-name: zoomInRight; +} + +@-webkit-keyframes zoomInUp { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} + +@keyframes zoomInUp { + from { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 1000px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + + 60% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} + +.zoomInUp { + -webkit-animation-name: zoomInUp; + animation-name: zoomInUp; +} + +@-webkit-keyframes zoomOut { + from { + opacity: 1; + } + + 50% { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); + } + + to { + opacity: 0; + } +} + +@keyframes zoomOut { + from { + opacity: 1; + } + + 50% { + opacity: 0; + -webkit-transform: scale3d(0.3, 0.3, 0.3); + transform: scale3d(0.3, 0.3, 0.3); + } + + to { + opacity: 0; + } +} + +.zoomOut { + -webkit-animation-name: zoomOut; + animation-name: zoomOut; +} + +@-webkit-keyframes zoomOutDown { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + + to { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} + +@keyframes zoomOutDown { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, -60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + + to { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, 2000px, 0); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} + +.zoomOutDown { + -webkit-animation-name: zoomOutDown; + animation-name: zoomOutDown; +} + +@-webkit-keyframes zoomOutLeft { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); + } + + to { + opacity: 0; + -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0); + transform: scale(0.1) translate3d(-2000px, 0, 0); + -webkit-transform-origin: left center; + transform-origin: left center; + } +} + +@keyframes zoomOutLeft { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(42px, 0, 0); + } + + to { + opacity: 0; + -webkit-transform: scale(0.1) translate3d(-2000px, 0, 0); + transform: scale(0.1) translate3d(-2000px, 0, 0); + -webkit-transform-origin: left center; + transform-origin: left center; + } +} + +.zoomOutLeft { + -webkit-animation-name: zoomOutLeft; + animation-name: zoomOutLeft; +} + +@-webkit-keyframes zoomOutRight { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); + } + + to { + opacity: 0; + -webkit-transform: scale(0.1) translate3d(2000px, 0, 0); + transform: scale(0.1) translate3d(2000px, 0, 0); + -webkit-transform-origin: right center; + transform-origin: right center; + } +} + +@keyframes zoomOutRight { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(-42px, 0, 0); + } + + to { + opacity: 0; + -webkit-transform: scale(0.1) translate3d(2000px, 0, 0); + transform: scale(0.1) translate3d(2000px, 0, 0); + -webkit-transform-origin: right center; + transform-origin: right center; + } +} + +.zoomOutRight { + -webkit-animation-name: zoomOutRight; + animation-name: zoomOutRight; +} + +@-webkit-keyframes zoomOutUp { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + + to { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} + +@keyframes zoomOutUp { + 40% { + opacity: 1; + -webkit-transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + transform: scale3d(0.475, 0.475, 0.475) translate3d(0, 60px, 0); + -webkit-animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19); + } + + to { + opacity: 0; + -webkit-transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0); + transform: scale3d(0.1, 0.1, 0.1) translate3d(0, -2000px, 0); + -webkit-transform-origin: center bottom; + transform-origin: center bottom; + -webkit-animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); + } +} + +.zoomOutUp { + -webkit-animation-name: zoomOutUp; + animation-name: zoomOutUp; +} + +@-webkit-keyframes slideInDown { + from { + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + visibility: visible; + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes slideInDown { + from { + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + visibility: visible; + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.slideInDown { + -webkit-animation-name: slideInDown; + animation-name: slideInDown; +} + +@-webkit-keyframes slideInLeft { + from { + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + visibility: visible; + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes slideInLeft { + from { + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + visibility: visible; + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.slideInLeft { + -webkit-animation-name: slideInLeft; + animation-name: slideInLeft; +} + +@-webkit-keyframes slideInRight { + from { + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + visibility: visible; + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes slideInRight { + from { + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + visibility: visible; + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.slideInRight { + -webkit-animation-name: slideInRight; + animation-name: slideInRight; +} + +@-webkit-keyframes slideInUp { + from { + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + visibility: visible; + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +@keyframes slideInUp { + from { + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + visibility: visible; + } + + to { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } +} + +.slideInUp { + -webkit-animation-name: slideInUp; + animation-name: slideInUp; +} + +@-webkit-keyframes slideOutDown { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + to { + visibility: hidden; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } +} + +@keyframes slideOutDown { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + to { + visibility: hidden; + -webkit-transform: translate3d(0, 100%, 0); + transform: translate3d(0, 100%, 0); + } +} + +.slideOutDown { + -webkit-animation-name: slideOutDown; + animation-name: slideOutDown; +} + +@-webkit-keyframes slideOutLeft { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + to { + visibility: hidden; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } +} + +@keyframes slideOutLeft { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + to { + visibility: hidden; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); + } +} + +.slideOutLeft { + -webkit-animation-name: slideOutLeft; + animation-name: slideOutLeft; +} + +@-webkit-keyframes slideOutRight { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + to { + visibility: hidden; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } +} + +@keyframes slideOutRight { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + to { + visibility: hidden; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); + } +} + +.slideOutRight { + -webkit-animation-name: slideOutRight; + animation-name: slideOutRight; +} + +@-webkit-keyframes slideOutUp { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + to { + visibility: hidden; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } +} + +@keyframes slideOutUp { + from { + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); + } + + to { + visibility: hidden; + -webkit-transform: translate3d(0, -100%, 0); + transform: translate3d(0, -100%, 0); + } +} + +.slideOutUp { + -webkit-animation-name: slideOutUp; + animation-name: slideOutUp; +} + +.animated { + -webkit-animation-duration: 1s; + animation-duration: 1s; + -webkit-animation-fill-mode: both; + animation-fill-mode: both; +} + +.animated.infinite { + -webkit-animation-iteration-count: infinite; + animation-iteration-count: infinite; +} + +.animated.delay-1s { + -webkit-animation-delay: 1s; + animation-delay: 1s; +} + +.animated.delay-2s { + -webkit-animation-delay: 2s; + animation-delay: 2s; +} + +.animated.delay-3s { + -webkit-animation-delay: 3s; + animation-delay: 3s; +} + +.animated.delay-4s { + -webkit-animation-delay: 4s; + animation-delay: 4s; +} + +.animated.delay-5s { + -webkit-animation-delay: 5s; + animation-delay: 5s; +} + +.animated.fast { + -webkit-animation-duration: 800ms; + animation-duration: 800ms; +} + +.animated.faster { + -webkit-animation-duration: 500ms; + animation-duration: 500ms; +} + +.animated.slow { + -webkit-animation-duration: 2s; + animation-duration: 2s; +} + +.animated.slower { + -webkit-animation-duration: 3s; + animation-duration: 3s; +} + +@media (print), (prefers-reduced-motion: reduce) { + .animated { + -webkit-animation-duration: 1ms !important; + animation-duration: 1ms !important; + -webkit-transition-duration: 1ms !important; + transition-duration: 1ms !important; + -webkit-animation-iteration-count: 1 !important; + animation-iteration-count: 1 !important; + } +} \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-web/src/components/active-plate/active-plate.vue b/smart_admin_v1/smart-admin-web/src/components/active-plate/active-plate.vue new file mode 100644 index 00000000..237e2e05 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/components/active-plate/active-plate.vue @@ -0,0 +1,67 @@ + + + + + diff --git a/smart_admin_v1/smart-admin-web/src/components/charts/bar.vue b/smart_admin_v1/smart-admin-web/src/components/charts/bar.vue new file mode 100644 index 00000000..49dcd500 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/components/charts/bar.vue @@ -0,0 +1,73 @@ + + + diff --git a/smart_admin_v1/smart-admin-web/src/components/charts/index.js b/smart_admin_v1/smart-admin-web/src/components/charts/index.js new file mode 100644 index 00000000..cd86f348 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/components/charts/index.js @@ -0,0 +1,3 @@ +import ChartPie from './pie.vue'; +import ChartBar from './bar.vue'; +export { ChartPie, ChartBar }; diff --git a/smart_admin_v1/smart-admin-web/src/components/charts/pie.vue b/smart_admin_v1/smart-admin-web/src/components/charts/pie.vue new file mode 100644 index 00000000..4c4ffc7d --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/components/charts/pie.vue @@ -0,0 +1,85 @@ + + + diff --git a/smart_admin_v1/smart-admin-web/src/components/charts/theme.json b/smart_admin_v1/smart-admin-web/src/components/charts/theme.json new file mode 100644 index 00000000..909b518a --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/components/charts/theme.json @@ -0,0 +1,490 @@ +{ + "color": [ + "#2d8cf0", + "#19be6b", + "#ff9900", + "#E46CBB", + "#9A66E4", + "#ed3f14" + ], + "backgroundColor": "rgba(0,0,0,0)", + "textStyle": {}, + "title": { + "textStyle": { + "color": "#516b91" + }, + "subtextStyle": { + "color": "#93b7e3" + } + }, + "line": { + "itemStyle": { + "normal": { + "borderWidth": "2" + } + }, + "lineStyle": { + "normal": { + "width": "2" + } + }, + "symbolSize": "6", + "symbol": "emptyCircle", + "smooth": true + }, + "radar": { + "itemStyle": { + "normal": { + "borderWidth": "2" + } + }, + "lineStyle": { + "normal": { + "width": "2" + } + }, + "symbolSize": "6", + "symbol": "emptyCircle", + "smooth": true + }, + "bar": { + "itemStyle": { + "normal": { + "barBorderWidth": 0, + "barBorderColor": "#ccc" + }, + "emphasis": { + "barBorderWidth": 0, + "barBorderColor": "#ccc" + } + } + }, + "pie": { + "itemStyle": { + "normal": { + "borderWidth": 0, + "borderColor": "#ccc" + }, + "emphasis": { + "borderWidth": 0, + "borderColor": "#ccc" + } + } + }, + "scatter": { + "itemStyle": { + "normal": { + "borderWidth": 0, + "borderColor": "#ccc" + }, + "emphasis": { + "borderWidth": 0, + "borderColor": "#ccc" + } + } + }, + "boxplot": { + "itemStyle": { + "normal": { + "borderWidth": 0, + "borderColor": "#ccc" + }, + "emphasis": { + "borderWidth": 0, + "borderColor": "#ccc" + } + } + }, + "parallel": { + "itemStyle": { + "normal": { + "borderWidth": 0, + "borderColor": "#ccc" + }, + "emphasis": { + "borderWidth": 0, + "borderColor": "#ccc" + } + } + }, + "sankey": { + "itemStyle": { + "normal": { + "borderWidth": 0, + "borderColor": "#ccc" + }, + "emphasis": { + "borderWidth": 0, + "borderColor": "#ccc" + } + } + }, + "funnel": { + "itemStyle": { + "normal": { + "borderWidth": 0, + "borderColor": "#ccc" + }, + "emphasis": { + "borderWidth": 0, + "borderColor": "#ccc" + } + } + }, + "gauge": { + "itemStyle": { + "normal": { + "borderWidth": 0, + "borderColor": "#ccc" + }, + "emphasis": { + "borderWidth": 0, + "borderColor": "#ccc" + } + } + }, + "candlestick": { + "itemStyle": { + "normal": { + "color": "#edafda", + "color0": "transparent", + "borderColor": "#d680bc", + "borderColor0": "#8fd3e8", + "borderWidth": "2" + } + } + }, + "graph": { + "itemStyle": { + "normal": { + "borderWidth": 0, + "borderColor": "#ccc" + } + }, + "lineStyle": { + "normal": { + "width": 1, + "color": "#aaa" + } + }, + "symbolSize": "6", + "symbol": "emptyCircle", + "smooth": true, + "color": [ + "#2d8cf0", + "#19be6b", + "#f5ae4a", + "#9189d5", + "#56cae2", + "#cbb0e3" + ], + "label": { + "normal": { + "textStyle": { + "color": "#eee" + } + } + } + }, + "map": { + "itemStyle": { + "normal": { + "areaColor": "#f3f3f3", + "borderColor": "#516b91", + "borderWidth": 0.5 + }, + "emphasis": { + "areaColor": "rgba(165,231,240,1)", + "borderColor": "#516b91", + "borderWidth": 1 + } + }, + "label": { + "normal": { + "textStyle": { + "color": "#000" + } + }, + "emphasis": { + "textStyle": { + "color": "rgb(81,107,145)" + } + } + } + }, + "geo": { + "itemStyle": { + "normal": { + "areaColor": "#f3f3f3", + "borderColor": "#516b91", + "borderWidth": 0.5 + }, + "emphasis": { + "areaColor": "rgba(165,231,240,1)", + "borderColor": "#516b91", + "borderWidth": 1 + } + }, + "label": { + "normal": { + "textStyle": { + "color": "#000" + } + }, + "emphasis": { + "textStyle": { + "color": "rgb(81,107,145)" + } + } + } + }, + "categoryAxis": { + "axisLine": { + "show": true, + "lineStyle": { + "color": "#cccccc" + } + }, + "axisTick": { + "show": false, + "lineStyle": { + "color": "#333" + } + }, + "axisLabel": { + "show": true, + "textStyle": { + "color": "#999999" + } + }, + "splitLine": { + "show": true, + "lineStyle": { + "color": [ + "#eeeeee" + ] + } + }, + "splitArea": { + "show": false, + "areaStyle": { + "color": [ + "rgba(250,250,250,0.05)", + "rgba(200,200,200,0.02)" + ] + } + } + }, + "valueAxis": { + "axisLine": { + "show": true, + "lineStyle": { + "color": "#cccccc" + } + }, + "axisTick": { + "show": false, + "lineStyle": { + "color": "#333" + } + }, + "axisLabel": { + "show": true, + "textStyle": { + "color": "#999999" + } + }, + "splitLine": { + "show": true, + "lineStyle": { + "color": [ + "#eeeeee" + ] + } + }, + "splitArea": { + "show": false, + "areaStyle": { + "color": [ + "rgba(250,250,250,0.05)", + "rgba(200,200,200,0.02)" + ] + } + } + }, + "logAxis": { + "axisLine": { + "show": true, + "lineStyle": { + "color": "#cccccc" + } + }, + "axisTick": { + "show": false, + "lineStyle": { + "color": "#333" + } + }, + "axisLabel": { + "show": true, + "textStyle": { + "color": "#999999" + } + }, + "splitLine": { + "show": true, + "lineStyle": { + "color": [ + "#eeeeee" + ] + } + }, + "splitArea": { + "show": false, + "areaStyle": { + "color": [ + "rgba(250,250,250,0.05)", + "rgba(200,200,200,0.02)" + ] + } + } + }, + "timeAxis": { + "axisLine": { + "show": true, + "lineStyle": { + "color": "#cccccc" + } + }, + "axisTick": { + "show": false, + "lineStyle": { + "color": "#333" + } + }, + "axisLabel": { + "show": true, + "textStyle": { + "color": "#999999" + } + }, + "splitLine": { + "show": true, + "lineStyle": { + "color": [ + "#eeeeee" + ] + } + }, + "splitArea": { + "show": false, + "areaStyle": { + "color": [ + "rgba(250,250,250,0.05)", + "rgba(200,200,200,0.02)" + ] + } + } + }, + "toolbox": { + "iconStyle": { + "normal": { + "borderColor": "#999" + }, + "emphasis": { + "borderColor": "#666" + } + } + }, + "legend": { + "textStyle": { + "color": "#999999" + } + }, + "tooltip": { + "axisPointer": { + "lineStyle": { + "color": "#ccc", + "width": 1 + }, + "crossStyle": { + "color": "#ccc", + "width": 1 + } + } + }, + "timeline": { + "lineStyle": { + "color": "#8fd3e8", + "width": 1 + }, + "itemStyle": { + "normal": { + "color": "#8fd3e8", + "borderWidth": 1 + }, + "emphasis": { + "color": "#8fd3e8" + } + }, + "controlStyle": { + "normal": { + "color": "#8fd3e8", + "borderColor": "#8fd3e8", + "borderWidth": 0.5 + }, + "emphasis": { + "color": "#8fd3e8", + "borderColor": "#8fd3e8", + "borderWidth": 0.5 + } + }, + "checkpointStyle": { + "color": "#8fd3e8", + "borderColor": "rgba(138,124,168,0.37)" + }, + "label": { + "normal": { + "textStyle": { + "color": "#8fd3e8" + } + }, + "emphasis": { + "textStyle": { + "color": "#8fd3e8" + } + } + } + }, + "visualMap": { + "color": [ + "#516b91", + "#59c4e6", + "#a5e7f0" + ] + }, + "dataZoom": { + "backgroundColor": "rgba(0,0,0,0)", + "dataBackgroundColor": "rgba(255,255,255,0.3)", + "fillerColor": "rgba(167,183,204,0.4)", + "handleColor": "#a7b7cc", + "handleSize": "100%", + "textStyle": { + "color": "#333" + } + }, + "markPoint": { + "label": { + "normal": { + "textStyle": { + "color": "#eee" + } + }, + "emphasis": { + "textStyle": { + "color": "#eee" + } + } + } + } +} \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-web/src/components/common-icon/common-icon.vue b/smart_admin_v1/smart-admin-web/src/components/common-icon/common-icon.vue new file mode 100644 index 00000000..03cbc0e8 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/components/common-icon/common-icon.vue @@ -0,0 +1,52 @@ + + + + + diff --git a/smart_admin_v1/smart-admin-web/src/components/common-icon/index.js b/smart_admin_v1/smart-admin-web/src/components/common-icon/index.js new file mode 100644 index 00000000..ca1bd334 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/components/common-icon/index.js @@ -0,0 +1,2 @@ +import CommonIcon from './common-icon.vue'; +export default CommonIcon; diff --git a/smart_admin_v1/smart-admin-web/src/components/count-to/count-to.vue b/smart_admin_v1/smart-admin-web/src/components/count-to/count-to.vue new file mode 100644 index 00000000..4c8f274e --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/components/count-to/count-to.vue @@ -0,0 +1,198 @@ + + + diff --git a/smart_admin_v1/smart-admin-web/src/components/count-to/index.js b/smart_admin_v1/smart-admin-web/src/components/count-to/index.js new file mode 100644 index 00000000..52c7fb88 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/components/count-to/index.js @@ -0,0 +1,2 @@ +import countTo from './count-to.vue'; +export default countTo; diff --git a/smart_admin_v1/smart-admin-web/src/components/count-to/index.less b/smart_admin_v1/smart-admin-web/src/components/count-to/index.less new file mode 100644 index 00000000..e17d7c60 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/components/count-to/index.less @@ -0,0 +1,10 @@ +@prefix: ~"count-to"; + +.@{prefix}-wrapper{ + .content-outer{ + display: inline-block; + .@{prefix}-unit-text{ + font-style: normal; + } + } +} diff --git a/smart_admin_v1/smart-admin-web/src/components/editor/editor.vue b/smart_admin_v1/smart-admin-web/src/components/editor/editor.vue new file mode 100644 index 00000000..da3123dc --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/components/editor/editor.vue @@ -0,0 +1,77 @@ + + + + + diff --git a/smart_admin_v1/smart-admin-web/src/components/editor/index.js b/smart_admin_v1/smart-admin-web/src/components/editor/index.js new file mode 100644 index 00000000..58c0cd58 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/components/editor/index.js @@ -0,0 +1,2 @@ +import Editor from './editor.vue'; +export default Editor; diff --git a/smart_admin_v1/smart-admin-web/src/components/employee/employee-selector.vue b/smart_admin_v1/smart-admin-web/src/components/employee/employee-selector.vue new file mode 100644 index 00000000..a55f140a --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/components/employee/employee-selector.vue @@ -0,0 +1,54 @@ + + \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-web/src/components/icons/icons.vue b/smart_admin_v1/smart-admin-web/src/components/icons/icons.vue new file mode 100644 index 00000000..08112f96 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/components/icons/icons.vue @@ -0,0 +1,38 @@ + + + + + diff --git a/smart_admin_v1/smart-admin-web/src/components/icons/index.js b/smart_admin_v1/smart-admin-web/src/components/icons/index.js new file mode 100644 index 00000000..9bce89b3 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/components/icons/index.js @@ -0,0 +1,2 @@ +import Icons from './icons.vue'; +export default Icons; diff --git a/smart_admin_v1/smart-admin-web/src/components/main/components/a-back-top/index.js b/smart_admin_v1/smart-admin-web/src/components/main/components/a-back-top/index.js new file mode 100644 index 00000000..7c87382d --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/components/main/components/a-back-top/index.js @@ -0,0 +1,2 @@ +import ABackTop from './index.vue'; +export default ABackTop; diff --git a/smart_admin_v1/smart-admin-web/src/components/main/components/a-back-top/index.vue b/smart_admin_v1/smart-admin-web/src/components/main/components/a-back-top/index.vue new file mode 100644 index 00000000..e13c5621 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/components/main/components/a-back-top/index.vue @@ -0,0 +1,130 @@ + + diff --git a/smart_admin_v1/smart-admin-web/src/components/main/components/fullscreen/fullscreen.vue b/smart_admin_v1/smart-admin-web/src/components/main/components/fullscreen/fullscreen.vue new file mode 100644 index 00000000..b5fb231c --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/components/main/components/fullscreen/fullscreen.vue @@ -0,0 +1,92 @@ + + + + + diff --git a/smart_admin_v1/smart-admin-web/src/components/main/components/fullscreen/index.js b/smart_admin_v1/smart-admin-web/src/components/main/components/fullscreen/index.js new file mode 100644 index 00000000..45c287e9 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/components/main/components/fullscreen/index.js @@ -0,0 +1,2 @@ +import Fullscreen from './fullscreen.vue'; +export default Fullscreen; diff --git a/smart_admin_v1/smart-admin-web/src/components/main/components/header-bar/custom-bread-crumb/custom-bread-crumb.less b/smart_admin_v1/smart-admin-web/src/components/main/components/header-bar/custom-bread-crumb/custom-bread-crumb.less new file mode 100644 index 00000000..1ace1eb8 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/components/main/components/header-bar/custom-bread-crumb/custom-bread-crumb.less @@ -0,0 +1,4 @@ +.custom-bread-crumb{ + display: inline-block; + vertical-align: top; +} diff --git a/smart_admin_v1/smart-admin-web/src/components/main/components/header-bar/custom-bread-crumb/custom-bread-crumb.vue b/smart_admin_v1/smart-admin-web/src/components/main/components/header-bar/custom-bread-crumb/custom-bread-crumb.vue new file mode 100644 index 00000000..9d1fc5d7 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/components/main/components/header-bar/custom-bread-crumb/custom-bread-crumb.vue @@ -0,0 +1,44 @@ + + diff --git a/smart_admin_v1/smart-admin-web/src/components/main/components/header-bar/custom-bread-crumb/index.js b/smart_admin_v1/smart-admin-web/src/components/main/components/header-bar/custom-bread-crumb/index.js new file mode 100644 index 00000000..a360517d --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/components/main/components/header-bar/custom-bread-crumb/index.js @@ -0,0 +1,2 @@ +import customBreadCrumb from './custom-bread-crumb.vue'; +export default customBreadCrumb; diff --git a/smart_admin_v1/smart-admin-web/src/components/main/components/header-bar/header-bar.less b/smart_admin_v1/smart-admin-web/src/components/main/components/header-bar/header-bar.less new file mode 100644 index 00000000..9c62d564 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/components/main/components/header-bar/header-bar.less @@ -0,0 +1,19 @@ +.header-bar{ + width: 100%; + height: 100%; + position: relative; + .custom-content-con{ + float: right; + height: auto; + padding-right: 20px; + // line-height: 64px; + & > *{ + float: right; + } + } +} + + +.step-bottom-btn{ + width: 380px !important; +} diff --git a/smart_admin_v1/smart-admin-web/src/components/main/components/header-bar/header-bar.vue b/smart_admin_v1/smart-admin-web/src/components/main/components/header-bar/header-bar.vue new file mode 100644 index 00000000..059b69c4 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/components/main/components/header-bar/header-bar.vue @@ -0,0 +1,106 @@ + + + + diff --git a/smart_admin_v1/smart-admin-web/src/components/main/components/header-bar/index.js b/smart_admin_v1/smart-admin-web/src/components/main/components/header-bar/index.js new file mode 100644 index 00000000..7559bb43 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/components/main/components/header-bar/index.js @@ -0,0 +1,2 @@ +import HeaderBar from './header-bar'; +export default HeaderBar; diff --git a/smart_admin_v1/smart-admin-web/src/components/main/components/header-bar/sider-trigger/index.js b/smart_admin_v1/smart-admin-web/src/components/main/components/header-bar/sider-trigger/index.js new file mode 100644 index 00000000..e474a26d --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/components/main/components/header-bar/sider-trigger/index.js @@ -0,0 +1,2 @@ +import siderTrigger from './sider-trigger.vue'; +export default siderTrigger; diff --git a/smart_admin_v1/smart-admin-web/src/components/main/components/header-bar/sider-trigger/sider-trigger.less b/smart_admin_v1/smart-admin-web/src/components/main/components/header-bar/sider-trigger/sider-trigger.less new file mode 100644 index 00000000..bb852980 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/components/main/components/header-bar/sider-trigger/sider-trigger.less @@ -0,0 +1,21 @@ +.trans{ + transition: transform .2s ease; +} +@size: 40px; +.sider-trigger-a{ + padding: 6px; + width: @size; + height: @size; + display: inline-block; + text-align: center; + color: #5c6b77; + margin-top: 10px; + i{ + .trans; + vertical-align: top; + } + &.collapsed i{ + transform: rotateZ(180deg); + .trans; + } +} diff --git a/smart_admin_v1/smart-admin-web/src/components/main/components/header-bar/sider-trigger/sider-trigger.vue b/smart_admin_v1/smart-admin-web/src/components/main/components/header-bar/sider-trigger/sider-trigger.vue new file mode 100644 index 00000000..71971884 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/components/main/components/header-bar/sider-trigger/sider-trigger.vue @@ -0,0 +1,35 @@ + + + diff --git a/smart_admin_v1/smart-admin-web/src/components/main/components/language/index.js b/smart_admin_v1/smart-admin-web/src/components/main/components/language/index.js new file mode 100644 index 00000000..74d5e61b --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/components/main/components/language/index.js @@ -0,0 +1,2 @@ +import Language from './language.vue'; +export default Language; diff --git a/smart_admin_v1/smart-admin-web/src/components/main/components/language/language.vue b/smart_admin_v1/smart-admin-web/src/components/main/components/language/language.vue new file mode 100644 index 00000000..29a8cbb0 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/components/main/components/language/language.vue @@ -0,0 +1,54 @@ + + + diff --git a/smart_admin_v1/smart-admin-web/src/components/main/components/notice/notice.vue b/smart_admin_v1/smart-admin-web/src/components/main/components/notice/notice.vue new file mode 100644 index 00000000..337d09ae --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/components/main/components/notice/notice.vue @@ -0,0 +1,371 @@ + + + + + diff --git a/smart_admin_v1/smart-admin-web/src/components/main/components/side-menu/collapsed-menu.vue b/smart_admin_v1/smart-admin-web/src/components/main/components/side-menu/collapsed-menu.vue new file mode 100644 index 00000000..6011e12b --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/components/main/components/side-menu/collapsed-menu.vue @@ -0,0 +1,84 @@ + + diff --git a/smart_admin_v1/smart-admin-web/src/components/main/components/side-menu/index.js b/smart_admin_v1/smart-admin-web/src/components/main/components/side-menu/index.js new file mode 100644 index 00000000..4a51d599 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/components/main/components/side-menu/index.js @@ -0,0 +1,2 @@ +import SideMenu from './side-menu.vue'; +export default SideMenu; diff --git a/smart_admin_v1/smart-admin-web/src/components/main/components/side-menu/item-mixin.js b/smart_admin_v1/smart-admin-web/src/components/main/components/side-menu/item-mixin.js new file mode 100644 index 00000000..921342fe --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/components/main/components/side-menu/item-mixin.js @@ -0,0 +1,30 @@ +export default { + props: { + // 父文件 + parentItem: { + type: Object, + default: () => { } + }, + // 主题 + theme: { + type: String, + require: false + }, + // 图标尺寸 + iconSize: { + type: Number, + require: false + } + }, + computed: { + parentName () { + return this.parentItem.name; + }, + children () { + return this.parentItem.children; + }, + textColor () { + return this.theme === 'dark' ? '#fff' : '#495060'; + } + } +}; diff --git a/smart_admin_v1/smart-admin-web/src/components/main/components/side-menu/mixin.js b/smart_admin_v1/smart-admin-web/src/components/main/components/side-menu/mixin.js new file mode 100644 index 00000000..770d5bb6 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/components/main/components/side-menu/mixin.js @@ -0,0 +1,18 @@ +import CommonIcon from '_c/common-icon'; +import { showTitle } from '@/lib/menu-func'; +export default { + components: { + CommonIcon + }, + methods: { + showTitle (item) { + return showTitle(item, this); + }, + showChildren (item) { + return item.children && (item.children.length > 0 || (item.meta && item.meta.showAlways)); + }, + getNameOrHref (item, children0) { + return item.href ? `isTurnByHref_${item.href}` : (children0 ? item.children[0].name : item.name); + } + } +}; diff --git a/smart_admin_v1/smart-admin-web/src/components/main/components/side-menu/side-menu-item.vue b/smart_admin_v1/smart-admin-web/src/components/main/components/side-menu/side-menu-item.vue new file mode 100644 index 00000000..d236b7a5 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/components/main/components/side-menu/side-menu-item.vue @@ -0,0 +1,35 @@ + + diff --git a/smart_admin_v1/smart-admin-web/src/components/main/components/side-menu/side-menu.less b/smart_admin_v1/smart-admin-web/src/components/main/components/side-menu/side-menu.less new file mode 100644 index 00000000..e50fae79 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/components/main/components/side-menu/side-menu.less @@ -0,0 +1,39 @@ +.side-menu-wrapper{ + user-select: none; + .menu-collapsed{ + padding-top: 10px; + + .ivu-dropdown{ + .ivu-dropdown-rel a{ + width: 100%; + } + } + .ivu-tooltip{ + width: 100%; + .ivu-tooltip-rel{ + width: 100%; + } + .ivu-tooltip-popper .ivu-tooltip-content{ + .ivu-tooltip-arrow{ + border-right-color: #fff; + } + .ivu-tooltip-inner{ + background: #fff; + color: #495060; + } + } + } + + + } + a.drop-menu-a{ + display: inline-block; + padding: 6px 15px; + width: 100%; + text-align: center; + color: #495060; + } +} +.menu-title{ + padding-left: 6px; +} diff --git a/smart_admin_v1/smart-admin-web/src/components/main/components/side-menu/side-menu.vue b/smart_admin_v1/smart-admin-web/src/components/main/components/side-menu/side-menu.vue new file mode 100644 index 00000000..ceccb359 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/components/main/components/side-menu/side-menu.vue @@ -0,0 +1,197 @@ + + + diff --git a/smart_admin_v1/smart-admin-web/src/components/main/components/tags-nav/index.js b/smart_admin_v1/smart-admin-web/src/components/main/components/tags-nav/index.js new file mode 100644 index 00000000..56d2f1c2 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/components/main/components/tags-nav/index.js @@ -0,0 +1,2 @@ +import TagsNav from './tags-nav.vue'; +export default TagsNav; diff --git a/smart_admin_v1/smart-admin-web/src/components/main/components/tags-nav/tags-nav.less b/smart_admin_v1/smart-admin-web/src/components/main/components/tags-nav/tags-nav.less new file mode 100644 index 00000000..ddb05134 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/components/main/components/tags-nav/tags-nav.less @@ -0,0 +1,136 @@ +.no-select{ + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} +.size{ + height: 100%; +} +.tags-nav{ + position: relative; + margin:0 auto; + // border-top: 1px solid #F0F0F0; + // border-bottom: 1px solid #F0F0F0; + background: #f4f6f8; + padding:0 20px; + + .no-select; + .size; + .close-con{ + position: absolute; + right: 0; + top: 5px; + height: 30px; + width: 42px; + background: #f3f5f7; + text-align: center; + z-index: 10; + margin-top:5px; + + border-top: 1px solid #F5F7FC; + border-bottom: 1px solid #F5F7FC; + i{ + color:#666666; + } + button{ + margin-top:3px; + + } + } + .btn-con{ + margin-top:10px; + position: absolute; + top: 0px; + height: 30px; + line-height: 30px; + // padding:0 10px; + background: #f3f5f7; + z-index: 10; + + button{ + position: relative; + top:-1px; + line-height: 14px; + text-align: center; + color:#666666; + + } + &.left-btn{ + left: 0px; + border: 1px solid #F5F7FC; + } + &.right-btn{ + right: 42px; + border: 1px solid #F5F7FC; + } + } + .scroll-outer{ + position: absolute; + left: 52px; + right: 61px; + top: 0; + bottom: 0; + padding:10px 0; + .scroll-body{ + display: inline-block; + position: absolute; + box-shadow: border-box; + overflow: visible; + white-space: nowrap; + transition: left .3s ease; + .ivu-tag{ + height:34px; + margin:0; + } + .ivu-tag{ + // min-width:10px; + height:30px; + line-height: 30px; + border-radius: 3px; + padding:0 10px; + background: #fff!important; + border:none; + text-align: center; + color:#1C2B36; + font-size: 14px; + margin:0 5px; + span{ + color:#1C2B36!important; + padding:0 5px; + } + i{ + color:#1C2B36!important; + font-size: 4px; + } + } + .ivu-tag-primary{ + transition: background .2s ease; + background: #2D8CF0!important; + span,i{ + color:#fff!important; + } + } + } + } + .contextmenu { + position: absolute; + margin: 0; + padding: 5px 0; + background: #fff; + z-index: 1000; + list-style-type: none; + border-radius: 3px; + box-shadow: 2px 2px 3px 0 rgba(0, 0, 0, .1); + li { + margin: 0; + padding: 5px 15px; + cursor: pointer; + &:hover { + background: #eee; + } + } + } +} diff --git a/smart_admin_v1/smart-admin-web/src/components/main/components/tags-nav/tags-nav.vue b/smart_admin_v1/smart-admin-web/src/components/main/components/tags-nav/tags-nav.vue new file mode 100644 index 00000000..00909fa0 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/components/main/components/tags-nav/tags-nav.vue @@ -0,0 +1,256 @@ + + + + + diff --git a/smart_admin_v1/smart-admin-web/src/components/main/components/user/index.js b/smart_admin_v1/smart-admin-web/src/components/main/components/user/index.js new file mode 100644 index 00000000..54d7ca0b --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/components/main/components/user/index.js @@ -0,0 +1,2 @@ +import User from './user.vue'; +export default User; diff --git a/smart_admin_v1/smart-admin-web/src/components/main/components/user/user.less b/smart_admin_v1/smart-admin-web/src/components/main/components/user/user.less new file mode 100644 index 00000000..9c5eeba7 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/components/main/components/user/user.less @@ -0,0 +1,25 @@ +.user-avatar-dropdown{ + padding-left:20px; + color:#909ca4; + .dropdown-arrows{ + margin:0 10px; + } + .head{ + position: relative; + top:-2px; + } +} +.user{ + + &-avatar-dropdown{ + cursor: pointer; + display: inline-block; + // height: 64px; + vertical-align: middle; + // line-height: 64px; + .ivu-badge-dot{ + top: 16px; + } + } + +} diff --git a/smart_admin_v1/smart-admin-web/src/components/main/components/user/user.vue b/smart_admin_v1/smart-admin-web/src/components/main/components/user/user.vue new file mode 100644 index 00000000..d7f0324a --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/components/main/components/user/user.vue @@ -0,0 +1,131 @@ + + + + diff --git a/smart_admin_v1/smart-admin-web/src/components/main/index.js b/smart_admin_v1/smart-admin-web/src/components/main/index.js new file mode 100644 index 00000000..87be9ddf --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/components/main/index.js @@ -0,0 +1,2 @@ +import Main from './main.vue'; +export default Main; diff --git a/smart_admin_v1/smart-admin-web/src/components/main/main.less b/smart_admin_v1/smart-admin-web/src/components/main/main.less new file mode 100644 index 00000000..588e8c13 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/components/main/main.less @@ -0,0 +1,129 @@ +//滚动条样式 +.scrollbar(@width: 2px){ + &::-webkit-scrollbar { width: @width; height: 8px; } + &::-webkit-scrollbar-thumb { border-radius: 5px; -webkit-box-shadow: inset 0 0 5px rgb(185, 185, 185); background: #c7c5c8; } + &::-webkit-scrollbar-track { border-radius: 0; background: #ddd; } +} +.no-scrollbar{ + &::-webkit-scrollbar {display:none} +} +.main{ + .scrollbar, + .ivu-table-overflowX, + .content-wrapper, + .w-e-text{ + .scrollbar; + } + iframe body{ + .scrollbar; + } + .logo-con{ + padding: 19px 10px 15px 5px; + &.collapsed{ + padding: 19px 0 15px; + text-align: center; + } + } + .menu-dropdown{ + margin-left: 200px; + } + .search-bar{ + padding:0 14px; + margin-bottom: 20px; + &.collapsed{ + padding:0 12px; + i{ + width: 40px; + + } + } + input{ + width: 100%; + height:36px; + background: #152a3a; + color:#44505c; + font-size: 14px; + outline: none; + + &::placeholder{ + color:#44505c; + } + &:focus{ + border:none; + outline: none; + background: #fff; + } + border:none; + } + i{ + line-height: 36px; + color:#44505c; + } + } + .header-con{ + background: #fff; + padding: 0 10px; + width: 100%; + } + .main-layout-con{ + height: 100%; + overflow: hidden; + } + .main-content-con{ + height: ~"calc(100% - 60px)"; + overflow: hidden; + } + .tag-nav-wrapper{ + padding: 0; + height:50px; + // background:#F0F0F0; + } + .content-wrapper{ + padding: 0 18px 18px; + height: ~"calc(100% - 80px)"; + overflow: auto; + } + .left-sider{ + .ivu-layout-sider-children{ + overflow-y: scroll; + margin-right: -18px; + } + } +} +.ivu-menu-light.ivu-menu-vertical .ivu-menu-item-active:not(.ivu-menu-submenu):after{ + right: inherit; left: 0; +} +.ivu-menu-item > i{ + margin-right: 12px !important; +} +.ivu-menu-submenu > .ivu-menu > .ivu-menu-item > i { + margin-right: 8px !important; +} +.collased-menu-dropdown{ + width: 100%; + margin: 0; + line-height: normal; + padding: 7px 0 6px 16px; + clear: both; + font-size: 12px !important; + white-space: nowrap; + list-style: none; + cursor: pointer; + transition: background 0.2s ease-in-out; + &:hover{ + background: rgba(100, 100, 100, 0.1); + } + & * { + color: #515a6e; + } + .ivu-menu-item > i{ + margin-right: 12px !important; + } + .ivu-menu-submenu > .ivu-menu > .ivu-menu-item > i { + margin-right: 8px !important; + } +} + +.ivu-select-dropdown.ivu-dropdown-transfer{ + max-height: 400px; +} diff --git a/smart_admin_v1/smart-admin-web/src/components/main/main.vue b/smart_admin_v1/smart-admin-web/src/components/main/main.vue new file mode 100644 index 00000000..0be9f2c1 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/components/main/main.vue @@ -0,0 +1,533 @@ + + + diff --git a/smart_admin_v1/smart-admin-web/src/components/smart-admin-ad/ad.vue b/smart_admin_v1/smart-admin-web/src/components/smart-admin-ad/ad.vue new file mode 100644 index 00000000..43f2d9e1 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/components/smart-admin-ad/ad.vue @@ -0,0 +1,34 @@ + + + diff --git a/smart_admin_v1/smart-admin-web/src/components/smart-admin-ad/index.js b/smart_admin_v1/smart-admin-web/src/components/smart-admin-ad/index.js new file mode 100644 index 00000000..f0b0e3fb --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/components/smart-admin-ad/index.js @@ -0,0 +1,2 @@ +import Ad from './ad.vue'; +export default Ad; diff --git a/smart_admin_v1/smart-admin-web/src/components/tables/edit.vue b/smart_admin_v1/smart-admin-web/src/components/tables/edit.vue new file mode 100644 index 00000000..55c142ac --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/components/tables/edit.vue @@ -0,0 +1,102 @@ + + + + + diff --git a/smart_admin_v1/smart-admin-web/src/components/tables/handle-btns.js b/smart_admin_v1/smart-admin-web/src/components/tables/handle-btns.js new file mode 100644 index 00000000..7254b3e1 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/components/tables/handle-btns.js @@ -0,0 +1,70 @@ +// 验证 +const validate = { + operation: (params) => { + if (params.operation === 0) { + return false; + } + return true; + }, + audit: (params) => { + if (params.audit === 0) { + return false; + } + return true; + } +}; +const btns = { + // 删除:需要判定 + delete: (h, params, vm) => { + let disabledFlag = false; + return h('Tooltip', { + props: { + content: '删除', + placement: 'top', + transfer: true + } + }, [h('Button', { + props: { + type: 'error', + size: 'small', + icon: 'md-trash', + disabled: disabledFlag + }, + style: { + marginRight: '5px' + }, + on: { + click: () => { + vm.$emit('on-delete', params); + } + } + })]); + }, + edit: (h, params, vm) => { + let disabledFlag = false; + return h('Tooltip', { + props: { + content: '编辑', + placement: 'top', + transfer: true + } + }, [h('Button', { + props: { + type: 'primary', + size: 'small', + icon: 'md-trash', + disabled: disabledFlag + }, + style: { + marginRight: '5px' + }, + on: { + click: () => { + vm.$emit('on-edit', params); + } + } + })]); + } +}; + +export default btns; diff --git a/smart_admin_v1/smart-admin-web/src/components/tables/index.js b/smart_admin_v1/smart-admin-web/src/components/tables/index.js new file mode 100644 index 00000000..899190c0 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/components/tables/index.js @@ -0,0 +1,2 @@ +import Tables from './tables.vue'; +export default Tables; diff --git a/smart_admin_v1/smart-admin-web/src/components/tables/index.less b/smart_admin_v1/smart-admin-web/src/components/tables/index.less new file mode 100644 index 00000000..3c352e11 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/components/tables/index.less @@ -0,0 +1,17 @@ +.search-con{ + padding: 10px 0; + .search{ + &-col{ + display: inline-block; + width: 200px; + } + &-input{ + display: inline-block; + width: 200px; + margin-left: 2px; + } + &-btn{ + margin-left: 2px; + } + } +} diff --git a/smart_admin_v1/smart-admin-web/src/components/tables/tables.vue b/smart_admin_v1/smart-admin-web/src/components/tables/tables.vue new file mode 100644 index 00000000..0c2329b4 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/components/tables/tables.vue @@ -0,0 +1,342 @@ + + + diff --git a/smart_admin_v1/smart-admin-web/src/config/index.js b/smart_admin_v1/smart-admin-web/src/config/index.js new file mode 100644 index 00000000..a80b6815 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/config/index.js @@ -0,0 +1,38 @@ +console.log('api url : ', process.env.VUE_APP_URL); +console.log('websocket url : ', process.env.VUE_APP_SOCKET_URL); +export default { + /** + * @description 配置显示在浏览器标签的title + */ + title: 'Smart-Admin', + /** + * @description token在Cookie中存储的天数,默认1天 + */ + cookieExpires: 3, + /** + * @description 是否使用国际化,默认为false + * 如果不使用,则需要在路由中给需要在菜单中展示的路由设置meta: {title: 'xxx'} + * 用来在菜单中显示文字 + */ + useI18n: false, + /** + * @description api请求基础路径 + */ + baseUrl: { + apiUrl: process.env.VUE_APP_URL, + webSocketUrl: process.env.VUE_APP_SOCKET_URL + }, + /** + * @description 默认打开的首页的路由name值,默认为home + */ + homeName: 'Home', + /** + * @description 需要加载的插件 + */ + plugin: { + 'error-store': { + showInHeader: true, // 设为false后不会在顶部显示错误日志徽标 + developmentOff: true // 设为true后在开发环境不会收集错误信息,方便开发中排查错误 + } + } +}; diff --git a/smart_admin_v1/smart-admin-web/src/constants/file.js b/smart_admin_v1/smart-admin-web/src/constants/file.js new file mode 100644 index 00000000..6a205f55 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/constants/file.js @@ -0,0 +1,24 @@ +export const FILE_TYPE = { + LOCAL: { + value: 1, + desc: '本地文件服务' + }, + ALI_OSS: { + value: 2, + desc: '阿里OSS文件服务' + }, + QI_NIU_OSS: { + value: 3, + desc: '七牛文件服务' + } +}; +export const SERVICE_TYPE = { + BACK_USER: { + value: '1', + desc: '用户后台' + } +}; +export default { + FILE_TYPE, + SERVICE_TYPE +}; diff --git a/smart_admin_v1/smart-admin-web/src/constants/index.js b/smart_admin_v1/smart-admin-web/src/constants/index.js new file mode 100644 index 00000000..55101226 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/constants/index.js @@ -0,0 +1,10 @@ +import notice from './notice.js'; +import login from './login.js'; +import file from './file.js'; +import privilege from './privilege'; +export default { + ...notice, + ...login, + ...file, + ...privilege +}; diff --git a/smart_admin_v1/smart-admin-web/src/constants/login.js b/smart_admin_v1/smart-admin-web/src/constants/login.js new file mode 100644 index 00000000..fb28973b --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/constants/login.js @@ -0,0 +1,13 @@ +export const PRIVILEGE_TYPE = { + MENU: { + value: 1, + desc: '是' + }, + POINTS: { + value: 2, + desc: '否' + } +}; +export default { + PRIVILEGE_TYPE +}; diff --git a/smart_admin_v1/smart-admin-web/src/constants/notice.js b/smart_admin_v1/smart-admin-web/src/constants/notice.js new file mode 100644 index 00000000..0d5315fa --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/constants/notice.js @@ -0,0 +1,13 @@ +export const NOTICE_STATUS = { + YES: { + value: 1, + desc: '是' + }, + NO: { + value: 0, + desc: '否' + } +}; +export default { + NOTICE_STATUS +}; diff --git a/smart_admin_v1/smart-admin-web/src/constants/privilege.js b/smart_admin_v1/smart-admin-web/src/constants/privilege.js new file mode 100644 index 00000000..885e86d6 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/constants/privilege.js @@ -0,0 +1,14 @@ +export const PRIVILEGE_TYPE_ENUM = { + MENU: { + value: 1, + desc: '菜单' + }, + POINTS: { + value: 2, + desc: '功能点' + } +}; + +export default { + PRIVILEGE_TYPE_ENUM +}; diff --git a/smart_admin_v1/smart-admin-web/src/constants/table-page.js b/smart_admin_v1/smart-admin-web/src/constants/table-page.js new file mode 100644 index 00000000..83586bfd --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/constants/table-page.js @@ -0,0 +1,6 @@ + +/** + * table分页 每页条数切换的配置 + */ +export const PAGE_SIZE_OPTIONS = [10,20,30,50,75,100,150,200,300,500,1000]; + diff --git a/smart_admin_v1/smart-admin-web/src/directives/directives.js b/smart_admin_v1/smart-admin-web/src/directives/directives.js new file mode 100644 index 00000000..701eec5d --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/directives/directives.js @@ -0,0 +1,11 @@ +import draggable from './module/draggable'; +import clipboard from './module/clipboard'; +import privilege from './module/privilege'; + +const directives = { + draggable, + clipboard, + privilege +}; + +export default directives; diff --git a/smart_admin_v1/smart-admin-web/src/directives/index.js b/smart_admin_v1/smart-admin-web/src/directives/index.js new file mode 100644 index 00000000..dcc9ffb3 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/directives/index.js @@ -0,0 +1,31 @@ +import directive from './directives'; + +const importDirective = Vue => { + /** + * 拖拽指令 v-draggable="options" + * options = { + * trigger: /这里传入作为拖拽触发器的CSS选择器/, + * body: /这里传入需要移动容器的CSS选择器/, + * recover: /拖动结束之后是否恢复到原来的位置/ + * } + */ + Vue.directive('draggable', directive.draggable); + /** + * clipboard指令 v-draggable="options" + * options = { + * value: /在输入框中使用v-model绑定的值/, + * success: /复制成功后的回调/, + * error: /复制失败后的回调/ + * } + */ + Vue.directive('clipboard', directive.clipboard); + /** + * privilege指令 v-privilege="options" + * options = { + * value: /当前按钮的唯一权限识别/, + * } + */ + Vue.directive('privilege', directive.privilege); +}; + +export default importDirective; diff --git a/smart_admin_v1/smart-admin-web/src/directives/module/clipboard.js b/smart_admin_v1/smart-admin-web/src/directives/module/clipboard.js new file mode 100644 index 00000000..0684eb61 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/directives/module/clipboard.js @@ -0,0 +1,30 @@ +import Clipboard from 'clipboard'; +export default { + bind: (el, binding) => { + const clipboard = new Clipboard(el, { + text: () => binding.value.value + }); + el.__success_callback__ = binding.value.success; + el.__error_callback__ = binding.value.error; + clipboard.on('success', e => { + const callback = el.__success_callback__; + callback && callback(e); + }); + clipboard.on('error', e => { + const callback = el.__error_callback__; + callback && callback(e); + }); + el.__clipboard__ = clipboard; + }, + update: (el, binding) => { + el.__clipboard__.text = () => binding.value.value; + el.__success_callback__ = binding.value.success; + el.__error_callback__ = binding.value.error; + }, + unbind: (el, binding) => { + delete el.__success_callback__; + delete el.__error_callback__; + el.__clipboard__.destroy(); + delete el.__clipboard__; + } +}; diff --git a/smart_admin_v1/smart-admin-web/src/directives/module/draggable.js b/smart_admin_v1/smart-admin-web/src/directives/module/draggable.js new file mode 100644 index 00000000..8bf798b3 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/directives/module/draggable.js @@ -0,0 +1,42 @@ +import { on } from '@/lib/util'; +export default { + inserted: (el, binding, vnode) => { + let triggerDom = document.querySelector(binding.value.trigger); + triggerDom.style.cursor = 'move'; + let bodyDom = document.querySelector(binding.value.body); + let pageX = 0; + let pageY = 0; + let transformX = 0; + let transformY = 0; + let canMove = false; + const handleMousedown = e => { + let transform = /\(.*\)/.exec(bodyDom.style.transform); + if (transform) { + transform = transform[0].slice(1, transform[0].length - 1); + let splitxy = transform.split('px, '); + transformX = parseFloat(splitxy[0]); + transformY = parseFloat(splitxy[1].split('px')[0]); + } + pageX = e.pageX; + pageY = e.pageY; + canMove = true; + }; + const handleMousemove = e => { + let xOffset = e.pageX - pageX + transformX; + let yOffset = e.pageY - pageY + transformY; + if (canMove) + {bodyDom.style.transform = `translate(${xOffset}px, ${yOffset}px)`;} + }; + const handleMouseup = e => { + canMove = false; + }; + on(triggerDom, 'mousedown', handleMousedown); + on(document, 'mousemove', handleMousemove); + on(document, 'mouseup', handleMouseup); + }, + update: (el, binding, vnode) => { + if (!binding.value.recover) return; + let bodyDom = document.querySelector(binding.value.body); + bodyDom.style.transform = ''; + } +}; diff --git a/smart_admin_v1/smart-admin-web/src/directives/module/privilege.js b/smart_admin_v1/smart-admin-web/src/directives/module/privilege.js new file mode 100644 index 00000000..d5016721 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/directives/module/privilege.js @@ -0,0 +1,23 @@ +// 页面内按钮过滤 +import store from '@/store/index'; +export default { + inserted: function (el, binding, vnode) { + // 获取当前路由name + // 如果页面为同一模块下的子页面则取最上级权限 + let routeName = vnode.context.$route.meta.privilegeExtend + ? vnode.context.$route.meta.privilegeExtend + : vnode.context.$route.name; + // 超级管理员 + if (store.state.user.userLoginInfo.isSuperMan) { + return true; + } + // 获取功能点权限 + let functionList = store.state.user.privilegeFunctionPointsMap.get(routeName); + // 有权限 + if (functionList && functionList.includes(binding.value)) { + + } else { + el.parentNode.removeChild(el); + } + } +}; diff --git a/smart-admin-web/javascript-ant-design-vue3/README.md b/smart_admin_v1/smart-admin-web/src/filters/index.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/README.md rename to smart_admin_v1/smart-admin-web/src/filters/index.js diff --git a/smart_admin_v1/smart-admin-web/src/lib/cookie.js b/smart_admin_v1/smart-admin-web/src/lib/cookie.js new file mode 100644 index 00000000..83386119 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/lib/cookie.js @@ -0,0 +1,21 @@ +import Cookies from 'js-cookie'; +import config from '@/config'; +const { cookieExpires } = config; +export const TOKEN_KEY = 'token'; + +export default { + setToken: token => { + Cookies.set(TOKEN_KEY, token, { + // token在Cookie中存储的天数,默认1天 + expires: cookieExpires || 7 + }); + }, + getToken: () => { + const token = Cookies.get(TOKEN_KEY); + if (token) return token; + else return null; + }, + clearToken: () => { + Cookies.remove(TOKEN_KEY); + } +}; diff --git a/smart_admin_v1/smart-admin-web/src/lib/http.js b/smart_admin_v1/smart-admin-web/src/lib/http.js new file mode 100644 index 00000000..0223aa7b --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/lib/http.js @@ -0,0 +1,161 @@ +import Axios from 'axios'; +import config from '@/config'; +import { Message, Spin } from 'view-design'; +import cookie from '@/lib/cookie'; +// 之所以封装这个axios,是因为在一些请求中,无法上传信息,很尴尬,估计原因是继承的有问题,无法携带headers +export const baseUrl = config.baseUrl.apiUrl; +export const socketBaseUrl = config.baseUrl.webSocketUrl; + +let axios = Axios.create({ + baseURL: baseUrl, + timeout: 30000, + headers: { + 'Content-Type': 'application/json; charset=utf-8' + } +}); + +axios.interceptors.request.use( + function (config) { + // 在发送请求之前做些什么 + if (cookie.getToken()) { + config.headers['x-access-token'] = cookie.getToken(); + } + return config; + }, + function (error) { + // 对请求错误做些什么 + Spin.hide(); + return Promise.reject(error); + } +); +// 添加响应拦截器 +axios.interceptors.response.use( + res => { + if (res.config.responseType === 'blob') { + let isReturnJson = res.headers && res.headers['content-type'] && res.headers['content-type'].indexOf("json") > -1; + //后端返回错误信息 + if (isReturnJson) { + let reader = new FileReader() + reader.onload = function (event) { + let content = reader.result + let parseRes = JSON.parse(content) // 错误信息 + return validateResponseCode({ + data: parseRes + }); + } + reader.readAsText(res.data); + return true + } else { + //下载文件 + download(res); + } + } else { + //正常json请求 + return validateResponseCode(res); + } + }, + error => { + Spin.hide(); + Message.error('服务内部错误'); + console.log('1111', error); + // 对响应错误做点什么 + return Promise.reject(error); + } +); + +function validateResponseCode (res) { + let { data } = res; + if (data && data.code && data.code !== 1) { + if (data.code === 1001) { + cookie.clearToken(); + localStorage.clear(); + window.location.href = window.location.pathname + '#/login'; + Message.error('未登录,或登录失效,请登录'); + return; + } else if (data.code === 502) { + window.location.href = window.location.pathname + '#/500'; + return; + } else { + Spin.hide(); + Message.error(data.msg); + return Promise.reject(res); + } + } + return Promise.resolve(data); +} + +function blobToText (blob) { + return new Promise((resolve, reject) => { + const fileReader = new FileReader(); + fileReader.readAsText(blob); + fileReader.onload = function () { + try { + const result = JSON.parse(this.result); + if (result && result['resultCode'] === 'fail') { + resolve(result); + } else { + reject(); + } + } catch (e) { + //TODO handle the exception + reject(); + } + } + }) +} + +export const postAxios = (url, data) => { + return axios.post(url, data); +}; + +export const postFileUploadAxios = (url, data) => { + return axios.post(url, data, { headers: { 'Content-Type': 'multipart/form-data' } }); +}; + +export const getDownloadAxios = (url) => { + return axios.get(url, { responseType: 'blob' }); +}; + +export const postDownloadAxios = (url, data) => { + return axios.post(url, data, { responseType: 'blob' }); +}; + +export const getAxios = (url, data) => { + return axios.get(url, { + params: data + }); +}; + +function download (res) { + let reader = new FileReader(); + let data = res.data; + reader.onload = e => { + if (e.target.result.indexOf('Result') != -1 && JSON.parse(e.target.result).Result == false) { + // 进行错误处理 + } else { + let fileName = "download"; + let contentDisposition = res.headers['Content-Disposition']; + contentDisposition = contentDisposition ? contentDisposition : res.headers['content-disposition']; + if (contentDisposition) { + fileName = window.decodeURI(contentDisposition.split('=')[1], "UTF-8"); + } + executeDownload(data, fileName); + } + }; + reader.readAsText(data); +} + +// 模拟点击a 标签进行下载 +function executeDownload (data, fileName) { + if (!data) { + return + } + let url = window.URL.createObjectURL(new Blob([data])); + let link = document.createElement('a'); + link.style.display = 'none'; + link.href = url; + link.setAttribute('download', fileName); + document.body.appendChild(link); + link.click(); + document.body.removeChild(link); +} diff --git a/smart_admin_v1/smart-admin-web/src/lib/local.js b/smart_admin_v1/smart-admin-web/src/lib/local.js new file mode 100644 index 00000000..c19d7e3d --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/lib/local.js @@ -0,0 +1,8 @@ +export const localSave = (key, value) => { + localStorage.setItem(key, value); +}; + +export const localRead = key => { + return localStorage.getItem(key) || ''; +}; + diff --git a/smart_admin_v1/smart-admin-web/src/lib/menu-func.js b/smart_admin_v1/smart-admin-web/src/lib/menu-func.js new file mode 100644 index 00000000..914d5379 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/lib/menu-func.js @@ -0,0 +1,276 @@ +import { forEach, hasOneOf, objEqual } from '@/lib/util'; +import config from '@/config'; +import { localRead, localSave } from '@/lib/local'; +const { title, useI18n } = config; +export const hasChild = item => { + return item.children && item.children.length !== 0; +}; + +/** + * 通过权限过滤菜单 + * @param {Object} map 权限对象 + * @param {Array} menuList 菜单列表 + * @returns {Array} + */ +export const getShowMenu = (map = {}, menuList, access = false) => { + // 判断是否为超级管理员 + if (access) { + return menuList; + } + // 返回的菜单列表 + let result = []; + for (let menuItem of menuList) { + let routerObj = JSON.parse(JSON.stringify(menuItem)); + if ( + map.hasOwnProperty(menuItem.name) && + (menuItem.name !== 'home' && menuItem.name !== '_home') + ) { + // 判断该菜单权限下是否为数组,若为数组,则为功能点权限否则为子菜单 + if (getType(map[routerObj.name]) === 'array') { + let funcPrivilege = localRead('funcPrivilegeInfo') + ? JSON.parse(localRead('funcPrivilegeInfo')) + : {}; + localSave( + 'funcPrivilegeInfo', + JSON.stringify({ + ...funcPrivilege, + [routerObj.name]: map[routerObj.name] + }) + ); + } else if ( + getType(map[routerObj.name]) !== 'array' && + !routerObj.children + ) { + // 判断是否为二级菜单,若是则需要多枚举一层赋值 + let funcPrivilege = localRead('funcPrivilegeInfo') + ? JSON.parse(localRead('funcPrivilegeInfo')) + : {}; + localSave( + 'funcPrivilegeInfo', + JSON.stringify({ + ...funcPrivilege, + [routerObj.name]: map[routerObj.name][routerObj.name] + }) + ); + } else if ( + getType(map[routerObj.name]) !== 'array' && + routerObj.children + ) { + // 循环子菜单权限 + routerObj.children = getShowMenu( + map[routerObj.name], + routerObj.children + ); + } + result.push(routerObj); + } + } + return result; +}; +// 获取数据类型 +export const getType = obj => { + return {}.toString + .call(obj) + .match(/\s([a-zA-Z]+)/)[1] + .toLowerCase(); +}; + +/** + * @description 本地存储和获取标签导航列表 + */ +export const setTagNavListInLocalStorage = list => { + localStorage.tagNaveList = JSON.stringify(list); +}; +/** + * @returns {Array} 其中的每个元素只包含路由原信息中的name, path, meta三项 + */ +export const getTagNavListFromLocalStorage = () => { + const list = localStorage.tagNaveList; + return list ? JSON.parse(list) : []; +}; +export const getBreadCrumbList = (route, homeRoute) => { + let homeItem = { + ...homeRoute, + icon: homeRoute.meta.icon + }; + let routeMatched = route.matched; + if (routeMatched.some(item => item.name === homeRoute.name)) { + return [homeItem]; + } + let res = routeMatched + .filter(item => { + return item.meta === undefined || !item.meta.hideInBread; + }) + .map(item => { + let meta = { + ...item.meta + }; + if (meta.title && typeof meta.title === 'function') { + meta.__titleIsFunction__ = true; + meta.title = meta.title(route); + } + let obj = { + icon: (item.meta && item.meta.icon) || '', + name: item.name, + meta: meta + }; + return obj; + }); + res = res.filter(item => { + return !item.meta.hideInMenu; + }); + return [...res]; +}; +/** + * @param {Array} routers 路由列表数组 + * @description 用于找到路由列表中name为home的对象 + */ +export const getHomeRoute = (routers, homeName = 'Home') => { + let i = -1; + let len = routers.length; + let homeRoute = {}; + while (++i < len) { + let item = routers[i]; + if (item.children && item.children.length) { + let res = getHomeRoute(item.children, homeName); + if (res.name) return res; + } else { + if (item.name === homeName) homeRoute = item; + } + } + return homeRoute; +}; +/** + * @param {Array} list 标签列表 + * @param {String} name 当前关闭的标签的name + */ +export const getNextRoute = (list, route) => { + let res = {}; + if (list.length === 2) { + res = getHomeRoute(list); + } else { + const index = list.findIndex(item => routeEqual(item, route)); + if (index === list.length - 1) res = list[list.length - 2]; + else res = list[index + 1]; + } + return res; +}; + +/** + * 判断打开的标签列表里是否已存在这个新添加的路由对象 + */ +export const routeHasExist = (tagNavList, routeItem) => { + let len = tagNavList.length; + let res = false; + doCustomTimes(len, index => { + if (routeEqual(tagNavList[index], routeItem)) res = true; + }); + return res; +}; +/** + * @param {*} list 现有标签导航列表 + * @param {*} newRoute 新添加的路由原信息对象 + * @description 如果该newRoute已经存在则不再添加 + */ +export const getNewTagList = (list, newRoute) => { + const { name, path, meta, query } = newRoute; + let newList = [...list]; + let index = newList.findIndex(item => item.name === name); + if (index >= 0) { + newList[index] = { name, path, meta, query }; + } else newList.push({ name, path, meta, query }); + return newList; +}; +export const routeEqual = (route1, route2) => { + return route1.name === route2.name; +}; +export const getRouteTitleHandled = route => { + let router = { + ...route + }; + let meta = { + ...route.meta + }; + let title = ''; + if (meta.title) { + if (typeof meta.title === 'function') { + meta.__titleIsFunction__ = true; + title = meta.title(router); + } else title = meta.title; + } + meta.title = title; + router.meta = meta; + return router; +}; +/** + * @param {Number} times 回调函数需要执行的次数 + * @param {Function} callback 回调函数 + */ +export const doCustomTimes = (times, callback) => { + let i = -1; + while (++i < times) { + callback(i); + } +}; +export const showTitle = (item, vm) => { + let { title, __titleIsFunction__ } = item.meta; + if (!title) return; + if (useI18n) { + if (title.includes('{{') && title.includes('}}') && useI18n) { + title = title.replace(/({{[\s\S]+?}})/, (m, str) => + str.replace(/{{([\s\S]*)}}/, (m, _) => vm.$t(_.trim())) + ); + } else if (__titleIsFunction__) title = item.meta.title; + else title = vm.$t(item.name); + } else title = (item.meta && item.meta.title) || item.name; + return title; +}; +/** + * @description 根据当前跳转的路由设置显示在浏览器标签的title + * @param {Object} routeItem 路由对象 + * @param {Object} vm Vue实例 + */ +export const setTitle = (routeItem, vm) => { + const handledRoute = getRouteTitleHandled(routeItem); + const pageTitle = showTitle(handledRoute, vm); + const resTitle = pageTitle ? `${pageTitle} - ${title}` : title; + window.document.title = resTitle; +}; + +export const findNodeUpper = (ele, tag) => { + if (ele.parentNode) { + if (ele.parentNode.tagName === tag.toUpperCase()) { + return ele.parentNode; + } else { + return findNodeUpper(ele.parentNode, tag); + } + } +}; + +export const findNodeUpperByClasses = (ele, classes) => { + let parentNode = ele.parentNode; + if (parentNode) { + let classList = parentNode.classList; + if ( + classList && + classes.every(className => classList.contains(className)) + ) { + return parentNode; + } else { + return findNodeUpperByClasses(parentNode, classes); + } + } +}; + +export const findNodeDownward = (ele, tag) => { + const tagName = tag.toUpperCase(); + if (ele.childNodes.length) { + let i = -1; + let len = ele.childNodes.length; + while (++i < len) { + let child = ele.childNodes[i]; + if (child.tagName === tagName) return child; + else return findNodeDownward(child, tag); + } + } +}; diff --git a/smart_admin_v1/smart-admin-web/src/lib/printPlugs.js b/smart_admin_v1/smart-admin-web/src/lib/printPlugs.js new file mode 100644 index 00000000..9c4295dd --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/lib/printPlugs.js @@ -0,0 +1,133 @@ +// 打印类属性、方法定义 +/* eslint-disable */ +//第二个参数表明是否要关闭当前窗口 +const Print = function(dom, close, options) { + if (!(this instanceof Print)) return new Print(dom, close, options); + + this.options = this.extend( + { + noPrint: '.no-print' + }, + options + ); + + if (typeof dom === 'string') { + this.dom = document.querySelector(dom); + } else { + this.dom = dom; + } + + this.init(close); +}; +Print.prototype = { + init: function(close) { + var content = this.getStyle() + this.getHtml(); + this.writeIframe(content, close); + }, + extend: function(obj, obj2) { + for (var k in obj2) { + obj[k] = obj2[k]; + } + return obj; + }, + + getStyle: function() { + var str = '', + styles = document.querySelectorAll('style,link'); + for (var i = 0; i < styles.length; i++) { + str += styles[i].outerHTML; + } + str += + ''; + + return str; + }, + + getHtml: function() { + var inputs = document.querySelectorAll('input'); + var textareas = document.querySelectorAll('textarea'); + var selects = document.querySelectorAll('select'); + + for (var k in inputs) { + if (inputs[k].type == 'checkbox' || inputs[k].type == 'radio') { + if (inputs[k].checked == true) { + inputs[k].setAttribute('checked', 'checked'); + } else { + inputs[k].removeAttribute('checked'); + } + } else if (inputs[k].type == 'text') { + inputs[k].setAttribute('value', inputs[k].value); + } + } + + for (var k2 in textareas) { + if (textareas[k2].type == 'textarea') { + textareas[k2].innerHTML = textareas[k2].value; + } + } + + for (var k3 in selects) { + if (selects[k3].type == 'select-one') { + var child = selects[k3].children; + for (var i in child) { + if (child[i].tagName == 'OPTION') { + if (child[i].selected == true) { + child[i].setAttribute('selected', 'selected'); + } else { + child[i].removeAttribute('selected'); + } + } + } + } + } + return this.dom.outerHTML; + }, + + writeIframe: function(content, close) { + var w, + doc, + iframe = document.createElement('iframe'), + f = document.body.appendChild(iframe); + iframe.id = 'myIframe'; + iframe.style = 'position:absolute;'; + + w = f.contentWindow || f.contentDocument; + doc = f.contentDocument || f.contentWindow.document; + doc.open(); + doc.write(content); + doc.close(); + this.toPrint(w, close); + setTimeout(function() { + document.body.removeChild(iframe); + }, 500); + }, + + toPrint: function(frameWindow, close) { + try { + setTimeout(function() { + frameWindow.focus(); + try { + if (!frameWindow.document.execCommand('print', false, null)) { + frameWindow.print(); + } + } catch (e) { + frameWindow.print(); + } + frameWindow.close(); + if (close) { + window.close(); + } + }, 500); + } catch (err) { + console.log('err', err); + } + } +}; +const MyPlugin = {}; +MyPlugin.install = function(Vue, options) { + // 4. 添加实例方法 + Vue.prototype.$print = Print; +}; +export default MyPlugin; diff --git a/smart_admin_v1/smart-admin-web/src/lib/render-dom.js b/smart_admin_v1/smart-admin-web/src/lib/render-dom.js new file mode 100644 index 00000000..1cad207e --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/lib/render-dom.js @@ -0,0 +1,10 @@ +export default { + name: 'RenderDom', + functional: true, + props: { + render: Function + }, + render: (h, ctx) => { + return ctx.props.render(h); + } +}; diff --git a/smart_admin_v1/smart-admin-web/src/lib/table-action.js b/smart_admin_v1/smart-admin-web/src/lib/table-action.js new file mode 100644 index 00000000..f9a541fc --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/lib/table-action.js @@ -0,0 +1,84 @@ +// 处理table操作按钮 +const tableAction = (h, array) => { + let btnArray = []; + let btnMore = []; + array.map((item, index) => { + if (index < 2) { + let btn = h( + 'a', + { + props: { + type: !index ? 'primary' : 'info', + size: 'small', + to: item.to ? item.to : '', + target: item.target ? item.target : '_self', + ghost: true + }, + style: { + marginLeft: '5px' + }, + directives: item.directives, + on: { + click: item.action + } + }, + item.title + ); + btnArray.push(btn); + } else { + btnMore.push( + h( + 'DropdownItem', + { + nativeOn: { + click: item.action + } + }, + item.title + ) + ); + } + }); + let dropdown = h( + 'Dropdown', + { + props: { + transfer: true + } + }, + [ + h( + 'a', + { + props: { + type: 'default', + size: 'small' + }, + style: { + marginLeft: '5px' + } + }, + [ + h('span', '更多'), + h('Icon', { + props: { + type: 'ios-arrow-down' + } + }) + ] + ), + h( + 'DropdownMenu', + { + slot: 'list' + }, + btnMore + ) + ] + ); + if (array.length > 2) { + btnArray.push(dropdown); + } + return btnArray; +}; +export default tableAction; diff --git a/smart_admin_v1/smart-admin-web/src/lib/util.js b/smart_admin_v1/smart-admin-web/src/lib/util.js new file mode 100644 index 00000000..6a3845b0 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/lib/util.js @@ -0,0 +1,515 @@ +import moment from 'moment'; +/** + * @param {String} url + * @description 从URL中解析参数 + */ +export const getParams = url => { + const keyValueArr = url.split('?')[1].split('&'); + let paramObj = {}; + keyValueArr.forEach(item => { + const keyValue = item.split('='); + paramObj[keyValue[0]] = keyValue[1]; + }); + return paramObj; +}; + +/** + * @param {Any} obj + * @description 获取数据类型 + */ +export const getType = obj => { + return {}.toString + .call(obj) + .match(/\s([a-zA-Z]+)/)[1] + .toLowerCase(); +}; +// 日期格式 +export const dateFormat = { + YMD: 'YMD', + YMDHM: 'YMDHM', + YMDHMS: 'YMDHMS' +}; +export const forEach = (arr, fn) => { + if (!arr.length || !fn) return; + let i = -1; + let len = arr.length; + while (++i < len) { + let item = arr[i]; + fn(item, i, arr); + } +}; + +/** + * @param {Array} arr1 + * @param {Array} arr2 + * @description 得到两个数组的交集, 两个数组的元素为数值或字符串 + */ +export const getIntersection = (arr1, arr2) => { + let len = Math.min(arr1.length, arr2.length); + let i = -1; + let res = []; + while (++i < len) { + const item = arr2[i]; + if (arr1.indexOf(item) > -1) res.push(item); + } + return res; +}; + +/** + * @param {Array} arr1 + * @param {Array} arr2 + * @description 得到两个数组的并集, 两个数组的元素为数值或字符串 + */ +export const getUnion = (arr1, arr2) => { + return Array.from(new Set([...arr1, ...arr2])); +}; + +/** + * @param {Array} target 目标数组 + * @param {Array} arr 需要查询的数组 + * @description 判断要查询的数组是否至少有一个元素包含在目标数组中 + */ +export const hasOneOf = (targetarr, arr) => { + return targetarr.some(_ => arr.indexOf(_) > -1); +}; + +/** + * @param {String|Number} value 要验证的字符串或数值 + * @param {*} validList 用来验证的列表 + */ +export function oneOf (value, validList) { + for (let i = 0; i < validList.length; i++) { + if (value === validList[i]) { + return true; + } + } + return false; +} + +/** + * @param {Number} timeStamp 判断时间戳格式是否是毫秒 + * @returns {Boolean} + */ +const isMillisecond = timeStamp => { + const timeStr = String(timeStamp); + return timeStr.length > 10; +}; + +/** + * @param {Number} timeStamp 传入的时间戳 + * @param {Number} currentTime 当前时间时间戳 + * @returns {Boolean} 传入的时间戳是否早于当前时间戳 + */ +const isEarly = (timeStamp, currentTime) => { + return timeStamp < currentTime; +}; + +/** + * @param {Number} num 数值 + * @returns {String} 处理后的字符串 + * @description 如果传入的数值小于10,即位数只有1位,则在前面补充0 + */ +const getHandledValue = num => { + return num < 10 ? '0' + num : num; +}; + +/** + * @param {Number} timeStamp 传入的时间戳 + * @param {Number} startType 要返回的时间字符串的格式类型,传入'year'则返回年开头的完整时间 + */ +const getDate = (timeStamp, startType) => { + const d = new Date(timeStamp * 1000); + const year = d.getFullYear(); + const month = getHandledValue(d.getMonth() + 1); + const date = getHandledValue(d.getDate()); + const hours = getHandledValue(d.getHours()); + const minutes = getHandledValue(d.getMinutes()); + const second = getHandledValue(d.getSeconds()); + let resStr = ''; + if (startType === 'year') { + resStr = + year + + '-' + + month + + '-' + + date + + ' ' + + hours + + ':' + + minutes + + ':' + + second; + } + else resStr = month + '-' + date + ' ' + hours + ':' + minutes; + return resStr; +}; + +/** + * @param {String|Number} timeStamp 时间戳 + * @returns {String} 相对时间字符串 + */ +export const getRelativeTime = timeStamp => { + // 判断当前传入的时间戳是秒格式还是毫秒 + const IS_MILLISECOND = isMillisecond(timeStamp); + // 如果是毫秒格式则转为秒格式 + if (IS_MILLISECOND) Math.floor((timeStamp /= 1000)); + // 传入的时间戳可以是数值或字符串类型,这里统一转为数值类型 + timeStamp = Number(timeStamp); + // 获取当前时间时间戳 + const currentTime = Math.floor(Date.parse(new Date()) / 1000); + // 判断传入时间戳是否早于当前时间戳 + const IS_EARLY = isEarly(timeStamp, currentTime); + // 获取两个时间戳差值 + let diff = currentTime - timeStamp; + // 如果IS_EARLY为false则差值取反 + if (!IS_EARLY) diff = -diff; + let resStr = ''; + const dirStr = IS_EARLY ? '前' : '后'; + // 少于等于59秒 + if (diff <= 59) resStr = diff + '秒' + dirStr; + // 多于59秒,少于等于59分钟59秒 + else if (diff > 59 && diff <= 3599) { resStr = Math.floor(diff / 60) + '分钟' + dirStr; } + // 多于59分钟59秒,少于等于23小时59分钟59秒 + else if (diff > 3599 && diff <= 86399) { resStr = Math.floor(diff / 3600) + '小时' + dirStr; } + // 多于23小时59分钟59秒,少于等于29天59分钟59秒 + else if (diff > 86399 && diff <= 2623859) { resStr = Math.floor(diff / 86400) + '天' + dirStr; } + // 多于29天59分钟59秒,少于364天23小时59分钟59秒,且传入的时间戳早于当前 + else if (diff > 2623859 && diff <= 31567859 && IS_EARLY) { resStr = getDate(timeStamp); } + else resStr = getDate(timeStamp, 'year'); + return resStr; +}; + +/** + * @returns {String} 当前浏览器名称 + */ +export const getExplorer = () => { + const ua = window.navigator.userAgent; + const isExplorer = exp => { + return ua.indexOf(exp) > -1; + }; + if (isExplorer('MSIE')) return 'IE'; + else if (isExplorer('Firefox')) return 'Firefox'; + else if (isExplorer('Chrome')) return 'Chrome'; + else if (isExplorer('Opera')) return 'Opera'; + else if (isExplorer('Safari')) return 'Safari'; +}; + +/** + * @description 绑定事件 on(element, event, handler) + */ +export const on = (function () { + if (document.addEventListener) { + return function (element, event, handler) { + if (element && event && handler) { + element.addEventListener(event, handler, false); + } + }; + } else { + return function (element, event, handler) { + if (element && event && handler) { + element.attachEvent('on' + event, handler); + } + }; + } +})(); + +/** + * @description 解绑事件 off(element, event, handler) + */ +export const off = (function () { + if (document.removeEventListener) { + return function (element, event, handler) { + if (element && event) { + element.removeEventListener(event, handler, false); + } + }; + } else { + return function (element, event, handler) { + if (element && event) { + element.detachEvent('on' + event, handler); + } + }; + } +})(); + +/** + * 判断一个对象是否存在key,如果传入第二个参数key,则是判断这个obj对象是否存在key这个属性 + * 如果没有传入key这个参数,则判断obj对象是否有键值对 + */ +export const hasKey = (obj, key) => { + if (key) return key in obj; + else { + let keysArr = Object.keys(obj); + return keysArr.length; + } +}; + +/** + * @param {*} obj1 对象 + * @param {*} obj2 对象 + * @description 判断两个对象是否相等,这两个对象的值只能是数字或字符串 + */ +export const objEqual = (obj1, obj2) => { + const keysArr1 = Object.keys(obj1); + const keysArr2 = Object.keys(obj2); + if (keysArr1.length !== keysArr2.length) return false; + else if (keysArr1.length === 0 && keysArr2.length === 0) return true; + /* eslint-disable-next-line */ else { return !keysArr1.some(key => obj1[key] != obj2[key]); } +}; + +// 相关工具类 +export const utils = { + /** + * @description table实现反选 + * @param {Object} vm Vue实例 + * @param {Array} tableSelectDate 选中的数据 + * @param {Array} allData 所有数据 + * @param {Array} key 数据中的唯一值 + */ + reverseSelect (vm, tableSelectDate, allData, key) { + let copyMess = JSON.parse(JSON.stringify(tableSelectDate)); + // 流程:先全部选中->再部分选中 + vm.handleSelectAll(false); + // 选中的idList + let idList = copyMess.map(item => item[key]); + console.log(idList); + for (let item of allData) { + if (idList.every(id => id !== item.id)) { + vm.$set(item, '_checked', true); + tableSelectDate.push(item); + } else { + vm.$set(item, '_checked', false); + } + } + }, + // 校验字符串是否相同 合同使用 + contrastString (originStr, changeStr) { + let origin = originStr + .replace(/\s*/g, '') + .replace(/"/g, '\'') + .replace(/ /g, '') + .replace(/disabled=\/'\/'/g, 'disabled'); + let change = changeStr + .replace(/\s*/g, '') + .replace(/"/g, '\'') + .replace(/ /g, '') + .replace(/disabled=\/'\/'/g, 'disabled'); + return origin === change; + }, + // 获取当前日期getDateStr(0)、前几天getDateStr(-10)、后几天getDateStr(20) + getDateStr (AddDayCount, format) { + let date = new Date(); + // 获取AddDayCount天后的日期 + date.setDate(date.getDate() + AddDayCount); + return this.getDate(date, format); + }, + getDate (date, format) { + let year = date.getFullYear(); + // day获取当前几号,不足10补0 + let day = date.getDate() > 9 ? date.getDate() : '0' + date.getDate(); + // month获取当前月份的日期,不足10补0 + let month = + date.getMonth() + 1 > 9 + ? date.getMonth() + 1 + : '0' + (date.getMonth() + 1); + // h获取当前小时,不足10补0 + let h = date.getHours() > 9 ? date.getHours() : '0' + date.getHours(); + // s获取当前分钟,不足10补0 + let m = date.getMinutes() > 9 ? date.getMinutes() : '0' + date.getMinutes(); + // s获取当前秒数,不足10补0 + let s = date.getSeconds() > 9 ? date.getSeconds() : '0' + date.getSeconds(); + let resultDate = ''; + if (format === dateFormat.YMD) { + resultDate = year + '-' + month + '-' + day; + } + if (format === dateFormat.YMDHM) { + resultDate = year + '-' + month + '-' + day + ' ' + h + ':' + m; + } + if (format === dateFormat.YMDHMS) { + resultDate = year + '-' + month + '-' + day + ' ' + h + ':' + m + ':' + s; + } + return resultDate; + }, + // 获取周一和周日日期,返回两种格式时间 + getDateWeek () { + let now = new Date(); + let nowTime = now.getTime(); + let day = now.getDay(); + let oneDayLong = 1000 * 60 * 60 * 24; + let MondayTime = nowTime - (day - 1) * oneDayLong; + let SundayTime = nowTime + (7 - day) * oneDayLong; + let monday = new Date(MondayTime); + let sunday = new Date(SundayTime); + return { + // first: this.getDateAll(monday), + // last: this.getDateAll(sunday), + firstDate: monday, + lastDate: sunday + }; + }, + // 获取月初与月末日期,返回两种时间格式 + getDateMonth () { + let dateFirter = new Date(); + let dateLast = new Date(); + dateFirter.setDate(1); + + let currentMonth = dateLast.getMonth(); + let nextMonth = ++currentMonth; + let nextMonthFirstDay = new Date(dateLast.getFullYear(), nextMonth, 1); + let oneDay = 1000 * 60 * 60 * 24; + dateLast = new Date(nextMonthFirstDay - oneDay); + + return { + // first: this.getDateAll(dateFirter), + // last: this.getDateAll(dateLast), + firstDate: dateFirter, + lastDate: dateLast + }; + }, + // 计算天数 + getDayBetweenDate (date) { + date = this.getDate(new Date(date), 'YMD'); + let startTime = Date.parse(new Date(date)); // IE支持“yyyy/MM/dd”格式 + let endTime = Date.parse(this.getDate(new Date(), 'YMD')); + let day = parseInt((endTime - startTime) / (1000 * 60 * 60 * 24)); + return day; + }, + getDateIntervalYear (firstDate, secondDate) { + if (!firstDate || !secondDate) { + return 0; + } + let first = new Date(firstDate); + let second = new Date(secondDate); + let firstYear = first.getFullYear(); + let secondYear = second.getFullYear(); + let intervalYear = secondYear - firstYear; + return intervalYear < 0 ? 0 : intervalYear; + }, + getDateIntervalYearFixed2 (firstDate, secondDate) { + if (!firstDate || !secondDate) { + return 0; + } + // 格式化时间 + let startDate = new Date(this.getDate(new Date(firstDate), 'YMD')); + let endDate = new Date(this.getDate(new Date(secondDate), 'YMD')); + // 得到毫秒值 + let startTime = Date.parse(startDate); + let endTime = Date.parse(endDate); + // 得到差了多少天 + let day = parseInt((endTime - startTime) / (1000 * 60 * 60 * 24)); + if (day <= 0) { + return 0; + } + // 得到差的多少年 保留两位小数 + let resultYear = parseFloat((day / (30 * 12)).toFixed(2)); + return resultYear; + }, + // 数字转化为中文大写 + // 代码如下所示: + convertCurrency (money) { + // 汉字的数字 + let cnNums = ['零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖']; + // 基本单位 + let cnIntRadice = ['', '拾', '佰', '仟']; + // 对应整数部分扩展单位 + let cnIntUnits = ['', '万', '亿', '兆']; + // 对应小数部分单位 + let cnDecUnits = ['角', '分', '毫', '厘']; + // 整数金额时后面跟的字符 + let cnInteger = '整'; + // 整型完以后的单位 + let cnIntLast = '元'; + // 最大处理的数字 + let maxNum = 999999999999999.9999; + // 金额整数部分 + let integerNum; + // 金额小数部分 + let decimalNum; + // 输出的中文金额字符串 + let chineseStr = ''; + // 分离金额后用的数组,预定义 + let parts; + if (money === '') { + return ''; + } + money = parseFloat(money); + if (money >= maxNum) { + // 超出最大处理数字 + return ''; + } + if (money === 0) { + chineseStr = cnNums[0] + cnIntLast + cnInteger; + return chineseStr; + } + // 转换为字符串 + money = money.toString(); + if (money.indexOf('.') === -1) { + integerNum = money; + decimalNum = ''; + } else { + parts = money.split('.'); + integerNum = parts[0]; + decimalNum = parts[1].substr(0, 4); + } + // 获取整型部分转换 + if (parseInt(integerNum, 10) > 0) { + let zeroCount = 0; + let IntLen = integerNum.length; + for (let i = 0; i < IntLen; i++) { + let n = integerNum.substr(i, 1); + let p = IntLen - i - 1; + let q = p / 4; + let m = p % 4; + if (n === '0') { + zeroCount++; + } else { + if (zeroCount > 0) { + chineseStr += cnNums[0]; + } + // 归零 + zeroCount = 0; + chineseStr += cnNums[parseInt(n)] + cnIntRadice[m]; + } + if (m === 0 && zeroCount < 4) { + chineseStr += cnIntUnits[q]; + } + } + chineseStr += cnIntLast; + } + // 小数部分 + if (decimalNum !== '') { + let decLen = decimalNum.length; + for (let i = 0; i < decLen; i++) { + let n = decimalNum.substr(i, 1); + if (n !== '0') { + chineseStr += cnNums[Number(n)] + cnDecUnits[i]; + } + } + } + if (chineseStr === '') { + chineseStr += cnNums[0] + cnIntLast + cnInteger; + } else if (decimalNum === '') { + chineseStr += cnInteger; + } + return chineseStr; + } +}; + + +export const dateTimeRangeConvert = (timerange) => { + // timerange + let arr = []; + if (timerange[0] === '') { + arr.push(null); + } else { + arr.push(moment(timerange[0]).format("YYYY-MM-DD 00:00:00")); + } + + if (timerange[1] === '') { + arr.push(null); + } else { + arr.push(moment(timerange[1]).format("YYYY-MM-DD 23:59:59")); + } + return arr; +} + diff --git a/smart_admin_v1/smart-admin-web/src/locale/index.js b/smart_admin_v1/smart-admin-web/src/locale/index.js new file mode 100644 index 00000000..5509260c --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/locale/index.js @@ -0,0 +1,37 @@ +import Vue from 'vue'; +import VueI18n from 'vue-i18n'; +import { localRead } from '@/lib/local'; +import customZhCn from './lang/zh-CN'; +import customZhTw from './lang/zh-TW'; +import customEnUs from './lang/en-US'; +import zhCnLocale from 'view-design/src/locale/lang/zh-CN'; +import enUsLocale from 'view-design/src/locale/lang/en-US'; +import zhTwLocale from 'view-design/src/locale/lang/zh-TW'; + +Vue.use(VueI18n); + +// 自动根据浏览器系统语言设置语言 +const navLang = navigator.language; +const localLang = (navLang === 'zh-CN' || navLang === 'en-US') ? navLang : false; +let lang = localLang || localRead('local') || 'zh-CN'; + +Vue.config.lang = lang; + +// vue-i18n 6.x+写法 +Vue.locale = () => { }; +const messages = { + 'zh-CN': Object.assign(zhCnLocale, customZhCn), + 'zh-TW': Object.assign(zhTwLocale, customZhTw), + 'en-US': Object.assign(enUsLocale, customEnUs) +}; +const i18n = new VueI18n({ + locale: lang, + messages +}); + +export default i18n; + +// vue-i18n 5.x写法 +// Vue.locale('zh-CN', Object.assign(zhCnLocale, customZhCn)) +// Vue.locale('en-US', Object.assign(zhTwLocale, customZhTw)) +// Vue.locale('zh-TW', Object.assign(enUsLocale, customEnUs)) diff --git a/smart_admin_v1/smart-admin-web/src/locale/lang/en-US.js b/smart_admin_v1/smart-admin-web/src/locale/lang/en-US.js new file mode 100644 index 00000000..dc20d8f6 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/locale/lang/en-US.js @@ -0,0 +1,46 @@ +export default { + home: 'Home', + login: 'Login', + components: 'Components', + count_to_page: 'Count-to', + tables_page: 'Table', + split_pane_page: 'Split-pane', + markdown_page: 'Markdown-editor', + editor_page: 'Rich-Text-Editor', + icons_page: 'Custom-icon', + img_cropper_page: 'Image-editor', + update: 'Update', + doc: 'Document', + join_page: 'QQ Group', + update_table_page: 'Update .CSV', + update_paste_page: 'Paste Table Data', + multilevel: 'multilevel', + directive_page: 'Directive', + level_1: 'Level-1', + level_2: 'Level-2', + level_2_1: 'Level-2-1', + level_2_3: 'Level-2-3', + level_2_2: 'Level-2-2', + level_2_2_1: 'Level-2-2-1', + level_2_2_2: 'Level-2-2-2', + excel: 'Excel', + 'upload-excel': 'Upload Excel', + 'export-excel': 'Export Excel', + tools_methods_page: 'Tools Methods', + drag_list_page: 'Drag-list', + i18n_page: 'Internationalization', + modalTitle: 'Modal Title', + content: 'This is the modal box content.', + buttonText: 'Show Modal', + 'i18n-tip': 'Note: Only this page is multi-language, other pages do not add language content to the multi-language package.', + error_store_page: 'Error Collection', + error_logger_page: 'Error Logger', + query: 'Query', + params: 'Params', + cropper_page: 'Cropper', + message_page: 'Message Center', + tree_table_page: 'Tree Table', + org_tree_page: 'Org Tree', + drag_drawer_page: 'Draggable Drawer', + tree_select_page: 'Tree Selector' +} diff --git a/smart_admin_v1/smart-admin-web/src/locale/lang/zh-CN.js b/smart_admin_v1/smart-admin-web/src/locale/lang/zh-CN.js new file mode 100644 index 00000000..9e402562 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/locale/lang/zh-CN.js @@ -0,0 +1,46 @@ +export default { + home: '首页', + login: '登录', + components: '组件', + count_to_page: '数字渐变', + tables_page: '多功能表格', + split_pane_page: '分割窗口', + markdown_page: 'Markdown编辑器', + editor_page: '富文本编辑器', + icons_page: '自定义图标', + img_cropper_page: '图片编辑器', + update: '上传数据', + join_page: 'QQ群', + doc: '文档', + update_table_page: '上传CSV文件', + update_paste_page: '粘贴表格数据', + multilevel: '多级菜单', + directive_page: '指令', + level_1: 'Level-1', + level_2: 'Level-2', + level_2_1: 'Level-2-1', + level_2_3: 'Level-2-3', + level_2_2: 'Level-2-2', + level_2_2_1: 'Level-2-2-1', + level_2_2_2: 'Level-2-2-2', + excel: 'Excel', + 'upload-excel': '上传excel', + 'export-excel': '导出excel', + tools_methods_page: '工具函数', + drag_list_page: '拖拽列表', + i18n_page: '多语言', + modalTitle: '模态框题目', + content: '这是模态框内容', + buttonText: '显示模态框', + 'i18n-tip': '注:仅此页做了多语言,其他页面没有在多语言包中添加语言内容', + error_store_page: '错误收集', + error_logger_page: '错误日志', + query: '带参路由', + params: '动态路由', + cropper_page: '图片裁剪', + message_page: '消息中心', + tree_table_page: '树状表格', + org_tree_page: '组织结构树', + drag_drawer_page: '可拖动抽屉', + tree_select_page: '树状下拉选择器' +} diff --git a/smart_admin_v1/smart-admin-web/src/locale/lang/zh-TW.js b/smart_admin_v1/smart-admin-web/src/locale/lang/zh-TW.js new file mode 100644 index 00000000..ce51c428 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/locale/lang/zh-TW.js @@ -0,0 +1,46 @@ +export default { + home: '首頁', + login: '登錄', + components: '组件', + count_to_page: '数字渐变', + tables_page: '多功能表格', + split_pane_page: '分割窗口', + markdown_page: 'Markdown編輯器', + editor_page: '富文本編輯器', + icons_page: '自定義圖標', + img_cropper_page: '圖片編輯器', + update: '上傳數據', + join_page: 'QQ群', + doc: '文檔', + update_table_page: '上傳CSV文件', + update_paste_page: '粘貼表格數據', + multilevel: '多级菜单', + directive_page: '指令', + level_1: 'Level-1', + level_2: 'Level-2', + level_2_1: 'Level-2-1', + level_2_3: 'Level-2-3', + level_2_2: 'Level-2-2', + level_2_2_1: 'Level-2-2-1', + level_2_2_2: 'Level-2-2-2', + excel: 'Excel', + 'upload-excel': '上傳excel', + 'export-excel': '導出excel', + tools_methods_page: '工具函數', + drag_list_page: '拖拽列表', + i18n_page: '多語言', + modalTitle: '模態框題目', + content: '這是模態框內容', + buttonText: '顯示模態框', + 'i18n-tip': '注:僅此頁做了多語言,其他頁面沒有在多語言包中添加語言內容', + error_store_page: '錯誤收集', + error_logger_page: '錯誤日誌', + query: '帶參路由', + params: '動態路由', + cropper_page: '圖片裁剪', + message_page: '消息中心', + tree_table_page: '樹狀表格', + org_tree_page: '組織結構樹', + drag_drawer_page: '可拖動抽屜', + tree_select_page: '樹狀下拉選擇器' +} diff --git a/smart_admin_v1/smart-admin-web/src/main.js b/smart_admin_v1/smart-admin-web/src/main.js new file mode 100644 index 00000000..d213c7f2 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/main.js @@ -0,0 +1,80 @@ +// The Vue build version to load with the `import` command +// (runtime-only or standalone) has been set in webpack.base.conf with an alias. +import Vue from 'vue'; +import App from './App'; +import router from './router'; +import store from './store'; +import ViewUI from 'view-design'; +import i18n from '@/locale'; +import config from '@/config'; +import importDirective from '@/directives'; +import JsonViewer from 'vue-json-viewer'; +import _ from 'lodash'; +// import { directive as clickOutside } from 'v-click-outside-x'; +import * as vClickOutside from 'v-click-outside-x'; +import installPlugin from '@/plugins'; +import './themes/index.less'; +import '@/assets/icons/iconfont.css'; +import 'slick-carousel/slick/slick.css'; +import { Decimal } from 'decimal.js'; +// 枚举管理 +import Enum from 'vue-enum'; +import enumInfo from '@/constants'; +// 处理table操作按钮 +import tableAction from './lib/table-action'; + +// 时间 +import moment from 'moment'; + +import 'e-guide-layer/dist/e-guide-layer.css' +import eGuideLayer from 'e-guide-layer' + +Vue.use(eGuideLayer); + +Vue.prototype.$tableAction = tableAction; +Vue.use(Enum, { enumInfo }); +Vue.use(ViewUI, { + i18n: (key, value) => i18n.t(key, value) +}); +Vue.use(JsonViewer); +Vue.use(vClickOutside); + + +Number.prototype.toFixed = function (length) { + let x = new Decimal(this); + return x.toFixed(length); +}; + +//时间处理 +moment.locale('zh-cn'); //设置语言 或 moment.lang('zh-cn'); +Vue.prototype.$moment = moment;//赋值使用 + + +/** + * @description 注册admin内置插件 + */ +installPlugin(Vue); +/** + * @description 生产环境关掉提示 + */ +Vue.config.productionTip = false; +/** + * @description 全局注册应用配置 + */ +Vue.prototype.$config = config; +/** + * 注册指令 + */ +importDirective(Vue); +// Vue.directive('clickOutside', clickOutside); + +window._ = _; + +/* eslint-disable no-new */ +new Vue({ + el: '#app', + router, + i18n, + store, + render: h => h(App) +}); diff --git a/smart_admin_v1/smart-admin-web/src/main.less b/smart_admin_v1/smart-admin-web/src/main.less new file mode 100644 index 00000000..72a1a030 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/main.less @@ -0,0 +1,37 @@ +.warp-card { + margin-top: 10px; + &:first-child { + margin-top: 0; + } + .action-show { + .ivu-btn { + margin: 0 3px; + } + } + .action-hide { + .ivu-btn { + margin: 0 3px; + span { + //display: none; + } + } + } + .add-form { + padding-top: 15px; + } +} +.areaSelect .areaBox .areaArrow.active { + border-color: #689df6 !important; +} + +.areaSelect .areaBox .areaInput:hover, .areaSelect .areaBox .areaInput:focus { + border-color: #689df6 !important; +} + +.areaSelect .areaBox .areaModal ul li.active[data-v-16a01167] { + background: #fff !important; + color: #689df6 !important; +} +.main{ + .side-menu-wrapper .ivu-menu-dark .ivu-menu .ivu-menu-submenu-has-parent-submenu{ padding-left: 41px; } +} diff --git a/smart_admin_v1/smart-admin-web/src/plugins/error-store/index.js b/smart_admin_v1/smart-admin-web/src/plugins/error-store/index.js new file mode 100644 index 00000000..c8b35b8f --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/plugins/error-store/index.js @@ -0,0 +1,4 @@ +import store from '@/store'; +export default { + install(Vue, options) {} +}; diff --git a/smart_admin_v1/smart-admin-web/src/plugins/index.js b/smart_admin_v1/smart-admin-web/src/plugins/index.js new file mode 100644 index 00000000..1a1c1870 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/plugins/index.js @@ -0,0 +1,12 @@ +import config from '@/config'; +const { plugin } = config; + +export default Vue => { + for (let name in plugin) { + const value = plugin[name]; + Vue.use( + require(`./${name}`).default, + typeof value === 'object' ? value : undefined + ); + } +}; diff --git a/smart_admin_v1/smart-admin-web/src/router/before-close.js b/smart_admin_v1/smart-admin-web/src/router/before-close.js new file mode 100644 index 00000000..0d4d61db --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/router/before-close.js @@ -0,0 +1,17 @@ +import { Modal } from 'view-design'; + +const beforeClose = { + before_close_normal: resolve => { + Modal.confirm({ + title: '确定要关闭这一页吗', + onOk: () => { + resolve(true); + }, + onCancel: () => { + resolve(false); + } + }); + } +}; + +export default beforeClose; diff --git a/smart_admin_v1/smart-admin-web/src/router/index.js b/smart_admin_v1/smart-admin-web/src/router/index.js new file mode 100644 index 00000000..c86b14ee --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/router/index.js @@ -0,0 +1,218 @@ +import Vue from 'vue'; +import Router from 'vue-router'; +import { routers } from './routers'; +import store from '@/store'; +import ViewUI from 'view-design'; +import cookie from '@/lib/cookie'; +import { localRead } from '@/lib/local'; +import { setTitle } from '@/lib/menu-func'; +import config from '@/config'; + +const { homeName } = config; + +Vue.use(Router); +const router = new Router({ + // routes: routers, + routes: buildRouters(routers) + // mode: 'history' +}); +const LOGIN_PAGE_NAME = 'login'; + +// 防止用户刷新丢失登录信息 +if ( + Object.keys(store.state.user.userLoginInfo).length === 0 && + localRead('userLoginInfo') +) { + store.commit('setUserLoginInfo', JSON.parse(localRead('userLoginInfo'))); +} +// 解决路由跳转相同的地址报错 +const originalPush = Router.prototype.push; +Router.prototype.push = function (location) { + try { + return originalPush.call(this, location).catch(err => err); + } catch (error) { + // TODO zhuoda sentry + console.error(error); + } +}; + +// 关于当前页面 +Router.prototype.closeCurrentPage = function () { + let current = this.history.current; + store.commit('closeTag', current); + store.commit('deleteKeepAliveIncludes', current.name); +}; + +// 关闭当前页面然后跳转到指定页面 +Router.prototype.closeCurrentPageAndPush = function (pushParam) { + let current = this.history.current; + store.commit('closeTagNotPushNextRoute', current); + store.commit('deleteKeepAliveIncludes', current.name); + this.push(pushParam); +}; +let storeSelf = store; +router.beforeEach((to, from, next) => { + ViewUI.LoadingBar.start(); + const token = cookie.getToken(); + if (!token && to.name !== LOGIN_PAGE_NAME) { + // 未登录且要跳转的页面不是登录页 + next({ + name: LOGIN_PAGE_NAME // 跳转到登录页 + }); + } else if (!token && to.name === LOGIN_PAGE_NAME) { + // 未登陆且要跳转的页面是登录页 + next(); // 跳转 + } else if (token && to.name === LOGIN_PAGE_NAME) { + // 已登录且要跳转的页面是登录页 + next({ + // 跳转到home页 + name: homeName + }); + setTitle(to, router.app); + ViewUI.LoadingBar.finish(); + window.scrollTo(0, 0); + } else { + // 特殊页面直接放行 + if (to.meta.noValidatePrivilege) { + next(); + return; + } + + //如果是超管,直接放行 + if (store.state.user.userLoginInfo.isSuperMan) { + next(); + return; + } + + // 去掉/之后第一个字母 + let key = to.path.substr(1, 1); + let pathArray = storeSelf.state.user.privilegeRouterPathMap.get(key); + if (!(pathArray && pathArray.indexOf(to.path) >= 0)) { + next({ + name: 'Error401' + }); + } else { + next(); + } + } +}); + +router.afterEach(to => { + setTitle(to, router.app); + ViewUI.LoadingBar.finish(); + window.scrollTo(0, 0); +}); + +function buildRouters (routerArray) { + let lineRouters = []; + for (let routerItem of routerArray) { + //如果是顶层菜单 + if (routerItem.meta.topMenu) { + // for (let children of routerItem.children) { + let lineRouterArray = convertRouterTree2Line(routerItem.children); + lineRouters.push(...lineRouterArray); + // } + } else { + let lineRouterArray = convertRouterTree2Line([routerItem]); + lineRouters.push(...lineRouterArray); + } + } + return lineRouters; +} + +function convertRouterTree2Line (routerArray) { + //一级,比如 人员管理 + let topArray = []; + for (let router1Item of routerArray) { + let level2Array = []; + //二级,比如员工管理 + if (router1Item.children) { + for (let level2Item of router1Item.children) { + + let level2ItemCopy = {}; + for (let property in level2Item) { + if ('children' !== property) { + level2ItemCopy[property] = level2Item[property]; + } + } + + //三级, + if (level2Item.children) { + level2Array.push(...level2Item.children) + } + + level2ItemCopy.children = []; + level2Array.push(level2Item); + } + } + + let newTopRouterItem = {}; + for (let property in router1Item) { + if ('children' !== property) { + newTopRouterItem[property] = router1Item[property]; + } + } + + newTopRouterItem.children = level2Array; + topArray.push(newTopRouterItem); + } + + return topArray; +} + +let tempCheckObj = { + checkRouterNameMap: new Map(), + checkRouterPathMap: new Map() +}; + +function recursionCheckRouter (routerArray) { + for (let routerItem of routerArray) { + if (!routerItem.name) { + console.error('没有配置router name', routerItem); + } else { + let existNameRouter = tempCheckObj.checkRouterNameMap.get( + routerItem.name + ); + if (typeof existNameRouter !== 'undefined') { + console.error('存在相同的router name', routerItem, existNameRouter); + } else { + tempCheckObj.checkRouterNameMap.set(routerItem.name, routerItem); + } + } + + if (!routerItem.path) { + console.error('没有配置router path', routerItem); + } else { + // path必须以 / 开头 + if (routerItem.path !== '*' && routerItem.path.indexOf('/') !== 0) { + console.error('path 没有以/开头 ', routerItem); + } + + let existPathRouter = tempCheckObj.checkRouterPathMap.get( + routerItem.path + ); + if (typeof existPathRouter !== 'undefined') { + console.error('存在相同的router path', routerItem, existPathRouter); + } else { + tempCheckObj.checkRouterPathMap.set(routerItem.path, routerItem); + } + } + + if (routerItem.children) { + recursionCheckRouter(routerItem.children); + } + } +} + +//如果是开发环境,需要检测router的规范性 +if (process.env.NODE_ENV === 'development') { + recursionCheckRouter(routers); + delete tempCheckObj.checkRouterNameMap; + delete tempCheckObj.checkRouterPathMap; +} + +const topMenuArray = routers.filter(e => e.meta.topMenu); +export { topMenuArray }; + +export default router; + diff --git a/smart_admin_v1/smart-admin-web/src/router/module/business/email.js b/smart_admin_v1/smart-admin-web/src/router/module/business/email.js new file mode 100644 index 00000000..55c00de7 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/router/module/business/email.js @@ -0,0 +1,40 @@ +import Main from '@/components/main'; +// 基础设置 +export const emailSetting = [ + { + path: '/email', + name: 'Email', + component: Main, + meta: { + title: '邮件管理', + icon: 'icon iconfont iconyoujianguanli' + }, + children: [ + // 发送email + { + path: '/email/email-list', + name: 'EmailList', + meta: { + title: '邮件管理', + privilege: [ + { title: '查询', name: 'email-query' }, + { title: '新增', name: 'email-add' }, + { title: '编辑', name: 'email-update' }, + { title: '删除', name: 'email-delete' } + ] + }, + component: () => import('@/views/business/email/email-list.vue') + }, + // 发送email + { + path: '/email/send-mail', + name: 'SendMail', + meta: { + title: '发送邮件', + privilege: [{ title: '发送', name: 'email-send' }] + }, + component: () => import('@/views/business/email/send-mail.vue') + } + ] + } +]; diff --git a/smart_admin_v1/smart-admin-web/src/router/module/business/index.js b/smart_admin_v1/smart-admin-web/src/router/module/business/index.js new file mode 100644 index 00000000..cf9ef2e4 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/router/module/business/index.js @@ -0,0 +1,29 @@ + +import Main from '@/components/main'; + +import { peony } from './peony'; +import { emailSetting } from './email'; +import { keepAlive } from './keep-alive'; +import { notice } from './notice'; +import { threeRouter } from './three-router'; + +// 业务 +export const business = [ + { + path: '/business', + name: 'Business', + component: Main, + meta: { + title: '业务功能', + topMenu:true, + icon: 'icon iconfont iconyoujianguanli' + }, + children: [ + ...peony, + ...emailSetting, + ...keepAlive, + ...notice, + ...threeRouter + ] + } +]; diff --git a/smart_admin_v1/smart-admin-web/src/router/module/business/keep-alive.js b/smart_admin_v1/smart-admin-web/src/router/module/business/keep-alive.js new file mode 100644 index 00000000..98c5e044 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/router/module/business/keep-alive.js @@ -0,0 +1,31 @@ +import Main from '@/components/main'; +// 接口文档 +export const keepAlive = [ + { + path: '/keep-alive', + name: 'KeepAlive', + component: Main, + meta: { + title: 'KeepAlive', + icon: 'icon iconfont iconxitongshezhi' + }, + children: [ + { + path: '/keep-alive/content-list', + name: 'KeepAliveContentList', + meta: { + title: 'KeepAlive列表' + }, + component: () => import('@/views/business/keep-alive/content-list.vue') + }, + { + path: '/keep-alive/add-content', + name: 'KeepAliveAddContent', + meta: { + title: 'KeepAlive表单' + }, + component: () => import('@/views/business/keep-alive/add-content.vue') + } + ] + } +]; diff --git a/smart_admin_v1/smart-admin-web/src/router/module/business/notice.js b/smart_admin_v1/smart-admin-web/src/router/module/business/notice.js new file mode 100644 index 00000000..c4ae9550 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/router/module/business/notice.js @@ -0,0 +1,52 @@ +import Main from '@/components/main'; +// 消息管理 +export const notice = [ + { + path: '/notice', + name: 'Notice', + component: Main, + meta: { + title: '消息管理', + icon: 'icon iconfont iconnews' + }, + children: [ + { + path: '/notice/notice-list', + name: 'NoticeList', + meta: { + title: '通知管理', + privilege: [ + { title: '查询', name: 'notice-query' }, + { title: '添加', name: 'notice-add' }, + { title: '修改', name: 'notice-edit' }, + { title: '删除', name: 'notice-delete' }, + { title: '详情', name: 'notice-detail' }, + { title: '发送', name: 'notice-send' } + ] + }, + component: () => import('@/views/business/notice/notice-list.vue') + }, + { + path: '/notice/person-notice', + name: 'PersonNotice', + meta: { + title: '个人消息', + privilege: [ + { title: '查询', name: 'person-notice-query' }, + { title: '详情', name: 'person-notice-detail' } + ] + }, + component: () => import('@/views/business/notice/person-notice.vue') + }, + { + path: '/notice/notice-detail', + name: 'NoticeDetail', + meta: { + title: '消息详情', + hideInMenu:true + }, + component: () => import('@/views/business/notice/notice-detail.vue') + } + ] + } +]; diff --git a/smart_admin_v1/smart-admin-web/src/router/module/business/peony.js b/smart_admin_v1/smart-admin-web/src/router/module/business/peony.js new file mode 100644 index 00000000..aff33eac --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/router/module/business/peony.js @@ -0,0 +1,49 @@ +import Main from '@/components/main'; +// t_peony路由 +export const peony = [ + { + path: '/peony', + name: 'Peony', + component: Main, + meta: { + title: '牡丹管理', + icon: 'icon iconfont iconyoujianguanli' + }, + children: [ + // 牡丹花 列表 + { + path: '/peony/peony-list', + name: 'PeonyList', + meta: { + title: '牡丹花列表', + privilege: [ + { title: '查询', name: 'peony-list-query' }, + { title: '新增', name: 'peony-list-add' }, + { title: '编辑', name: 'peony-list-update' }, + { title: '批量删除', name: 'peony-list-batch-delete' }, + { title: '批量导出', name: 'peony-list-batch-export' }, + { title: '导出全部', name: 'peony-list-export-all' } + ] + }, + component: () => import('@/views/business/peony/peony-list.vue') + }, + // 牡丹花 列表 1 + { + path: '/peony/peony-list1', + name: 'PeonyList1', + meta: { + title: '牡丹花列表1', + privilege: [ + { title: '查询', name: 'peony1-list-query' }, + { title: '新增', name: 'peony1-list-add' }, + { title: '编辑', name: 'peony1-list-update' }, + { title: '批量删除', name: 'peony1-list-batch-delete' }, + { title: '批量导出', name: 'peony1-list-batch-export' }, + { title: '导出全部', name: 'peony1-list-export-all' } + ] + }, + component: () => import('@/views/business/peony/peony-list.vue') + } + ] + } +]; diff --git a/smart_admin_v1/smart-admin-web/src/router/module/business/three-router.js b/smart_admin_v1/smart-admin-web/src/router/module/business/three-router.js new file mode 100644 index 00000000..bd958adc --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/router/module/business/three-router.js @@ -0,0 +1,63 @@ +import Main from '@/components/main'; +// 三级路由演示 +export const threeRouter = [ + { + path: '/three-router', + name: 'ThreeRouter', + component: Main, + meta: { + title: '三级路由', + icon: 'icon iconfont iconzujian' + }, + children: [ + // 最大支持到三级菜单 + { + path: '/three-router/level-two', + name: 'LevelTwo', + meta: { + title: '三级菜单' + }, + children: [ + { + path: '/three-router/level-two/level-three1', + name: 'ThreeLevelRouterView', + meta: { + title: '三级菜单子颗粒', + privilege: [ + { title: '添加', name: 'three-level-router-view-add' }, + { title: '查询', name: 'three-level-router-view-query' }, + ] + }, + component: () => import('@/views/business/three-level-router/three-level-router-view.vue') + }, + { + path: '/three-router/level-two/level-three2', + name: 'RoleTwoTwo', + meta: { + title: '三级菜单子哈', + privilege: [ + { title: '添加', name: 'roleTwoTwo-add' }, + { title: '删除', name: 'roleTwoTwo-delete' }, + { title: '删除', name: 'roleTwoTwo-delete1' }, + { title: '删除', name: 'roleTwoTwo-delete2' }, + ] + }, + component: () => import('@/views/support/monitor/sql.vue') + } + ] + }, + { + path: '/three-router/level-two2', + name: 'RoleOneOne', + meta: { + title: '二级菜单', + privilege: [ + { title: '添加', name: 'roleOneOne-add' }, + { title: '删除', name: 'roleOneOne-delete' } + ] + }, + component: () => import('@/views/support/monitor/sql.vue') + } + ] + } +]; diff --git a/smart_admin_v1/smart-admin-web/src/router/module/error.js b/smart_admin_v1/smart-admin-web/src/router/module/error.js new file mode 100644 index 00000000..9ab50841 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/router/module/error.js @@ -0,0 +1,33 @@ +// 错误页 +export const error = [ + { + path: '/401', + name: 'Error401', + meta: { + hideInMenu: true, + access: true, + noValidatePrivilege: true + }, + component: () => import('@/views/error-page/401.vue') + }, + { + path: '/500', + name: 'Error500', + meta: { + hideInMenu: true, + access: true, + noValidatePrivilege: true + }, + component: () => import('@/views/error-page/500.vue') + }, + { + path: '*', + name: 'http://localhost:8080/#employee/role-employee-manage', + meta: { + hideInMenu: true, + access: true, + noValidatePrivilege: true + }, + component: () => import('@/views/error-page/404.vue') + } +]; diff --git a/smart_admin_v1/smart-admin-web/src/router/module/home.js b/smart_admin_v1/smart-admin-web/src/router/module/home.js new file mode 100644 index 00000000..87ca26a6 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/router/module/home.js @@ -0,0 +1,29 @@ +import Main from '@/components/main'; +// 首页 +export const home = [ + { + path: '/', + name: '_home', + redirect: '/home', + component: Main, + meta: { + title: '首页', + noKeepAlive: true, + hideInMenu: true, + noValidatePrivilege: true, + icon: 'icon iconfont iconxitongshezhi' + }, + children: [ + { + path: '/home', + name: 'Home', + meta: { + title: '首页', + noValidatePrivilege: true, + noKeepAlive: true + }, + component: () => import('@/views/home') + } + ] + } +]; diff --git a/smart_admin_v1/smart-admin-web/src/router/module/support/api-doc.js b/smart_admin_v1/smart-admin-web/src/router/module/support/api-doc.js new file mode 100644 index 00000000..8336078c --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/router/module/support/api-doc.js @@ -0,0 +1,25 @@ +import Main from '@/components/main'; +// 接口文档 +export const apiDoc = [ + { + path: '/api-doc', + component: Main, + name: 'ApiDoc', + meta: { + title: '接口文档', + icon: 'icon iconfont iconjiekouwendang' + }, + + children: [ + { + path: '/api-doc/swagger', + name: 'Swagger', + meta: { + title: 'Swagger接口文档', + icon: 'icon iconfont iconjiekouwendang' + }, + component: () => import('@/views/support/api-doc/swagger.vue') + } + ] + } +]; diff --git a/smart_admin_v1/smart-admin-web/src/router/module/support/heart-beat.js b/smart_admin_v1/smart-admin-web/src/router/module/support/heart-beat.js new file mode 100644 index 00000000..82e51a01 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/router/module/support/heart-beat.js @@ -0,0 +1,31 @@ +import Main from '@/components/main'; +// 心跳服务 +export const heartBeat = [ + { + path: '/heart-beat', + name: 'HeartBeat', + component: Main, + meta: { + title: '心跳服务', + icon: 'icon iconfont icondingshirenwu' + }, + + children: [ + { + path: '/heart-beat/heart-beat-list', + name: 'HeartBeatList', + meta: { + title: '心跳服务', + icon: 'icon iconfont icondingshirenwu', + privilege: [ + { + title: '查询任务', + name: 'heart-beat-query' + } + ] + }, + component: () => import('@/views/support/heart-beat/heart-beat-list.vue') + } + ] + } +]; diff --git a/smart_admin_v1/smart-admin-web/src/router/module/support/index.js b/smart_admin_v1/smart-admin-web/src/router/module/support/index.js new file mode 100644 index 00000000..0f1d4ad0 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/router/module/support/index.js @@ -0,0 +1,30 @@ + +import Main from '@/components/main'; + + +import { apiDoc } from './api-doc'; +import { heartBeat } from './heart-beat'; +import { monitor } from './monitor'; +import { reload } from './reload'; +import { task } from './task'; + +// 业务 +export const support = [ + { + path: '/support', + name: 'Support', + component: Main, + meta: { + title: '开发专用', + topMenu: true, + icon: 'icon iconfont iconjiekouwendang' + }, + children: [ + ...apiDoc, + ...heartBeat, + ...monitor, + ...reload, + ...task + ] + } +]; diff --git a/smart_admin_v1/smart-admin-web/src/router/module/support/monitor.js b/smart_admin_v1/smart-admin-web/src/router/module/support/monitor.js new file mode 100644 index 00000000..064ec831 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/router/module/support/monitor.js @@ -0,0 +1,34 @@ +import Main from '@/components/main'; +// 系统监控 +export const monitor = [ + { + path: '/monitor', + component: Main, + name: 'Monitor', + meta: { + title: '系统监控', + icon: 'icon iconfont iconxitongjiankong' + }, + children: [ + // 在线人数 + { + path: '/monitor/online-user', + name: 'OnlineUser', + meta: { + title: '在线人数', + privilege: [{ title: '查询', name: 'online-user-search' }] + }, + component: () => import('@/views/support/monitor/online-user.vue') + }, + // SQL监控 + { + path: '/monitor/sql', + name: 'Sql', + meta: { + title: 'SQL监控' + }, + component: () => import('@/views/support/monitor/sql.vue') + } + ] + } +]; diff --git a/smart_admin_v1/smart-admin-web/src/router/module/support/reload.js b/smart_admin_v1/smart-admin-web/src/router/module/support/reload.js new file mode 100644 index 00000000..929a10d5 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/router/module/support/reload.js @@ -0,0 +1,40 @@ +import Main from '@/components/main'; +// 动态加载 +export const reload = [ + { + path: '/reload', + name: 'Reload', + component: Main, + meta: { + title: '动态加载', + icon: 'icon iconfont icondongtaijiazai' + }, + + children: [ + { + path: '/reload/smart-reload-list', + name: 'SmartReloadList', + meta: { + title: 'SmartReload', + icon: 'icon iconfont icondongtaijiazai', + privilege: [ + { + title: '查询', + name: 'smart-reload-search' + }, + { + title: '执行reload', + name: 'smart-reload-update' + }, + { + title: '查看执行结果', + name: 'smart-reload-result' + } + ] + }, + component: () => + import('@/views/support/reload/smart-reload/smart-reload-list.vue') + } + ] + } +]; diff --git a/smart_admin_v1/smart-admin-web/src/router/module/support/task.js b/smart_admin_v1/smart-admin-web/src/router/module/support/task.js new file mode 100644 index 00000000..97b2c869 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/router/module/support/task.js @@ -0,0 +1,63 @@ +import Main from '@/components/main'; +// 任务调度 +export const task = [ + { + path: '/task', + name: 'Task', + component: Main, + meta: { + title: '定时任务', + icon: 'icon iconfont icondingshirenwu' + }, + + children: [ + { + path: '/system-setting/task-list', + name: 'TaskList', + meta: { + title: '任务管理', + icon: 'icon iconfont icondingshirenwu', + privilege: [ + { + title: '查询任务', + name: 'task-search' + }, + { + title: '刷新任务', + name: 'task-refresh' + }, + { + title: '添加任务', + name: 'task-add' + }, + { + title: '编辑任务', + name: 'task-update' + }, + { + title: '暂停任务', + name: 'task-pause' + }, + { + title: '恢复任务', + name: 'task-resume' + }, + { + title: '立即运行任务', + name: 'task-run' + }, + { + title: '查看任务日志', + name: 'task-query-log' + }, + { + title: '删除任务', + name: 'task-delete' + } + ] + }, + component: () => import('@/views/support/task/task-list.vue') + } + ] + } +]; diff --git a/smart_admin_v1/smart-admin-web/src/router/module/system/employee.js b/smart_admin_v1/smart-admin-web/src/router/module/system/employee.js new file mode 100644 index 00000000..f01a9c6d --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/router/module/system/employee.js @@ -0,0 +1,149 @@ +import Main from '@/components/main'; +// 基础设置 +export const employee = [ + { + path: '/employee', + component: Main, + name: 'Employee', + meta: { + title: '人员管理', + icon: 'icon iconfont iconrenyuanguanli' + }, + children: [ + // 角色管理页面路由 + { + path: '/employee/role', + name: 'RoleManage', + meta: { + title: '角色管理', + privilege: [ + { + title: '添加角色', + name: 'add-role' + }, + { + title: '删除角色', + name: 'delete-role' + }, + { + title: '编辑角色', + name: 'update-role' + }, + { + title: '修改角色权限', + name: 'update-role-privilege' + }, + { + title: '添加成员', + name: 'add-employee-role' + }, + { + title: '移除成员', + name: 'delete-employee-role' + }, + { + title: '批量移除', + name: 'delete-employee-role-batch' + }, + { + title: '查询成员', + name: 'search-employee-list' + }, + { + title: '查询数据范围', + name: 'query-data-scope' + }, + { + title: '更新数据范围', + name: 'update-data-scope' + } + ] + }, + component: () => import('@/views/system/employee/role/role-manage.vue') + }, + // 岗位管理页面路由 新 + { + path: '/employee/position', + name: 'PositionList', + meta: { + title: '岗位管理', + privilege: [ + { + title: '查询', + name: 'search-position' + }, + { + title: '添加', + name: 'add-position' + }, + { + title: '修改', + name: 'update-position' + }, + { + title: '删除', + name: 'delete-position' + } + ] + }, + component: () => import('@/views/system/employee/position/position-list.vue') + }, + // 人员管理页面路由 + { + path: '/employee/role-employee-manage', + name: 'RoleEmployeeManage', + meta: { + title: '员工管理', + privilege: [ + { + title: '添加部门', + name: 'add-department' + }, + { + title: '编辑部门', + name: 'update-department' + }, + { + title: '删除部门', + name: 'delete-department' + }, + { + title: '查询', + name: 'search-department' + }, + { + title: '添加成员', + name: 'add-employee' + }, + { + title: '编辑成员', + name: 'update-employee' + }, + { + title: '禁用', + name: 'disabled-employee' + }, + { + title: '批量操作', + name: 'disabled-employee-batch' + }, + { + title: '员工角色编辑', + name: 'update-employee-role' + }, + { + title: '删除员工', + name: 'delete-employee' + }, + { + title: '重置密码', + name: 'reset-employee-password' + } + ] + }, + component: () => + import('@/views/system/employee/role-employee/role-employee-manage.vue') + } + ] + } +]; diff --git a/smart_admin_v1/smart-admin-web/src/router/module/system/file.js b/smart_admin_v1/smart-admin-web/src/router/module/system/file.js new file mode 100644 index 00000000..1d51b19a --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/router/module/system/file.js @@ -0,0 +1,29 @@ +import Main from '@/components/main'; +// 文件服务 +export const file = [ + { + path: '/file', + name: 'File', + component: Main, + meta: { + title: '文件服务', + icon: 'ios-cloud-upload' + }, + children: [ + { + path: '/file/file-list', + name: 'FileList', + meta: { + title: '文件列表', + icon: 'ios-cloud-upload', + privilege: [ + { title: '查询', name: 'file-filePage-query' }, + { title: '上传', name: 'file-filePage-upload' }, + { title: '下载', name: 'file-filePage-download' } + ] + }, + component: () => import('@/views/system/file/file-list.vue') + } + ] + } +]; diff --git a/smart_admin_v1/smart-admin-web/src/router/module/system/index.js b/smart_admin_v1/smart-admin-web/src/router/module/system/index.js new file mode 100644 index 00000000..1c5592c3 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/router/module/system/index.js @@ -0,0 +1,28 @@ + +import Main from '@/components/main'; + + +import { employee } from './employee'; +import { file } from './file'; +import { userLog } from './user-log'; +import { systemSetting } from './system-setting'; + +// 业务 +export const system = [ + { + path: '/system', + name: 'System', + component: Main, + meta: { + title: '系统设置', + topMenu: true, + icon: 'icon iconfont iconxitongshezhi' + }, + children: [ + ...employee, + ...file, + ...userLog, + ...systemSetting + ] + } +]; diff --git a/smart_admin_v1/smart-admin-web/src/router/module/system/system-setting.js b/smart_admin_v1/smart-admin-web/src/router/module/system/system-setting.js new file mode 100644 index 00000000..708cd3d7 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/router/module/system/system-setting.js @@ -0,0 +1,65 @@ +import Main from '@/components/main'; +// 基础设置 +export const systemSetting = [ + { + path: '/system-setting', + name: 'SystemSetting', + component: Main, + meta: { + title: '系统设置', + icon: 'icon iconfont iconxitongshezhi' + }, + + children: [ + { + path: '/system-setting/system-config', + name: 'SystemConfig', + meta: { + title: '系统参数', + privilege: [ + { + title: '查询系统参数', + name: 'system-params-search' + }, + { + title: '添加系统参数', + name: 'system-params-add' + }, + { + title: '修改系统参数', + name: 'system-config-update' + }, + { + title: '搜索系统参数', + name: 'system-config-search' + } + ] + }, + component: () => + import('@/views/system/system-setting/system-config/system-config.vue') + }, + { + path: '/system-setting/system-privilege', + name: 'SystemPrivilege', + meta: { + title: '菜单设置', + privilege: [ + { + title: '编辑', + name: 'privilege-main-update' + }, + { + title: '批量保存功能点', + name: 'privilege-batch-save-points' + }, + { + title: '查询', + name: 'privilege-main-search' + } + ] + }, + component: () => import('@/views/system/system-setting/system-privilege/system-privilege.vue') + } + ] + } +]; diff --git a/smart_admin_v1/smart-admin-web/src/router/module/system/user-log.js b/smart_admin_v1/smart-admin-web/src/router/module/system/user-log.js new file mode 100644 index 00000000..5d868c84 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/router/module/system/user-log.js @@ -0,0 +1,42 @@ +import Main from '@/components/main'; +// 用户日志 +export const userLog = [ + { + path: '/user-log', + name: 'UserLog', + component: Main, + meta: { + title: '用户日志', + icon: 'ios-paper-outline' + }, + children: [ + // 发送email + { + path: '/user-log/user-operate-log', + name: 'UserOperateLog', + meta: { + title: '用户操作日志', + privilege: [ + { title: '查询', name: 'user-operate-log-search' }, + { title: '详情', name: 'user-operate-log-detail' }, + { title: '删除', name: 'user-operate-log-delete' } + ] + }, + component: () => import('@/views/system/user-log/user-operate-log.vue') + }, + // 人员管理页面路由 + { + path: '/user-log/user-login-log', + name: 'UserLoginLog', + meta: { + title: '用户登录日志', + privilege: [ + { title: '查询', name: 'user-login-log-search' }, + { title: '删除', name: 'user-login-log-delete' } + ] + }, + component: () => import('@/views/system/user-log/user-login-log.vue') + } + ] + } +]; diff --git a/smart_admin_v1/smart-admin-web/src/router/routers.js b/smart_admin_v1/smart-admin-web/src/router/routers.js new file mode 100644 index 00000000..afcb628c --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/router/routers.js @@ -0,0 +1,43 @@ +import { home } from './module/home'; +import { error } from './module/error'; +import { business } from './module/business'; +import { support } from './module/support'; +import { system } from './module/system'; + +/** + * + * meta除了原生参数外可配置的参数: + * meta: { + * title: { String|Number|Function } + * 显示在侧边栏、面包屑和标签栏的文字 + * 使用'{{ 多语言字段 }}'形式结合多语言使用,例子看多语言的路由配置; + * 可以传入一个回调函数,参数是当前路由对象,例子看动态路由和带参路由 + * hideInBread: (false) 设为true后此级路由将不会出现在面包屑中,示例看QQ群路由配置 + * hideInMenu: (false) 设为true后在左侧菜单不会显示该页面选项, + * privilegeExtend:{String} 同一功能模块下子页面的功能点权限继承菜单模块创建的路由权限 by lihaifan&lipeng + * noKeepAlive: (false) 设为true后页面在切换标签后不会缓存,如果需要缓存,无需设置这个字段,而且需要设置页面组件name属性和路由配置的name一致 + * noValidatePrivilege: (true) 表示此路由不需要验证权限 + * topMenu:(true),表示为顶级菜单 + * } + */ +// 登录模块 +export const login = { + path: '/login', + name: 'login', + meta: { + hideInMenu: true, + title: 'Login - 登录', + noValidatePrivilege: true + }, + component: () => import('@/views/login/login.vue') +}; + +// 全部路由 +export const routers = [ + login, + ...home, + ...error, + ...business, + ...system, + ...support +]; diff --git a/smart_admin_v1/smart-admin-web/src/store/index.js b/smart_admin_v1/smart-admin-web/src/store/index.js new file mode 100644 index 00000000..6883f539 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/store/index.js @@ -0,0 +1,25 @@ +import Vue from 'vue'; +import Vuex from 'vuex'; + +import user from './module/user'; +import app from './module/app'; +import notice from './module/notice'; + +Vue.use(Vuex); + +export default new Vuex.Store({ + state: { + // + }, + mutations: { + // + }, + actions: { + // + }, + modules: { + user, + notice, + app + } +}); diff --git a/smart_admin_v1/smart-admin-web/src/store/module/app.js b/smart_admin_v1/smart-admin-web/src/store/module/app.js new file mode 100644 index 00000000..c19eade0 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/store/module/app.js @@ -0,0 +1,129 @@ +import { + getBreadCrumbList, + setTagNavListInLocalStorage, + getMenuByRouter, + getTagNavListFromLocalStorage, + getHomeRoute, + getNextRoute, + routeHasExist, + routeEqual, + getRouteTitleHandled +} from '@/lib/menu-func'; +import { localSave, localRead } from '@/lib/local'; +import router from '@/router'; +import { routers } from '@/router/routers'; +import config from '@/config'; +const { homeName } = config; +// 关闭页面+tag +const closePage = (state, route) => { + const nextRoute = getNextRoute(state.tagNavList, route); + state.tagNavList = state.tagNavList.filter(item => { + return !routeEqual(item, route); + }); + router.push(nextRoute); +}; + +export default { + state: { + // 缓存路由 + keepAliveIncludes: [], + // 面包屑列表 + breadCrumbList: [], + // tag列表 + tagNavList: [], + // 首页路由 + homeRoute: {}, + // 本地缓存 + local: localRead('local'), + // 错误列表 + errorList: [], + hasReadErrorPage: false + }, + getters: { + + errorCount: state => state.errorList.length + }, + mutations: { + // 加入缓存 + pushKeepAliveIncludes (state, val) { + if (state.keepAliveIncludes.length < 30) { + let number = state.keepAliveIncludes.findIndex(e => e === val); + if (number === -1) { + state.keepAliveIncludes.push(val); + } + } + }, + // 删除缓存 + deleteKeepAliveIncludes (state, val) { + let number = state.keepAliveIncludes.findIndex(e => e === val); + if (number !== -1) { + state.keepAliveIncludes.splice(number, 1); + } + }, + // 清空缓存 + clearKeepAliveIncludes (state, val) { + state.keepAliveIncludes = [val]; + }, + // 关闭其他 + deleteOtherKeepAliveIncludes (state, val) { + state.keepAliveIncludes.forEach((item, index, arr) => { + if (item !== config.homeName && item !== val) { + arr.splice(index, 1); + } + }); + }, + // 设置其是否出现在面包屑中 + setBreadCrumb (state, route) { + state.breadCrumbList = getBreadCrumbList(route, state.homeRoute); + }, + // 初始化首页使用 + setHomeRoute (state, routes) { + state.homeRoute = getHomeRoute(routes, homeName); + }, + // 设置tag列表 + setTagNavList (state, list) { + let tagList = []; + if (list) { + tagList = [...list]; + } else tagList = getTagNavListFromLocalStorage() || []; + if (tagList[0] && tagList[0].name !== homeName) tagList.shift(); + let homeTagIndex = tagList.findIndex(item => item.name === homeName); + if (homeTagIndex > 0) { + let homeTag = tagList.splice(homeTagIndex, 1)[0]; + tagList.unshift(homeTag); + } + state.tagNavList = tagList; + setTagNavListInLocalStorage([...tagList]); + }, + // 关闭tag + closeTag (state, route) { + let tag = state.tagNavList.filter(item => routeEqual(item, route)); + route = tag[0] ? tag[0] : null; + if (!route) return; + closePage(state, route); + }, + // 关闭当前tag,且不进行跳转 + closeTagNotPushNextRoute (state, route) { + state.tagNavList = state.tagNavList.filter(item => { + return !routeEqual(item, route); + }); + }, + // 新增tag + addTag (state, { route, type = 'unshift' }) { + let router = getRouteTitleHandled(route); + if (!routeHasExist(state.tagNavList, router)) { + if (type === 'push') state.tagNavList.push(router); + else { + if (router.name === homeName) state.tagNavList.unshift(router); + else state.tagNavList.splice(1, 0, router); + } + setTagNavListInLocalStorage([...state.tagNavList]); + } + }, + // 保存本地信息 + setLocal (state, lang) { + localSave('local', lang); + state.local = lang; + } + } +}; diff --git a/smart_admin_v1/smart-admin-web/src/store/module/notice.js b/smart_admin_v1/smart-admin-web/src/store/module/notice.js new file mode 100644 index 00000000..3cff149e --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/store/module/notice.js @@ -0,0 +1,19 @@ +import { noticeApi } from '@/api/notice'; +export default { + state: { + noticeList: [], + noticeNumber: 0 + }, + mutations: { + updateNotice(state, data) { + state.noticeList = [...state.noticeList, ...data]; + }, + updateNoticeNum(state, data) { + state.noticeNumber = data; + }, + restNotice(state) { + state.noticeList = []; + state.noticeNumber = 0; + } + } +}; diff --git a/smart_admin_v1/smart-admin-web/src/store/module/user.js b/smart_admin_v1/smart-admin-web/src/store/module/user.js new file mode 100644 index 00000000..eb2ca10a --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/store/module/user.js @@ -0,0 +1,122 @@ +import cookie from '@/lib/cookie.js'; +import { loginApi } from '@/api/login'; +import { localSave, localRead } from '@/lib/local'; +import { getType } from '@/lib/util'; +import { PRIVILEGE_TYPE_ENUM } from '@/constants/privilege'; + +const localReadRouterPrivilege = () => { + let map = new Map(); + let userRouterPrivilegeString = localRead('userRouterPrivilege'); + if (userRouterPrivilegeString) { + let privilegeList = JSON.parse(userRouterPrivilegeString); + if (privilegeList) { + for (const path of privilegeList) { + let key = path.substr(1, 1); + let pathArray = map.get(key); + if (pathArray) { + pathArray.push(path); + } else { + pathArray = []; + pathArray.push(path); + map.set(key, pathArray); + } + } + } + } + return map; +}; + +export default { + state: { + token: cookie.getToken(), + // session信息 + userLoginInfo: {}, + isUpdatePrivilege: false, + // key为router name, value为 key的集合,用于v-privilege,页面功能点判断 + privilegeFunctionPointsMap: new Map(), + // 菜单key权限集合,用于左侧是否有菜单权限判断 + privilegeMenuKeyList: [], + /** + * key为 router path的首字母,value为集合 + * 这样做是为了提高查询效率,用于vue-router拦截判断path + */ + privilegeRouterPathMap: localReadRouterPrivilege() + + }, + mutations: { + // 设置token + setToken (state, token) { + state.token = token; + cookie.setToken(token); + }, + // 保存用户登录信息 + setUserLoginInfo (state, userLoginInfo) { + state.userLoginInfo = userLoginInfo; + localSave('userLoginInfo', JSON.stringify(userLoginInfo)); + }, + setUserPrivilege (state, privilegeList) { + state.isUpdatePrivilege = true; + let routerPathArray = []; + for (const privilege of privilegeList) { + // 是菜单权限 + if (privilege.type === PRIVILEGE_TYPE_ENUM.MENU.value) { + state.privilegeMenuKeyList.push(privilege.key); + if (privilege.url) { + routerPathArray.push(privilege.url); + // 去掉/之后第一个字母 + let key = privilege.url.substr(1, 1); + let pathArray = state.privilegeRouterPathMap.get(key); + if (pathArray) { + pathArray.push(privilege.url); + } else { + pathArray = []; + pathArray.push(privilege.url); + state.privilegeRouterPathMap.set(key, pathArray); + } + } + } + // 如果是功能点 + if (privilege.type === PRIVILEGE_TYPE_ENUM.POINTS.value) { + if (privilege.parentKey) { + let pointArray = state.privilegeFunctionPointsMap.get(privilege.parentKey); + if (pointArray) { + pointArray.push(privilege.key); + } else { + pointArray = []; + pointArray.push(privilege.key); + state.privilegeFunctionPointsMap.set(privilege.parentKey, pointArray); + } + } + } + } + localSave('userRouterPrivilege', JSON.stringify(routerPathArray)); + } + }, + getters: { + // 用户功能点权限 + userFuncPrivilegeInfo: () => localRead('funcPrivilegeInfo'), + // 用户菜单权限 + userMenuPrivilege: state => state.userLoginInfo.privilegeList + }, + actions: { + // 登录 + handleLogin ({ commit }, params) { + params.loginName = params.loginName.trim(); + return new Promise((resolve, reject) => { + loginApi + .login(params) + .then(res => { + localStorage.clear(); + const data = res.data; + commit('setToken', data.xaccessToken); + // 保存用户登录 + commit('setUserLoginInfo', data); + resolve(); + }) + .catch(err => { + reject(err); + }); + }); + } + } +}; diff --git a/smart_admin_v1/smart-admin-web/src/themes/ReadMe.md b/smart_admin_v1/smart-admin-web/src/themes/ReadMe.md new file mode 100644 index 00000000..57ab76e4 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/themes/ReadMe.md @@ -0,0 +1 @@ +这是配置主题及颜色的 diff --git a/smart_admin_v1/smart-admin-web/src/themes/index.less b/smart_admin_v1/smart-admin-web/src/themes/index.less new file mode 100644 index 00000000..6870d219 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/themes/index.less @@ -0,0 +1,328 @@ +@import '~view-design/src/styles/index.less'; +/************** + 导航栏 +**************/ +// 导航栏背景 +@menu-dark-title: #001529; +@menu-dark-active-bg: #000c17; +@layout-sider-background: #001529; +@primary-color: #2d8cf0; +@blue: #2d8cf0; +@blueA100: #2e3c5a; +@blueA200: #e7f3ff; +@blueA300: #f0f7fd; +@blueA400: #001529; +@garyA100: #f5f5f5; +@garyA200: #666; +@garyA300: #999; +@tableColor: #eee; +@black: #444; + +.side-menu-wrapper { + // 一级菜单 高亮颜色 + .ivu-menu-dark.ivu-menu-vertical .ivu-menu-item-active:not(.ivu-menu-submenu), + .ivu-menu-dark.ivu-menu-vertical .ivu-menu-submenu-title-active:not(.ivu-menu-submenu){ + color: #fff; + } + .ivu-menu-dark { + .ivu-menu { + .ivu-menu-submenu { + margin-bottom: 0; + } + + .ivu-menu-submenu-title { + padding: 8px 24px !important; + } + + .ivu-menu-submenu-has-parent-submenu { + padding-left: 51px; + } + + // 二级菜单 + .ivu-menu-item, + .ivu-menu-submenu-has-parent-submenu { + padding: 8px 0 9px 48px !important; + background: url('../assets/images/slider/sub_slider_default.png') 30px 0 + no-repeat !important; + + &:hover { + background: url('../assets/images/slider/sub_slider_default.png') 30px + 0 no-repeat !important; + } + + &.ivu-menu-item-active { + background: url('../assets/images/slider/sub_slider_active.png') 30px + 0 no-repeat !important; + border-right: 5px @primary-color solid; + + &:hover { + background: url('../assets/images/slider/sub_slider_active.png') + 30px 0 no-repeat !important; + border-right: 5px @primary-color solid; + } + } + } + .ivu-menu-submenu-has-parent-submenu { + padding-left: 31px !important; + .ivu-menu-submenu-title { + padding: 0 17px !important; + } + &.ivu-menu-child-item-active { + background: url('../assets/images/slider/sub_slider_active.png') 30px + 0 no-repeat !important; + border-right: 0; + } + .ivu-menu { + padding-top: 8px; + } + .ivu-menu-item, + .ivu-menu-item-active:hover { + background: none !important; + padding-left: 32px !important; + } + } + } + } +} + +// 导航栏 +.menu-collapsed { + text-align: center; + padding-top: 0 !important; +} + +// 左侧导航收缩 +.ivu-layout-sider-collapsed { + .ivu-dropdown { + text-align: center; + line-height: 38px; + margin: 0px auto; + color: #515a6e; + + &:hover { + color: @primary-color; + } + } + .ivu-tooltip { + line-height: 38px; + } +} +// 收缩导航栏鼠标经过下拉 +.menu-dropdown { + width: 160px; + left: 65px !important; + background: #001529; + border-radius: 3px; + color: #fff; + .ivu-dropdown-item { + color: #fff; + height: 40px; + line-height: 40px; + padding: 0 20px; + box-sizing: border-box; + .menu-title { + // padding:5px 0; + } + &:hover { + background: none; + border-right: 4px @primary-color solid; + } + } +} +/************** + header +**************/ +@layout-header-height: 52px; + +//面包屑 +.ivu-breadcrumb { + color: #515a6e; +} + +.ivu-breadcrumb-item-separator { + color: #515a6e; +} + + +/************** + table +**************/ +@table-thead-bg: #F7F7F9; +@border-color-split: #F7F7F9; +// @border-color-base: #F7F7F9; + +.ivu-table { + height: auto; + + table { + border-spacing: 0; + width: 100%; + tr { + &.ivu-table-row-hover { + tr, td { + animation: tableHover 0.5s; + } + } + th, td { + border: 1px @tableColor solid; + border-left: 0; + border-top: 0; + text-align: center; + &.ivu-table-column-left { + text-align: left; + } + &:nth-child(1) { + border-left: 0; + } + .ivu-table-cell { + padding: 0 8px; + overflow: inherit; + } + .table-line { + background: @tableColor; + height: 1px; + margin: 8px -18px; + } + } + th { + color: @garyA200; + background: @garyA100; + height: 42px; + font-size: 14px; + color: #808080; + text-align: left; + } + td { + font-weight: normal; + padding: 2px 0; + height: 32px; + text-align: left; + font-size: 12px; + border-bottom: 1px solid #F7F7F9; + .ivu-table-cell-with-expand{ + height: 32px; + line-height: 32px; + } + } + } + } +} + +.ivu-table-body { + &::-webkit-scrollbar { + width: 10px; + height: 10px; + } +} + +.ivu-card-extra { + position: absolute; + right: 8px; + top: 8px; +} + +.ivu-card-head { + background: #fafafa; + border-radius: 4px 4px 0 0; + padding: 12px 16px; + font-size: 14px; + font-weight: bold; + .ivu-icon { + color: #666; + } +} + +.ivu-select-dropdown { + z-index: 10000; + &::-webkit-scrollbar { + width: 10px; + height: 10px; + } +} + +.ivu-dropdown-transfer, +.ivu-select-dropdown-transfer { + position: fixed; +} + +.ivu-table-fixed-body { + overflow: inherit; +} +.ivu-card{ + box-shadow: none !important; +} +// 表单类 +.ivu-btn{ + &:focus{ + box-shadow: none; + } +} + +.ivu-spin-fix{ + background-color: rgba(255, 255, 255, 0.3); +} + +// 重写字体大小 +.ivu-select, +.ivu-select-single .ivu-select-selection .ivu-select-placeholder, +.ivu-select-single .ivu-select-selection .ivu-select-selected-value, +.ivu-select-input, +.ivu-input, +textarea.ivu-input, +.ivu-btn, +.ivu-checkbox-wrapper, +.ivu-form .ivu-form-item-label{ + font-size: 12px; +} +.ivu-btn-large{ + font-size: 14px; +} +.ivu-select-item, +.ivu-dropdown-item{ + font-size: 12px !important; +} + +/****自定义样式***/ + +.search-card .ivu-form-item { + margin-bottom: 0px !important; +} + +.marginRight10{ + margin-right: 10px !important; +} +.marginLeft10{ + margin-left: 10px !important; +} + +.marginBottom10{ + margin-bottom: 10px !important; +} + +.float-right{ + float:right; +} + +.float-left{ + float:left; +} + +.error-color{ + color: #ed4014; +} + +.smart-query-card .ivu-card-body{ + padding: 10px !important; +} + +.smart-query-form-row:not(:first-child){ + margin-top: 8px; +} + +.smart-query-form-row span{ + margin-right: 8px; +} + +.smart-query-table-page{ + margin-top: 10px; +} \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-web/src/views/business/email/email-list.vue b/smart_admin_v1/smart-admin-web/src/views/business/email/email-list.vue new file mode 100644 index 00000000..357998a8 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/views/business/email/email-list.vue @@ -0,0 +1,214 @@ + + + diff --git a/smart_admin_v1/smart-admin-web/src/views/business/email/send-mail.vue b/smart_admin_v1/smart-admin-web/src/views/business/email/send-mail.vue new file mode 100644 index 00000000..d06261d9 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/views/business/email/send-mail.vue @@ -0,0 +1,215 @@ + + + + diff --git a/smart_admin_v1/smart-admin-web/src/views/business/keep-alive/add-content.vue b/smart_admin_v1/smart-admin-web/src/views/business/keep-alive/add-content.vue new file mode 100644 index 00000000..0c2290dd --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/views/business/keep-alive/add-content.vue @@ -0,0 +1,94 @@ + + + + diff --git a/smart_admin_v1/smart-admin-web/src/views/business/keep-alive/content-list.vue b/smart_admin_v1/smart-admin-web/src/views/business/keep-alive/content-list.vue new file mode 100644 index 00000000..11b34887 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/views/business/keep-alive/content-list.vue @@ -0,0 +1,80 @@ + + + + diff --git a/smart_admin_v1/smart-admin-web/src/views/business/notice/notice-detail.vue b/smart_admin_v1/smart-admin-web/src/views/business/notice/notice-detail.vue new file mode 100644 index 00000000..66687bda --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/views/business/notice/notice-detail.vue @@ -0,0 +1,49 @@ + + + diff --git a/smart_admin_v1/smart-admin-web/src/views/business/notice/notice-list.vue b/smart_admin_v1/smart-admin-web/src/views/business/notice/notice-list.vue new file mode 100644 index 00000000..8c129b19 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/views/business/notice/notice-list.vue @@ -0,0 +1,369 @@ + + + + diff --git a/smart_admin_v1/smart-admin-web/src/views/business/notice/person-notice.vue b/smart_admin_v1/smart-admin-web/src/views/business/notice/person-notice.vue new file mode 100644 index 00000000..cc2fec01 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/views/business/notice/person-notice.vue @@ -0,0 +1,221 @@ + + + + + diff --git a/smart_admin_v1/smart-admin-web/src/views/business/peony/components/peony-list-form.vue b/smart_admin_v1/smart-admin-web/src/views/business/peony/components/peony-list-form.vue new file mode 100644 index 00000000..9f99862b --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/views/business/peony/components/peony-list-form.vue @@ -0,0 +1,133 @@ + + \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-web/src/views/business/peony/peony-list.vue b/smart_admin_v1/smart-admin-web/src/views/business/peony/peony-list.vue new file mode 100644 index 00000000..8c0edaff --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/views/business/peony/peony-list.vue @@ -0,0 +1,495 @@ + + + diff --git a/smart_admin_v1/smart-admin-web/src/views/business/three-level-router/three-level-router-view.vue b/smart_admin_v1/smart-admin-web/src/views/business/three-level-router/three-level-router-view.vue new file mode 100644 index 00000000..2003c453 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/views/business/three-level-router/three-level-router-view.vue @@ -0,0 +1,58 @@ + + + + diff --git a/smart_admin_v1/smart-admin-web/src/views/error-page/401.vue b/smart_admin_v1/smart-admin-web/src/views/error-page/401.vue new file mode 100644 index 00000000..70b3c366 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/views/error-page/401.vue @@ -0,0 +1,19 @@ + + + diff --git a/smart_admin_v1/smart-admin-web/src/views/error-page/404.vue b/smart_admin_v1/smart-admin-web/src/views/error-page/404.vue new file mode 100644 index 00000000..291406f6 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/views/error-page/404.vue @@ -0,0 +1,19 @@ + + + diff --git a/smart_admin_v1/smart-admin-web/src/views/error-page/500.vue b/smart_admin_v1/smart-admin-web/src/views/error-page/500.vue new file mode 100644 index 00000000..e2a6c249 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/views/error-page/500.vue @@ -0,0 +1,19 @@ + + + diff --git a/smart_admin_v1/smart-admin-web/src/views/error-page/back-btn-group.vue b/smart_admin_v1/smart-admin-web/src/views/error-page/back-btn-group.vue new file mode 100644 index 00000000..7966849b --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/views/error-page/back-btn-group.vue @@ -0,0 +1,40 @@ + + + diff --git a/smart_admin_v1/smart-admin-web/src/views/error-page/error-content.vue b/smart_admin_v1/smart-admin-web/src/views/error-page/error-content.vue new file mode 100644 index 00000000..d81d965e --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/views/error-page/error-content.vue @@ -0,0 +1,28 @@ + + + diff --git a/smart_admin_v1/smart-admin-web/src/views/error-page/error.less b/smart_admin_v1/smart-admin-web/src/views/error-page/error.less new file mode 100644 index 00000000..63802459 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/views/error-page/error.less @@ -0,0 +1,46 @@ +.error-page{ + width: 100%; + height: 100%; + position: relative; + background: #f8f8f9; + .content-con{ + width: 700px; + height: 600px; + position: absolute; + left: 50%; + top: 50%; + transform: translate(-50%, -60%); + img{ + display: block; + width: 100%; + height: 100%; + } + .text-con{ + position: absolute; + left: 0px; + top: 0px; + h4{ + position: absolute; + left: 0px; + top: 0px; + font-size: 80px; + font-weight: 700; + color: #348EED; + } + h5{ + position: absolute; + width: 700px; + left: 0px; + top: 100px; + font-size: 20px; + font-weight: 700; + color: #67647D; + } + } + .back-btn-group{ + position: absolute; + right: 0px; + bottom: 20px; + } + } +} diff --git a/smart_admin_v1/smart-admin-web/src/views/home/components/card.vue b/smart_admin_v1/smart-admin-web/src/views/home/components/card.vue new file mode 100644 index 00000000..763eabf4 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/views/home/components/card.vue @@ -0,0 +1,43 @@ + + + + + diff --git a/smart_admin_v1/smart-admin-web/src/views/home/components/chart-bar.vue b/smart_admin_v1/smart-admin-web/src/views/home/components/chart-bar.vue new file mode 100644 index 00000000..8130be3c --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/views/home/components/chart-bar.vue @@ -0,0 +1,140 @@ + + + + + diff --git a/smart_admin_v1/smart-admin-web/src/views/home/components/chart-funnel.vue b/smart_admin_v1/smart-admin-web/src/views/home/components/chart-funnel.vue new file mode 100644 index 00000000..dd076399 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/views/home/components/chart-funnel.vue @@ -0,0 +1,106 @@ + + + + + diff --git a/smart_admin_v1/smart-admin-web/src/views/home/components/chart-gauge.vue b/smart_admin_v1/smart-admin-web/src/views/home/components/chart-gauge.vue new file mode 100644 index 00000000..99750aa7 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/views/home/components/chart-gauge.vue @@ -0,0 +1,87 @@ + + + + + diff --git a/smart_admin_v1/smart-admin-web/src/views/home/components/chart-line.vue b/smart_admin_v1/smart-admin-web/src/views/home/components/chart-line.vue new file mode 100644 index 00000000..d7aeed44 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/views/home/components/chart-line.vue @@ -0,0 +1,123 @@ + + + + + diff --git a/smart_admin_v1/smart-admin-web/src/views/home/components/chart-pie.vue b/smart_admin_v1/smart-admin-web/src/views/home/components/chart-pie.vue new file mode 100644 index 00000000..01037399 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/views/home/components/chart-pie.vue @@ -0,0 +1,110 @@ + + + + + diff --git a/smart_admin_v1/smart-admin-web/src/views/home/components/home-circle.vue b/smart_admin_v1/smart-admin-web/src/views/home/components/home-circle.vue new file mode 100644 index 00000000..903ec4e2 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/views/home/components/home-circle.vue @@ -0,0 +1,41 @@ + + + + + diff --git a/smart_admin_v1/smart-admin-web/src/views/home/components/home-progress.vue b/smart_admin_v1/smart-admin-web/src/views/home/components/home-progress.vue new file mode 100644 index 00000000..dc9682a7 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/views/home/components/home-progress.vue @@ -0,0 +1,59 @@ + + + + + diff --git a/smart_admin_v1/smart-admin-web/src/views/home/components/theme.json b/smart_admin_v1/smart-admin-web/src/views/home/components/theme.json new file mode 100644 index 00000000..909b518a --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/views/home/components/theme.json @@ -0,0 +1,490 @@ +{ + "color": [ + "#2d8cf0", + "#19be6b", + "#ff9900", + "#E46CBB", + "#9A66E4", + "#ed3f14" + ], + "backgroundColor": "rgba(0,0,0,0)", + "textStyle": {}, + "title": { + "textStyle": { + "color": "#516b91" + }, + "subtextStyle": { + "color": "#93b7e3" + } + }, + "line": { + "itemStyle": { + "normal": { + "borderWidth": "2" + } + }, + "lineStyle": { + "normal": { + "width": "2" + } + }, + "symbolSize": "6", + "symbol": "emptyCircle", + "smooth": true + }, + "radar": { + "itemStyle": { + "normal": { + "borderWidth": "2" + } + }, + "lineStyle": { + "normal": { + "width": "2" + } + }, + "symbolSize": "6", + "symbol": "emptyCircle", + "smooth": true + }, + "bar": { + "itemStyle": { + "normal": { + "barBorderWidth": 0, + "barBorderColor": "#ccc" + }, + "emphasis": { + "barBorderWidth": 0, + "barBorderColor": "#ccc" + } + } + }, + "pie": { + "itemStyle": { + "normal": { + "borderWidth": 0, + "borderColor": "#ccc" + }, + "emphasis": { + "borderWidth": 0, + "borderColor": "#ccc" + } + } + }, + "scatter": { + "itemStyle": { + "normal": { + "borderWidth": 0, + "borderColor": "#ccc" + }, + "emphasis": { + "borderWidth": 0, + "borderColor": "#ccc" + } + } + }, + "boxplot": { + "itemStyle": { + "normal": { + "borderWidth": 0, + "borderColor": "#ccc" + }, + "emphasis": { + "borderWidth": 0, + "borderColor": "#ccc" + } + } + }, + "parallel": { + "itemStyle": { + "normal": { + "borderWidth": 0, + "borderColor": "#ccc" + }, + "emphasis": { + "borderWidth": 0, + "borderColor": "#ccc" + } + } + }, + "sankey": { + "itemStyle": { + "normal": { + "borderWidth": 0, + "borderColor": "#ccc" + }, + "emphasis": { + "borderWidth": 0, + "borderColor": "#ccc" + } + } + }, + "funnel": { + "itemStyle": { + "normal": { + "borderWidth": 0, + "borderColor": "#ccc" + }, + "emphasis": { + "borderWidth": 0, + "borderColor": "#ccc" + } + } + }, + "gauge": { + "itemStyle": { + "normal": { + "borderWidth": 0, + "borderColor": "#ccc" + }, + "emphasis": { + "borderWidth": 0, + "borderColor": "#ccc" + } + } + }, + "candlestick": { + "itemStyle": { + "normal": { + "color": "#edafda", + "color0": "transparent", + "borderColor": "#d680bc", + "borderColor0": "#8fd3e8", + "borderWidth": "2" + } + } + }, + "graph": { + "itemStyle": { + "normal": { + "borderWidth": 0, + "borderColor": "#ccc" + } + }, + "lineStyle": { + "normal": { + "width": 1, + "color": "#aaa" + } + }, + "symbolSize": "6", + "symbol": "emptyCircle", + "smooth": true, + "color": [ + "#2d8cf0", + "#19be6b", + "#f5ae4a", + "#9189d5", + "#56cae2", + "#cbb0e3" + ], + "label": { + "normal": { + "textStyle": { + "color": "#eee" + } + } + } + }, + "map": { + "itemStyle": { + "normal": { + "areaColor": "#f3f3f3", + "borderColor": "#516b91", + "borderWidth": 0.5 + }, + "emphasis": { + "areaColor": "rgba(165,231,240,1)", + "borderColor": "#516b91", + "borderWidth": 1 + } + }, + "label": { + "normal": { + "textStyle": { + "color": "#000" + } + }, + "emphasis": { + "textStyle": { + "color": "rgb(81,107,145)" + } + } + } + }, + "geo": { + "itemStyle": { + "normal": { + "areaColor": "#f3f3f3", + "borderColor": "#516b91", + "borderWidth": 0.5 + }, + "emphasis": { + "areaColor": "rgba(165,231,240,1)", + "borderColor": "#516b91", + "borderWidth": 1 + } + }, + "label": { + "normal": { + "textStyle": { + "color": "#000" + } + }, + "emphasis": { + "textStyle": { + "color": "rgb(81,107,145)" + } + } + } + }, + "categoryAxis": { + "axisLine": { + "show": true, + "lineStyle": { + "color": "#cccccc" + } + }, + "axisTick": { + "show": false, + "lineStyle": { + "color": "#333" + } + }, + "axisLabel": { + "show": true, + "textStyle": { + "color": "#999999" + } + }, + "splitLine": { + "show": true, + "lineStyle": { + "color": [ + "#eeeeee" + ] + } + }, + "splitArea": { + "show": false, + "areaStyle": { + "color": [ + "rgba(250,250,250,0.05)", + "rgba(200,200,200,0.02)" + ] + } + } + }, + "valueAxis": { + "axisLine": { + "show": true, + "lineStyle": { + "color": "#cccccc" + } + }, + "axisTick": { + "show": false, + "lineStyle": { + "color": "#333" + } + }, + "axisLabel": { + "show": true, + "textStyle": { + "color": "#999999" + } + }, + "splitLine": { + "show": true, + "lineStyle": { + "color": [ + "#eeeeee" + ] + } + }, + "splitArea": { + "show": false, + "areaStyle": { + "color": [ + "rgba(250,250,250,0.05)", + "rgba(200,200,200,0.02)" + ] + } + } + }, + "logAxis": { + "axisLine": { + "show": true, + "lineStyle": { + "color": "#cccccc" + } + }, + "axisTick": { + "show": false, + "lineStyle": { + "color": "#333" + } + }, + "axisLabel": { + "show": true, + "textStyle": { + "color": "#999999" + } + }, + "splitLine": { + "show": true, + "lineStyle": { + "color": [ + "#eeeeee" + ] + } + }, + "splitArea": { + "show": false, + "areaStyle": { + "color": [ + "rgba(250,250,250,0.05)", + "rgba(200,200,200,0.02)" + ] + } + } + }, + "timeAxis": { + "axisLine": { + "show": true, + "lineStyle": { + "color": "#cccccc" + } + }, + "axisTick": { + "show": false, + "lineStyle": { + "color": "#333" + } + }, + "axisLabel": { + "show": true, + "textStyle": { + "color": "#999999" + } + }, + "splitLine": { + "show": true, + "lineStyle": { + "color": [ + "#eeeeee" + ] + } + }, + "splitArea": { + "show": false, + "areaStyle": { + "color": [ + "rgba(250,250,250,0.05)", + "rgba(200,200,200,0.02)" + ] + } + } + }, + "toolbox": { + "iconStyle": { + "normal": { + "borderColor": "#999" + }, + "emphasis": { + "borderColor": "#666" + } + } + }, + "legend": { + "textStyle": { + "color": "#999999" + } + }, + "tooltip": { + "axisPointer": { + "lineStyle": { + "color": "#ccc", + "width": 1 + }, + "crossStyle": { + "color": "#ccc", + "width": 1 + } + } + }, + "timeline": { + "lineStyle": { + "color": "#8fd3e8", + "width": 1 + }, + "itemStyle": { + "normal": { + "color": "#8fd3e8", + "borderWidth": 1 + }, + "emphasis": { + "color": "#8fd3e8" + } + }, + "controlStyle": { + "normal": { + "color": "#8fd3e8", + "borderColor": "#8fd3e8", + "borderWidth": 0.5 + }, + "emphasis": { + "color": "#8fd3e8", + "borderColor": "#8fd3e8", + "borderWidth": 0.5 + } + }, + "checkpointStyle": { + "color": "#8fd3e8", + "borderColor": "rgba(138,124,168,0.37)" + }, + "label": { + "normal": { + "textStyle": { + "color": "#8fd3e8" + } + }, + "emphasis": { + "textStyle": { + "color": "#8fd3e8" + } + } + } + }, + "visualMap": { + "color": [ + "#516b91", + "#59c4e6", + "#a5e7f0" + ] + }, + "dataZoom": { + "backgroundColor": "rgba(0,0,0,0)", + "dataBackgroundColor": "rgba(255,255,255,0.3)", + "fillerColor": "rgba(167,183,204,0.4)", + "handleColor": "#a7b7cc", + "handleSize": "100%", + "textStyle": { + "color": "#333" + } + }, + "markPoint": { + "label": { + "normal": { + "textStyle": { + "color": "#eee" + } + }, + "emphasis": { + "textStyle": { + "color": "#eee" + } + } + } + } +} \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-web/src/views/home/home.vue b/smart_admin_v1/smart-admin-web/src/views/home/home.vue new file mode 100644 index 00000000..99cdbac2 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/views/home/home.vue @@ -0,0 +1,154 @@ + + + + + diff --git a/smart_admin_v1/smart-admin-web/src/views/home/index.js b/smart_admin_v1/smart-admin-web/src/views/home/index.js new file mode 100644 index 00000000..5f66ed9d --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/views/home/index.js @@ -0,0 +1,2 @@ +import home from './home.vue'; +export default home; diff --git a/smart_admin_v1/smart-admin-web/src/views/login/canvas.js b/smart_admin_v1/smart-admin-web/src/views/login/canvas.js new file mode 100644 index 00000000..67b21ffb --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/views/login/canvas.js @@ -0,0 +1,289 @@ +// 离子波浪 +export const lonWave = () => { + var starlings = function (n, r, t, o, e, u, i, f) { + var a = f.onSetup + void 0 === a && (a = null) + var v = f.onRepeat + void 0 === v && (v = null) + var c = f.modifier + void 0 === c && (c = null) + var l = f.perspective + void 0 === l && (l = 1) + var d = f.pixelRatio + void 0 === d && (d = 1) + var m = f.triangles + void 0 === m && (m = !1) + var s + var p + var y = r.length + var w = function (n, r) { + let t = s.createShader(n) + return s.shaderSource(t, r), s.compileShader(t), t + } + var b = function () { + for (var n = 0; n < o.length; n += 1) { + for (var r = s.createBuffer(), e = o[n], u = e.data(0, 0).length, i = new Float32Array(t * y * u), f = 0; f < t; f += 1) { + for (var a = e.data(f, t), v = f * y * u, l = 0; l < y; l += 1) { + for (var d = 0; d < u; d += 1) { + c !== null && e.name === c.attribute ? i[v] = c.value(i[v], a, d, l) : i[v] = a[d] + v += 1 + } + } + } + s.bindBuffer(s.ARRAY_BUFFER, r) + s.bufferData(s.ARRAY_BUFFER, i, s.STATIC_DRAW) + var m = s.getAttribLocation(p, o[n].name) + s.enableVertexAttribArray(m) + s.vertexAttribPointer(m, u, s.FLOAT, !1, !1, 0, 0) + } + } + var A = function () { + e.push({ + name: 'uMVP', + type: 'mat4' + }) + for (var n = 0; n < e.length; n += 1) { + var r = s.getUniformLocation(p, e[n].name) + e[n].location = r + } + } + var F = { + float: function (n, r) { + return s.uniform1f(n, r) + }, + vec2: function (n, r) { + return s.uniform2fv(n, r) + }, + vec3: function (n, r) { + return s.uniform3fv(n, r) + }, + vec4: function (n, r) { + return s.uniform4fv(n, r) + }, + mat2: function (n, r) { + return s.uniformMatrix2fv(n, !1, r) + }, + mat3: function (n, r) { + return s.uniformMatrix3fv(n, !1, r) + }, + mat4: function (n, r) { + return s.uniformMatrix4fv(n, !1, r) + } + } + var g = function () { + s.clear(16640) + s.useProgram(p) + v !== null && v(s, p, e) + for (var n = 0; n < e.length; n += 1) F[e[n].type](e[n].location, e[n].value) + s.drawArrays(m ? s.TRIANGLES : s.POINTS, 0, y * t) + requestAnimationFrame(g) + } + var h = function () { + n.width = n.clientWidth * d + n.height = n.clientHeight * d + var r = s.drawingBufferWidth + var t = s.drawingBufferHeight + s.viewport(0, 0, r, t) + e[e.length - 1].value = [l / (r / t), 0, 0, 0, 0, l, 0, 0, 0, 0, -1, -1, 0, 0, 1, 1] + } + s = n.getContext('webgl') + p = s.createProgram() + s.attachShader(p, w(s.VERTEX_SHADER, u)) + s.attachShader(p, w(s.FRAGMENT_SHADER, i)) + s.linkProgram(p) + A() + h() + b() + a !== null && a(s) + g() + window.addEventListener('resize', h, !1) + } + + // Do you like rainbow waves? + var rainbow = false + + // Need more performance? + var HD = true + + var canvas = document.getElementById('canvas') + var background = document.querySelector('.background') + var bar = document.querySelector('.progress') + var initialize = function initialize (vertices) { + var pixelRatio = HD ? window.devicePixelRatio : 1 + var rows = HD ? 90 : 90 + var multiplier = rows * rows + var duration = 0.4 + var geometry = [{ + x: 0, + y: 0, + z: 0 + }] + var pointSize = (HD ? 6 : 2).toFixed(1) + + var step = 0.004 + var size = 5 + var attributes = [{ + name: 'aPositionStart', + data: function data (i, total) { + return [size - (i % rows / rows + 0.5 / rows) * (size * 2), -1, (size - (Math.floor(i / rows) / rows + 0.5 / rows) * size * 2) * -1] + } + }, + { + name: 'aControlPointOne', + data: function data (i) { + return [size - (i % rows / rows + 0.5 / rows) * (size * 2), -0.5 + getRandom(0.2), (size - (Math.floor(i / rows) / rows + 0.5 / rows) * size * 2) * -1] + } + }, + { + name: 'aControlPointTwo', + data: function data (i) { + return [size - (i % rows / rows + 0.5 / rows) * (size * 2), -0.5 + getRandom(0.2), (size - (Math.floor(i / rows) / rows + 0.5 / rows) * size * 2) * -1] + } + }, + { + name: 'aPositionEnd', + data: function data (i) { + return [size - (i % rows / rows + 0.5 / rows) * (size * 2), -1, (size - (Math.floor(i / rows) / rows + 0.5 / rows) * size * 2) * -1] + } + }, + { + name: 'aOffset', + data: function data (i) { + return [i * ((1 - duration) / (multiplier - 1))] + } + }, + { + name: 'aColor', + data: function data (i, total) { + return getHSL(rainbow ? i / total * 1.0 : 0.5 + i / total * 0.4, 0.5, 0.5) + } + }] + + var uniforms = [{ + name: 'uProgress', + type: 'float', + value: 0.8 + }] + + var vertexShader = '\n attribute vec3 aPositionStart;\n attribute vec3 aControlPointOne;\n attribute vec3 aControlPointTwo;\n attribute vec3 aPositionEnd;\n attribute float aOffset;\n attribute vec3 aColor;\n\n uniform float uProgress;\n uniform mat4 uMVP;\n\n varying vec3 vColor;\n\n vec3 bezier4(vec3 a, vec3 b, vec3 c, vec3 d, float t) {\n return mix(mix(mix(a, b, t), mix(b, c, t), t), mix(mix(b, c, t), mix(c, d, t), t), t);\n }\n\n float easeInOutQuint(float t){\n return t < 0.5 ? 16.0 * t * t * t * t * t : 1.0 + 16.0 * (--t) * t * t * t * t;\n }\n\n void main () {\n float tProgress = easeInOutQuint(min(1.0, max(0.0, (uProgress - aOffset)) / ' + duration + '));\n vec3 newPosition = bezier4(aPositionStart, aControlPointOne, aControlPointTwo, aPositionEnd, tProgress);\n gl_PointSize = ' + pointSize + ' + ((newPosition.y + 1.0) * 80.0);\n gl_Position = uMVP * vec4(newPosition, 1.0);\n vColor = aColor;\n }\n' + + var fragmentShader = '\n precision mediump float;\n\n varying vec3 vColor;\n\n void main() {\n vec2 pc = 2.0 * gl_PointCoord - 1.0;\n gl_FragColor = vec4(vColor, 1.0 - dot(pc, pc));\n }\n' + + var onSetup = function onSetup (gl) { + gl.blendFunc(gl.SRC_ALPHA, gl.ONE) + gl.enable(gl.BLEND) + } + + var onRepeat = function onRepeat () { + rotateY(uniforms[uniforms.length - 1].value, 0.002) + if (uniforms[0].value < 0) { + uniforms[0].value = 1 + } + uniforms[0].value -= step + } + + var options = { + onSetup: onSetup, + onRepeat: onRepeat, + pixelRatio: pixelRatio + } + + starlings(canvas, geometry, multiplier, attributes, uniforms, vertexShader, fragmentShader, options) + } + + var getRandom = function getRandom (value) { + return Math.random() * value - value / 2 + } + + var rotateY = function rotateY (matrix, angle) { + var sin = Math.sin(angle) + var cos = Math.cos(angle) + var clone = JSON.parse(JSON.stringify(matrix)) + + matrix[0] = clone[0] * cos - clone[8] * sin + matrix[1] = clone[1] * cos - clone[9] * sin + matrix[2] = clone[2] * cos - clone[10] * sin + matrix[3] = clone[3] * cos - clone[11] * sin + matrix[8] = clone[0] * sin + clone[8] * cos + matrix[9] = clone[1] * sin + clone[9] * cos + matrix[10] = clone[2] * sin + clone[10] * cos + matrix[11] = clone[3] * sin + clone[11] * cos + } + + var h2r = function h2r (p, q, t) { + if (t < 0) t += 1 + if (t > 1) t -= 1 + if (t < 1 / 6) return p + (q - p) * 6 * t + if (t < 1 / 2) return q + if (t < 2 / 3) return p + (q - p) * 6 * (2 / 3 - t) + return p + } + + var getHSL = function getHSL (h, s, l) { + h = (h % 1 + 1) % 1 + s = Math.max(0, Math.min(1, s)) + l = Math.max(0, Math.min(1, l)) + if (s === 0) return [l, l, l] + var p = l <= 0.5 ? l * (1 + s) : l + s - l * s + var q = 2 * l - p + return [h2r(q, p, h + 1 / 3), h2r(q, p, h), h2r(q, p, h - 1 / 3)] + } + initialize() +} + +// 随机线条 +export const canvasParticle = (function () { + function getElementByTag (name) { return document.getElementsByTagName(name) } + function getELementById (id) { return document.getElementById(id) } + function canvasInit (canvasConfig) { + canvasConfig = canvasConfig || {} + var html = getElementByTag('html')[0] + var body = document.getElementById('canvasView') + var canvasObj = document.createElement('canvas') + var canvas = { element: canvasObj, points: [], config: { vx: canvasConfig.vx || 4, vy: canvasConfig.vy || 4, height: canvasConfig.height || 2, width: canvasConfig.width || 2, count: canvasConfig.count || 100, color: canvasConfig.color || '121, 162, 185', stroke: canvasConfig.stroke || '130,255,255', dist: canvasConfig.dist || 6000, e_dist: canvasConfig.e_dist || 20000, max_conn: 10 } }; if (canvas.element.getContext('2d')) { canvas.context = canvas.element.getContext('2d') } else { return null } + body.style.padding = '0'; body.style.margin = '0'; body.appendChild(canvas.element); canvas.element.style = 'position: fixed; top: 0; left: 0; z-index: -1;'; canvasSize(canvas.element); window.onresize = function () { canvasSize(canvas.element) } + body.onmousemove = function (e) { var event = e || window.event; canvas.mouse = { x: event.clientX, y: event.clientY } } + document.onmouseleave = function () { canvas.mouse = undefined } + setInterval(function () { drawPoint(canvas) }, 40) + } + function canvasSize (canvas) { + var width = document.getElementById('canvasView').style.width + var height = document.getElementById('canvasView').style.height + width = parseInt(width); height = parseInt(height) + canvas.width = width || window.innerWeight || document.documentElement.clientWidth || document.body.clientWidth; canvas.height = height || window.innerWeight || document.documentElement.clientHeight || document.body.clientHeight + } + function drawPoint (canvas) { + var context = canvas.context + var point + var dist + context.clearRect(0, 0, canvas.element.width, canvas.element.height); context.beginPath(); context.fillStyle = 'rgb(' + canvas.config.color + ')'; for (var i = 0, len = canvas.config.count; i < len; i++) { + if (canvas.points.length != canvas.config.count) { point = { x: Math.floor(Math.random() * canvas.element.width), y: Math.floor(Math.random() * canvas.element.height), vx: canvas.config.vx / 2 - Math.random() * canvas.config.vx, vy: canvas.config.vy / 2 - Math.random() * canvas.config.vy } } else { point = borderPoint(canvas.points[i], canvas) } + context.fillRect(point.x - canvas.config.width / 2, point.y - canvas.config.height / 2, canvas.config.width, canvas.config.height); canvas.points[i] = point + } + drawLine(context, canvas, canvas.mouse); context.closePath() + } + function borderPoint (point, canvas) { + var p = point; if (point.x <= 0 || point.x >= canvas.element.width) { p.vx = -p.vx; p.x += p.vx } else if (point.y <= 0 || point.y >= canvas.element.height) { p.vy = -p.vy; p.y += p.vy } else { p = { x: p.x + p.vx, y: p.y + p.vy, vx: p.vx, vy: p.vy } } + return p + } + function drawLine (context, canvas, mouse) { + let dist + context = context || canvas.context; for (var i = 0, len = canvas.config.count; i < len; i++) { + canvas.points[i].max_conn = 0; for (var j = 0; j < len; j++) { + if (i != j) { + dist = Math.round(canvas.points[i].x - canvas.points[j].x) * Math.round(canvas.points[i].x - canvas.points[j].x) + + Math.round(canvas.points[i].y - canvas.points[j].y) * Math.round(canvas.points[i].y - canvas.points[j].y); if (dist <= canvas.config.dist && canvas.points[i].max_conn < canvas.config.max_conn) { + canvas.points[i].max_conn++; context.lineWidth = 0.5 - dist / canvas.config.dist; context.strokeStyle = 'rgba(' + canvas.config.stroke + ',' + (1 - dist / canvas.config.dist) + ')' + context.beginPath(); context.moveTo(canvas.points[i].x, canvas.points[i].y); context.lineTo(canvas.points[j].x, canvas.points[j].y); context.stroke() + } + } + } + if (mouse) { + dist = Math.round(canvas.points[i].x - mouse.x) * Math.round(canvas.points[i].x - mouse.x) + + Math.round(canvas.points[i].y - mouse.y) * Math.round(canvas.points[i].y - mouse.y); if (dist > canvas.config.dist && dist <= canvas.config.e_dist) { canvas.points[i].x = canvas.points[i].x + (mouse.x - canvas.points[i].x) / 20; canvas.points[i].y = canvas.points[i].y + (mouse.y - canvas.points[i].y) / 20 } + if (dist <= canvas.config.e_dist) { context.lineWidth = 1; context.strokeStyle = 'rgba(' + canvas.config.stroke + ',' + (1 - dist / canvas.config.e_dist) + ')'; context.beginPath(); context.moveTo(canvas.points[i].x, canvas.points[i].y); context.lineTo(mouse.x, mouse.y); context.stroke() } + } + } + } + return canvasInit +})() diff --git a/smart_admin_v1/smart-admin-web/src/views/login/components/login-form.vue b/smart_admin_v1/smart-admin-web/src/views/login/components/login-form.vue new file mode 100644 index 00000000..b50ae0e6 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/views/login/components/login-form.vue @@ -0,0 +1,134 @@ + + diff --git a/smart_admin_v1/smart-admin-web/src/views/login/login.less b/smart_admin_v1/smart-admin-web/src/views/login/login.less new file mode 100644 index 00000000..82a52efc --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/views/login/login.less @@ -0,0 +1,128 @@ +.center { + text-align: center; +} + +.login { + font-family: Arial, "PingFang SC", "Microsoft YaHei"; + width: 100%; + height: 100%; + background: url(../../assets/images/login-bg.jpg) no-repeat fixed; + background-size: cover; + + .content { + width: 424px; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -56%) + } + .ivu-card { + background: rgba(255, 255, 255, 0.95); + border-radius: 10px; + box-shadow: 5px 5px 15px rgba(0, 0, 0, 0.3); + } + .form-con { + margin: 32px 0; + width: 424px; + background: #fff; + padding: 32px 32px; + border-radius: 8px; + .ivu-input { + border: 1px solid #E8E8EE; + border-radius: 4px; + font-size: 16px; + color: #525252; + padding: 0 20px; + &:focus { + border: 1px solid #0097F6; + box-shadow: none; + } + } + .ivu-form-item-error-tip { + height: 30px; + line-height: 30px; + padding: 0; + color: #f66; + top:90%; + } + .ivu-form-item { + margin-bottom: 22px; + } + .remember { + margin: -10px 0 10px; + } + .ivu-input, + .ivu-btn { + height: 48px; + } + .ivu-btn { + font-size: 16px; + } + .ivu-input-group-prepend { + padding: 4px 15px; + } + .code-input { + width: 172px; + } + .codeUrl { + height: 80%; + position: absolute; + z-index: 3; + top: 0; + bottom: 0; + margin: auto; + right: 24px; + border-radius: 0 4px 4px 0; + cursor: pointer; + } + } + .login-tip { + font-size: 10px; + text-align: center; + color: #c3c3c3; + } + .footerDesc { + font-family: "MicrosoftYaHei"; + color: #A6A6A8; + font-size: 14px; + } + .otherWay { + font-size: 14px; + font-family: "Microsoft YaHei"; + .inline { + display: inline-block; + } + .align { + vertical-align: middle; + } + .marginLeft { + margin-left: 20px; + float:right; + } + } + .remember { + font-size: 14px; + } +} +.draw { + position: fixed; + width: 1px; + z-index: 99999; + line-height: 1px; + pointer-events: none; +} + +@keyframes floatOne { + 0% { + opacity: 1; + } + + 50% { + opacity: 1; + } + + 100% { + opacity: 0; + transform: translate3D(0, -20px, 0) scale(5) rotate(45deg); + } +} \ No newline at end of file diff --git a/smart_admin_v1/smart-admin-web/src/views/login/login.vue b/smart_admin_v1/smart-admin-web/src/views/login/login.vue new file mode 100644 index 00000000..0e529a15 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/views/login/login.vue @@ -0,0 +1,52 @@ + + + + diff --git a/smart_admin_v1/smart-admin-web/src/views/support/api-doc/swagger.vue b/smart_admin_v1/smart-admin-web/src/views/support/api-doc/swagger.vue new file mode 100644 index 00000000..c05f5e73 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/views/support/api-doc/swagger.vue @@ -0,0 +1,33 @@ + + + diff --git a/smart_admin_v1/smart-admin-web/src/views/support/heart-beat/heart-beat-list.vue b/smart_admin_v1/smart-admin-web/src/views/support/heart-beat/heart-beat-list.vue new file mode 100644 index 00000000..1637378e --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/views/support/heart-beat/heart-beat-list.vue @@ -0,0 +1,115 @@ + + diff --git a/smart_admin_v1/smart-admin-web/src/views/support/monitor/online-user.vue b/smart_admin_v1/smart-admin-web/src/views/support/monitor/online-user.vue new file mode 100644 index 00000000..b133c303 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/views/support/monitor/online-user.vue @@ -0,0 +1,152 @@ + + + + + diff --git a/smart_admin_v1/smart-admin-web/src/views/support/monitor/sql.vue b/smart_admin_v1/smart-admin-web/src/views/support/monitor/sql.vue new file mode 100644 index 00000000..ced71bf8 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/views/support/monitor/sql.vue @@ -0,0 +1,33 @@ + + + diff --git a/smart_admin_v1/smart-admin-web/src/views/support/reload/smart-reload/smart-reload-list.vue b/smart_admin_v1/smart-admin-web/src/views/support/reload/smart-reload/smart-reload-list.vue new file mode 100644 index 00000000..b0027c4c --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/views/support/reload/smart-reload/smart-reload-list.vue @@ -0,0 +1,273 @@ + + diff --git a/smart_admin_v1/smart-admin-web/src/views/support/task/task-list.vue b/smart_admin_v1/smart-admin-web/src/views/support/task/task-list.vue new file mode 100644 index 00000000..d73e96be --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/views/support/task/task-list.vue @@ -0,0 +1,556 @@ + + + + + diff --git a/smart_admin_v1/smart-admin-web/src/views/system/employee/components/department-employee-tree-item/department-employee-tree-item.vue b/smart_admin_v1/smart-admin-web/src/views/system/employee/components/department-employee-tree-item/department-employee-tree-item.vue new file mode 100644 index 00000000..8f64b4d5 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/views/system/employee/components/department-employee-tree-item/department-employee-tree-item.vue @@ -0,0 +1,124 @@ + + + + diff --git a/smart_admin_v1/smart-admin-web/src/views/system/employee/components/department-employee-tree/department-employee-tree.vue b/smart_admin_v1/smart-admin-web/src/views/system/employee/components/department-employee-tree/department-employee-tree.vue new file mode 100644 index 00000000..be1e3c5a --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/views/system/employee/components/department-employee-tree/department-employee-tree.vue @@ -0,0 +1,251 @@ + + + + diff --git a/smart_admin_v1/smart-admin-web/src/views/system/employee/position/position-list.vue b/smart_admin_v1/smart-admin-web/src/views/system/employee/position/position-list.vue new file mode 100644 index 00000000..98870609 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/views/system/employee/position/position-list.vue @@ -0,0 +1,366 @@ + + + + diff --git a/smart_admin_v1/smart-admin-web/src/views/system/employee/role-employee/components/employee-table-add/employee-table-add.vue b/smart_admin_v1/smart-admin-web/src/views/system/employee/role-employee/components/employee-table-add/employee-table-add.vue new file mode 100644 index 00000000..e93daec4 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/views/system/employee/role-employee/components/employee-table-add/employee-table-add.vue @@ -0,0 +1,527 @@ + + + diff --git a/smart_admin_v1/smart-admin-web/src/views/system/employee/role-employee/components/employee-table-detail/employee-table-detail.vue b/smart_admin_v1/smart-admin-web/src/views/system/employee/role-employee/components/employee-table-detail/employee-table-detail.vue new file mode 100644 index 00000000..a2cc214d --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/views/system/employee/role-employee/components/employee-table-detail/employee-table-detail.vue @@ -0,0 +1,72 @@ + + + diff --git a/smart_admin_v1/smart-admin-web/src/views/system/employee/role-employee/components/employee-table/employee-table.vue b/smart_admin_v1/smart-admin-web/src/views/system/employee/role-employee/components/employee-table/employee-table.vue new file mode 100644 index 00000000..9708e5fc --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/views/system/employee/role-employee/components/employee-table/employee-table.vue @@ -0,0 +1,572 @@ + + + diff --git a/smart_admin_v1/smart-admin-web/src/views/system/employee/role-employee/role-employee-manage.vue b/smart_admin_v1/smart-admin-web/src/views/system/employee/role-employee/role-employee-manage.vue new file mode 100644 index 00000000..034407a7 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/views/system/employee/role-employee/role-employee-manage.vue @@ -0,0 +1,831 @@ + + + + diff --git a/smart_admin_v1/smart-admin-web/src/views/system/employee/role/components/role-data-scope/role-data-scope.vue b/smart_admin_v1/smart-admin-web/src/views/system/employee/role/components/role-data-scope/role-data-scope.vue new file mode 100644 index 00000000..0413ce76 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/views/system/employee/role/components/role-data-scope/role-data-scope.vue @@ -0,0 +1,144 @@ + + + + diff --git a/smart_admin_v1/smart-admin-web/src/views/system/employee/role/components/role-list/role-list.vue b/smart_admin_v1/smart-admin-web/src/views/system/employee/role/components/role-list/role-list.vue new file mode 100644 index 00000000..55ab14c3 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/views/system/employee/role/components/role-list/role-list.vue @@ -0,0 +1,407 @@ + + + + diff --git a/smart_admin_v1/smart-admin-web/src/views/system/employee/role/components/role-tree/role-tree.vue b/smart_admin_v1/smart-admin-web/src/views/system/employee/role/components/role-tree/role-tree.vue new file mode 100644 index 00000000..fe4eec67 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/views/system/employee/role/components/role-tree/role-tree.vue @@ -0,0 +1,431 @@ + + + + diff --git a/smart_admin_v1/smart-admin-web/src/views/system/employee/role/role-manage.vue b/smart_admin_v1/smart-admin-web/src/views/system/employee/role/role-manage.vue new file mode 100644 index 00000000..9765f362 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/views/system/employee/role/role-manage.vue @@ -0,0 +1,339 @@ + + + diff --git a/smart_admin_v1/smart-admin-web/src/views/system/file/file-list.vue b/smart_admin_v1/smart-admin-web/src/views/system/file/file-list.vue new file mode 100644 index 00000000..9f79d984 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/views/system/file/file-list.vue @@ -0,0 +1,279 @@ + + + diff --git a/smart_admin_v1/smart-admin-web/src/views/system/system-setting/system-config/system-config.vue b/smart_admin_v1/smart-admin-web/src/views/system/system-setting/system-config/system-config.vue new file mode 100644 index 00000000..0fd884a4 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/views/system/system-setting/system-config/system-config.vue @@ -0,0 +1,397 @@ + + + diff --git a/smart_admin_v1/smart-admin-web/src/views/system/system-setting/system-privilege/components/privilege-form.vue b/smart_admin_v1/smart-admin-web/src/views/system/system-setting/system-privilege/components/privilege-form.vue new file mode 100644 index 00000000..f4454771 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/views/system/system-setting/system-privilege/components/privilege-form.vue @@ -0,0 +1,144 @@ + + + diff --git a/smart_admin_v1/smart-admin-web/src/views/system/system-setting/system-privilege/system-privilege.vue b/smart_admin_v1/smart-admin-web/src/views/system/system-setting/system-privilege/system-privilege.vue new file mode 100644 index 00000000..ade7836b --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/views/system/system-setting/system-privilege/system-privilege.vue @@ -0,0 +1,410 @@ + + + diff --git a/smart_admin_v1/smart-admin-web/src/views/system/user-log/user-login-log.vue b/smart_admin_v1/smart-admin-web/src/views/system/user-log/user-login-log.vue new file mode 100644 index 00000000..bc9b0928 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/views/system/user-log/user-login-log.vue @@ -0,0 +1,185 @@ + + + diff --git a/smart_admin_v1/smart-admin-web/src/views/system/user-log/user-operate-log.vue b/smart_admin_v1/smart-admin-web/src/views/system/user-log/user-operate-log.vue new file mode 100644 index 00000000..db47df63 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/views/system/user-log/user-operate-log.vue @@ -0,0 +1,252 @@ + + + + + diff --git a/smart_admin_v1/smart-admin-web/src/views/three-router/three-content.vue b/smart_admin_v1/smart-admin-web/src/views/three-router/three-content.vue new file mode 100644 index 00000000..eeac6f71 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/src/views/three-router/three-content.vue @@ -0,0 +1,26 @@ + + + diff --git a/smart_admin_v1/smart-admin-web/tests/e2e/.eslintrc b/smart_admin_v1/smart-admin-web/tests/e2e/.eslintrc new file mode 100644 index 00000000..02023fba --- /dev/null +++ b/smart_admin_v1/smart-admin-web/tests/e2e/.eslintrc @@ -0,0 +1,12 @@ +{ + "plugins": [ + "cypress" + ], + "env": { + "mocha": true, + "cypress/globals": true + }, + "rules": { + "strict": "off" + } +} diff --git a/smart_admin_v1/smart-admin-web/tests/e2e/plugins/index.js b/smart_admin_v1/smart-admin-web/tests/e2e/plugins/index.js new file mode 100644 index 00000000..cfefc78b --- /dev/null +++ b/smart_admin_v1/smart-admin-web/tests/e2e/plugins/index.js @@ -0,0 +1,9 @@ +// https://docs.cypress.io/guides/guides/plugins-guide.html + +module.exports = (on, config) => Object.assign({}, config, { + fixturesFolder: 'tests/e2e/fixtures', + integrationFolder: 'tests/e2e/specs', + screenshotsFolder: 'tests/e2e/screenshots', + videosFolder: 'tests/e2e/videos', + supportFile: 'tests/e2e/support/index.js' +}) diff --git a/smart_admin_v1/smart-admin-web/tests/e2e/specs/test.js b/smart_admin_v1/smart-admin-web/tests/e2e/specs/test.js new file mode 100644 index 00000000..41ad94a0 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/tests/e2e/specs/test.js @@ -0,0 +1,8 @@ +// https://docs.cypress.io/api/introduction/api.html + +describe('My First Test', () => { + it('Visits the app root url', () => { + cy.visit('/') + cy.contains('h1', 'Welcome to Your Vue.js App') + }) +}) diff --git a/smart_admin_v1/smart-admin-web/tests/e2e/support/commands.js b/smart_admin_v1/smart-admin-web/tests/e2e/support/commands.js new file mode 100644 index 00000000..c1f5a772 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/tests/e2e/support/commands.js @@ -0,0 +1,25 @@ +// *********************************************** +// This example commands.js shows you how to +// create various custom commands and overwrite +// existing commands. +// +// For more comprehensive examples of custom +// commands please read more here: +// https://on.cypress.io/custom-commands +// *********************************************** +// +// +// -- This is a parent command -- +// Cypress.Commands.add("login", (email, password) => { ... }) +// +// +// -- This is a child command -- +// Cypress.Commands.add("drag", { prevSubject: 'element'}, (subject, options) => { ... }) +// +// +// -- This is a dual command -- +// Cypress.Commands.add("dismiss", { prevSubject: 'optional'}, (subject, options) => { ... }) +// +// +// -- This is will overwrite an existing command -- +// Cypress.Commands.overwrite("visit", (originalFn, url, options) => { ... }) diff --git a/smart_admin_v1/smart-admin-web/tests/e2e/support/index.js b/smart_admin_v1/smart-admin-web/tests/e2e/support/index.js new file mode 100644 index 00000000..d68db96d --- /dev/null +++ b/smart_admin_v1/smart-admin-web/tests/e2e/support/index.js @@ -0,0 +1,20 @@ +// *********************************************************** +// This example support/index.js is processed and +// loaded automatically before your test files. +// +// This is a great place to put global configuration and +// behavior that modifies Cypress. +// +// You can change the location of this file or turn off +// automatically serving support files with the +// 'supportFile' configuration option. +// +// You can read more here: +// https://on.cypress.io/configuration +// *********************************************************** + +// Import commands.js using ES2015 syntax: +import './commands' + +// Alternatively you can use CommonJS syntax: +// require('./commands') diff --git a/smart_admin_v1/smart-admin-web/tests/unit/.eslintrc.js b/smart_admin_v1/smart-admin-web/tests/unit/.eslintrc.js new file mode 100644 index 00000000..8038afe9 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/tests/unit/.eslintrc.js @@ -0,0 +1,8 @@ +module.exports = { + env: { + mocha: true + }, + rules: { + 'import/no-extraneous-dependencies': 'off' + } +} diff --git a/smart_admin_v1/smart-admin-web/tests/unit/HelloWorld.spec.js b/smart_admin_v1/smart-admin-web/tests/unit/HelloWorld.spec.js new file mode 100644 index 00000000..bb668bf4 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/tests/unit/HelloWorld.spec.js @@ -0,0 +1,13 @@ +import { expect } from 'chai' +import { shallow } from '@vue/test-utils' +import HelloWorld from '@/components/HelloWorld.vue' + +describe('HelloWorld.vue', () => { + it('renders props.msg when passed', () => { + const msg = 'new message' + const wrapper = shallow(HelloWorld, { + propsData: { msg } + }) + expect(wrapper.text()).to.include(msg) + }) +}) diff --git a/smart_admin_v1/smart-admin-web/vscode/settings.json b/smart_admin_v1/smart-admin-web/vscode/settings.json new file mode 100644 index 00000000..ab4bb79a --- /dev/null +++ b/smart_admin_v1/smart-admin-web/vscode/settings.json @@ -0,0 +1,43 @@ +{ + "terminal.integrated.shell.windows": "C:\\WINDOWS\\System32\\cmd.exe", + "jetbrainsKeymap.promptV3Features": true, + "editor.multiCursorModifier": "ctrlCmd", + "editor.formatOnPaste": true, + "debug.allowBreakpointsEverywhere": true, + "files.autoSave": "afterDelay", + "workbench.colorTheme": "One Dark Pro", + "workbench.iconTheme": "vscode-icons", + "vetur.validation.template": false, + "[javascript]": { + "editor.defaultFormatter": "vscode.typescript-language-features" + }, + "[less]": { + "editor.defaultFormatter": "HookyQR.beautify" + }, + "javascript.format.insertSpaceBeforeFunctionParenthesis": true, + "eslint.autoFixOnSave": true, + "eslint.alwaysShowStatus": true, + "workbench.startupEditor": "newUntitledFile", + //"vetur.format.defaultFormatter.html": "js-beautify-html", + //"vetur.format.defaultFormatter.js": "vscode-typescript", //让vue中的js按编辑器自带的ts格式进行格式化 + "vetur.format.defaultFormatterOptions": { + // "js-beautify-html": { + // // force|force-aligned | force-expand-multiline + // "wrap_line_length": 100, + // "wrap_attributes": "auto", + // "end_with_newline": false + // //"wrap_attributes": "auto" + // }, + "prettyhtml": { + "printWidth": 100, + "singleQuote": false, + "wrapAttributes": false, + "sortAttributes": true + }, + "prettier": { + "semi": true, + "singleQuote": true + } + }, + "search.location": "panel", +} diff --git a/smart_admin_v1/smart-admin-web/vue.config.js b/smart_admin_v1/smart-admin-web/vue.config.js new file mode 100644 index 00000000..af5bfbf7 --- /dev/null +++ b/smart_admin_v1/smart-admin-web/vue.config.js @@ -0,0 +1,77 @@ +const path = require('path'); +const resolve = dir => { + return path.join(__dirname, dir); +}; +const UglifyJsPlugin = require('uglifyjs-webpack-plugin'); +const CompressionWebpackPlugin = require('compression-webpack-plugin'); +const productionGzipExtensions = ['js', 'css']; +// 项目部署基础 +// 默认情况下,我们假设你的应用将被部署在域的根目录下, +// 例如:https://www.my-app.com/ +// 默认:'/' +// 如果您的应用程序部署在子路径中,则需要在这指定子路径 +// 例如:https://www.foobar.com/my-app/ +// 需要将它改为'/my-app/' +const publicPath = process.env.NODE_ENV === 'production' ? '/' : '/'; +const lintOnSave = process.env.NODE_ENV === 'production'; + +module.exports = { + // Project deployment base + // By default we assume your app will be deployed at the root of a domain, + // e.g. https://www.my-app.com/ + // If your app is deployed at a sub-path, you will need to specify that + // sub-path here. For example, if your app is deployed at + // https://www.foobar.com/my-app/ + // then change this to '/my-app/' + publicPath, + // tweak internal webpack configuration. + // see https://github.com/vuejs/vue-cli/blob/dev/docs/webpack.md + // 如果你不需要使用eslint,把lintOnSave设为false即可 + lintOnSave, + chainWebpack: config => { + config.entry = { + main: ['babel-polyfill', './src/main'], + vendors: './src/vendors' + }; + config.module + .rule('view-design') + .test(/view-design.src.*?js$/) + .use('babel') + .loader('babel-loader') + .end(); + config.resolve.alias + .set('@', resolve('src')) // key,value自行定义,比如.set('@@', resolve('src/components')) + .set('_c', resolve('src/components')); + }, + // 设为false打包时不生成.map文件 + productionSourceMap: false, + // 这里写你调用接口的基础路径,来解决跨域,如果设置了代理,那你本地开发环境的axios的baseUrl要写为 '' ,即空字符串 + // devServer: { + // proxy: 'localhost:3000' + // } + configureWebpack: { + plugins: [ + // 开启gzip压缩 + new CompressionWebpackPlugin({ + algorithm: 'gzip', + test: new RegExp('\\.(' + productionGzipExtensions.join('|') + ')$'), + threshold: 10240, + minRatio: 0.8 + }) + ], + optimization: { + minimizer: [ + new UglifyJsPlugin({ + uglifyOptions: { + compress: { + warnings: true, + drop_console: true, // console + drop_debugger: true, + pure_funcs: ['console.log'] // 移除console + } + } + }) + ] + } + } +}; diff --git a/代码规范/api接口规范.md b/smart_admin_v1/代码规范_v1/api接口规范.md similarity index 97% rename from 代码规范/api接口规范.md rename to smart_admin_v1/代码规范_v1/api接口规范.md index 044b17dd..e1ea91dd 100644 --- a/代码规范/api接口规范.md +++ b/smart_admin_v1/代码规范_v1/api接口规范.md @@ -1,38 +1,38 @@ -### Restful接口规范 -1、不推荐使用 rest 命名 url, 只能使用 get/post 方法。url 命名上规范如下:虽然 Rest 大法好,但是有时并不能一眼根据 url看出来是什么操作。 -url 格式为: - -/业务模块/子模块/动作 - -举例: -``` -GET /department/get/{id} 查询某个部门详细信息 -POST /department/query 复杂查询 -POST /department/add 添加部门 -POST /department/update 更新部门 -GET /department/delete/{id} 删除部门 -``` -### controller 里接口 swagger 规范 -1、controller每个方法必须添加 swagger 文档注解 @ApiOperation ,并填写接口描述信息,描述最后必须加上作者信息 @author 哪吒 -比如: -```java - @ApiOperation("更新部门信息 @author 哪吒") - @PostMapping("/department/update") - public ResponseDTO updateDepartment(@Valid @RequestBody DeptUpdateDTO deptUpdateDTO) { - return departmentService.updateDepartment(deptUpdateDTO); - } -``` - -### controller 里 传入和返回 JavaBean 规范 -1、类中的每个字段添加注释 -2、对于枚举值的类型,要清楚标注清楚可能的值,以及每个值表示什么含义 -比如: -``` -public class UserVO{ - - @ApiModelProperty("性别:0表示 女,1表示 男,2表示 未知") - private Integer gender; - -} - +### Restful接口规范 +1、不推荐使用 rest 命名 url, 只能使用 get/post 方法。url 命名上规范如下:虽然 Rest 大法好,但是有时并不能一眼根据 url看出来是什么操作。 +url 格式为: + +/业务模块/子模块/动作 + +举例: +``` +GET /department/get/{id} 查询某个部门详细信息 +POST /department/query 复杂查询 +POST /department/add 添加部门 +POST /department/update 更新部门 +GET /department/delete/{id} 删除部门 +``` +### controller 里接口 swagger 规范 +1、controller每个方法必须添加 swagger 文档注解 @ApiOperation ,并填写接口描述信息,描述最后必须加上作者信息 @author 哪吒 +比如: +```java + @ApiOperation("更新部门信息 @author 哪吒") + @PostMapping("/department/update") + public ResponseDTO updateDepartment(@Valid @RequestBody DeptUpdateDTO deptUpdateDTO) { + return departmentService.updateDepartment(deptUpdateDTO); + } +``` + +### controller 里 传入和返回 JavaBean 规范 +1、类中的每个字段添加注释 +2、对于枚举值的类型,要清楚标注清楚可能的值,以及每个值表示什么含义 +比如: +``` +public class UserVO{ + + @ApiModelProperty("性别:0表示 女,1表示 男,2表示 未知") + private Integer gender; + +} + ``` \ No newline at end of file diff --git a/代码规范/front-standard-guide.md b/smart_admin_v1/代码规范_v1/front-standard-guide.md similarity index 100% rename from 代码规范/front-standard-guide.md rename to smart_admin_v1/代码规范_v1/front-standard-guide.md diff --git a/代码规范/java-standard-guide.md b/smart_admin_v1/代码规范_v1/java-standard-guide.md similarity index 100% rename from 代码规范/java-standard-guide.md rename to smart_admin_v1/代码规范_v1/java-standard-guide.md diff --git a/快速启动/README.md b/smart_admin_v1/快速启动_v1/README.md similarity index 100% rename from 快速启动/README.md rename to smart_admin_v1/快速启动_v1/README.md diff --git a/smart_admin_v2.sql b/smart_admin_v2.sql deleted file mode 100644 index 66e86031..00000000 --- a/smart_admin_v2.sql +++ /dev/null @@ -1,2071 +0,0 @@ --- -------------------------------------------------------- --- 服务器版本: 8.0.23 - MySQL Community Server - GPL --- 服务器操作系统: Linux --- HeidiSQL 版本: 11.3.0.6295 --- -------------------------------------------------------- - --- 导出 smart_admin_v2 的数据库结构 -DROP DATABASE IF EXISTS `smart_admin_v2`; -CREATE DATABASE IF NOT EXISTS `smart_admin_v2` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci */ /*!80016 DEFAULT ENCRYPTION='N' */; -USE `smart_admin_v2`; - --- 导出 表 smart_admin_v2.t_category 结构 -DROP TABLE IF EXISTS `t_category`; -CREATE TABLE IF NOT EXISTS `t_category` ( - `category_id` int NOT NULL AUTO_INCREMENT COMMENT '分类id', - `category_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '分类名称', - `category_type` smallint NOT NULL COMMENT '分类类型', - `parent_id` int NOT NULL COMMENT '父级id', - `sort` int NOT NULL DEFAULT '0' COMMENT '排序', - `disabled_flag` tinyint NOT NULL DEFAULT '0' COMMENT '是否禁用', - `deleted_flag` tinyint NOT NULL DEFAULT '0' COMMENT '是否删除', - `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL, - `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, - PRIMARY KEY (`category_id`) USING BTREE, - KEY `idx_parent_id` (`parent_id`) USING BTREE -) ENGINE=InnoDB AUTO_INCREMENT=358 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='分类表,主要用于商品分类'; - --- 正在导出表 smart_admin_v2.t_category 的数据:~11 rows (大约) -DELETE FROM `t_category`; -/*!40000 ALTER TABLE `t_category` DISABLE KEYS */; -INSERT INTO `t_category` (`category_id`, `category_name`, `category_type`, `parent_id`, `sort`, `disabled_flag`, `deleted_flag`, `remark`, `update_time`, `create_time`) VALUES - (1, '手机', 1, 0, 0, 0, 0, NULL, '2022-10-10 22:27:24', '2022-07-14 20:55:15'), - (2, '键盘', 1, 0, 0, 0, 0, NULL, '2022-09-14 21:39:00', '2022-07-14 20:55:48'), - (3, '自定义1', 2, 0, 0, 0, 0, NULL, '2022-09-14 22:01:06', '2022-07-14 20:56:03'), - (4, '自定义2', 2, 0, 0, 0, 0, NULL, '2022-09-14 22:01:10', '2022-07-14 20:56:09'), - (351, '鼠标', 1, 0, 0, 0, 0, NULL, '2022-09-14 21:39:06', '2022-09-14 21:39:06'), - (352, '苹果', 1, 1, 0, 0, 0, NULL, '2022-09-14 21:39:25', '2022-09-14 21:39:25'), - (353, '华为', 1, 1, 0, 0, 0, NULL, '2022-09-14 21:39:32', '2022-09-14 21:39:32'), - (354, 'IKBC', 1, 2, 0, 0, 0, NULL, '2022-09-14 21:39:38', '2022-09-14 21:39:38'), - (355, '双飞燕', 1, 2, 0, 0, 0, NULL, '2022-09-14 21:39:47', '2022-09-14 21:39:47'), - (356, '罗技', 1, 351, 0, 0, 0, NULL, '2022-09-14 21:39:57', '2022-09-14 21:39:57'), - (357, '小米', 1, 1, 0, 0, 0, NULL, '2022-10-10 22:27:39', '2022-10-10 22:27:39'); -/*!40000 ALTER TABLE `t_category` ENABLE KEYS */; - --- 导出 表 smart_admin_v2.t_change_log 结构 -DROP TABLE IF EXISTS `t_change_log`; -CREATE TABLE IF NOT EXISTS `t_change_log` ( - `change_log_id` bigint NOT NULL AUTO_INCREMENT COMMENT '更新日志id', - `version` varchar(255) COLLATE utf8mb4_general_ci NOT NULL COMMENT '版本', - `type` int NOT NULL COMMENT '更新类型:[1:特大版本功能更新;2:功能更新;3:bug修复]', - `publish_author` varchar(255) COLLATE utf8mb4_general_ci NOT NULL COMMENT '发布人', - `public_date` date NOT NULL COMMENT '发布日期', - `content` text COLLATE utf8mb4_general_ci NOT NULL COMMENT '更新内容', - `link` text COLLATE utf8mb4_general_ci COMMENT '跳转链接', - `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', - PRIMARY KEY (`change_log_id`), - UNIQUE KEY `version_unique` (`version`) -) ENGINE=InnoDB AUTO_INCREMENT=17 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='系统更新日志'; - --- 正在导出表 smart_admin_v2.t_change_log 的数据:~3 rows (大约) -DELETE FROM `t_change_log`; -/*!40000 ALTER TABLE `t_change_log` DISABLE KEYS */; -INSERT INTO `t_change_log` (`change_log_id`, `version`, `type`, `publish_author`, `public_date`, `content`, `link`, `create_time`, `update_time`) VALUES - (2, 'v1.1.0', 2, '卓大', '2020-05-09', 'SmartAdmin中后台系统 v1.1.0 版本(20200422)正式更新上线,更新内容如下:\n\n1.【新增】增加员工姓名查询\n\n2.【新增】增加文件预览组件\n\n3.【新增】新增四级菜单\n', 'http://smartadmin.1024lab.net/views/1.x/base/About.html', '2022-10-10 11:27:31', '2022-10-19 14:41:09'), - (8, 'v1.0.0', 1, '卓大', '2019-11-01', 'SmartAdmin中后台系统 v1.0.0 版本(20191101)正式更新上线,更新内容如下:\n\n1.【新增】人员管理\n\n2.【新增】系统设置\n\n3.【新增】心跳服务\n\n4.【新增】动态加载\n\n5.【新增】缓存策略\n\n6.【新增】定时任务', 'http://smartadmin.1024lab.net/views/1.x/base/About.html', '2022-10-10 11:41:57', '2022-10-19 14:40:31'), - (9, 'v1.2.0', 2, '卓大', '2020-05-23', 'SmartAdmin中后台系统 v1.2.0 版本(20200515)正式更新上线,更新内容如下:\n\n1.【新增】增加数据权限\n\n2.【新增】帮助文档', NULL, '2022-10-19 14:40:03', '2022-10-19 14:40:03'), - (10, 'v1.2.1', 3, '卓大', '2020-05-24', 'SmartAdmin中后台系统 v1.2.1 版本(20200524)正式更新上线,更新内容如下:\n\n1.【修复】四级菜单权限bug\n\n2.【修复】缓存keepalive的Bug\n\n', NULL, '2022-10-22 13:39:57', '2022-10-22 13:39:57'), - (11, 'v1.3.0', 2, '卓大', '2020-06-01', 'SmartAdmin中后台系统 v1.3.0 版本(20200601)正式更新上线,更新内容如下:\n\n1.【新增】工作台看板功能\n\n2.【新增】天气预报功能\n\n3.【新增】记录上次登录IP功能', NULL, '2022-10-22 13:42:07', '2022-10-22 13:42:53'), - (12, 'v1.4.0', 2, '卓大', '2020-06-06', 'SmartAdmin中后台系统 v1.4.0 版本(20200606)正式更新上线,更新内容如下:\n\n1.【新增】联系客服功能\n\n2.【新增】意见反馈功能', NULL, '2022-10-22 13:43:20', '2022-10-22 13:43:31'), - (13, 'v1.5.0', 2, '卓大', '2020-06-14', 'SmartAdmin中后台系统 v1.5.0 版本(20200614)正式更新上线,更新内容如下:\n\n1.【新增】OA系统\n\n2.【新增】通知公告', NULL, '2022-10-22 13:45:04', '2022-10-22 13:45:14'), - (14, 'v1.6.0', 2, '卓大', '2020-06-17', 'SmartAdmin中后台系统 v1.6.0 版本(20200617)正式更新上线,更新内容如下:\n\n1.【新增】代码生成\n\n2.【新增】通知公告', NULL, '2022-10-22 13:45:44', '2022-10-22 13:46:03'), - (15, 'v2.0.0', 1, '卓大', '2022-10-22', 'SmartAdmin中后台系统 v2.0.0 版本(20191101)正式更新上线,更新内容如下:\n\n1.【新增】人员管理\n\n2.【新增】系统设置\n\n3.【新增】心跳服务\n\n4.【新增】动态加载\n\n5.【新增】缓存策略\n\n6.【新增】定时任务', 'http://smartadmin.1024lab.net/views/1.x/base/About.html', '2022-10-22 13:47:01', '2022-10-22 13:47:01'), - (16, 'v1.7.0', 2, '卓大', '2022-10-22', 'SmartAdmin中后台系统 v1.7.0 版本(20200624)正式更新上线,更新内容如下:\n\n1.【新增】商品管理\n\n2.【新增】商品分类', NULL, '2022-10-22 13:48:02', '2022-10-22 13:48:02'); -/*!40000 ALTER TABLE `t_change_log` ENABLE KEYS */; - --- 导出 表 smart_admin_v2.t_code_generator_config 结构 -DROP TABLE IF EXISTS `t_code_generator_config`; -CREATE TABLE IF NOT EXISTS `t_code_generator_config` ( - `table_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '表名', - `basic` text COLLATE utf8mb4_general_ci COMMENT '基础命名信息', - `fields` text COLLATE utf8mb4_general_ci COMMENT '字段列表', - `insert_and_update` text COLLATE utf8mb4_general_ci COMMENT '新建、修改', - `delete_info` text COLLATE utf8mb4_general_ci COMMENT '删除', - `query_fields` text COLLATE utf8mb4_general_ci COMMENT '查询', - `table_fields` text COLLATE utf8mb4_general_ci COMMENT '列表', - `detail` text COLLATE utf8mb4_general_ci COMMENT '详情', - `create_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', - PRIMARY KEY (`table_name`) USING BTREE, - UNIQUE KEY `table_unique` (`table_name`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='代码生成器的每个表的配置'; - --- 正在导出表 smart_admin_v2.t_code_generator_config 的数据:~3 rows (大约) -DELETE FROM `t_code_generator_config`; -/*!40000 ALTER TABLE `t_code_generator_config` DISABLE KEYS */; -/*!40000 ALTER TABLE `t_code_generator_config` ENABLE KEYS */; - --- 导出 表 smart_admin_v2.t_config 结构 -DROP TABLE IF EXISTS `t_config`; -CREATE TABLE IF NOT EXISTS `t_config` ( - `config_id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', - `config_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '参数名字', - `config_key` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '参数key', - `config_value` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, - `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, - `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '上次修改时间', - `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - PRIMARY KEY (`config_id`) USING BTREE -) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='系统配置'; - --- 正在导出表 smart_admin_v2.t_config 的数据:~3 rows (大约) -DELETE FROM `t_config`; -/*!40000 ALTER TABLE `t_config` DISABLE KEYS */; -INSERT INTO `t_config` (`config_id`, `config_name`, `config_key`, `config_value`, `remark`, `update_time`, `create_time`) VALUES - (1, '万能密码', 'super_password', 'sasasa', '建议定期修改', '2022-10-19 20:25:57', '2021-12-16 23:32:46'), - (2, '本地上传url前缀', 'local_upload_url_prefix', 'http://localhost/file/', NULL, '2022-05-20 23:28:38', '2022-03-22 13:36:01'), - (7, '登录失效时间(单位 小时)', 'login_expires_hour', '2', NULL, '2022-10-16 19:04:59', '2022-10-16 19:04:59'); -/*!40000 ALTER TABLE `t_config` ENABLE KEYS */; - --- 导出 表 smart_admin_v2.t_data_tracer 结构 -DROP TABLE IF EXISTS `t_data_tracer`; -CREATE TABLE IF NOT EXISTS `t_data_tracer` ( - `data_tracer_id` bigint NOT NULL AUTO_INCREMENT, - `data_id` bigint NOT NULL COMMENT '各种单据的id', - `type` int NOT NULL COMMENT '单据类型', - `content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '操作内容', - `diff_old` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '差异:旧的数据', - `diff_new` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '差异:新的数据', - `extra_data` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '额外信息', - `user_id` bigint NOT NULL COMMENT '用户id', - `user_type` int NOT NULL COMMENT '用户类型:1 后管用户 ', - `user_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '用户名称', - `ip` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, - `user_agent` varchar(2000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, - `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', - `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - PRIMARY KEY (`data_tracer_id`) USING BTREE, - KEY `order_id_order_type` (`data_id`,`type`) USING BTREE -) ENGINE=InnoDB AUTO_INCREMENT=20 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='各种单据操作记录'; - --- 正在导出表 smart_admin_v2.t_data_tracer 的数据:~15 rows (大约) -DELETE FROM `t_data_tracer`; -/*!40000 ALTER TABLE `t_data_tracer` DISABLE KEYS */; -INSERT INTO `t_data_tracer` (`data_tracer_id`, `data_id`, `type`, `content`, `diff_old`, `diff_new`, `extra_data`, `user_id`, `user_type`, `user_name`, `ip`, `user_agent`, `update_time`, `create_time`) VALUES - (1, 49, 2, '新增', NULL, NULL, NULL, 1, 1, '管理员', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', '2022-10-22 14:27:33', '2022-10-22 14:27:33'), - (2, 50, 2, '新增', NULL, NULL, NULL, 1, 1, '管理员', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', '2022-10-22 14:29:56', '2022-10-22 14:29:56'), - (3, 51, 2, '新增', NULL, NULL, NULL, 1, 1, '管理员', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', '2022-10-22 14:30:46', '2022-10-22 14:30:46'), - (4, 52, 2, '新增', NULL, NULL, NULL, 1, 1, '管理员', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', '2022-10-22 14:33:03', '2022-10-22 14:33:03'), - (5, 53, 2, '新增', NULL, NULL, NULL, 1, 1, '管理员', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', '2022-10-22 14:34:56', '2022-10-22 14:34:56'), - (6, 54, 2, '新增', NULL, NULL, NULL, 1, 1, '管理员', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', '2022-10-22 14:36:10', '2022-10-22 14:36:10'), - (7, 55, 2, '新增', NULL, NULL, NULL, 1, 1, '管理员', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', '2022-10-22 14:37:57', '2022-10-22 14:37:57'), - (8, 56, 2, '新增', NULL, NULL, NULL, 1, 1, '管理员', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', '2022-10-22 14:40:45', '2022-10-22 14:40:45'), - (9, 57, 2, '新增', NULL, NULL, NULL, 1, 1, '管理员', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', '2022-10-22 14:46:00', '2022-10-22 14:46:00'), - (10, 58, 2, '新增', NULL, NULL, NULL, 1, 1, '管理员', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', '2022-10-22 14:47:12', '2022-10-22 14:47:12'), - (11, 58, 2, '', NULL, NULL, NULL, 1, 1, '管理员', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', '2022-10-22 14:47:26', '2022-10-22 14:47:26'), - (12, 59, 2, '新增', NULL, NULL, NULL, 1, 1, '管理员', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', '2022-10-22 14:50:12', '2022-10-22 14:50:12'), - (13, 17, 3, '新增', NULL, NULL, NULL, 44, 1, '卓大', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', '2022-10-22 14:57:36', '2022-10-22 14:57:36'), - (14, 18, 3, '新增', NULL, NULL, NULL, 1, 1, '管理员', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', '2022-10-22 17:03:35', '2022-10-22 17:03:35'), - (15, 2, 3, '新增银行:
银行信息ID:26
账户名称:"1024创新实验室"
禁用状态:false
开户银行:"工商银行"
备注:"基本户"
账号:"1024"
是否对公:true', NULL, NULL, NULL, 1, 1, '管理员', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', '2022-10-22 17:58:43', '2022-10-22 17:58:43'), - (16, 2, 3, '新增银行:
银行信息ID:27
账户名称:"1024创新实验室"
禁用状态:false
开户银行:"建设银行"
备注:"其他户"
账号:"10241"
是否对公:false', NULL, NULL, NULL, 1, 1, '管理员', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', '2022-10-22 17:59:19', '2022-10-22 17:59:19'), - (17, 2, 3, '新增发票:
禁用状态:false
开户行:"中国银行"
备注:""
银行账户:"1024lab"
开票抬头:"1024创新实验室"
纳税人识别号:"1024lab"', NULL, NULL, NULL, 1, 1, '管理员', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', '2022-10-22 17:59:35', '2022-10-22 17:59:35'), - (18, 2, 3, '修改企业信息', '统一社会信用代码:"1024lab"
详细地址:"1024大楼"
区县名称:"洛龙区"
禁用状态:false
类型:有限企业
城市名称:"洛阳市"
删除状态:false
联系人:"卓大"
省份名称:"河南省"
企业logo:"public/common/fb827d63dda74a60ab8b4f70cc7c7d0a_20221022145641_jpg"
联系人电话:"18637925892"
企业名称:"1024创新实验室"
邮箱:"lab1024@163.com"', '统一社会信用代码:"1024lab"
详细地址:"1024大楼"
区县名称:"洛龙区"
禁用状态:false
类型:有限企业
城市名称:"洛阳市"
删除状态:false
联系人:"卓大"
省份名称:"河南省"
企业logo:"public/common/fb827d63dda74a60ab8b4f70cc7c7d0a_20221022145641_jpg"
联系人电话:"18637925892"
企业名称:"1024创新实验室1"
邮箱:"lab1024@163.com"', NULL, 1, 1, '管理员', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', '2022-10-22 17:59:49', '2022-10-22 17:59:49'), - (19, 2, 3, '修改企业信息', '统一社会信用代码:"1024lab"
详细地址:"1024大楼"
区县名称:"洛龙区"
禁用状态:false
类型:有限企业
城市名称:"洛阳市"
删除状态:false
联系人:"卓大"
省份名称:"河南省"
企业logo:"public/common/fb827d63dda74a60ab8b4f70cc7c7d0a_20221022145641_jpg"
联系人电话:"18637925892"
企业名称:"1024创新实验室1"
邮箱:"lab1024@163.com"', '统一社会信用代码:"1024lab"
详细地址:"1024大楼"
区县名称:"洛龙区"
禁用状态:false
类型:有限企业
城市名称:"洛阳市"
删除状态:false
联系人:"卓大"
省份名称:"河南省"
企业logo:"public/common/fb827d63dda74a60ab8b4f70cc7c7d0a_20221022145641_jpg"
联系人电话:"18637925892"
企业名称:"1024创新实验室"
邮箱:"lab1024@163.com"', NULL, 1, 1, '管理员', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', '2022-10-22 17:59:52', '2022-10-22 17:59:52'); -/*!40000 ALTER TABLE `t_data_tracer` ENABLE KEYS */; - --- 导出 表 smart_admin_v2.t_department 结构 -DROP TABLE IF EXISTS `t_department`; -CREATE TABLE IF NOT EXISTS `t_department` ( - `department_id` bigint NOT NULL AUTO_INCREMENT COMMENT '部门主键id', - `name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '部门名称', - `manager_id` bigint DEFAULT NULL COMMENT '部门负责人id', - `parent_id` bigint NOT NULL DEFAULT '0' COMMENT '部门的父级id', - `sort` int NOT NULL COMMENT '部门排序', - `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '更新时间', - `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - PRIMARY KEY (`department_id`) USING BTREE, - KEY `parent_id` (`parent_id`) USING BTREE -) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='部门'; - --- 正在导出表 smart_admin_v2.t_department 的数据:~4 rows (大约) -DELETE FROM `t_department`; -/*!40000 ALTER TABLE `t_department` DISABLE KEYS */; -INSERT INTO `t_department` (`department_id`, `name`, `manager_id`, `parent_id`, `sort`, `update_time`, `create_time`) VALUES - (1, '1024创新实验室', 1, 0, 1, '2022-10-19 20:17:09', '2022-10-19 20:17:09'), - (2, '开发部', 44, 1, 1000, '2022-10-19 20:22:23', '2022-10-19 20:22:23'), - (3, '产品部', 2, 1, 99, '2022-10-21 10:25:30', '2022-10-21 10:25:30'), - (4, '销售部', 64, 1, 9, '2022-10-21 10:25:47', '2022-10-21 10:25:47'); -/*!40000 ALTER TABLE `t_department` ENABLE KEYS */; - --- 导出 表 smart_admin_v2.t_dict_key 结构 -DROP TABLE IF EXISTS `t_dict_key`; -CREATE TABLE IF NOT EXISTS `t_dict_key` ( - `dict_key_id` bigint NOT NULL AUTO_INCREMENT, - `key_code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '编码', - `key_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '名称', - `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', - `deleted_flag` tinyint NOT NULL DEFAULT '0' COMMENT '删除状态', - `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, - PRIMARY KEY (`dict_key_id`) -) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='字段key'; - --- 正在导出表 smart_admin_v2.t_dict_key 的数据:~1 rows (大约) -DELETE FROM `t_dict_key`; -/*!40000 ALTER TABLE `t_dict_key` DISABLE KEYS */; -INSERT INTO `t_dict_key` (`dict_key_id`, `key_code`, `key_name`, `remark`, `deleted_flag`, `update_time`, `create_time`) VALUES - (1, 'GODOS_PLACE', '商品产地', '商品产地的字典', 0, '2022-10-21 16:07:41', '2022-10-21 16:07:41'); -/*!40000 ALTER TABLE `t_dict_key` ENABLE KEYS */; - --- 导出 表 smart_admin_v2.t_dict_value 结构 -DROP TABLE IF EXISTS `t_dict_value`; -CREATE TABLE IF NOT EXISTS `t_dict_value` ( - `dict_value_id` bigint NOT NULL AUTO_INCREMENT, - `dict_key_id` bigint NOT NULL, - `value_code` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '编码', - `value_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '名称', - `remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', - `sort` int NOT NULL DEFAULT '0' COMMENT '排序', - `deleted_flag` tinyint NOT NULL DEFAULT '0' COMMENT '删除状态', - `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, - PRIMARY KEY (`dict_value_id`) -) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='字典的值'; - --- 正在导出表 smart_admin_v2.t_dict_value 的数据:~3 rows (大约) -DELETE FROM `t_dict_value`; -/*!40000 ALTER TABLE `t_dict_value` DISABLE KEYS */; -INSERT INTO `t_dict_value` (`dict_value_id`, `dict_key_id`, `value_code`, `value_name`, `remark`, `sort`, `deleted_flag`, `update_time`, `create_time`) VALUES - (1, 1, 'LUO_YANG', '洛阳', '', 1, 0, '2022-10-21 16:07:54', '2022-10-21 16:07:54'), - (2, 1, 'ZHENG_ZHOU', '郑州', '', 1, 0, '2022-10-21 16:08:02', '2022-10-21 16:08:02'), - (3, 1, 'BEI_JING', '北京', '', 3, 0, '2022-10-21 19:13:03', '2022-10-21 16:08:22'); -/*!40000 ALTER TABLE `t_dict_value` ENABLE KEYS */; - --- 导出 表 smart_admin_v2.t_employee 结构 -DROP TABLE IF EXISTS `t_employee`; -CREATE TABLE IF NOT EXISTS `t_employee` ( - `employee_id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '主键', - `login_name` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '登录帐号', - `login_pwd` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '登录密码', - `actual_name` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '员工名称', - `gender` tinyint(1) NOT NULL DEFAULT '0' COMMENT '性别', - `phone` varchar(15) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '手机号码', - `department_id` int NOT NULL COMMENT '部门id', - `disabled_flag` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否被禁用 0否1是', - `deleted_flag` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '是否删除0否 1是', - `administrator_flag` tinyint NOT NULL DEFAULT '0' COMMENT '是否为超级管理员: 0 不是,1是', - `remark` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注', - `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', - `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - PRIMARY KEY (`employee_id`) USING BTREE -) ENGINE=InnoDB AUTO_INCREMENT=72 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='员工表'; - --- 正在导出表 smart_admin_v2.t_employee 的数据:~12 rows (大约) -DELETE FROM `t_employee`; -/*!40000 ALTER TABLE `t_employee` DISABLE KEYS */; -INSERT INTO `t_employee` (`employee_id`, `login_name`, `login_pwd`, `actual_name`, `gender`, `phone`, `department_id`, `disabled_flag`, `deleted_flag`, `administrator_flag`, `remark`, `update_time`, `create_time`) VALUES - (1, 'admin', '40cc20b8891cd3fd1f008ea7f4ac17c3', '管理员', 0, '13500000000', 1, 0, 0, 1, NULL, '2022-10-22 19:33:02', '2018-05-11 09:38:54'), - (2, 'huke', '40cc20b8891cd3fd1f008ea7f4ac17c3', '胡克', 0, '13123123121', 1, 0, 0, 0, NULL, '2022-10-19 20:17:30', '2021-07-29 11:24:55'), - (44, 'zhuoda', '40cc20b8891cd3fd1f008ea7f4ac17c3', '卓大', 1, '18637925892', 1, 0, 0, 1, NULL, '2022-10-22 14:29:04', '2021-08-11 10:04:53'), - (47, 'shanyi', '40cc20b8891cd3fd1f008ea7f4ac17c3', '善逸', 1, '13123111123', 1, 0, 0, 0, NULL, '2022-10-19 20:19:50', '2021-08-16 17:14:55'), - (48, 'qinjiu', '40cc20b8891cd3fd1f008ea7f4ac17c3', '琴酒', 2, '14112343212', 2, 0, 0, 0, NULL, '2022-10-19 20:23:40', '2021-08-17 10:29:41'), - (63, 'kaiyun', '40cc20b8891cd3fd1f008ea7f4ac17c3', '开云', 0, '13112312346', 2, 0, 0, 0, NULL, '2022-10-19 20:23:40', '2022-06-03 22:41:55'), - (64, 'qingye', '40cc20b8891cd3fd1f008ea7f4ac17c3', '清野', 1, '13123123111', 2, 0, 0, 0, NULL, '2022-10-19 20:23:40', '2022-06-16 17:19:08'), - (65, 'feiye', '40cc20b8891cd3fd1f008ea7f4ac17c3', '飞叶', 1, '13123123112', 1, 0, 0, 0, NULL, '2022-09-15 16:51:09', '2022-06-16 17:24:18'), - (66, 'luoyi', '40cc20b8891cd3fd1f008ea7f4ac17c3', '罗伊', 1, '13123123142', 1, 1, 0, 0, NULL, '2022-09-15 16:51:19', '2022-06-16 17:24:56'), - (67, 'chuxiao', '7287168489ed5598741362cbec2b0741', '初晓', 1, '13123123123', 1, 0, 0, 0, NULL, '2022-09-17 15:42:42', '2022-06-16 17:28:32'), - (68, 'xuanpeng', '40cc20b8891cd3fd1f008ea7f4ac17c3', '玄朋', 1, '13123123124', 1, 0, 0, 0, NULL, '2022-09-15 16:51:43', '2022-06-16 17:30:17'), - (69, 'peixian', '40cc20b8891cd3fd1f008ea7f4ac17c3', '佩弦', 1, '18377482773', 1, 0, 0, 0, NULL, '2022-10-19 20:17:35', '2022-06-25 16:42:52'); -/*!40000 ALTER TABLE `t_employee` ENABLE KEYS */; - --- 导出 表 smart_admin_v2.t_feedback 结构 -DROP TABLE IF EXISTS `t_feedback`; -CREATE TABLE IF NOT EXISTS `t_feedback` ( - `feedback_id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键', - `feedback_content` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '反馈内容', - `feedback_attachment` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '反馈图片', - `user_id` bigint NOT NULL COMMENT '创建人id', - `user_type` int NOT NULL COMMENT '创建人用户类型', - `user_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '创建人姓名', - `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', - PRIMARY KEY (`feedback_id`) USING BTREE -) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=DYNAMIC COMMENT='意见反馈'; - --- 正在导出表 smart_admin_v2.t_feedback 的数据:~0 rows (大约) -DELETE FROM `t_feedback`; -/*!40000 ALTER TABLE `t_feedback` DISABLE KEYS */; -INSERT INTO `t_feedback` (`feedback_id`, `feedback_content`, `feedback_attachment`, `user_id`, `user_type`, `user_name`, `create_time`, `update_time`) VALUES - (1, '希望增加微信公众号消息提醒功能', 'public/feedback/609fd595e8a9416b992c3a00e37cc8e0_20221022133322_jpg', 44, 1, '卓大', '2022-10-22 13:33:25', '2022-10-22 13:33:25'), - (2, '顶部菜单希望能尽快实现', '', 44, 1, '卓大', '2022-10-22 13:34:20', '2022-10-22 13:34:20'), - (3, 'app版本什么时候能推出?', '', 1, 1, '管理员', '2022-10-22 13:35:13', '2022-10-22 13:35:13'); -/*!40000 ALTER TABLE `t_feedback` ENABLE KEYS */; - --- 导出 表 smart_admin_v2.t_file 结构 -DROP TABLE IF EXISTS `t_file`; -CREATE TABLE IF NOT EXISTS `t_file` ( - `file_id` int NOT NULL AUTO_INCREMENT COMMENT '主键ID', - `folder_type` tinyint unsigned NOT NULL COMMENT '文件夹类型', - `file_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '文件名称', - `file_size` int DEFAULT NULL COMMENT '文件大小', - `file_key` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '文件key,用于文件下载', - `file_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '文件类型', - `creator_id` int DEFAULT NULL COMMENT '创建人,即上传人', - `creator_user_type` int DEFAULT NULL COMMENT '创建人用户类型', - `creator_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '创建人姓名', - `update_time` datetime DEFAULT CURRENT_TIMESTAMP COMMENT '上次更新时间', - `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - PRIMARY KEY (`file_id`) USING BTREE, - UNIQUE KEY `uk_file_key` (`file_key`) USING BTREE, - KEY `module_id_module_type` (`folder_type`) USING BTREE, - KEY `module_type` (`folder_type`) USING BTREE -) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='文件'; - --- 正在导出表 smart_admin_v2.t_file 的数据:~14 rows (大约) -DELETE FROM `t_file`; -/*!40000 ALTER TABLE `t_file` DISABLE KEYS */; -INSERT INTO `t_file` (`file_id`, `folder_type`, `file_name`, `file_size`, `file_key`, `file_type`, `creator_id`, `creator_user_type`, `creator_name`, `update_time`, `create_time`) VALUES - (4, 1, '1024lab-gzh.jpg', 27898, 'public/common/7e3cb80f02c84ca3aba359f166c8c69e-20221021115207-jpg', 'jpg', 1, 1, '管理员', '2022-10-21 11:52:07', '2022-10-21 11:52:07'), - (5, 1, 'QQ拼音截图20220914221459.png', 4088, 'public/common/b298956317bd419d899a4d3f1d28dbb6-20221021115215-png', 'png', 1, 1, '管理员', '2022-10-21 11:52:15', '2022-10-21 11:52:15'), - (6, 1, 'dfcb686a409e8c0e0c93f95e7129dc46.jpeg', 30137, 'public/common/b817542a80a84435ae86991d68546eb4_20221021121746_jpeg', 'jpeg', 1, 1, '管理员', '2022-10-21 12:17:47', '2022-10-21 12:17:47'), - (7, 1, 'QQ拼音截图20220914221459.png', 4088, 'public/common/888ea37c5a6c4c088658264464ba3cae_20221021121755_png', 'png', 1, 1, '管理员', '2022-10-21 12:17:55', '2022-10-21 12:17:55'), - (18, 4, 'zhuoda-wechat.jpg', 42080, 'public/feedback/609fd595e8a9416b992c3a00e37cc8e0_20221022133322_jpg', 'jpg', 44, 1, '卓大', '2022-10-22 13:33:23', '2022-10-22 13:33:23'), - (19, 1, '1024lab-gzh.jpg', 27898, 'public/common/fb827d63dda74a60ab8b4f70cc7c7d0a_20221022145641_jpg', 'jpg', 44, 1, '卓大', '2022-10-22 14:56:42', '2022-10-22 14:56:42'), - (20, 1, 'xiaozhen-gzh.jpg', 8786, 'public/common/f4a76fa720814949a610f05f6f9545bf_20221022170256_jpg', 'jpg', 1, 1, '管理员', '2022-10-22 17:02:56', '2022-10-22 17:02:56'), - (21, 1, '1024lab-gzh.jpg', 27898, 'public/common/852b7e19bef94af39c1a6156edf47cfb_20221022170332_jpg', 'jpg', 1, 1, '管理员', '2022-10-22 17:03:32', '2022-10-22 17:03:32'); -/*!40000 ALTER TABLE `t_file` ENABLE KEYS */; - --- 导出 表 smart_admin_v2.t_goods 结构 -DROP TABLE IF EXISTS `t_goods`; -CREATE TABLE IF NOT EXISTS `t_goods` ( - `goods_id` int NOT NULL AUTO_INCREMENT, - `goods_status` int DEFAULT NULL COMMENT '商品状态:[1:预约中,2:售卖中,3:售罄]', - `category_id` int NOT NULL COMMENT '商品类目', - `goods_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '商品名称', - `place` varchar(255) COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '产地', - `price` decimal(10,2) unsigned NOT NULL COMMENT '价格', - `shelves_flag` tinyint unsigned NOT NULL COMMENT '上架状态', - `deleted_flag` tinyint unsigned NOT NULL DEFAULT '0' COMMENT '删除状态', - `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', - `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - `create_time` datetime DEFAULT CURRENT_TIMESTAMP, - PRIMARY KEY (`goods_id`) USING BTREE -) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='商品'; - --- 正在导出表 smart_admin_v2.t_goods 的数据:~3 rows (大约) -DELETE FROM `t_goods`; -/*!40000 ALTER TABLE `t_goods` DISABLE KEYS */; -INSERT INTO `t_goods` (`goods_id`, `goods_status`, `category_id`, `goods_name`, `place`, `price`, `shelves_flag`, `deleted_flag`, `remark`, `update_time`, `create_time`) VALUES - (1, 1, 353, 'Mote60', 'BEI_JING', 9999.00, 1, 0, NULL, '2022-10-21 19:57:49', '2021-09-01 22:25:30'), - (7, 1, 352, 'iphone15 pro', 'LUO_YANG', 50000.00, 1, 0, '备注', '2022-10-21 19:58:07', '2022-09-15 14:17:11'), - (8, 1, 352, 'iphone14', 'ZHENG_ZHOU', 150.00, 0, 0, '', '2022-10-21 19:12:49', '2022-10-21 19:00:11'); -/*!40000 ALTER TABLE `t_goods` ENABLE KEYS */; - --- 导出 表 smart_admin_v2.t_heart_beat_record 结构 -DROP TABLE IF EXISTS `t_heart_beat_record`; -CREATE TABLE IF NOT EXISTS `t_heart_beat_record` ( - `heart_beat_record_id` int NOT NULL AUTO_INCREMENT COMMENT '自增id', - `project_path` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '项目名称', - `server_ip` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '服务器ip', - `process_no` int NOT NULL COMMENT '进程号', - `process_start_time` datetime NOT NULL COMMENT '进程开启时间', - `heart_beat_time` datetime NOT NULL COMMENT '心跳时间', - PRIMARY KEY (`heart_beat_record_id`) USING BTREE -) ENGINE=InnoDB AUTO_INCREMENT=313 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='公用服务 - 服务心跳'; - --- 正在导出表 smart_admin_v2.t_heart_beat_record 的数据:~305 rows (大约) -DELETE FROM `t_heart_beat_record`; -/*!40000 ALTER TABLE `t_heart_beat_record` DISABLE KEYS */; -INSERT INTO `t_heart_beat_record` (`heart_beat_record_id`, `project_path`, `server_ip`, `process_no`, `process_start_time`, `heart_beat_time`) VALUES - (309, 'E:\\code_work_space\\idea\\transport-project\\tms', '127.0.0.1;192.168.1.113', 37328, '2022-10-22 11:52:59', '2022-10-22 12:00:18'), - (310, 'E:\\code_work_space\\idea\\transport-project\\tms', '127.0.0.1;192.168.1.113', 37312, '2022-10-22 13:27:35', '2022-10-22 17:19:44'), - (311, 'E:\\code_work_space\\idea\\transport-project\\tms', '127.0.0.1;192.168.1.113', 12608, '2022-10-22 17:53:00', '2022-10-22 18:00:20'), - (312, 'E:\\code_work_space\\idea\\transport-project\\tms', '127.0.0.1;192.168.1.113', 35360, '2022-10-22 18:14:55', '2022-10-22 19:32:24'); -/*!40000 ALTER TABLE `t_heart_beat_record` ENABLE KEYS */; - --- 导出 表 smart_admin_v2.t_help_doc 结构 -DROP TABLE IF EXISTS `t_help_doc`; -CREATE TABLE IF NOT EXISTS `t_help_doc` ( - `help_doc_id` bigint NOT NULL AUTO_INCREMENT, - `help_doc_catalog_id` bigint NOT NULL COMMENT '类型1公告 2动态', - `title` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '标题', - `content_text` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '文本内容', - `content_html` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 'html内容', - `attachment` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '附件', - `sort` int NOT NULL DEFAULT '0' COMMENT '排序', - `page_view_count` int NOT NULL DEFAULT '0' COMMENT '页面浏览量,传说中的pv', - `user_view_count` int NOT NULL DEFAULT '0' COMMENT '用户浏览量,传说中的uv', - `author` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '作者', - `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, - PRIMARY KEY (`help_doc_id`) USING BTREE -) ENGINE=InnoDB AUTO_INCREMENT=31 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='帮助文档'; - --- 正在导出表 smart_admin_v2.t_help_doc 的数据:~28 rows (大约) -DELETE FROM `t_help_doc`; -/*!40000 ALTER TABLE `t_help_doc` DISABLE KEYS */; -/*!40000 ALTER TABLE `t_help_doc` ENABLE KEYS */; - --- 导出 表 smart_admin_v2.t_help_doc_catalog 结构 -DROP TABLE IF EXISTS `t_help_doc_catalog`; -CREATE TABLE IF NOT EXISTS `t_help_doc_catalog` ( - `help_doc_catalog_id` bigint NOT NULL AUTO_INCREMENT COMMENT '帮助文档目录', - `name` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '名称', - `sort` int NOT NULL DEFAULT '0' COMMENT '排序字段', - `parent_id` bigint NOT NULL COMMENT '父级id', - `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, - `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`help_doc_catalog_id`) USING BTREE -) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='帮助文档-目录'; - --- 正在导出表 smart_admin_v2.t_help_doc_catalog 的数据:~5 rows (大约) -DELETE FROM `t_help_doc_catalog`; -/*!40000 ALTER TABLE `t_help_doc_catalog` DISABLE KEYS */; -/*!40000 ALTER TABLE `t_help_doc_catalog` ENABLE KEYS */; - --- 导出 表 smart_admin_v2.t_help_doc_relation 结构 -DROP TABLE IF EXISTS `t_help_doc_relation`; -CREATE TABLE IF NOT EXISTS `t_help_doc_relation` ( - `relation_id` bigint NOT NULL COMMENT '关联id', - `relation_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '关联名称', - `help_doc_id` bigint NOT NULL COMMENT '文档id', - `create_time` datetime DEFAULT CURRENT_TIMESTAMP, - `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`relation_id`,`help_doc_id`) USING BTREE, - UNIQUE KEY `uni_menu_help_doc` (`relation_id`,`help_doc_id`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='帮助文档-关联表'; - --- 正在导出表 smart_admin_v2.t_help_doc_relation 的数据:~4 rows (大约) -DELETE FROM `t_help_doc_relation`; -/*!40000 ALTER TABLE `t_help_doc_relation` DISABLE KEYS */; -/*!40000 ALTER TABLE `t_help_doc_relation` ENABLE KEYS */; - --- 导出 表 smart_admin_v2.t_help_doc_view_record 结构 -DROP TABLE IF EXISTS `t_help_doc_view_record`; -CREATE TABLE IF NOT EXISTS `t_help_doc_view_record` ( - `help_doc_id` int NOT NULL COMMENT '通知公告id', - `user_id` int NOT NULL COMMENT '用户id', - `user_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '用户名称', - `page_view_count` int DEFAULT '0' COMMENT '查看次数', - `first_ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '首次ip', - `first_user_agent` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '首次用户设备等标识', - `last_ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '最后一次ip', - `last_user_agent` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '最后一次用户设备等标识', - `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, - `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`help_doc_id`,`user_id`) USING BTREE, - UNIQUE KEY `uk_notice_employee` (`help_doc_id`,`user_id`) USING BTREE COMMENT '资讯员工' -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='帮助文档-查看记录'; - --- 正在导出表 smart_admin_v2.t_help_doc_view_record 的数据:~69 rows (大约) -DELETE FROM `t_help_doc_view_record`; -/*!40000 ALTER TABLE `t_help_doc_view_record` DISABLE KEYS */; -/*!40000 ALTER TABLE `t_help_doc_view_record` ENABLE KEYS */; - --- 导出 表 smart_admin_v2.t_login_log 结构 -DROP TABLE IF EXISTS `t_login_log`; -CREATE TABLE IF NOT EXISTS `t_login_log` ( - `login_log_id` bigint unsigned NOT NULL AUTO_INCREMENT COMMENT '主键', - `user_id` int NOT NULL COMMENT '用户id', - `user_type` int NOT NULL COMMENT '用户类型', - `user_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '用户名', - `login_ip` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '用户ip', - `user_agent` text COLLATE utf8mb4_unicode_ci COMMENT 'user-agent信息', - `login_result` int NOT NULL COMMENT '登录结果:0成功 1失败 2 退出', - `remark` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '备注', - `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', - `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - PRIMARY KEY (`login_log_id`) USING BTREE, - KEY `customer_id` (`user_id`) USING BTREE -) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户登录日志'; - --- 正在导出表 smart_admin_v2.t_login_log 的数据:~5 rows (大约) -DELETE FROM `t_login_log`; -/*!40000 ALTER TABLE `t_login_log` DISABLE KEYS */; -INSERT INTO `t_login_log` (`login_log_id`, `user_id`, `user_type`, `user_name`, `login_ip`, `user_agent`, `login_result`, `remark`, `update_time`, `create_time`) VALUES - (1, 1, 1, '管理员', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 0, '电脑端', '2022-10-21 10:31:08', '2022-10-21 10:31:06'), - (2, 1, 1, '管理员', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 0, '电脑端', '2022-10-22 10:29:16', '2022-10-22 10:29:16'), - (3, 44, 1, '卓大', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 1, '密码错误', '2022-10-22 10:51:49', '2022-10-22 10:51:49'), - (4, 44, 1, '卓大', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 0, '万能密码登录', '2022-10-22 10:52:00', '2022-10-22 10:52:00'), - (5, 44, 1, '卓大', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 0, '万能密码登录', '2022-10-22 11:56:06', '2022-10-22 11:56:07'), - (6, 44, 1, '卓大', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 0, '万能密码登录', '2022-10-22 13:32:26', '2022-10-22 13:32:26'), - (7, 44, 1, '卓大', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 0, '万能密码登录', '2022-10-22 14:08:14', '2022-10-22 14:08:14'), - (8, 44, 1, '卓大', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 0, '万能密码登录', '2022-10-22 14:40:55', '2022-10-22 14:40:55'), - (9, 1, 1, '管理员', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 0, '万能密码登录', '2022-10-22 18:28:07', '2022-10-22 18:28:07'), - (10, 1, 1, '管理员', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 0, '万能密码登录', '2022-10-22 18:28:54', '2022-10-22 18:28:54'), - (11, 1, 1, '管理员', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 0, '万能密码登录', '2022-10-22 18:58:21', '2022-10-22 18:58:21'), - (12, 1, 1, '管理员', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 0, '万能密码登录', '2022-10-22 19:07:09', '2022-10-22 19:07:10'), - (13, 1, 1, '管理员', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, '密码错误', '2022-10-22 19:32:28', '2022-10-22 19:32:28'), - (14, 1, 1, '管理员', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 0, '电脑端', '2022-10-22 19:32:37', '2022-10-22 19:32:37'); -/*!40000 ALTER TABLE `t_login_log` ENABLE KEYS */; - --- 导出 表 smart_admin_v2.t_menu 结构 -DROP TABLE IF EXISTS `t_menu`; -CREATE TABLE IF NOT EXISTS `t_menu` ( - `menu_id` bigint NOT NULL AUTO_INCREMENT COMMENT '菜单ID', - `menu_name` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '菜单名称', - `menu_type` int NOT NULL COMMENT '类型', - `parent_id` bigint NOT NULL COMMENT '父菜单ID', - `sort` int DEFAULT NULL COMMENT '显示顺序', - `path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '路由地址', - `component` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '组件路径', - `perms_type` int DEFAULT NULL COMMENT '权限类型', - `api_perms` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci COMMENT '后端权限字符串', - `web_perms` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci COMMENT '前端权限字符串', - `icon` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '菜单图标', - `context_menu_id` bigint DEFAULT NULL COMMENT '功能点关联菜单ID', - `frame_flag` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否为外链', - `frame_url` text COMMENT '外链地址', - `cache_flag` tinyint(1) NOT NULL DEFAULT '0' COMMENT '是否缓存', - `visible_flag` tinyint(1) NOT NULL DEFAULT '1' COMMENT '显示状态', - `disabled_flag` tinyint(1) NOT NULL DEFAULT '0' COMMENT '禁用状态', - `deleted_flag` tinyint(1) NOT NULL DEFAULT '0' COMMENT '删除状态', - `create_user_id` bigint NOT NULL COMMENT '创建人', - `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `update_user_id` bigint DEFAULT NULL COMMENT '更新人', - `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', - PRIMARY KEY (`menu_id`) USING BTREE -) ENGINE=InnoDB AUTO_INCREMENT=208 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='菜单表'; - --- 正在导出表 smart_admin_v2.t_menu 的数据:~107 rows (大约) -DELETE FROM `t_menu`; -/*!40000 ALTER TABLE `t_menu` DISABLE KEYS */; -INSERT INTO `t_menu` (`menu_id`, `menu_name`, `menu_type`, `parent_id`, `sort`, `path`, `component`, `perms_type`, `api_perms`, `web_perms`, `icon`, `context_menu_id`, `frame_flag`, `frame_url`, `cache_flag`, `visible_flag`, `disabled_flag`, `deleted_flag`, `create_user_id`, `create_time`, `update_user_id`, `update_time`) VALUES - (26, '菜单管理', 2, 50, 0, '/menu/list', '/system/menu/menu-list.vue', NULL, NULL, NULL, 'CopyOutlined', NULL, 0, NULL, 1, 1, 0, 0, 2, '2021-08-09 15:04:35', 1, '2022-10-16 00:04:19'), - (40, '批量删除', 3, 26, NULL, NULL, NULL, 1, NULL, 'system:menu:batch:delete', NULL, 26, 0, NULL, 0, 1, 0, 0, 1, '2021-08-12 09:45:56', 1, '2022-10-22 10:39:01'), - (45, '部门员工', 1, 0, 100, '/organization', NULL, NULL, NULL, NULL, 'UserSwitchOutlined', NULL, 0, NULL, 0, 1, 0, 0, 1, '2021-08-12 16:13:27', 44, '2022-10-22 11:19:49'), - (46, '部门员工', 2, 45, 1, '/employee/department', '/system/employee/department/index.vue', NULL, NULL, NULL, 'AuditOutlined', NULL, 0, NULL, 0, 1, 0, 0, 1, '2021-08-12 16:21:50', 1, '2022-06-23 16:19:54'), - (47, '商品管理', 2, 48, 3, '/erp/goods/list', '/business/erp/goods/goods-list.vue', NULL, NULL, NULL, 'AliwangwangOutlined', NULL, 0, NULL, 0, 1, 0, 0, 1, '2021-08-12 17:58:39', 1, '2022-09-14 21:50:11'), - (48, '商品管理', 1, 137, 10, '/goods', NULL, NULL, NULL, NULL, 'BarcodeOutlined', NULL, 0, NULL, 0, 1, 0, 0, 1, '2021-08-12 18:02:59', 1, '2022-06-24 20:07:35'), - (50, '系统设置', 1, 0, 200, '/setting', NULL, NULL, NULL, NULL, 'SettingOutlined', NULL, 0, NULL, 0, 1, 0, 0, 1, '2021-08-13 16:41:33', 1, '2022-09-14 15:46:51'), - (76, '角色管理', 2, 45, 2, '/employee/role', '/system/employee/role/index.vue', NULL, NULL, NULL, 'SlidersOutlined', NULL, 0, NULL, 0, 1, 0, 0, 1, '2021-08-26 10:31:00', 1, '2022-06-23 16:21:06'), - (78, '商品分类', 2, 48, 1, '/erp/catalog/goods', '/business/erp/catalog/goods-catalog.vue', NULL, NULL, NULL, 'ApartmentOutlined', NULL, 0, NULL, 0, 1, 0, 0, 1, '2022-05-18 23:34:14', 1, '2022-09-14 21:52:12'), - (79, '自定义分组', 2, 48, 2, '/erp/catalog/custom', '/business/erp/catalog/custom-catalog.vue', NULL, NULL, NULL, 'AppstoreAddOutlined', NULL, 0, NULL, 0, 1, 0, 0, 1, '2022-05-18 23:37:53', 1, '2022-09-14 21:50:58'), - (81, '请求监控', 2, 111, 3, '/support/operate-log/operate-log-list', '/support/operate-log/operate-log-list.vue', NULL, NULL, NULL, 'VideoCameraOutlined', NULL, 0, NULL, 0, 1, 0, 0, 1, '2022-05-20 12:37:24', 1, '2022-10-22 18:33:10'), - (85, '组件演示', 2, 84, NULL, '/demonstration/index', '/support/demonstration/index.vue', NULL, NULL, NULL, 'ClearOutlined', NULL, 0, NULL, 0, 1, 0, 0, 1, '2022-05-20 23:16:46', NULL, '2022-05-20 23:16:46'), - (86, '添加部门', 3, 46, NULL, NULL, NULL, 1, NULL, 'system:department:add', NULL, NULL, 0, NULL, 0, 1, 0, 0, 1, '2022-05-26 23:33:37', NULL, '2022-10-22 10:39:01'), - (87, '修改部门', 3, 46, NULL, NULL, NULL, 1, NULL, 'system:department:update', NULL, NULL, 0, NULL, 0, 1, 0, 0, 1, '2022-05-26 23:34:11', NULL, '2022-10-22 10:39:02'), - (88, '删除部门', 3, 46, NULL, NULL, NULL, 1, NULL, 'system:department:delete', NULL, NULL, 0, NULL, 0, 1, 0, 0, 1, '2022-05-26 23:34:49', NULL, '2022-10-22 10:39:03'), - (91, '添加员工', 3, 46, NULL, NULL, NULL, 1, NULL, 'system:employee:add', NULL, NULL, 0, NULL, 0, 1, 0, 0, 1, '2022-05-27 00:11:38', NULL, '2022-10-22 10:39:03'), - (92, '编辑员工', 3, 46, NULL, NULL, NULL, 1, NULL, 'system:employee:update', NULL, NULL, 0, NULL, 0, 1, 0, 0, 1, '2022-05-27 00:12:10', NULL, '2022-10-22 10:39:04'), - (93, '禁用启用员工', 3, 46, NULL, NULL, NULL, 1, NULL, 'system:employee:disabled', NULL, NULL, 0, NULL, 0, 1, 0, 0, 1, '2022-05-27 00:12:37', NULL, '2022-10-22 10:39:05'), - (94, '调整部门', 3, 46, NULL, NULL, NULL, 1, NULL, 'system:employee:department:update', NULL, NULL, 0, NULL, 0, 1, 0, 0, 1, '2022-05-27 00:12:59', NULL, '2022-10-22 10:39:06'), - (95, '重置密码', 3, 46, NULL, NULL, NULL, 1, NULL, 'system:employee:password:reset', NULL, NULL, 0, NULL, 0, 1, 0, 0, 1, '2022-05-27 00:13:30', 1, '2022-10-20 13:39:13'), - (96, '删除员工', 3, 46, NULL, NULL, NULL, 1, NULL, 'system:employee:delete', NULL, NULL, 0, NULL, 0, 1, 0, 0, 1, '2022-05-27 00:14:08', NULL, '2022-10-22 10:39:07'), - (97, '添加角色', 3, 76, NULL, NULL, NULL, 1, NULL, 'system:role:add', NULL, NULL, 0, NULL, 0, 1, 0, 0, 1, '2022-05-27 00:34:00', 1, '2022-10-22 10:39:09'), - (98, '删除角色', 3, 76, NULL, NULL, NULL, 1, NULL, 'system:role:delete', NULL, NULL, 0, NULL, 0, 1, 0, 0, 1, '2022-05-27 00:34:19', 1, '2022-10-22 10:39:09'), - (99, '编辑角色', 3, 76, NULL, NULL, NULL, 1, NULL, 'system:role:update', NULL, NULL, 0, NULL, 0, 1, 0, 0, 1, '2022-05-27 00:34:55', NULL, '2022-10-22 10:39:10'), - (100, '更新数据范围', 3, 76, NULL, NULL, NULL, 1, NULL, 'system:role:dataScope:update', NULL, NULL, 0, NULL, 0, 1, 0, 0, 1, '2022-05-27 00:37:03', NULL, '2022-10-22 10:39:11'), - (101, '批量移除员工', 3, 76, NULL, NULL, NULL, 1, NULL, 'system:role:employee:batch:delete', NULL, NULL, 0, NULL, 0, 1, 0, 0, 1, '2022-05-27 00:39:05', NULL, '2022-10-22 10:39:38'), - (102, '移除员工', 3, 76, NULL, NULL, NULL, 1, NULL, 'system:role:employee:delete', NULL, NULL, 0, NULL, 0, 1, 0, 0, 1, '2022-05-27 00:39:21', NULL, '2022-10-22 10:39:39'), - (103, '添加员工', 3, 76, NULL, NULL, NULL, 1, NULL, 'system:role:employee:add', NULL, NULL, 0, NULL, 0, 1, 0, 0, 1, '2022-05-27 00:39:38', NULL, '2022-10-22 10:39:40'), - (104, '修改权限', 3, 76, NULL, NULL, NULL, 1, NULL, 'system:role:menu:update', NULL, NULL, 0, NULL, 0, 1, 0, 0, 1, '2022-05-27 00:41:55', NULL, '2022-10-22 10:39:41'), - (105, '添加', 3, 26, NULL, NULL, NULL, 1, NULL, 'system:menu:add', NULL, 26, 0, NULL, 0, 1, 0, 0, 1, '2022-05-27 00:44:37', 1, '2022-10-22 10:39:41'), - (106, '编辑', 3, 26, NULL, NULL, NULL, 1, NULL, 'system:menu:update', NULL, 26, 0, NULL, 0, 1, 0, 0, 1, '2022-05-27 00:44:59', 1, '2022-10-22 10:39:44'), - (108, '删除', 3, 26, NULL, NULL, NULL, 1, NULL, 'system:menu:delete', NULL, 26, 0, NULL, 0, 1, 0, 0, 1, '2022-05-27 00:45:55', 1, '2022-10-22 10:39:43'), - (109, '参数配置', 2, 50, 3, '/config/config-list', '/support/config/config-list.vue', NULL, NULL, NULL, 'AntDesignOutlined', NULL, 0, NULL, 0, 1, 0, 0, 1, '2022-05-27 13:34:41', 1, '2022-06-23 16:24:16'), - (110, '数据字典', 2, 50, 4, '/setting/dict', '/support/dict/index.vue', NULL, NULL, NULL, 'BarcodeOutlined', NULL, 0, NULL, 0, 1, 0, 0, 1, '2022-05-27 17:53:00', 1, '2022-05-27 18:09:14'), - (111, '监控服务', 1, 0, 4, '/monitor', NULL, NULL, NULL, NULL, 'BarChartOutlined', NULL, 0, NULL, 0, 1, 0, 0, 1, '2022-06-17 11:13:23', 1, '2022-10-22 18:32:31'), - (113, '查询', 3, 112, NULL, NULL, NULL, NULL, NULL, 'ad', NULL, NULL, 0, NULL, 0, 1, 0, 0, 1, '2022-06-17 11:31:36', NULL, '2022-06-17 11:31:36'), - (114, '运维工具', 1, 0, 5, NULL, NULL, NULL, NULL, NULL, 'NodeCollapseOutlined', NULL, 0, NULL, 0, 1, 0, 0, 1, '2022-06-20 10:09:16', 1, '2022-10-22 18:32:37'), - (117, 'Reload', 2, 114, NULL, '/hook', '/support/reload/reload-list.vue', NULL, NULL, NULL, 'ReloadOutlined', NULL, 0, NULL, 0, 1, 0, 0, 1, '2022-06-20 10:16:49', NULL, '2022-06-20 10:16:49'), - (122, '数据库监控', 2, 111, 4, '/support/druid/index', NULL, NULL, NULL, NULL, 'ConsoleSqlOutlined', NULL, 1, 'http://localhost:60001/druid/index.html', 0, 1, 0, 0, 1, '2022-06-20 14:49:33', 1, '2022-10-22 18:33:07'), - (130, '单号管理', 2, 50, 6, '/support/serial-number/serial-number-list', '/support/serial-number/serial-number-list.vue', NULL, NULL, NULL, 'NumberOutlined', NULL, 0, NULL, 0, 1, 0, 0, 1, '2022-06-24 14:45:22', 1, '2022-06-28 16:23:41'), - (132, '通知公告', 2, 138, NULL, '/oa/notice/notice-list', '/business/oa/notice/notice-list.vue', NULL, NULL, NULL, 'SoundOutlined', NULL, 0, NULL, 0, 1, 0, 0, 1, '2022-06-24 18:23:09', 1, '2022-09-14 19:54:34'), - (133, '缓存管理', 2, 114, NULL, '/support/cache/cache-list', '/support/cache/cache-list.vue', NULL, NULL, NULL, 'BorderInnerOutlined', NULL, 0, NULL, 0, 1, 0, 0, 1, '2022-06-24 18:52:25', NULL, '2022-06-24 18:52:25'), - (137, '进销存系统', 1, 0, 2, NULL, NULL, NULL, NULL, NULL, 'AccountBookOutlined', NULL, 0, NULL, 0, 1, 0, 0, 1, '2022-06-24 20:07:20', 1, '2022-10-22 18:30:19'), - (138, 'OA系统', 1, 0, 1, NULL, NULL, NULL, NULL, NULL, 'BankOutlined', NULL, 0, NULL, 0, 1, 0, 0, 1, '2022-06-24 20:09:18', 1, '2022-10-22 18:30:15'), - (142, '公告详情', 2, 132, NULL, '/oa/notice/notice-detail', '/business/oa/notice/notice-detail.vue', NULL, NULL, NULL, NULL, NULL, 0, NULL, 0, 0, 0, 0, 1, '2022-06-25 16:38:47', 1, '2022-09-14 19:46:17'), - (143, '登录日志', 2, 111, 2, '/support/login-log/login-log-list', '/support/login-log/login-log-list.vue', NULL, NULL, NULL, 'LoginOutlined', NULL, 0, NULL, 0, 1, 0, 0, 1, '2022-06-28 15:01:38', 1, '2022-10-22 18:33:03'), - (144, '企业信息', 2, 138, 2, '/oa/enterprise/enterprise-list', '/business/oa/enterprise/enterprise-list.vue', NULL, NULL, NULL, 'ShopOutlined', NULL, 0, NULL, 0, 1, 0, 0, 1, '2022-09-14 17:00:07', 1, '2022-09-14 19:04:58'), - (145, '企业详情', 2, 144, NULL, '/oa/enterprise/enterprise-detail', '/business/oa/enterprise/enterprise-detail.vue', NULL, NULL, NULL, NULL, NULL, 0, NULL, 0, 0, 0, 0, 1, '2022-09-14 18:52:52', NULL, '2022-09-14 18:52:52'), - (146, '系统文档', 1, 0, 3, NULL, NULL, NULL, NULL, NULL, 'FileWordOutlined', NULL, 0, NULL, 0, 1, 0, 0, 1, '2022-09-14 19:56:53', 1, '2022-10-22 18:30:26'), - (147, '系统手册', 2, 146, NULL, '/help-doc/help-doc-manage-list', '/support/help-doc/management/help-doc-manage-list.vue', NULL, NULL, NULL, 'FolderViewOutlined', NULL, 0, NULL, 0, 1, 0, 0, 1, '2022-09-14 19:59:01', NULL, '2022-09-14 19:59:01'), - (148, '意见反馈', 2, 146, NULL, '/feedback/feedback-list', '/support/feedback/feedback-list.vue', NULL, NULL, NULL, 'CoffeeOutlined', NULL, 0, NULL, 0, 1, 0, 0, 1, '2022-09-14 19:59:52', 1, '2022-09-14 20:00:37'), - (149, '我的通知', 2, 132, NULL, '/oa/notice/notice-employee-list', '/business/oa/notice/notice-employee-list.vue', NULL, NULL, NULL, NULL, NULL, 0, NULL, 0, 0, 0, 0, 1, '2022-09-14 20:29:41', 1, '2022-09-14 20:31:23'), - (150, '我的通知公告详情', 2, 132, NULL, '/oa/notice/notice-employee-detail', '/business/oa/notice/notice-employee-detail.vue', NULL, NULL, NULL, NULL, NULL, 0, NULL, 0, 0, 0, 0, 1, '2022-09-14 20:30:25', 1, '2022-09-14 20:31:38'), - (151, '代码生成', 2, 0, 600, '/support/code-generator', '/support/code-generator/code-generator-list.vue', NULL, NULL, NULL, 'CoffeeOutlined', NULL, 0, NULL, 0, 1, 0, 0, 1, '2022-09-21 18:25:05', 1, '2022-10-22 11:27:58'), - (152, '更新日志', 2, 146, 3, '/support/change-log/change-log-list', '/support/change-log/change-log-list.vue', NULL, NULL, NULL, 'HeartOutlined', NULL, 0, NULL, 0, 1, 0, 0, 44, '2022-10-10 10:31:20', 44, '2022-10-10 10:31:45'), - (153, '清除缓存', 3, 133, NULL, NULL, NULL, 1, NULL, 'support:cache:delete', NULL, 133, 0, NULL, 0, 1, 1, 0, 1, '2022-10-15 22:45:13', 1, '2022-10-21 20:37:13'), - (154, '获取缓存key', 3, 133, NULL, NULL, NULL, NULL, NULL, 'support:cache:keys', NULL, 133, 0, NULL, 0, 1, 1, 0, 1, '2022-10-15 22:45:48', 1, '2022-10-15 23:40:09'), - (155, '执行', 3, 117, NULL, NULL, NULL, 1, NULL, 'support:reload:execute', NULL, 117, 0, NULL, 0, 1, 0, 0, 1, '2022-10-15 23:16:45', 1, '2022-10-22 10:37:33'), - (156, '查看结果', 3, 117, NULL, NULL, NULL, 1, NULL, 'support:reload:result', NULL, 117, 0, NULL, 0, 1, 0, 0, 1, '2022-10-15 23:17:23', 1, '2022-10-22 10:37:36'), - (157, '单号生成', 3, 130, NULL, NULL, NULL, 1, NULL, 'support:serial:number:generate', NULL, 130, 0, NULL, 0, 1, 0, 0, 1, '2022-10-15 23:21:06', 1, '2022-10-22 10:36:34'), - (158, '生成记录', 3, 130, NULL, NULL, NULL, 1, NULL, 'support:serial:number:record', NULL, 130, 0, NULL, 0, 1, 0, 0, 1, '2022-10-15 23:21:34', 1, '2022-10-22 10:36:42'), - (159, '新建', 3, 110, NULL, NULL, NULL, 1, NULL, 'support:dict:add', NULL, 110, 0, NULL, 0, 1, 0, 0, 1, '2022-10-15 23:23:51', NULL, '2022-10-22 10:41:07'), - (160, '编辑', 3, 110, NULL, NULL, NULL, 1, NULL, 'support:dict:update', NULL, 110, 0, NULL, 0, 1, 0, 0, 1, '2022-10-15 23:24:05', NULL, '2022-10-22 10:41:08'), - (161, '批量删除', 3, 110, NULL, NULL, NULL, 1, NULL, 'support:dict:batch:delete', NULL, 110, 0, NULL, 0, 1, 0, 0, 1, '2022-10-15 23:24:34', NULL, '2022-10-22 10:41:09'), - (162, '刷新缓存', 3, 110, NULL, NULL, NULL, 1, NULL, 'support:dict:refresh', NULL, 110, 0, NULL, 0, 1, 0, 0, 1, '2022-10-15 23:24:55', NULL, '2022-10-22 10:41:10'), - (163, '新建', 3, 109, NULL, NULL, NULL, 1, NULL, 'support:config:add', NULL, 109, 0, NULL, 0, 1, 0, 0, 1, '2022-10-15 23:26:56', NULL, '2022-10-22 10:41:10'), - (164, '编辑', 3, 109, NULL, NULL, NULL, 11, NULL, 'support:config:update', NULL, 109, 0, NULL, 0, 1, 0, 0, 1, '2022-10-15 23:27:07', NULL, '2022-10-22 10:41:12'), - (165, '查询', 3, 47, NULL, NULL, NULL, 1, NULL, 'goods:query', NULL, 47, 0, NULL, 0, 1, 0, 0, 1, '2022-10-16 19:55:39', NULL, '2022-10-22 10:41:13'), - (166, '新建', 3, 47, NULL, NULL, NULL, 1, NULL, 'goods:add', NULL, 47, 0, NULL, 0, 1, 0, 0, 1, '2022-10-16 19:56:00', NULL, '2022-10-22 10:41:14'), - (167, '批量删除', 3, 47, NULL, NULL, NULL, 1, NULL, 'goods:batchDelete', NULL, 47, 0, NULL, 0, 1, 0, 0, 1, '2022-10-16 19:56:15', NULL, '2022-10-22 10:41:15'), - (168, '查询', 3, 147, NULL, NULL, NULL, 1, NULL, 'helpDoc:query', NULL, 147, 0, NULL, 0, 1, 0, 0, 1, '2022-10-16 20:12:13', NULL, '2022-10-22 10:41:17'), - (169, '新建', 3, 147, NULL, NULL, NULL, 1, NULL, 'helpDoc:add', NULL, 147, 0, NULL, 0, 1, 0, 0, 1, '2022-10-16 20:12:37', 1, '2022-10-21 20:49:24'), - (170, '新建目录', 3, 147, NULL, NULL, NULL, 1, NULL, 'helpDocCatalog:addCategory', NULL, 147, 0, NULL, 0, 1, 0, 0, 1, '2022-10-16 20:12:57', NULL, '2022-10-22 10:41:18'), - (171, '修改目录', 3, 147, NULL, NULL, NULL, 1, NULL, 'helpDocCatalog:edit', NULL, 147, 0, NULL, 0, 1, 0, 0, 1, '2022-10-16 20:13:46', 1, '2022-10-21 20:50:01'), - (173, '新建', 3, 78, NULL, NULL, NULL, 1, NULL, 'goodsCategory:add', NULL, 78, 0, NULL, 0, 1, 0, 0, 1, '2022-10-16 20:17:02', NULL, '2022-10-22 10:41:19'), - (174, '添加子分类', 3, 78, NULL, NULL, NULL, 1, NULL, 'goodsCategory:addChild', NULL, 78, 0, NULL, 0, 1, 0, 0, 1, '2022-10-16 20:17:22', NULL, '2022-10-22 10:41:21'), - (175, '编辑', 3, 78, NULL, NULL, NULL, 1, NULL, 'goodsCategory:edit', NULL, 78, 0, NULL, 0, 1, 0, 0, 1, '2022-10-16 20:17:38', NULL, '2022-10-22 10:41:22'), - (176, '删除', 3, 78, NULL, NULL, NULL, 1, NULL, 'goodsCategory:delete', NULL, 78, 0, NULL, 0, 1, 0, 0, 1, '2022-10-16 20:17:50', NULL, '2022-10-22 10:41:22'), - (177, '新建', 3, 79, NULL, NULL, NULL, 1, NULL, 'customCategory:add', NULL, 78, 0, NULL, 0, 1, 0, 0, 1, '2022-10-16 20:17:02', NULL, '2022-10-22 10:41:23'), - (178, '添加子分类', 3, 79, NULL, NULL, NULL, 1, NULL, 'customCategory:addChild', NULL, 78, 0, NULL, 0, 1, 0, 0, 1, '2022-10-16 20:17:22', NULL, '2022-10-22 10:41:24'), - (179, '编辑', 3, 79, NULL, NULL, NULL, 1, NULL, 'customCategory:edit', NULL, 78, 0, NULL, 0, 1, 0, 0, 1, '2022-10-16 20:17:38', NULL, '2022-10-22 10:41:24'), - (180, '删除', 3, 79, NULL, NULL, NULL, 1, NULL, 'customCategory:delete', NULL, 78, 0, NULL, 0, 1, 0, 0, 1, '2022-10-16 20:17:50', NULL, '2022-10-22 10:41:25'), - (181, '查询', 3, 144, NULL, NULL, NULL, 2, 'EnterpriseController.deleteEnterprise', 'enterprise:query', NULL, 144, 0, NULL, 0, 1, 0, 0, 1, '2022-10-16 20:25:14', 1, '2022-10-21 20:15:12'), - (182, '新建', 3, 144, NULL, NULL, NULL, 2, 'EnterpriseController.createEnterprise', 'enterprise:add', NULL, 144, 0, NULL, 0, 1, 0, 0, 1, '2022-10-16 20:25:25', 1, '2022-10-21 20:15:30'), - (183, '编辑', 3, 144, NULL, NULL, NULL, 2, 'EnterpriseController.updateEnterprise', 'enterprise:edit', NULL, 144, 0, NULL, 0, 1, 0, 0, 1, '2022-10-16 20:25:36', 1, '2022-10-21 20:15:39'), - (184, '删除', 3, 144, NULL, NULL, NULL, 2, 'EnterpriseController.deleteEnterprise', 'enterprise:delete', NULL, 144, 0, NULL, 0, 1, 0, 0, 1, '2022-10-16 20:25:53', 1, '2022-10-21 20:11:24'), - (185, '查询', 3, 132, NULL, NULL, NULL, 2, 'NoticeController.query', 'notice:query', NULL, 132, 0, NULL, 0, 1, 0, 0, 1, '2022-10-16 20:26:38', 1, '2022-10-21 20:19:24'), - (186, '新建', 3, 132, NULL, NULL, NULL, 2, 'NoticeController.add', 'notice:add', NULL, 132, 0, NULL, 0, 1, 0, 0, 1, '2022-10-16 20:27:04', 1, '2022-10-21 20:19:49'), - (187, '编辑', 3, 132, NULL, NULL, NULL, 2, 'NoticeController.update', 'notice:edit', NULL, 132, 0, NULL, 0, 1, 0, 0, 1, '2022-10-16 20:27:15', 1, '2022-10-21 20:21:16'), - (188, '删除', 3, 132, NULL, NULL, NULL, 2, 'NoticeController.delete', 'notice:delete', NULL, 132, 0, NULL, 0, 1, 0, 0, 1, '2022-10-16 20:27:23', 1, '2022-10-21 20:21:25'), - (189, '查询', 3, 148, NULL, NULL, NULL, 1, NULL, 'feedback:query', NULL, 148, 0, NULL, 0, 1, 0, 0, 1, '2022-10-16 20:28:04', 1, '2022-10-22 10:38:46'), - (190, '查询', 3, 152, NULL, NULL, NULL, 1, NULL, 'changeLog:query', NULL, 152, 0, NULL, 0, 1, 0, 0, 1, '2022-10-16 20:28:33', 1, '2022-10-21 20:42:00'), - (191, '新建', 3, 152, NULL, NULL, NULL, 1, NULL, 'changeLog:add', NULL, 152, 0, NULL, 0, 1, 0, 0, 1, '2022-10-16 20:28:46', 1, '2022-10-21 20:42:09'), - (192, '批量删除', 3, 152, NULL, NULL, NULL, 1, NULL, 'changeLog:batchDelete', NULL, 152, 0, NULL, 0, 1, 0, 0, 1, '2022-10-16 20:29:10', 1, '2022-10-21 20:42:16'), - (193, '文件管理', 2, 50, 20, '/support/file/file-list', '/support/file/file-list.vue', NULL, NULL, NULL, 'FolderOpenOutlined', NULL, 0, NULL, 0, 1, 0, 0, 1, '2022-10-21 11:26:11', 1, '2022-10-22 11:29:22'), - (194, '删除', 3, 47, NULL, NULL, NULL, 1, NULL, 'goods:delete', NULL, 47, 0, NULL, 0, 1, 0, 0, 1, '2022-10-21 20:00:12', 1, '2022-10-21 20:04:58'), - (195, '修改', 3, 47, NULL, NULL, NULL, 1, NULL, 'goods:update', NULL, NULL, 0, NULL, 0, 1, 0, 0, 1, '2022-10-21 20:05:23', NULL, '2022-10-21 20:05:23'), - (196, '查看详情', 3, 145, NULL, NULL, NULL, 2, 'EnterpriseController.getDetail', 'enterprise:detail', NULL, NULL, 0, NULL, 0, 1, 0, 0, 1, '2022-10-21 20:16:47', NULL, '2022-10-21 20:16:47'), - (198, '删除', 3, 152, NULL, NULL, NULL, 1, NULL, 'changeLog:delete', NULL, NULL, 0, NULL, 0, 1, 0, 0, 1, '2022-10-21 20:42:34', NULL, '2022-10-21 20:42:34'), - (199, '查询', 3, 109, NULL, NULL, NULL, 1, NULL, 'support:config:query', NULL, NULL, 0, NULL, 0, 1, 0, 0, 1, '2022-10-21 20:45:14', NULL, '2022-10-21 20:45:14'), - (200, '查询', 3, 193, NULL, NULL, NULL, 1, NULL, 'support:file:query', NULL, NULL, 0, NULL, 0, 1, 0, 0, 1, '2022-10-21 20:47:23', 1, '2022-10-22 11:21:10'), - (201, '删除', 3, 147, NULL, NULL, NULL, 1, NULL, 'helpDoc:delete', NULL, NULL, 0, NULL, 0, 1, 0, 0, 1, '2022-10-21 21:03:20', NULL, '2022-10-21 21:03:20'), - (202, '更新', 3, 147, NULL, NULL, NULL, 1, NULL, 'helpDoc:update', NULL, NULL, 0, NULL, 0, 1, 0, 0, 1, '2022-10-21 21:03:32', NULL, '2022-10-21 21:03:32'), - (203, '查询', 3, 143, NULL, NULL, NULL, 1, NULL, 'loginLog:query', NULL, NULL, 0, NULL, 0, 1, 0, 0, 1, '2022-10-21 21:05:11', NULL, '2022-10-21 21:05:11'), - (204, '查询', 3, 81, NULL, NULL, NULL, 1, NULL, 'operateLog:query', NULL, NULL, 0, NULL, 0, 1, 0, 0, 1, '2022-10-22 10:33:31', NULL, '2022-10-22 10:33:31'), - (205, '详情', 3, 81, NULL, NULL, NULL, 1, NULL, 'operateLog:detail', NULL, NULL, 0, NULL, 0, 1, 0, 0, 1, '2022-10-22 10:33:49', NULL, '2022-10-22 10:33:49'), - (206, '心跳监控', 2, 111, 1, '/support/heart-beat/heart-beat-list', '/support/heart-beat/heart-beat-list.vue', 1, NULL, NULL, 'FallOutlined', NULL, 0, NULL, 0, 1, 0, 0, 1, '2022-10-22 10:47:03', 1, '2022-10-22 18:32:52'), - (207, '更新', 3, 152, NULL, NULL, NULL, 1, NULL, 'changeLog:update', NULL, NULL, 0, NULL, 0, 1, 0, 0, 1, '2022-10-22 11:51:32', NULL, '2022-10-22 11:51:32'); -/*!40000 ALTER TABLE `t_menu` ENABLE KEYS */; - --- 导出 表 smart_admin_v2.t_notice 结构 -DROP TABLE IF EXISTS `t_notice`; -CREATE TABLE IF NOT EXISTS `t_notice` ( - `notice_id` bigint NOT NULL AUTO_INCREMENT, - `notice_type_id` bigint NOT NULL COMMENT '类型1公告 2动态', - `title` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '标题', - `all_visible_flag` tinyint(1) NOT NULL COMMENT '是否全部可见', - `scheduled_publish_flag` tinyint(1) NOT NULL COMMENT '是否定时发布', - `publish_time` datetime NOT NULL COMMENT '发布时间', - `content_text` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '文本内容', - `content_html` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT 'html内容', - `attachment` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '附件', - `page_view_count` int NOT NULL DEFAULT '0' COMMENT '页面浏览量,传说中的pv', - `user_view_count` int NOT NULL DEFAULT '0' COMMENT '用户浏览量,传说中的uv', - `source` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '来源', - `author` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '作者', - `document_number` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '文号,如:1024创新实验室发〔2022〕字第36号', - `deleted_flag` tinyint(1) NOT NULL DEFAULT '0', - `create_user_id` bigint DEFAULT NULL COMMENT '创建人', - `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, - PRIMARY KEY (`notice_id`) -) ENGINE=InnoDB AUTO_INCREMENT=61 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci COMMENT='通知'; - --- 正在导出表 smart_admin_v2.t_notice 的数据:~27 rows (大约) -DELETE FROM `t_notice`; -/*!40000 ALTER TABLE `t_notice` DISABLE KEYS */; -INSERT INTO `t_notice` (`notice_id`, `notice_type_id`, `title`, `all_visible_flag`, `scheduled_publish_flag`, `publish_time`, `content_text`, `content_html`, `attachment`, `page_view_count`, `user_view_count`, `source`, `author`, `document_number`, `deleted_flag`, `create_user_id`, `update_time`, `create_time`) VALUES - (49, 1, 'Spring Boot 3.0.0 首个 RC 发布', 1, 0, '2022-10-22 14:27:34', 'Spring Boot 3.0.0 首个 RC 发布\nSpring Boot 3.0 首个 RC 已发布,此外还为两个分支发布了更新:2.7.5 & 2.6.13。\n3.0.0-RC1\n发布公告写道,此版本包含 135 项功能增强、文档改进、依赖升级和 Bugfix。\nSpring Boot 3.0 的开发工作始于实验性的 Spring Native,旨在为 GraalVM 原生镜像提供支持。在该版本中,开发者现在可以使用标准 Spring Boot Maven 或 Gradle 插件将 Spring Boot 应用程序转换为原生可执行文件,而无需任何特殊配置。\n此版本还在参考文档中添加新内容来解释 AOT 处理背后的概念以及如何开始生成第一个 GraalVM 原生镜像。\n除此之外,Spring Boot 3.0 还完成了迁移到 JakartaEE 9 的工作,以及将使用的 Java 版本升级到 Java 17。\n其他新特性:\n为 Spring Data JDBC 提供更灵活的自动配置为 Prometheus 示例提供自动配置增强 Log4j2 功能,包括配置文件支持和环境属性查找\n详情查看 Release Note。\nSpring Boot 2.7.5 和 2.6.13 的更新内容主要是修复错误,优化文档和升级依赖,详情查看 Release Note (2.7.5、2.6.13)。\n相关链接\nSpring Boot 的详细介绍:点击查看Spring Boot 的下载地址:点击下载', '

Spring Boot 3.0.0 首个 RC 发布

Spring Boot 3.0 首个 RC 已发布,此外还为两个分支发布了更新:2.7.5 & 2.6.13。

3.0.0-RC1

发布公告写道,此版本包含 135 项功能增强、文档改进、依赖升级和 Bugfix。

Spring Boot 3.0 的开发工作始于实验性的 Spring Native,旨在为 GraalVM 原生镜像提供支持。在该版本中,开发者现在可以使用标准 Spring Boot Maven 或 Gradle 插件将 Spring Boot 应用程序转换为原生可执行文件,而无需任何特殊配置。

此版本还在参考文档中添加新内容来解释 AOT 处理背后的概念以及如何开始生成第一个 GraalVM 原生镜像。

除此之外,Spring Boot 3.0 还完成了迁移到 JakartaEE 9 的工作,以及将使用的 Java 版本升级到 Java 17。

其他新特性:

为 Spring Data JDBC 提供更灵活的自动配置为 Prometheus 示例提供自动配置增强 Log4j2 功能,包括配置文件支持和环境属性查找

详情查看 Release Note。

Spring Boot 2.7.5 和 2.6.13 的更新内容主要是修复错误,优化文档和升级依赖,详情查看 Release Note (2.7.5、2.6.13)。

相关链接

Spring Boot 的详细介绍:点击查看Spring Boot 的下载地址:点击下载

', '', 0, 0, '开源中国', '卓大', NULL, 0, 1, '2022-10-22 14:27:33', '2022-10-22 14:27:33'), - (50, 1, 'Oracle 推出 JDK 8 的直接替代品', 1, 0, '2022-10-22 14:29:56', 'Oracle 推出 JDK 8 的直接替代品\n来源: OSCHINA\n编辑: 白开水不加糖\n2022-10-20 08:14:29\n 0\n为了向传统的 Java 8 服务器工作负载提供 Java 17 级别的性能,Oracle 宣布推出 Java SE Subscription Enterprise Performance Pack (Enterprise Performance Pack)。并声称这是 JDK 8 的直接替代品,现已在 MyOracleSupport 上面向所有 Java SE 订阅客户和 Oracle 云基础设施 (OCI) 用户免费提供。\n“Enterprise Performance Pack 为 JDK 8 用户提供了在 JDK 8 和 JDK 17 发布之间的 7 年时间里,为 Java 带来的重大内存管理和性能改进。这些改进包括:现代垃圾回收算法、紧凑字符串、增强的可观察性和数十种其他优化。”\nJava 8 发布于 2014 年,和 Java 17 一样都是长期支持 (LTS) 版本;尽管发布距今已有近九年的历史,但仍被很多开发人员和组织所广泛应用。New Relic 发布的一份 “2022 年 Java 生态系统状况报告” 数据表明,Java 8 仍被 46.45% 的 Java 应用程序在生产中使用。\n根据介绍,Enterprise Performance Pack 在 Intel 和基于 Arm 的系统(如 Ampere Altra)上支持 headless Linux 64 位工作负载。\nOracle 方面称,使用 Enterprise Performance Pack 的客户将可以立即看到以或接近内存或 CPU 容量运行的 JDK 8 工作负载的好处。在 Oracle 自己的产品和云服务进行的测试表明,高负载应用程序的内存和性能都提高了大约 40%。即使没有接近容量运行的 JDK 8 应用程序,也可以会看到高达 5% 的性能提升。\n虽然 Enterprise Performance Pack 中包含的许多改进可以通过默认选项获得,但 Oracle 建议用户还是自己研究文档,以最大限度地提高性能并最大限度地降低内存使用率。例如,通过启用可扩展的低延迟 ZGC 垃圾收集器来提高应用程序响应能力,需要通过 -XX:+UseZGC 选项。', '

Oracle 推出 JDK 8 的直接替代品

来源: OSCHINA

编辑: 白开水不加糖

2022-10-20 08:14:29

 0

为了向传统的 Java 8 服务器工作负载提供 Java 17 级别的性能,Oracle 宣布推出 Java SE Subscription Enterprise Performance Pack (Enterprise Performance Pack)。并声称这是 JDK 8 的直接替代品,现已在 MyOracleSupport 上面向所有 Java SE 订阅客户和 Oracle 云基础设施 (OCI) 用户免费提供。

“Enterprise Performance Pack 为 JDK 8 用户提供了在 JDK 8 和 JDK 17 发布之间的 7 年时间里,为 Java 带来的重大内存管理和性能改进。这些改进包括:现代垃圾回收算法、紧凑字符串、增强的可观察性和数十种其他优化。”

Java 8 发布于 2014 年,和 Java 17 一样都是长期支持 (LTS) 版本;尽管发布距今已有近九年的历史,但仍被很多开发人员和组织所广泛应用。New Relic 发布的一份 “2022 年 Java 生态系统状况报告” 数据表明,Java 8 仍被 46.45% 的 Java 应用程序在生产中使用。

根据介绍,Enterprise Performance Pack 在 Intel 和基于 Arm 的系统(如 Ampere Altra)上支持 headless Linux 64 位工作负载。

Oracle 方面称,使用 Enterprise Performance Pack 的客户将可以立即看到以或接近内存或 CPU 容量运行的 JDK 8 工作负载的好处。在 Oracle 自己的产品和云服务进行的测试表明,高负载应用程序的内存和性能都提高了大约 40%。即使没有接近容量运行的 JDK 8 应用程序,也可以会看到高达 5% 的性能提升。

虽然 Enterprise Performance Pack 中包含的许多改进可以通过默认选项获得,但 Oracle 建议用户还是自己研究文档,以最大限度地提高性能并最大限度地降低内存使用率。例如,通过启用可扩展的低延迟 ZGC 垃圾收集器来提高应用程序响应能力,需要通过 -XX:+UseZGC 选项。

', '', 0, 0, 'OSChina', '卓大', NULL, 0, 1, '2022-10-22 14:29:56', '2022-10-22 14:29:56'), - (51, 1, 'Spring Framework 6.0.0 RC2 发布', 1, 0, '2022-10-22 14:30:46', 'Spring Framework 6.0.0 RC2 发布\nSpring Framework 6.0.0 发布了第二个 RC 版本。\n新特性\n确保可以在构建时评估 classpath 检查 #29352为 JPA 持久化回调引入 Register 反射提示 #29348检查 @RegisterReflectionForBinding 是否至少指定一个类 #29346为 AOT 引擎设置引入 builder API #29341支持检测正在进行的 AOT 处理 #29340重新组织 HTTP Observation 类型 #29334支持在没有 java.beans.Introspector 的前提下,执行基本属性判断 #29320为BindingReflectionHintsRegistrar 添加 Kotlin 数据类组件支持 #29316将 HttpServiceFactory 和 RSocketServiceProxyFactory 切换到 builder 模型,以便优先进行可编程配置 #29296引入基于 GraalVM FieldValueTransformer API 的 PreComputeFieldFeature#29081在 TestContext 框架中引入 SPI 来处理 ApplicationContext 故障 #28826SimpleEvaluationContext 支持禁用 array 分配 #28808DateTimeFormatterRegistrar 支持默认回退到 ISO 解析 #26985\nSpring Framework 6.0 作为重大更新,要求使用 Java 17 或更高版本,并且已迁移到 Jakarta EE 9+(在 jakarta 命名空间中取代了以前基于 javax 的 EE API),以及对其他基础设施的修改。基于这些变化,Spring Framework 6.0 支持最新 Web 容器,如 Tomcat 10 / Jetty 11,以及最新的持久性框架 Hibernate ORM 6.1。这些特性仅可用于 Servlet API 和 JPA 的 jakarta 命名空间变体。\n值得一提的是,开发者可通过此版本在基于 Spring 的应用中体验 “虚拟线程”(JDK 19 中的预览版 “Project Loom”),查看此文章了解更多细节。现在提供了自定义选项来插入基于虚拟线程的 Executor 实现,目标是在 Project Loom 正式可用时提供 “一等公民” 的配置选项。\n除了上述的变化,Spring Framework 6.0 还包含许多其他改进和特性,例如:\n提供基于 @HttpExchange 服务接口的 HTTP 接口客户端对 RFC 7807 问题详细信息的支持Spring HTTP 客户端提供基于 Micrometer 的可观察性……\n详情查看 Release Note。\n按照发布计划,Spring Framework 6.0 将于 11 月正式 GA。', '

Spring Framework 6.0.0 RC2 发布

Spring Framework 6.0.0 发布了第二个 RC 版本

新特性

  • 确保可以在构建时评估 classpath 检查 #29352
  • 为 JPA 持久化回调引入 Register 反射提示 #29348
  • 检查 @RegisterReflectionForBinding 是否至少指定一个类 #29346
  • 为 AOT 引擎设置引入 builder API #29341
  • 支持检测正在进行的 AOT 处理 #29340
  • 重新组织 HTTP Observation 类型 #29334
  • 支持在没有 java.beans.Introspector 的前提下,执行基本属性判断 #29320
  • BindingReflectionHintsRegistrar 添加 Kotlin 数据类组件支持 #29316
  • 将 HttpServiceFactory 和 RSocketServiceProxyFactory 切换到 builder 模型,以便优先进行可编程配置 #29296
  • 引入基于 GraalVM FieldValueTransformer API 的 PreComputeFieldFeature#29081
  • 在 TestContext 框架中引入 SPI 来处理 ApplicationContext 故障 #28826
  • SimpleEvaluationContext 支持禁用 array 分配 #28808
  • DateTimeFormatterRegistrar 支持默认回退到 ISO 解析 #26985

Spring Framework 6.0 作为重大更新,要求使用 Java 17 或更高版本,并且已迁移到 Jakarta EE 9+(在 jakarta 命名空间中取代了以前基于 javax 的 EE API),以及对其他基础设施的修改。基于这些变化,Spring Framework 6.0 支持最新 Web 容器,如 Tomcat 10 / Jetty 11,以及最新的持久性框架 Hibernate ORM 6.1。这些特性仅可用于 Servlet API 和 JPA 的 jakarta 命名空间变体。

值得一提的是,开发者可通过此版本在基于 Spring 的应用中体验 “虚拟线程”(JDK 19 中的预览版 “Project Loom”),查看此文章了解更多细节。现在提供了自定义选项来插入基于虚拟线程的 Executor 实现,目标是在 Project Loom 正式可用时提供 “一等公民” 的配置选项。

除了上述的变化,Spring Framework 6.0 还包含许多其他改进和特性,例如:

详情查看 Release Note

按照发布计划,Spring Framework 6.0 将于 11 月正式 GA。

', '', 0, 0, 'CSDN', '罗伊', NULL, 0, 1, '2022-10-22 14:30:45', '2022-10-22 14:30:45'), - (52, 1, 'Windows Terminal 正式成为 Windows 11 默认终端', 1, 0, '2022-10-22 14:33:03', '今年 7 月 ,微软在 Windows 11 的 Beta 版本测试了将系统默认终端设置为 Windows Terminal 。如今该设置已登录稳定版本,从 Windows 11 22H2 版本开始,Windows Terminal 将正式成为 Windows 11 的默认设置。\n默认终端是在打开命令行应用程序时默认启动的终端模拟器。从 Windows 诞生之日起,其默认终端一直是 Windows 控制台主机 conhost.exe。此次更新则意味着,以后 Windows 11 的所有命令行应用程序都将在 Windows Terminal 中自动打开。\nWindows Terminal 拥有非常多现代化的功能,毕竟它很新( 2019 年 5 月在 Microsoft Build 上首次发布),吸取了很多现代终端的灵感。它支持多选项卡和窗格、命令面板等现代化的 UI 和操作方式,以及大量的自定义选项,比如目录、配置文件图标、自定义背景图像、配色方案、字体和透明度。\n当然,如果不想用 Windows Terminal,用户也可以在 Windows 设置中的 隐私和安全 > 开发人员页面和 Windows 终端设置 中调整默认终端设置,(此更新使用 “让 Windows 决定” 作为默认选择,即默认采用 Windows Terminal) 。\n此外,如果在更新之前就已设置其他默认终端,此次更新不会覆盖你的偏好。\n关于 Windows 11 默认终端的更多详情可查看微软博客。', '

今年 7 月 ,微软在 Windows 11 的 Beta 版本测试了将系统默认终端设置为 Windows Terminal 。如今该设置已登录稳定版本,从 Windows 11 22H2 版本开始,Windows Terminal 将正式成为 Windows 11 的默认设置。

默认终端是在打开命令行应用程序时默认启动的终端模拟器。从 Windows 诞生之日起,其默认终端一直是 Windows 控制台主机 conhost.exe。此次更新则意味着,以后 Windows 11 的所有命令行应用程序都将在 Windows Terminal 中自动打开。

Windows Terminal 拥有非常多现代化的功能,毕竟它很新( 2019 年 5 月在 Microsoft Build 上首次发布),吸取了很多现代终端的灵感。它支持多选项卡和窗格、命令面板等现代化的 UI 和操作方式,以及大量的自定义选项,比如目录、配置文件图标、自定义背景图像、配色方案、字体和透明度。

当然,如果不想用 Windows Terminal,用户也可以在 Windows 设置中的 隐私和安全 > 开发人员页面和 Windows 终端设置 中调整默认终端设置,(此更新使用 “让 Windows 决定” 作为默认选择,即默认采用 Windows Terminal) 。

此外,如果在更新之前就已设置其他默认终端,此次更新不会覆盖你的偏好。

关于 Windows 11 默认终端的更多详情可查看微软博客

', '', 0, 0, '开源中国', '善逸', NULL, 0, 1, '2022-10-22 14:33:03', '2022-10-22 14:33:03'), - (53, 1, 'TypeScript 诞生 10 周年', 1, 0, '2022-10-22 14:34:56', 'TypeScript 已经诞生 10 年了。10 年前 ——2012 年 10 月 1 日,TypeScript 首次公开亮相。当时主导 TypeScript 开发的 Anders Hejlsberg 这样描述 TypeScript:\n它是 JavaScript 的类型化超集,可被编译成常用的 JavaScript。TypeScript 还可以通过启用丰富的工具体验来极大地帮助提升生产力,与此同时开发者保持不变维护现有的代码,并继续使用喜爱的 JavaScript 库。TypeScript is a typed superset of JavaScript that compiles to idiomatic (normal) JavaScript, can dramatically improve your productivity by enabling rich tooling experiences, all while maintaining your existing code and continuing to use the same JavaScript libraries you already love.\n微软在博客中回顾了 TypeScript 刚亮相时受到的评价,大多数人对它都是持怀疑态度,毕竟这对于许多 JavaScript 开发者来说,试图将静态类型引入 JavaScript 是一个笑话 —— 或是邪恶的阴谋。反对者则直言这是十分愚蠢的想法,他们认为当时已存在可以编译为 JavaScript 的强类型语言,例如 C#、Java 和 C++。他们还吐槽主导 TypeScript 开发的 Anders Hejlsberg 对静态类型有 “迷之执着”。\n当时微软意识到 JavaScript 未来将会被应用到无数场景,而且他们公司内部团队在处理复杂的 JavaScript 代码库时面临着巨大的挑战,所以他们觉得有必要创造强大的工具来帮助编写 JavaScript—— 尤其是针对大型 JavaScript 项目。基于此需求,TypeScript 也确定了自己的定位和特性,它是 JavaScript 的超集,将类型检查和静态分析、显式接口和最佳实践结合到单一语言和编译器中。通过在 JavaScript 上构建,TypeScript 能够更接近目标运行时,同时仅添加支持大型应用程序和大型团队所需的语法糖。\n团队还坚持 TypeScript 要能够与现有的 JavaScript 无缝交互,与 JavaScript 共同进化,并且看上去也和 JavaScript 类似。\nTypeScript 诞生之初的部分设计目标:\n不会对已有的程序增加运行时开销与当前和未来的 ECMAScript 提案保持一致保留所有 JavaScript 代码的运行时行为避免添加表达式类型的语法 (expression-level syntax)使用一致、完全可擦除的结构化类型系统……\n这些目标指导着 TypeScript 的发展方向:关注类型系统,成为 JavaScript 的类型检查器,只添加类型检查所需的语法,避免添加新的运行时语法和行为。\n微软提到,TypeScript 拥有如今的繁荣生态离不开一个重要属性:开源。TypeScript 一开始就是免费且开源 —— 语言规范和编译器都是开源项目,并且以真正开放的方式来运作。事实上,微软当时对外展现出的姿态并不是现在的 “拥抱开源”,所以他们内部并没真正认识到 TypeScript 的开源是如何帮助它走向成功。因此有人认为,TypeScript 在很大程度上引导微软开始更多地转向开源。\n现在,TypeScript 仍在积极发展和迭代改进,并被全球数百万开发者使用。在诸多编程语言排名、指数或开发者调查中,TypeScript 一直位居前列,也是最受欢迎和最常用的编程语言。', '

TypeScript 已经诞生 10 年了。10 年前 ——2012 年 10 月 1 日,TypeScript 首次公开亮相。当时主导 TypeScript 开发的 Anders Hejlsberg 这样描述 TypeScript:

它是 JavaScript 的类型化超集,可被编译成常用的 JavaScript。TypeScript 还可以通过启用丰富的工具体验来极大地帮助提升生产力,与此同时开发者保持不变维护现有的代码,并继续使用喜爱的 JavaScript 库。TypeScript is a typed superset of JavaScript that compiles to idiomatic (normal) JavaScript, can dramatically improve your productivity by enabling rich tooling experiences, all while maintaining your existing code and continuing to use the same JavaScript libraries you already love.

微软在博客中回顾了 TypeScript 刚亮相时受到的评价,大多数人对它都是持怀疑态度,毕竟这对于许多 JavaScript 开发者来说,试图将静态类型引入 JavaScript 是一个笑话 —— 或是邪恶的阴谋。反对者则直言这是十分愚蠢的想法,他们认为当时已存在可以编译为 JavaScript 的强类型语言,例如 C#、Java 和 C++。他们还吐槽主导 TypeScript 开发的 Anders Hejlsberg 对静态类型有 “迷之执着”。

当时微软意识到 JavaScript 未来将会被应用到无数场景,而且他们公司内部团队在处理复杂的 JavaScript 代码库时面临着巨大的挑战,所以他们觉得有必要创造强大的工具来帮助编写 JavaScript—— 尤其是针对大型 JavaScript 项目。基于此需求,TypeScript 也确定了自己的定位和特性,它是 JavaScript 的超集,将类型检查和静态分析、显式接口和最佳实践结合到单一语言和编译器中。通过在 JavaScript 上构建,TypeScript 能够更接近目标运行时,同时仅添加支持大型应用程序和大型团队所需的语法糖。

团队还坚持 TypeScript 要能够与现有的 JavaScript 无缝交互,与 JavaScript 共同进化,并且看上去也和 JavaScript 类似。

TypeScript 诞生之初的部分设计目标

  • 不会对已有的程序增加运行时开销
  • 与当前和未来的 ECMAScript 提案保持一致
  • 保留所有 JavaScript 代码的运行时行为
  • 避免添加表达式类型的语法 (expression-level syntax)
  • 使用一致、完全可擦除的结构化类型系统
  • ……

这些目标指导着 TypeScript 的发展方向:关注类型系统,成为 JavaScript 的类型检查器,只添加类型检查所需的语法,避免添加新的运行时语法和行为。

微软提到,TypeScript 拥有如今的繁荣生态离不开一个重要属性:开源。TypeScript 一开始就是免费且开源 —— 语言规范和编译器都是开源项目,并且以真正开放的方式来运作。事实上,微软当时对外展现出的姿态并不是现在的 “拥抱开源”,所以他们内部并没真正认识到 TypeScript 的开源是如何帮助它走向成功。因此有人认为,TypeScript 在很大程度上引导微软开始更多地转向开源。

现在,TypeScript 仍在积极发展和迭代改进,并被全球数百万开发者使用。在诸多编程语言排名、指数或开发者调查中,TypeScript 一直位居前列,也是最受欢迎和最常用的编程语言。

', '', 0, 0, '开源中国', '开云', NULL, 0, 1, '2022-10-22 14:34:56', '2022-10-22 14:34:56'), - (54, 1, 'JetBrains Fleet 公测,下一代 IDE', 1, 0, '2022-10-22 14:36:10', 'JetBrains 宣布首次公共预览 Fleet,所有人都可以使用。Fleet 是由 JetBrains 打造的下一代 IDE,于 2021 年首次正式推出。它是一个新的分布式多语言编辑器和 IDE,基于 JetBrains 在后端的 IntelliJ 平台,采用了全新的用户界面和分布式架构从头开始构建。\n下载 Fleet:https://www.jetbrains.com.cn/fleet/download/\n\n公告表示,自从最初宣布 Fleet 以来,有超过 137,000 人报名参加私人预览;官方最初之所以决定从封闭式预览开始,是为了能够以渐进的方式处理反馈。现如今,JetBrains Fleet 仍处于起步阶段,还有大量的工作要做。其向公众开放预览的原因有两个方面:“首先,我们认为让所有注册者再等下去是不对的,但单独邀请这么多人对我们来说也缺乏意义。面向公众开放预览对我们来说更容易。第二,也是最重要的,我们一直是一家以开放态度打造产品的公司。我们不希望 Fleet 在这方面有任何不同。”\nJetBrains 方面提供了一个图表,以显示 Fleet 目前提供支持的语言和技术,以及每个技术的状态。但值得注意的是,Fleet 仍处于早期阶段,有些事情可能无法按预期工作;所以即使有些东西被列为受支持的,也有可能存在问题。\n同时 JetBrains 也强调称,他们并不打算取代其现有的 IDE。\n因此,请不要期望在 Fleet 中看到与我们的 IDE(如 IntelliJ IDEA)完全相同的功能。尽管我们会继续开发 Fleet,我们 IDE 的所有功能也不会出现在其中。Fleet 是我们为开发者提供不同用户体验的一个机会。话虽如此,我们确实希望听到你认为 Fleet 还缺少什么功能的反馈,例如特定的重构选项、工具集成等。我们现有的 IDE 将继续发展。我们对其有很多计划,包括性能改进、新的用户界面、远程开发等等。最后,Fleet 还在底层采用了我们现有工具的智慧,所以这些工具都不会消失。\nJetBrains 透露,在未来几个月他们将致力于稳定 Fleet,并尽可能地解决得到的反馈。同时,将在以下领域开展工作:\n为插件作者提供 API 支持和 SDK–鉴于 Fleet 有一个分布式架构,我们需要努力为插件作者简化工作。 虽然我们保证会为扩展 Fleet 提供一个平台,但也请求大家在这方面多一点耐心。 性能 – 我们希望 Fleet 不仅在内存占用方面,而且在响应时间方面都能表现出色。 有很多地方我们仍然可以提高性能,我们将在这些方面努力。 主题和键盘地图 – 我们知道许多开发者已经习惯了他们现有的编辑器和 IDE,当他们转移到新的 IDE 时,往往会想念他们以前的键盘绑定和主题。 我们将致力于增加对更多主题和键盘映射的支持。 我们当然也会致力于 Vim 的模拟。\n更多详情可查看官方博客。', '

JetBrains 宣布首次公共预览 Fleet,所有人都可以使用。Fleet 是由 JetBrains 打造的下一代 IDE,于 2021 年首次正式推出。它是一个新的分布式多语言编辑器和 IDE,基于 JetBrains 在后端的 IntelliJ 平台,采用了全新的用户界面和分布式架构从头开始构建。

下载 Fleet:https://www.jetbrains.com.cn/fleet/download/


公告表示,自从最初宣布 Fleet 以来,有超过 137,000 人报名参加私人预览;官方最初之所以决定从封闭式预览开始,是为了能够以渐进的方式处理反馈。现如今,JetBrains Fleet 仍处于起步阶段,还有大量的工作要做。其向公众开放预览的原因有两个方面:“首先,我们认为让所有注册者再等下去是不对的,但单独邀请这么多人对我们来说也缺乏意义。面向公众开放预览对我们来说更容易。第二,也是最重要的,我们一直是一家以开放态度打造产品的公司。我们不希望 Fleet 在这方面有任何不同。”

JetBrains 方面提供了一个图表,以显示 Fleet 目前提供支持的语言和技术,以及每个技术的状态。但值得注意的是,Fleet 仍处于早期阶段,有些事情可能无法按预期工作;所以即使有些东西被列为受支持的,也有可能存在问题。

同时 JetBrains 也强调称,他们并不打算取代其现有的 IDE。

因此,请不要期望在 Fleet 中看到与我们的 IDE(如 IntelliJ IDEA)完全相同的功能。尽管我们会继续开发 Fleet,我们 IDE 的所有功能也不会出现在其中。Fleet 是我们为开发者提供不同用户体验的一个机会。话虽如此,我们确实希望听到你认为 Fleet 还缺少什么功能的反馈,例如特定的重构选项、工具集成等。我们现有的 IDE 将继续发展。我们对其有很多计划,包括性能改进、新的用户界面、远程开发等等。最后,Fleet 还在底层采用了我们现有工具的智慧,所以这些工具都不会消失。

JetBrains 透露,在未来几个月他们将致力于稳定 Fleet,并尽可能地解决得到的反馈。同时,将在以下领域开展工作:

  • 为插件作者提供 API 支持和 SDK–鉴于 Fleet 有一个分布式架构,我们需要努力为插件作者简化工作。 虽然我们保证会为扩展 Fleet 提供一个平台,但也请求大家在这方面多一点耐心。 
  • 性能 – 我们希望 Fleet 不仅在内存占用方面,而且在响应时间方面都能表现出色。 有很多地方我们仍然可以提高性能,我们将在这些方面努力。 
  • 主题和键盘地图 – 我们知道许多开发者已经习惯了他们现有的编辑器和 IDE,当他们转移到新的 IDE 时,往往会想念他们以前的键盘绑定和主题。 我们将致力于增加对更多主题和键盘映射的支持。 我们当然也会致力于 Vim 的模拟。

更多详情可查看官方博客

', '', 0, 0, 'CSDN', '开云', NULL, 0, 1, '2022-10-22 14:36:10', '2022-10-22 14:36:10'), - (55, 2, '1024创新实验室 十一放假通知', 1, 0, '2022-09-29 14:37:57', '国庆假期即将来临,根据国务院办公厅关于国庆节的放假安排,废纸信息网安排如下:10月1日至7日放假调休,共7天。\n衷心预祝\n国庆快乐,阖家幸福!', '

国庆假期即将来临,根据国务院办公厅关于国庆节的放假安排,废纸信息网安排如下:10月1日至7日放假调休,共7天。

衷心预祝

国庆快乐,阖家幸福!

', '', 0, 0, '人力行政部', '卓大', '1024创新实验室发〔2022〕字第36号', 0, 1, '2022-10-22 14:53:55', '2022-10-22 14:37:57'), - (56, 2, '十月份技术分享会议', 1, 0, '2022-10-08 14:40:46', '尊敬的各位技术大佬:\n1024创新实验室技术分享即将隆重举行\n现将有关会议事宜通知如下:\n一、会议内容\n1、研究探讨SmartAdmin的技术体系\n二、会议形式\n大会专题小会分组讨论;\n三、会议时间及地点\n会议报到时间:xxx1年6月14日\n会议报到地点:洛阳市', '

尊敬的各位技术大佬:

1024创新实验室技术分享即将隆重举行

现将有关会议事宜通知如下:

一、会议内容

1、研究探讨SmartAdmin的技术体系

二、会议形式

大会专题小会分组讨论;

三、会议时间及地点

会议报到时间:xxx1年6月14日

会议报到地点:洛阳市

', '', 0, 0, '技术部', '开云', '1024创新实验室发〔2022〕字第33号', 0, 1, '2022-10-22 14:53:42', '2022-10-22 14:40:45'), - (57, 2, '关于疫情防控上班通知', 1, 0, '2022-06-28 14:46:01', '近期,国内部分地区疫情频发,多地疫情出现外溢,为有效降低我市疫情输入和传播风险,洛阳市疾病预防控制中心发布疫情防控公众提示:\n一、所有入(返)洛阳人员均需提前3天向目的地社区(村居)、酒店宾馆、接待单位等所属网格进行报备,或通过“洛阳即时通系统”进行自主报备,配合做好健康码和行程码查验、核酸检测、隔离观察和健康监测等相关疫情防控措施。\n二、倡导广大群众减少跨地市出行,避免人群大范围流动引发的疫情传播扩散风险。\n三、对7天内有高风险区旅居史的人员,采取7天集中隔离医学观察;对7天内有中风险区旅居史的人员,采取7天居家隔离医学观察,如不具备居家隔离医学观察条件的,采取集中隔离医学观察。\n四、对疫情发生地出现一定范围社区传播或已实施大范围社区管控措施,基于对疫情输入风险研判结果,对近7天内来自疫情发生地所在县(市、区)的流入人员,参照中风险区旅居史人员的防控要求采取相应措施。\n五、对所有省外入(返)洛阳人员,须持有48小时内核酸检测阴性证明,抵达后进行“5天3检”,每次检测间隔24小时。推广“落地检”,按照“自愿免费即采即走,不限制流动”的原则,抵达我市后,立即进行1次核酸检测。\n六、加强重点机构场所疫情防控,坚持非必要不举办,对确需举办的培训、会展、文艺演出等大型聚集性活动,查验48小时内核酸检测阴性证明;建筑工地等人员密集型单位,查验外省(区、市)返岗人员48小时内核酸检测阴性证明;养老机构、儿童福利机构等查验探访人员48小时内核酸检测阴性证明;对进入宾馆、酒店和旅游景区等人流密集场所时,查验48小时内核酸检测阴性证明。\n七、近期有外出旅行史的人员,请密切关注疫情发生地区公布的病例和无症状感染者流调轨迹信息和中高风险区信息。有涉疫风险的人员要立即向社区(村)、住宿宾馆和单位报告,配合落实隔离医学观察。\n八、发热病人、健康码“黄码”等人员要履行个人防护责任,主动配合健康监测和核酸检测,在未排除感染风险前不出行。\n', '

近期,国内部分地区疫情频发,多地疫情出现外溢,为有效降低我市疫情输入和传播风险,洛阳市疾病预防控制中心发布疫情防控公众提示:

一、所有入(返)洛阳人员均需提前3天向目的地社区(村居)、酒店宾馆、接待单位等所属网格进行报备,或通过“洛阳即时通系统”进行自主报备,配合做好健康码和行程码查验、核酸检测、隔离观察和健康监测等相关疫情防控措施。

二、倡导广大群众减少跨地市出行,避免人群大范围流动引发的疫情传播扩散风险。

三、对7天内有高风险区旅居史的人员,采取7天集中隔离医学观察;对7天内有中风险区旅居史的人员,采取7天居家隔离医学观察,如不具备居家隔离医学观察条件的,采取集中隔离医学观察。

四、对疫情发生地出现一定范围社区传播或已实施大范围社区管控措施,基于对疫情输入风险研判结果,对近7天内来自疫情发生地所在县(市、区)的流入人员,参照中风险区旅居史人员的防控要求采取相应措施。

五、对所有省外入(返)洛阳人员,须持有48小时内核酸检测阴性证明,抵达后进行“5天3检”,每次检测间隔24小时。推广“落地检”,按照“自愿免费即采即走,不限制流动”的原则,抵达我市后,立即进行1次核酸检测。

六、加强重点机构场所疫情防控,坚持非必要不举办,对确需举办的培训、会展、文艺演出等大型聚集性活动,查验48小时内核酸检测阴性证明;建筑工地等人员密集型单位,查验外省(区、市)返岗人员48小时内核酸检测阴性证明;养老机构、儿童福利机构等查验探访人员48小时内核酸检测阴性证明;对进入宾馆、酒店和旅游景区等人流密集场所时,查验48小时内核酸检测阴性证明。

七、近期有外出旅行史的人员,请密切关注疫情发生地区公布的病例和无症状感染者流调轨迹信息和中高风险区信息。有涉疫风险的人员要立即向社区(村)、住宿宾馆和单位报告,配合落实隔离医学观察。

八、发热病人、健康码“黄码”等人员要履行个人防护责任,主动配合健康监测和核酸检测,在未排除感染风险前不出行。


', '', 0, 0, '行政部', '卓大', '1024创新实验室发〔2022〕字第40号', 0, 1, '2022-10-22 14:53:36', '2022-10-22 14:46:00'), - (58, 2, '办公室消杀关键位置通知', 1, 0, '2022-05-19 14:47:13', '开展消毒消杀是杀灭病源、切断疫情传播的有效手段,是防控疫情的重要措施。为了切实将新型冠状病毒肺炎疫情防控工作落到实处,守护好辖区居民及工作人员的身体健康和生命安全,青山镇高度重视新型冠状病毒肺炎的消杀工作,将采购的防护服,防护面罩,一次性手套,口罩,84消毒液,酒精消毒液以及喷雾工具等消毒消杀物资,分发到镇级各站所各村(社区),全镇开展消杀工作。', '

开展消毒消杀是杀灭病源、切断疫情传播的有效手段,是防控疫情的重要措施。为了切实将新型冠状病毒肺炎疫情防控工作落到实处,守护好辖区居民及工作人员的身体健康和生命安全,青山镇高度重视新型冠状病毒肺炎的消杀工作,将采购的防护服,防护面罩,一次性手套,口罩,84消毒液,酒精消毒液以及喷雾工具等消毒消杀物资,分发到镇级各站所各村(社区),全镇开展消杀工作。

', '', 0, 0, '行政部', '卓大', '1024创新实验室发〔2022〕字第26号', 0, 1, '2022-10-22 14:53:30', '2022-10-22 14:47:12'), - (59, 2, '十月份人事任命通知', 1, 0, '2022-09-22 14:50:12', '1024创新实验室发〔2022〕字第36号\n1024创新实验室发〔2022〕字第36号\n1024创新实验室发〔2022〕字第36号\n1024创新实验室发〔2022〕字第36号\n1024创新实验室发〔2022〕字第36号\n1024创新实验室发〔2022〕字第36号', '

1024创新实验室发〔2022〕字第36号

1024创新实验室发〔2022〕字第36号

1024创新实验室发〔2022〕字第36号

1024创新实验室发〔2022〕字第36号

1024创新实验室发〔2022〕字第36号

1024创新实验室发〔2022〕字第36号

', '', 0, 0, '销售部', '卓大', '1024创新实验室发〔2022〕字第30号', 0, 1, '2022-10-22 14:53:18', '2022-10-22 14:50:11'), - (60, 2, '1024创新实验室 春节放假通知', 1, 0, '2022-10-21 23:37:57', '春节假期即将来临,根据国务院办公厅关于国庆节的放假安排,废纸信息网安排如下:10月1日至7日放假调休,共7天。\n衷心预祝\n国庆快乐,阖家幸福!', '

国庆假期即将来临,根据国务院办公厅关于国庆节的放假安排,废纸信息网安排如下:10月1日至7日放假调休,共7天。

衷心预祝

国庆快乐,阖家幸福!

', '', 0, 0, '人力行政部', '卓大', '1024创新实验室发〔2022〕字第36号', 0, 1, '2022-10-22 14:53:09', '2022-10-22 14:37:57'); -/*!40000 ALTER TABLE `t_notice` ENABLE KEYS */; - --- 导出 表 smart_admin_v2.t_notice_type 结构 -DROP TABLE IF EXISTS `t_notice_type`; -CREATE TABLE IF NOT EXISTS `t_notice_type` ( - `notice_type_id` bigint NOT NULL AUTO_INCREMENT COMMENT '通知类型', - `notice_type_name` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '类型名称', - `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, - `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`notice_type_id`) USING BTREE -) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='通知类型'; - --- 正在导出表 smart_admin_v2.t_notice_type 的数据:~2 rows (大约) -DELETE FROM `t_notice_type`; -/*!40000 ALTER TABLE `t_notice_type` DISABLE KEYS */; -INSERT INTO `t_notice_type` (`notice_type_id`, `notice_type_name`, `create_time`, `update_time`) VALUES - (1, '公告', '2022-08-16 20:29:15', '2022-08-16 20:29:15'), - (2, '通知', '2022-08-16 20:29:20', '2022-08-16 20:29:20'); -/*!40000 ALTER TABLE `t_notice_type` ENABLE KEYS */; - --- 导出 表 smart_admin_v2.t_notice_view_record 结构 -DROP TABLE IF EXISTS `t_notice_view_record`; -CREATE TABLE IF NOT EXISTS `t_notice_view_record` ( - `notice_id` int NOT NULL COMMENT '通知公告id', - `employee_id` int NOT NULL COMMENT '员工id', - `page_view_count` int DEFAULT '0' COMMENT '查看次数', - `first_ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '首次ip', - `first_user_agent` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '首次用户设备等标识', - `last_ip` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '最后一次ip', - `last_user_agent` varchar(1000) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '最后一次用户设备等标识', - `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, - `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`notice_id`,`employee_id`) USING BTREE, - UNIQUE KEY `uk_notice_employee` (`notice_id`,`employee_id`) USING BTREE COMMENT '资讯员工' -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='通知查看记录'; - --- 正在导出表 smart_admin_v2.t_notice_view_record 的数据:~36 rows (大约) -DELETE FROM `t_notice_view_record`; -/*!40000 ALTER TABLE `t_notice_view_record` DISABLE KEYS */; -INSERT INTO `t_notice_view_record` (`notice_id`, `employee_id`, `page_view_count`, `first_ip`, `first_user_agent`, `last_ip`, `last_user_agent`, `create_time`, `update_time`) VALUES - (60, 1, 1, '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', NULL, NULL, '2022-10-22 18:00:25', '2022-10-22 18:00:25'); -/*!40000 ALTER TABLE `t_notice_view_record` ENABLE KEYS */; - --- 导出 表 smart_admin_v2.t_notice_visible_range 结构 -DROP TABLE IF EXISTS `t_notice_visible_range`; -CREATE TABLE IF NOT EXISTS `t_notice_visible_range` ( - `notice_id` int NOT NULL COMMENT '资讯id', - `data_type` tinyint NOT NULL COMMENT '数据类型1员工 2部门', - `data_id` int NOT NULL COMMENT '员工or部门id', - `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, - UNIQUE KEY `uk_notice_data` (`notice_id`,`data_type`,`data_id`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='通知可见范围'; - --- 正在导出表 smart_admin_v2.t_notice_visible_range 的数据:~0 rows (大约) -DELETE FROM `t_notice_visible_range`; -/*!40000 ALTER TABLE `t_notice_visible_range` DISABLE KEYS */; -/*!40000 ALTER TABLE `t_notice_visible_range` ENABLE KEYS */; - --- 导出 表 smart_admin_v2.t_oa_bank 结构 -DROP TABLE IF EXISTS `t_oa_bank`; -CREATE TABLE IF NOT EXISTS `t_oa_bank` ( - `bank_id` bigint NOT NULL AUTO_INCREMENT COMMENT '银行信息ID', - `bank_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '开户银行', - `account_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '账户名称', - `account_number` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '账号', - `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '备注', - `business_flag` tinyint(1) NOT NULL COMMENT '是否对公', - `enterprise_id` bigint NOT NULL COMMENT '企业ID', - `disabled_flag` tinyint(1) NOT NULL DEFAULT '0' COMMENT '禁用状态', - `deleted_flag` tinyint(1) NOT NULL DEFAULT '0' COMMENT '删除状态', - `create_user_id` bigint NOT NULL COMMENT '创建人ID', - `create_user_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '创建人', - `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', - PRIMARY KEY (`bank_id`) USING BTREE, - KEY `idx_enterprise_id` (`enterprise_id`) USING BTREE -) ENGINE=InnoDB AUTO_INCREMENT=28 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='OA银行信息\n'; - --- 正在导出表 smart_admin_v2.t_oa_bank 的数据:~21 rows (大约) -DELETE FROM `t_oa_bank`; -/*!40000 ALTER TABLE `t_oa_bank` DISABLE KEYS */; -INSERT INTO `t_oa_bank` (`bank_id`, `bank_name`, `account_name`, `account_number`, `remark`, `business_flag`, `enterprise_id`, `disabled_flag`, `deleted_flag`, `create_user_id`, `create_user_name`, `create_time`, `update_time`) VALUES - (26, '工商银行', '1024创新实验室', '1024', '基本户', 1, 2, 0, 0, 1, '管理员', '2022-10-22 17:58:43', '2022-10-22 17:58:43'), - (27, '建设银行', '1024创新实验室', '10241', '其他户', 0, 2, 0, 0, 1, '管理员', '2022-10-22 17:59:19', '2022-10-22 17:59:19'); -/*!40000 ALTER TABLE `t_oa_bank` ENABLE KEYS */; - --- 导出 表 smart_admin_v2.t_oa_enterprise 结构 -DROP TABLE IF EXISTS `t_oa_enterprise`; -CREATE TABLE IF NOT EXISTS `t_oa_enterprise` ( - `enterprise_id` bigint NOT NULL AUTO_INCREMENT COMMENT '企业ID', - `enterprise_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '企业名称', - `enterprise_logo` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '企业logo', - `type` int NOT NULL DEFAULT '1' COMMENT '类型(1:有限公司;2:合伙公司)', - `unified_social_credit_code` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '统一社会信用代码', - `contact` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '联系人', - `contact_phone` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '联系人电话', - `email` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '邮箱', - `province` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '省份', - `province_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '省份名称', - `city` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '市', - `city_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '城市名称', - `district` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '区县', - `district_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '区县名称', - `address` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '详细地址', - `business_license` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '营业执照', - `disabled_flag` tinyint(1) NOT NULL DEFAULT '0' COMMENT '禁用状态', - `deleted_flag` tinyint(1) NOT NULL DEFAULT '0' COMMENT '删除状态', - `create_user_id` bigint NOT NULL COMMENT '创建人ID', - `create_user_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '创建人', - `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', - PRIMARY KEY (`enterprise_id`) USING BTREE -) ENGINE=InnoDB AUTO_INCREMENT=119 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='OA企业模块\r\n'; - --- 正在导出表 smart_admin_v2.t_oa_enterprise 的数据:~14 rows (大约) -DELETE FROM `t_oa_enterprise`; -/*!40000 ALTER TABLE `t_oa_enterprise` DISABLE KEYS */; -INSERT INTO `t_oa_enterprise` (`enterprise_id`, `enterprise_name`, `enterprise_logo`, `type`, `unified_social_credit_code`, `contact`, `contact_phone`, `email`, `province`, `province_name`, `city`, `city_name`, `district`, `district_name`, `address`, `business_license`, `disabled_flag`, `deleted_flag`, `create_user_id`, `create_user_name`, `create_time`, `update_time`) VALUES - (1, '1024创新区块链实验室', 'public/common/f4a76fa720814949a610f05f6f9545bf_20221022170256_jpg', 1, '1024lab_block', '开云', '18637925892', NULL, '410000', '河南省', '410300', '洛阳市', '410311', '洛龙区', '区块链大楼', 'public/common/852b7e19bef94af39c1a6156edf47cfb_20221022170332_jpg', 0, 0, 1, '管理员', '2021-10-22 17:03:35', '2022-10-22 17:04:18'), - (2, '1024创新实验室', 'public/common/fb827d63dda74a60ab8b4f70cc7c7d0a_20221022145641_jpg', 1, '1024lab', '卓大', '18637925892', 'lab1024@163.com', '410000', '河南省', '410300', '洛阳市', '410311', '洛龙区', '1024大楼', NULL, 0, 0, 44, '卓大', '2022-10-22 14:57:36', '2022-10-22 17:03:57'); -/*!40000 ALTER TABLE `t_oa_enterprise` ENABLE KEYS */; - --- 导出 表 smart_admin_v2.t_oa_enterprise_employee 结构 -DROP TABLE IF EXISTS `t_oa_enterprise_employee`; -CREATE TABLE IF NOT EXISTS `t_oa_enterprise_employee` ( - `enterprise_employee_id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键ID', - `enterprise_id` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '订单ID', - `employee_id` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '货物名称', - `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', - `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - PRIMARY KEY (`enterprise_employee_id`) USING BTREE, - UNIQUE KEY `uk_enterprise_employee` (`enterprise_id`,`employee_id`) USING BTREE, - KEY `idx_employee_id` (`employee_id`) USING BTREE, - KEY `idx_enterprise_id` (`enterprise_id`) USING BTREE -) ENGINE=InnoDB AUTO_INCREMENT=157 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='企业关联的员工'; - --- 正在导出表 smart_admin_v2.t_oa_enterprise_employee 的数据:~63 rows (大约) -DELETE FROM `t_oa_enterprise_employee`; -/*!40000 ALTER TABLE `t_oa_enterprise_employee` DISABLE KEYS */; -INSERT INTO `t_oa_enterprise_employee` (`enterprise_employee_id`, `enterprise_id`, `employee_id`, `update_time`, `create_time`) VALUES - (154, '2', '2', '2022-10-22 17:57:50', '2022-10-22 17:57:50'), - (155, '2', '44', '2022-10-22 17:57:50', '2022-10-22 17:57:50'); -/*!40000 ALTER TABLE `t_oa_enterprise_employee` ENABLE KEYS */; - --- 导出 表 smart_admin_v2.t_oa_invoice 结构 -DROP TABLE IF EXISTS `t_oa_invoice`; -CREATE TABLE IF NOT EXISTS `t_oa_invoice` ( - `invoice_id` bigint NOT NULL AUTO_INCREMENT COMMENT '发票信息ID', - `invoice_heads` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '开票抬头', - `taxpayer_identification_number` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '纳税人识别号', - `account_number` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '银行账户', - `bank_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '开户行', - `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci DEFAULT NULL COMMENT '备注', - `enterprise_id` bigint NOT NULL COMMENT '企业ID', - `disabled_flag` tinyint(1) NOT NULL DEFAULT '0' COMMENT '禁用状态', - `deleted_flag` tinyint(1) NOT NULL DEFAULT '0' COMMENT '删除状态', - `create_user_id` bigint NOT NULL COMMENT '创建人ID', - `create_user_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NOT NULL COMMENT '创建人', - `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', - PRIMARY KEY (`invoice_id`) USING BTREE, - KEY `idx_enterprise_id` (`enterprise_id`) USING BTREE -) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='OA发票信息\n'; - --- 正在导出表 smart_admin_v2.t_oa_invoice 的数据:~14 rows (大约) -DELETE FROM `t_oa_invoice`; -/*!40000 ALTER TABLE `t_oa_invoice` DISABLE KEYS */; -INSERT INTO `t_oa_invoice` (`invoice_id`, `invoice_heads`, `taxpayer_identification_number`, `account_number`, `bank_name`, `remark`, `enterprise_id`, `disabled_flag`, `deleted_flag`, `create_user_id`, `create_user_name`, `create_time`, `update_time`) VALUES - (15, '1024创新实验室', '1024lab', '1024lab', '中国银行', '', 2, 0, 0, 1, '管理员', '2022-10-22 17:59:35', '2022-10-22 17:59:35'); -/*!40000 ALTER TABLE `t_oa_invoice` ENABLE KEYS */; - --- 导出 表 smart_admin_v2.t_operate_log 结构 -DROP TABLE IF EXISTS `t_operate_log`; -CREATE TABLE IF NOT EXISTS `t_operate_log` ( - `operate_log_id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键', - `operate_user_id` int NOT NULL COMMENT '用户id', - `operate_user_type` int NOT NULL COMMENT '用户类型', - `operate_user_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '用户名称', - `module` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '操作模块', - `content` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '操作内容', - `url` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '请求路径', - `method` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '请求方法', - `param` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '请求参数', - `ip` varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '请求ip', - `user_agent` text COLLATE utf8mb4_unicode_ci COMMENT '请求user-agent', - `success_flag` tinyint DEFAULT NULL COMMENT '请求结果 0失败 1成功', - `fail_reason` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT '失败原因', - `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', - `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - PRIMARY KEY (`operate_log_id`) USING BTREE -) ENGINE=InnoDB AUTO_INCREMENT=981 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='操作记录'; - --- 正在导出表 smart_admin_v2.t_operate_log 的数据:~797 rows (大约) -DELETE FROM `t_operate_log`; -/*!40000 ALTER TABLE `t_operate_log` DISABLE KEYS */; -INSERT INTO `t_operate_log` (`operate_log_id`, `operate_user_id`, `operate_user_type`, `operate_user_name`, `module`, `content`, `url`, `method`, `param`, `ip`, `user_agent`, `success_flag`, `fail_reason`, `update_time`, `create_time`) VALUES - (1, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 19:40:23', '2022-10-19 19:40:23'), - (2, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 19:40:57', '2022-10-19 19:40:57'), - (3, 1, 1, '管理员', '系统-部门管理', '查询部门列表 @author 卓大', '/department/listAll', 'net.lab1024.sa.admin.module.system.department.controller.DepartmentController.listAll', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 19:42:04', '2022-10-19 19:42:04'), - (4, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 19:42:04', '2022-10-19 19:42:04'), - (5, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"departmentId":1,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 19:42:04', '2022-10-19 19:42:04'), - (6, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"departmentId":85,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 19:42:11', '2022-10-19 19:42:11'), - (7, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"departmentId":1,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 19:42:12', '2022-10-19 19:42:12'), - (8, 1, 1, '管理员', '系统-部门管理', '查询部门列表 @author 卓大', '/department/listAll', 'net.lab1024.sa.admin.module.system.department.controller.DepartmentController.listAll', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 19:43:17', '2022-10-19 19:43:17'), - (9, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 19:43:17', '2022-10-19 19:43:17'), - (10, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"departmentId":1,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 19:43:17', '2022-10-19 19:43:17'), - (11, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 19:43:19', '2022-10-19 19:43:19'), - (12, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"departmentId":79,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 19:43:26', '2022-10-19 19:43:26'), - (13, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"departmentId":80,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 19:43:27', '2022-10-19 19:43:27'), - (14, 1, 1, '管理员', '系统-角色', '获取所有角色 @author 卓大', '/role/getAll', 'net.lab1024.sa.admin.module.system.role.controller.RoleController.getAllRole', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 19:43:28', '2022-10-19 19:43:28'), - (15, 1, 1, '管理员', '系统-部门管理', '查询部门树形列表 @author 卓大', '/department/treeList', 'net.lab1024.sa.admin.module.system.department.controller.DepartmentController.departmentTree', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 19:43:28', '2022-10-19 19:43:28'), - (16, 1, 1, '管理员', '系统-员工管理', '添加员工(返回添加员工的密码) @author 卓大', '/employee/add', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.addEmployee', '[{"actualName":"李阿姨","departmentId":80,"disabledFlag":false,"gender":2,"loginName":"liayi","phone":"13123123123","updateId":1}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 19:43:51', '2022-10-19 19:43:51'), - (17, 1, 1, '管理员', '系统-员工管理', '添加员工(返回添加员工的密码) @author 卓大', '/employee/add', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.addEmployee', '[{"actualName":"李阿姨","departmentId":80,"disabledFlag":false,"gender":2,"loginName":"liayi","phone":"13123123109","updateId":1}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 19:43:57', '2022-10-19 19:43:57'), - (18, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"departmentId":80,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 19:43:57', '2022-10-19 19:43:57'), - (19, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"departmentId":1,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 19:56:23', '2022-10-19 19:56:23'), - (20, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 19:56:24', '2022-10-19 19:56:24'), - (21, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"departmentId":1,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 19:56:49', '2022-10-19 19:56:49'), - (22, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 19:56:55', '2022-10-19 19:56:55'), - (23, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"departmentId":78,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 19:56:57', '2022-10-19 19:56:57'), - (24, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"departmentId":79,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 19:56:59', '2022-10-19 19:56:59'), - (25, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"departmentId":80,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 19:56:59', '2022-10-19 19:56:59'), - (26, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"departmentId":78,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 19:57:00', '2022-10-19 19:57:00'), - (27, 1, 1, '管理员', '系统-部门管理', '查询部门列表 @author 卓大', '/department/listAll', 'net.lab1024.sa.admin.module.system.department.controller.DepartmentController.listAll', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:05:25', '2022-10-19 20:05:25'), - (28, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:05:26', '2022-10-19 20:05:26'), - (29, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"departmentId":1,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:05:26', '2022-10-19 20:05:26'), - (30, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"departmentId":85,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:05:51', '2022-10-19 20:05:51'), - (31, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"departmentId":1,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:11:08', '2022-10-19 20:11:08'), - (32, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"departmentId":85,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:11:19', '2022-10-19 20:11:19'), - (33, 1, 1, '管理员', '系统-部门管理', '查询部门树形列表 @author 卓大', '/department/treeList', 'net.lab1024.sa.admin.module.system.department.controller.DepartmentController.departmentTree', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:11:23', '2022-10-19 20:11:23'), - (34, 1, 1, '管理员', '系统-员工管理', '查询所有员工 @author 卓大', '/employee/queryAll', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.queryAllEmployee', '[null]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 0, 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'departmentIdList\' not found. Available parameters are [queryForm, param1]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:440)\r\n at com.sun.proxy.$Proxy116.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:223)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:173)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:78)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy137.queryEmployee(Unknown Source)\r\n at net.lab1024.sa.admin.module.system.employee.service.EmployeeService.queryAllEmployee(EmployeeService.java:368)\r\n at net.lab1024.sa.admin.module.system.employee.service.EmployeeService$$FastClassBySpringCGLIB$$1.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:779)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at com.alibaba.druid.support.spring.stat.DruidStatInterceptor.invoke(DruidStatInterceptor.java:73)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:692)\r\n at net.lab1024.sa.admin.module.system.employee.service.EmployeeService$$EnhancerBySpringCGLIB$$1.queryAllEmployee()\r\n at net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.queryAllEmployee(EmployeeController.java:104)\r\n at net.lab1024.sa.admin.module.system.employee.controller.EmployeeController$$FastClassBySpringCGLIB$$1.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:779)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.aspectj.AspectJAfterThrowingAdvice.invoke(AspectJAfterThrowingAdvice.java:64)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.adapter.AfterReturningAdviceInterceptor.invoke(AfterReturningAdviceInterceptor.java:57)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:692)\r\n at net.lab1024.sa.admin.module.system.employee.controller.EmployeeController$$EnhancerBySpringCGLIB$$1.queryAllEmployee()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:197)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:141)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:894)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1063)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:655)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:228)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:113)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:84)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:121)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:105)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at net.lab1024.sa.common.common.security.SecurityTokenFilter.doFilterInternal(SecurityTokenFilter.java:62)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)\r\n at org.apache.catalina.core.StandardContextValve.__invoke(StandardContextValve.java:97)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:41002)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)\r\n at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1723)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'departmentIdList\' not found. Available parameters are [queryForm, param1]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:212)\r\n at org.apache.ibatis.scripting.xmltags.DynamicContext$ContextAccessor.getProperty(DynamicContext.java:120)\r\n at org.apache.ibatis.ognl.OgnlRuntime.getProperty(OgnlRuntime.java:3338)\r\n at org.apache.ibatis.ognl.ASTProperty.getValueBody(ASTProperty.java:121)\r\n at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)\r\n at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)\r\n at org.apache.ibatis.ognl.ASTNotEq.getValueBody(ASTNotEq.java:50)\r\n at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)\r\n at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)\r\n at org.apache.ibatis.ognl.ASTAnd.getValueBody(ASTAnd.java:61)\r\n at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)\r\n at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)\r\n at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:560)\r\n at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:524)\r\n at org.apache.ibatis.scripting.xmltags.OgnlCache.getValue(OgnlCache.java:46)\r\n at org.apache.ibatis.scripting.xmltags.ExpressionEvaluator.evaluateBoolean(ExpressionEvaluator.java:32)\r\n at org.apache.ibatis.scripting.xmltags.IfSqlNode.apply(IfSqlNode.java:34)\r\n at org.apache.ibatis.scripting.xmltags.MixedSqlNode.lambda$apply$0(MixedSqlNode.java:32)\r\n at java.util.ArrayList.forEach(ArrayList.java:1257)\r\n at org.apache.ibatis.scripting.xmltags.MixedSqlNode.apply(MixedSqlNode.java:32)\r\n at org.apache.ibatis.scripting.xmltags.TrimSqlNode.apply(TrimSqlNode.java:55)\r\n at org.apache.ibatis.scripting.xmltags.MixedSqlNode.lambda$apply$0(MixedSqlNode.java:32)\r\n at java.util.ArrayList.forEach(ArrayList.java:1257)\r\n at org.apache.ibatis.scripting.xmltags.MixedSqlNode.apply(MixedSqlNode.java:32)\r\n at org.apache.ibatis.scripting.xmltags.DynamicSqlSource.getBoundSql(DynamicSqlSource.java:39)\r\n at org.apache.ibatis.mapping.MappedStatement.getBoundSql(MappedStatement.java:305)\r\n at net.lab1024.sa.admin.module.system.datascope.MyBatisPlugin.intercept(MyBatisPlugin.java:46)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy156.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)\r\n at sun.reflect.GeneratedMethodAccessor244.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426)\r\n ... 134 more\r\n', '2022-10-19 20:11:23', '2022-10-19 20:11:23'), - (35, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:16:08', '2022-10-19 20:16:08'), - (36, 1, 1, '管理员', '系统-员工管理', '查询所有员工 @author 卓大', '/employee/queryAll', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.queryAllEmployee', '[null]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:16:13', '2022-10-19 20:16:13'), - (37, 1, 1, '管理员', '系统-部门管理', '查询部门树形列表 @author 卓大', '/department/treeList', 'net.lab1024.sa.admin.module.system.department.controller.DepartmentController.departmentTree', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:16:13', '2022-10-19 20:16:13'), - (38, 1, 1, '管理员', '系统-部门管理', '查询部门列表 @author 卓大', '/department/listAll', 'net.lab1024.sa.admin.module.system.department.controller.DepartmentController.listAll', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:17:41', '2022-10-19 20:17:41'), - (39, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:17:41', '2022-10-19 20:17:41'), - (40, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"departmentId":1,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:17:42', '2022-10-19 20:17:42'), - (41, 1, 1, '管理员', '系统-部门管理', '查询部门树形列表 @author 卓大', '/department/treeList', 'net.lab1024.sa.admin.module.system.department.controller.DepartmentController.departmentTree', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:17:44', '2022-10-19 20:17:44'), - (42, 1, 1, '管理员', '系统-员工管理', '查询所有员工 @author 卓大', '/employee/queryAll', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.queryAllEmployee', '[null]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:17:44', '2022-10-19 20:17:44'), - (43, 1, 1, '管理员', '系统-部门管理', '查询部门树形列表 @author 卓大', '/department/treeList', 'net.lab1024.sa.admin.module.system.department.controller.DepartmentController.departmentTree', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:18:15', '2022-10-19 20:18:15'), - (44, 1, 1, '管理员', '系统-角色', '获取所有角色 @author 卓大', '/role/getAll', 'net.lab1024.sa.admin.module.system.role.controller.RoleController.getAllRole', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:18:15', '2022-10-19 20:18:15'), - (45, 1, 1, '管理员', '系统-员工管理', '添加员工(返回添加员工的密码) @author 卓大', '/employee/add', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.addEmployee', '[{"actualName":"卓大","departmentId":1,"disabledFlag":false,"gender":1,"loginName":"zhuoda","phone":"18637925892","roleIdList":[1],"updateId":1}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:18:31', '2022-10-19 20:18:31'), - (46, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:21:42', '2022-10-19 20:21:42'), - (47, 1, 1, '管理员', '系统-员工管理', '查询所有员工 @author 卓大', '/employee/queryAll', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.queryAllEmployee', '[null]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:21:50', '2022-10-19 20:21:50'), - (48, 1, 1, '管理员', '系统-部门管理', '查询部门树形列表 @author 卓大', '/department/treeList', 'net.lab1024.sa.admin.module.system.department.controller.DepartmentController.departmentTree', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:21:50', '2022-10-19 20:21:50'), - (49, 1, 1, '管理员', '系统-员工管理', '查询所有员工 @author 卓大', '/employee/queryAll', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.queryAllEmployee', '[null]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:21:59', '2022-10-19 20:21:59'), - (50, 1, 1, '管理员', '系统-部门管理', '查询部门树形列表 @author 卓大', '/department/treeList', 'net.lab1024.sa.admin.module.system.department.controller.DepartmentController.departmentTree', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:22:05', '2022-10-19 20:22:05'), - (51, 1, 1, '管理员', '系统-员工管理', '查询所有员工 @author 卓大', '/employee/queryAll', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.queryAllEmployee', '[null]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:22:05', '2022-10-19 20:22:05'), - (52, 1, 1, '管理员', '系统-部门管理', '添加部门 @author 卓大', '/department/add', 'net.lab1024.sa.admin.module.system.department.controller.DepartmentController.addDepartment', '[{"managerId":44,"name":"开发部","parentId":1,"sort":1000}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:22:23', '2022-10-19 20:22:23'), - (53, 1, 1, '管理员', '系统-部门管理', '查询部门列表 @author 卓大', '/department/listAll', 'net.lab1024.sa.admin.module.system.department.controller.DepartmentController.listAll', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:22:23', '2022-10-19 20:22:23'), - (54, 1, 1, '管理员', '系统-部门管理', '查询部门树形列表 @author 卓大', '/department/treeList', 'net.lab1024.sa.admin.module.system.department.controller.DepartmentController.departmentTree', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:22:25', '2022-10-19 20:22:25'), - (55, 1, 1, '管理员', '系统-员工管理', '查询所有员工 @author 卓大', '/employee/queryAll', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.queryAllEmployee', '[null]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:22:26', '2022-10-19 20:22:26'), - (56, 1, 1, '管理员', '系统-部门管理', '查询部门树形列表 @author 卓大', '/department/treeList', 'net.lab1024.sa.admin.module.system.department.controller.DepartmentController.departmentTree', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:23:00', '2022-10-19 20:23:00'), - (57, 1, 1, '管理员', '系统-员工管理', '查询所有员工 @author 卓大', '/employee/queryAll', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.queryAllEmployee', '[null]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:23:00', '2022-10-19 20:23:00'), - (58, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"departmentId":2,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:23:28', '2022-10-19 20:23:28'), - (59, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"departmentId":1,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:23:30', '2022-10-19 20:23:30'), - (60, 1, 1, '管理员', '系统-部门管理', '查询部门列表 @author 卓大', '/department/listAll', 'net.lab1024.sa.admin.module.system.department.controller.DepartmentController.listAll', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:23:38', '2022-10-19 20:23:38'), - (61, 1, 1, '管理员', '系统-员工管理', '批量调整员工部门 @author 卓大', '/employee/update/batch/department', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.batchUpdateDepartment', '[{"departmentId":2,"employeeIdList":[48,63,64]}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:23:40', '2022-10-19 20:23:40'), - (62, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"departmentId":1,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:23:41', '2022-10-19 20:23:41'), - (63, 1, 1, '管理员', '系统-角色', '获取所有角色 @author 卓大', '/role/getAll', 'net.lab1024.sa.admin.module.system.role.controller.RoleController.getAllRole', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:23:48', '2022-10-19 20:23:48'), - (64, 1, 1, '管理员', '系统-角色-菜单', '获取角色关联菜单权限 @author 卓大', '/role/menu/getRoleSelectedMenu/1', 'net.lab1024.sa.admin.module.system.role.controller.RoleMenuController.getRoleSelectedMenu', '[1]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:23:49', '2022-10-19 20:23:49'), - (65, 1, 1, '管理员', '系统-角色', '更新角色 @author 卓大', '/role/update', 'net.lab1024.sa.admin.module.system.role.controller.RoleController.updateRole', '[{"remark":"","roleId":1,"roleName":"技术总监"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:24:09', '2022-10-19 20:24:09'), - (66, 1, 1, '管理员', '系统-角色', '获取所有角色 @author 卓大', '/role/getAll', 'net.lab1024.sa.admin.module.system.role.controller.RoleController.getAllRole', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:24:09', '2022-10-19 20:24:09'), - (67, 1, 1, '管理员', '系统-角色', '获取所有角色 @author 卓大', '/role/getAll', 'net.lab1024.sa.admin.module.system.role.controller.RoleController.getAllRole', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:25:11', '2022-10-19 20:25:11'), - (68, 1, 1, '管理员', '系统-角色-菜单', '获取角色关联菜单权限 @author 卓大', '/role/menu/getRoleSelectedMenu/1', 'net.lab1024.sa.admin.module.system.role.controller.RoleMenuController.getRoleSelectedMenu', '[1]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:25:11', '2022-10-19 20:25:11'), - (69, 1, 1, '管理员', '系统-角色-菜单', '获取角色关联菜单权限 @author 卓大', '/role/menu/getRoleSelectedMenu/34', 'net.lab1024.sa.admin.module.system.role.controller.RoleMenuController.getRoleSelectedMenu', '[34]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:25:13', '2022-10-19 20:25:13'), - (70, 1, 1, '管理员', '系统-角色-菜单', '获取角色关联菜单权限 @author 卓大', '/role/menu/getRoleSelectedMenu/35', 'net.lab1024.sa.admin.module.system.role.controller.RoleMenuController.getRoleSelectedMenu', '[35]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:25:13', '2022-10-19 20:25:13'), - (71, 1, 1, '管理员', '系统-角色-菜单', '获取角色关联菜单权限 @author 卓大', '/role/menu/getRoleSelectedMenu/36', 'net.lab1024.sa.admin.module.system.role.controller.RoleMenuController.getRoleSelectedMenu', '[36]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:25:14', '2022-10-19 20:25:14'), - (72, 1, 1, '管理员', '系统-系统-数据范围', '获取当前系统所配置的所有数据范围 @author 罗伊', '/dataScope/list', 'net.lab1024.sa.admin.module.system.datascope.DataScopeController.dataScopeList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:25:15', '2022-10-19 20:25:15'), - (73, 1, 1, '管理员', '系统-角色-数据范围', '获取某角色所设置的数据范围 @author 卓大', '/role/dataScope/getRoleDataScopeList/36', 'net.lab1024.sa.admin.module.system.role.controller.RoleDataScopeController.dataScopeListByRole', '[36]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:25:15', '2022-10-19 20:25:15'), - (74, 1, 1, '管理员', '系统-角色-员工', '查询某个角色下的员工列表 @author 卓大', '/role/employee/queryEmployee', 'net.lab1024.sa.admin.module.system.role.controller.RoleEmployeeController.queryEmployee', '[{"pageNum":1,"pageSize":15,"roleId":"36"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:25:17', '2022-10-19 20:25:17'), - (75, 1, 1, '管理员', '系统-角色-员工', '获取某个角色下的所有员工列表(无分页) @author 卓大', '/role/employee/getAllEmployeeByRoleId/36', 'net.lab1024.sa.admin.module.system.role.controller.RoleEmployeeController.listAllEmployeeRoleId', '[36]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:25:20', '2022-10-19 20:25:20'), - (76, 1, 1, '管理员', '系统-部门管理', '查询部门树形列表 @author 卓大', '/department/treeList', 'net.lab1024.sa.admin.module.system.department.controller.DepartmentController.departmentTree', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:25:20', '2022-10-19 20:25:20'), - (77, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:25:20', '2022-10-19 20:25:20'), - (78, 1, 1, '管理员', '系统-角色-员工', '角色成员列表中批量添加员工 @author 卓大', '/role/employee/batchAddRoleEmployee', 'net.lab1024.sa.admin.module.system.role.controller.RoleEmployeeController.addEmployeeList', '[{"employeeIdList":[63],"roleId":36}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:25:26', '2022-10-19 20:25:26'), - (79, 1, 1, '管理员', '系统-角色-员工', '查询某个角色下的员工列表 @author 卓大', '/role/employee/queryEmployee', 'net.lab1024.sa.admin.module.system.role.controller.RoleEmployeeController.queryEmployee', '[{"pageNum":1,"pageSize":15,"roleId":"36"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:25:26', '2022-10-19 20:25:26'), - (80, 1, 1, '管理员', '系统-角色-员工', '查询某个角色下的员工列表 @author 卓大', '/role/employee/queryEmployee', 'net.lab1024.sa.admin.module.system.role.controller.RoleEmployeeController.queryEmployee', '[{"pageNum":1,"pageSize":15,"roleId":"1"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:25:28', '2022-10-19 20:25:28'), - (81, 1, 1, '管理员', '系统-角色-菜单', '获取角色关联菜单权限 @author 卓大', '/role/menu/getRoleSelectedMenu/1', 'net.lab1024.sa.admin.module.system.role.controller.RoleMenuController.getRoleSelectedMenu', '[1]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:25:28', '2022-10-19 20:25:28'), - (82, 1, 1, '管理员', '系统-角色-数据范围', '获取某角色所设置的数据范围 @author 卓大', '/role/dataScope/getRoleDataScopeList/1', 'net.lab1024.sa.admin.module.system.role.controller.RoleDataScopeController.dataScopeListByRole', '[1]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:25:28', '2022-10-19 20:25:28'), - (83, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-19 20:25:30', '2022-10-19 20:25:30'), - (84, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 09:40:04', '2022-10-20 09:40:04'), - (85, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 09:42:20', '2022-10-20 09:42:20'), - (86, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 09:42:20', '2022-10-20 09:42:20'), - (87, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 09:42:20', '2022-10-20 09:42:20'), - (88, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 09:43:01', '2022-10-20 09:43:01'), - (89, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 09:43:01', '2022-10-20 09:43:01'), - (90, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 10:03:56', '2022-10-20 10:03:56'), - (91, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 10:04:00', '2022-10-20 10:04:00'), - (92, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 10:04:13', '2022-10-20 10:04:13'), - (93, 1, 1, '管理员', '系统-部门管理', '查询部门列表 @author 卓大', '/department/listAll', 'net.lab1024.sa.admin.module.system.department.controller.DepartmentController.listAll', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 10:04:26', '2022-10-20 10:04:26'), - (94, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 10:04:26', '2022-10-20 10:04:26'), - (95, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"departmentId":1,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 10:04:26', '2022-10-20 10:04:26'), - (96, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 10:55:45', '2022-10-20 10:55:45'), - (97, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 10:55:46', '2022-10-20 10:55:46'), - (98, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 10:55:46', '2022-10-20 10:55:46'), - (99, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 10:55:47', '2022-10-20 10:55:47'), - (100, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 10:55:48', '2022-10-20 10:55:48'), - (101, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 10:56:02', '2022-10-20 10:56:02'), - (102, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 10:56:03', '2022-10-20 10:56:03'), - (103, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 10:56:03', '2022-10-20 10:56:03'), - (104, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 10:56:04', '2022-10-20 10:56:04'), - (105, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 10:56:05', '2022-10-20 10:56:05'), - (106, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 11:12:04', '2022-10-20 11:12:04'), - (107, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 11:12:06', '2022-10-20 11:12:06'), - (108, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 11:12:07', '2022-10-20 11:12:07'), - (109, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 11:12:07', '2022-10-20 11:12:07'), - (110, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 11:12:07', '2022-10-20 11:12:07'), - (111, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 11:12:09', '2022-10-20 11:12:09'), - (112, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 11:13:08', '2022-10-20 11:13:08'), - (113, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 11:13:15', '2022-10-20 11:13:15'), - (114, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 11:13:15', '2022-10-20 11:13:15'), - (115, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 11:13:16', '2022-10-20 11:13:16'), - (116, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 11:13:21', '2022-10-20 11:13:21'), - (117, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 11:13:25', '2022-10-20 11:13:25'), - (118, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 11:13:59', '2022-10-20 11:13:59'), - (119, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 11:13:59', '2022-10-20 11:13:59'), - (120, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 11:13:59', '2022-10-20 11:13:59'), - (121, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 11:14:07', '2022-10-20 11:14:07'), - (122, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 11:14:12', '2022-10-20 11:14:12'), - (123, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 11:14:12', '2022-10-20 11:14:12'), - (124, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 11:14:13', '2022-10-20 11:14:13'), - (125, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 11:14:18', '2022-10-20 11:14:18'), - (126, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 11:14:18', '2022-10-20 11:14:18'), - (127, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 11:14:27', '2022-10-20 11:14:27'), - (128, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 11:14:27', '2022-10-20 11:14:27'), - (129, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 11:14:46', '2022-10-20 11:14:46'), - (130, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 11:14:46', '2022-10-20 11:14:46'), - (131, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 11:14:46', '2022-10-20 11:14:46'), - (132, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 11:14:49', '2022-10-20 11:14:49'), - (133, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 11:14:50', '2022-10-20 11:14:50'), - (134, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 11:14:51', '2022-10-20 11:14:51'), - (135, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 11:17:10', '2022-10-20 11:17:10'), - (136, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 11:17:10', '2022-10-20 11:17:10'), - (137, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 13:37:21', '2022-10-20 13:37:21'), - (138, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 13:39:09', '2022-10-20 13:39:09'), - (139, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 13:39:09', '2022-10-20 13:39:09'), - (140, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 13:39:09', '2022-10-20 13:39:09'), - (141, 1, 1, '管理员', '系统-菜单', '更新菜单 @author 卓大', '/menu/update', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.updateMenu', '[{"apiPermsList":[],"cacheFlag":false,"disabledFlag":false,"frameFlag":false,"menuId":95,"menuName":"重置密码","menuType":3,"parentId":46,"permsType":1,"updateUserId":1,"visibleFlag":true,"webPerms":"system:employee:password:reset"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 13:39:13', '2022-10-20 13:39:13'), - (142, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 13:39:14', '2022-10-20 13:39:14'), - (143, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 13:39:17', '2022-10-20 13:39:17'), - (144, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 13:39:17', '2022-10-20 13:39:17'), - (145, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 13:46:37', '2022-10-20 13:46:37'), - (146, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 13:46:37', '2022-10-20 13:46:37'), - (147, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 13:46:37', '2022-10-20 13:46:37'), - (148, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 13:46:38', '2022-10-20 13:46:38'), - (149, 1, 1, '管理员', 'OA办公-企业', '分页查询企业模块 @author 开云', '/oa/enterprise/page/query', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.queryByPage', '[{"deletedFlag":false,"keywords":"","pageNum":1,"pageSize":15,"searchCount":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 13:47:00', '2022-10-20 13:47:00'), - (150, 1, 1, '管理员', 'OA办公-企业', '查询企业详情 @author 开云', '/oa/enterprise/get/15', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.getDetail', '[15]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 13:47:04', '2022-10-20 13:47:04'), - (151, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 13:47:04', '2022-10-20 13:47:04'), - (152, 1, 1, '管理员', 'OA办公-发票信息', '分页查询发票信息 @author 善逸', '/oa/invoice/page/query', 'net.lab1024.sa.admin.module.business.oa.invoice.InvoiceController.queryByPage', '[{"deletedFlag":false,"enterpriseId":15,"keywords":"","pageNum":1,"pageSize":15,"searchCount":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 13:47:07', '2022-10-20 13:47:07'), - (153, 1, 1, '管理员', 'OA办公-企业', '查询企业详情 @author 开云', '/oa/enterprise/get/15', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.getDetail', '[15]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 13:47:35', '2022-10-20 13:47:35'), - (154, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 13:47:35', '2022-10-20 13:47:35'), - (155, 1, 1, '管理员', 'OA办公-企业', '分页查询企业模块 @author 开云', '/oa/enterprise/page/query', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.queryByPage', '[{"deletedFlag":false,"keywords":"","pageNum":1,"pageSize":15,"searchCount":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-20 13:47:54', '2022-10-20 13:47:54'), - (156, 1, 1, '管理员', '系统-部门管理', '查询部门列表 @author 卓大', '/department/listAll', 'net.lab1024.sa.admin.module.system.department.controller.DepartmentController.listAll', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:24:38', '2022-10-21 10:24:38'), - (157, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:24:39', '2022-10-21 10:24:39'), - (158, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"departmentId":1,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:24:39', '2022-10-21 10:24:39'), - (159, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"departmentId":2,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:24:41', '2022-10-21 10:24:41'), - (160, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"departmentId":1,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:24:42', '2022-10-21 10:24:42'), - (161, 1, 1, '管理员', '系统-员工管理', '查询所有员工 @author 卓大', '/employee/queryAll', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.queryAllEmployee', '[null]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:25:13', '2022-10-21 10:25:13'), - (162, 1, 1, '管理员', '系统-部门管理', '查询部门树形列表 @author 卓大', '/department/treeList', 'net.lab1024.sa.admin.module.system.department.controller.DepartmentController.departmentTree', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:25:13', '2022-10-21 10:25:13'), - (163, 1, 1, '管理员', '系统-部门管理', '添加部门 @author 卓大', '/department/add', 'net.lab1024.sa.admin.module.system.department.controller.DepartmentController.addDepartment', '[{"managerId":2,"name":"产品部","parentId":1,"sort":99}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:25:30', '2022-10-21 10:25:30'), - (164, 1, 1, '管理员', '系统-部门管理', '查询部门列表 @author 卓大', '/department/listAll', 'net.lab1024.sa.admin.module.system.department.controller.DepartmentController.listAll', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:25:31', '2022-10-21 10:25:31'), - (165, 1, 1, '管理员', '系统-部门管理', '查询部门树形列表 @author 卓大', '/department/treeList', 'net.lab1024.sa.admin.module.system.department.controller.DepartmentController.departmentTree', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:25:40', '2022-10-21 10:25:40'), - (166, 1, 1, '管理员', '系统-员工管理', '查询所有员工 @author 卓大', '/employee/queryAll', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.queryAllEmployee', '[null]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:25:40', '2022-10-21 10:25:40'), - (167, 1, 1, '管理员', '系统-部门管理', '添加部门 @author 卓大', '/department/add', 'net.lab1024.sa.admin.module.system.department.controller.DepartmentController.addDepartment', '[{"managerId":64,"name":"销售部","parentId":1,"sort":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:25:48', '2022-10-21 10:25:48'), - (168, 1, 1, '管理员', '系统-部门管理', '查询部门列表 @author 卓大', '/department/listAll', 'net.lab1024.sa.admin.module.system.department.controller.DepartmentController.listAll', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:25:48', '2022-10-21 10:25:48'), - (169, 1, 1, '管理员', '系统-员工管理', '查询所有员工 @author 卓大', '/employee/queryAll', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.queryAllEmployee', '[null]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:25:51', '2022-10-21 10:25:51'), - (170, 1, 1, '管理员', '系统-部门管理', '查询部门树形列表 @author 卓大', '/department/treeList', 'net.lab1024.sa.admin.module.system.department.controller.DepartmentController.departmentTree', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:25:51', '2022-10-21 10:25:51'), - (171, 1, 1, '管理员', '系统-部门管理', '更新部门 @author 卓大', '/department/update', 'net.lab1024.sa.admin.module.system.department.controller.DepartmentController.updateDepartment', '[{"departmentId":4,"managerId":64,"name":"销售部","parentId":1,"sort":9}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:25:57', '2022-10-21 10:25:57'), - (172, 1, 1, '管理员', '系统-部门管理', '查询部门列表 @author 卓大', '/department/listAll', 'net.lab1024.sa.admin.module.system.department.controller.DepartmentController.listAll', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:25:57', '2022-10-21 10:25:57'), - (173, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"departmentId":4,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:25:57', '2022-10-21 10:25:57'), - (174, 1, 1, '管理员', '系统-员工管理', '查询所有员工 @author 卓大', '/employee/queryAll', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.queryAllEmployee', '[null]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:25:59', '2022-10-21 10:25:59'), - (175, 1, 1, '管理员', '系统-部门管理', '查询部门树形列表 @author 卓大', '/department/treeList', 'net.lab1024.sa.admin.module.system.department.controller.DepartmentController.departmentTree', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:25:59', '2022-10-21 10:25:59'), - (176, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"departmentId":3,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:26:08', '2022-10-21 10:26:08'), - (177, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"departmentId":2,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:26:09', '2022-10-21 10:26:09'), - (178, 1, 1, '管理员', '系统-角色', '获取所有角色 @author 卓大', '/role/getAll', 'net.lab1024.sa.admin.module.system.role.controller.RoleController.getAllRole', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:26:12', '2022-10-21 10:26:12'), - (179, 1, 1, '管理员', '系统-角色-菜单', '获取角色关联菜单权限 @author 卓大', '/role/menu/getRoleSelectedMenu/1', 'net.lab1024.sa.admin.module.system.role.controller.RoleMenuController.getRoleSelectedMenu', '[1]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:26:13', '2022-10-21 10:26:13'), - (180, 1, 1, '管理员', '系统-角色-菜单', '获取角色关联菜单权限 @author 卓大', '/role/menu/getRoleSelectedMenu/34', 'net.lab1024.sa.admin.module.system.role.controller.RoleMenuController.getRoleSelectedMenu', '[34]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:26:14', '2022-10-21 10:26:14'), - (181, 1, 1, '管理员', '系统-角色-菜单', '获取角色关联菜单权限 @author 卓大', '/role/menu/getRoleSelectedMenu/35', 'net.lab1024.sa.admin.module.system.role.controller.RoleMenuController.getRoleSelectedMenu', '[35]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:26:14', '2022-10-21 10:26:14'), - (182, 1, 1, '管理员', '系统-角色-菜单', '获取角色关联菜单权限 @author 卓大', '/role/menu/getRoleSelectedMenu/36', 'net.lab1024.sa.admin.module.system.role.controller.RoleMenuController.getRoleSelectedMenu', '[36]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:26:15', '2022-10-21 10:26:15'), - (183, 1, 1, '管理员', '系统-角色-菜单', '获取角色关联菜单权限 @author 卓大', '/role/menu/getRoleSelectedMenu/37', 'net.lab1024.sa.admin.module.system.role.controller.RoleMenuController.getRoleSelectedMenu', '[37]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:26:17', '2022-10-21 10:26:17'), - (184, 1, 1, '管理员', '系统-部门管理', '查询部门列表 @author 卓大', '/department/listAll', 'net.lab1024.sa.admin.module.system.department.controller.DepartmentController.listAll', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:26:17', '2022-10-21 10:26:17'), - (185, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:26:18', '2022-10-21 10:26:18'), - (186, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"departmentId":1,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:26:18', '2022-10-21 10:26:18'), - (187, 1, 1, '管理员', '系统-角色', '获取所有角色 @author 卓大', '/role/getAll', 'net.lab1024.sa.admin.module.system.role.controller.RoleController.getAllRole', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:26:30', '2022-10-21 10:26:30'), - (188, 1, 1, '管理员', '系统-角色-菜单', '获取角色关联菜单权限 @author 卓大', '/role/menu/getRoleSelectedMenu/1', 'net.lab1024.sa.admin.module.system.role.controller.RoleMenuController.getRoleSelectedMenu', '[1]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:26:30', '2022-10-21 10:26:30'), - (189, 1, 1, '管理员', '系统-系统-数据范围', '获取当前系统所配置的所有数据范围 @author 罗伊', '/dataScope/list', 'net.lab1024.sa.admin.module.system.datascope.DataScopeController.dataScopeList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:26:32', '2022-10-21 10:26:32'), - (190, 1, 1, '管理员', '系统-角色-数据范围', '获取某角色所设置的数据范围 @author 卓大', '/role/dataScope/getRoleDataScopeList/1', 'net.lab1024.sa.admin.module.system.role.controller.RoleDataScopeController.dataScopeListByRole', '[1]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:26:32', '2022-10-21 10:26:32'), - (191, 1, 1, '管理员', '系统-角色-员工', '查询某个角色下的员工列表 @author 卓大', '/role/employee/queryEmployee', 'net.lab1024.sa.admin.module.system.role.controller.RoleEmployeeController.queryEmployee', '[{"pageNum":1,"pageSize":15,"roleId":"1"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:26:32', '2022-10-21 10:26:32'), - (192, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:26:36', '2022-10-21 10:26:36'), - (193, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:26:40', '2022-10-21 10:26:40'), - (194, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:26:40', '2022-10-21 10:26:40'), - (195, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:26:41', '2022-10-21 10:26:41'), - (196, 1, 1, '管理员', '系统-菜单', '更新菜单 @author 卓大', '/menu/update', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.updateMenu', '[{"apiPermsList":[],"cacheFlag":false,"disabledFlag":false,"frameFlag":false,"menuId":95,"menuName":"重置密码","menuType":3,"parentId":46,"permsType":1,"updateUserId":1,"visibleFlag":true,"webPerms":"system:employee:password:reset"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:26:43', '2022-10-21 10:26:43'), - (197, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:26:43', '2022-10-21 10:26:43'), - (198, 1, 1, '管理员', 'OA办公-企业', '分页查询企业模块 @author 开云', '/oa/enterprise/page/query', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.queryByPage', '[{"deletedFlag":false,"keywords":"","pageNum":1,"pageSize":15,"searchCount":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:34:28', '2022-10-21 10:34:28'), - (199, 1, 1, '管理员', 'OA办公-企业', '查询企业详情 @author 开云', '/oa/enterprise/get/15', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.getDetail', '[15]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:34:30', '2022-10-21 10:34:30'), - (200, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:34:30', '2022-10-21 10:34:30'), - (201, 1, 1, '管理员', 'OA办公-企业', '查询企业详情 @author 开云', '/oa/enterprise/get/15', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.getDetail', '[15]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:34:34', '2022-10-21 10:34:34'), - (202, 1, 1, '管理员', 'OA办公-企业', '编辑企业 @author 开云', '/oa/enterprise/update', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.updateEnterprise', '[{"address":"wqdqwe1啊啊","city":110100,"cityName":"北京市","contact":"12312324234","contactPhone":"13123123123","createUserId":1,"createUserName":"管理员","disabledFlag":true,"district":110117,"districtName":"平谷区","email":"qweqwe@11.asd1","enterpriseId":15,"enterpriseLogo":"","enterpriseName":"1024创新实验室","province":110000,"provinceName":"北京市","type":1,"unifiedSocialCreditCode":"而非教科文irl啊啊啊1112"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:34:38', '2022-10-21 10:34:38'), - (203, 1, 1, '管理员', 'OA办公-企业', '查询企业详情 @author 开云', '/oa/enterprise/get/15', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.getDetail', '[15]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:34:39', '2022-10-21 10:34:39'), - (204, 1, 1, '管理员', 'OA办公-企业', '查询企业详情 @author 开云', '/oa/enterprise/get/15', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.getDetail', '[15]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:37:40', '2022-10-21 10:37:40'), - (205, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:37:40', '2022-10-21 10:37:40'), - (206, 1, 1, '管理员', 'OA办公-企业', '查询企业详情 @author 开云', '/oa/enterprise/get/15', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.getDetail', '[15]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:37:50', '2022-10-21 10:37:50'), - (207, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:37:50', '2022-10-21 10:37:50'), - (208, 1, 1, '管理员', 'OA办公-企业', '查询企业详情 @author 开云', '/oa/enterprise/get/15', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.getDetail', '[15]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:37:51', '2022-10-21 10:37:51'), - (209, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:37:51', '2022-10-21 10:37:51'), - (210, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:38:03', '2022-10-21 10:38:03'), - (211, 1, 1, '管理员', 'OA办公-企业', '分页查询企业模块 @author 开云', '/oa/enterprise/page/query', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.queryByPage', '[{"deletedFlag":false,"keywords":"","pageNum":1,"pageSize":15,"searchCount":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:52:15', '2022-10-21 10:52:15'), - (212, 1, 1, '管理员', 'OA办公-企业', '查询企业详情 @author 开云', '/oa/enterprise/get/15', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.getDetail', '[15]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:52:17', '2022-10-21 10:52:17'), - (213, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 10:52:17', '2022-10-21 10:52:17'), - (214, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 11:25:01', '2022-10-21 11:25:01'), - (215, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 11:25:23', '2022-10-21 11:25:23'), - (216, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 11:25:23', '2022-10-21 11:25:23'), - (217, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 11:25:23', '2022-10-21 11:25:23'), - (218, 1, 1, '管理员', '系统-菜单', '添加菜单 @author 卓大', '/menu/add', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.addMenu', '[{"cacheFlag":false,"component":"/support/file/file-list","createUserId":1,"disabledFlag":false,"frameFlag":false,"icon":"FolderOpenOutlined","menuName":"文件管理","menuType":2,"parentId":50,"path":"/support/file/file-list","permsType":1,"sort":20,"visibleFlag":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 11:26:11', '2022-10-21 11:26:11'), - (219, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 11:26:11', '2022-10-21 11:26:11'), - (220, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 11:26:18', '2022-10-21 11:26:18'), - (221, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 11:26:18', '2022-10-21 11:26:18'), - (222, 1, 1, '管理员', '系统-菜单', '更新菜单 @author 卓大', '/menu/update', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.updateMenu', '[{"apiPermsList":[],"cacheFlag":false,"component":"/support/file/file-list,vue","disabledFlag":false,"frameFlag":false,"icon":"FolderOpenOutlined","menuId":193,"menuName":"文件管理","menuType":2,"parentId":50,"path":"/support/file/file-list","permsType":1,"sort":20,"updateUserId":1,"visibleFlag":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 11:26:22', '2022-10-21 11:26:22'), - (223, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 11:26:22', '2022-10-21 11:26:22'), - (224, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 11:26:31', '2022-10-21 11:26:31'), - (225, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 11:26:57', '2022-10-21 11:26:57'), - (226, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 11:26:57', '2022-10-21 11:26:57'), - (227, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 11:26:57', '2022-10-21 11:26:57'), - (228, 1, 1, '管理员', '系统-菜单', '更新菜单 @author 卓大', '/menu/update', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.updateMenu', '[{"apiPermsList":[],"cacheFlag":false,"component":"/support/file/file-list.vue","disabledFlag":false,"frameFlag":false,"icon":"FolderOpenOutlined","menuId":193,"menuName":"文件管理","menuType":2,"parentId":50,"path":"/support/file/file-list","permsType":1,"sort":20,"updateUserId":1,"visibleFlag":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 11:27:02', '2022-10-21 11:27:02'), - (229, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 11:27:02', '2022-10-21 11:27:02'), - (230, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 11:27:08', '2022-10-21 11:27:08'), - (231, 1, 1, '管理员', 'OA办公-企业', '分页查询企业模块 @author 开云', '/oa/enterprise/page/query', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.queryByPage', '[{"deletedFlag":false,"keywords":"","pageNum":1,"pageSize":15,"searchCount":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 11:32:18', '2022-10-21 11:32:18'), - (232, 1, 1, '管理员', 'OA办公-企业', '查询企业详情 @author 开云', '/oa/enterprise/get/15', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.getDetail', '[15]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 11:32:19', '2022-10-21 11:32:19'), - (233, 1, 1, '管理员', 'OA办公-企业', '编辑企业 @author 开云', '/oa/enterprise/update', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.updateEnterprise', '[{"address":"wqdqwe1啊啊","city":110100,"cityName":"北京市","contact":"12312324234","contactPhone":"13123123123","createUserId":1,"createUserName":"管理员","disabledFlag":true,"district":110117,"districtName":"平谷区","email":"qweqwe@11.asd1","enterpriseId":15,"enterpriseLogo":"public/common/035f9b3366fc4a108495a18b5af4236c2022-10-21 11:33:46.jpg","enterpriseName":"1024创新实验室","province":110000,"provinceName":"北京市","type":1,"unifiedSocialCreditCode":"而非教科文irl啊啊啊1112"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 11:33:55', '2022-10-21 11:33:55'), - (234, 1, 1, '管理员', 'OA办公-企业', '查询企业详情 @author 开云', '/oa/enterprise/get/5', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.getDetail', '[5]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 11:34:02', '2022-10-21 11:34:02'), - (235, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 11:34:02', '2022-10-21 11:34:02'), - (236, 1, 1, '管理员', 'OA办公-企业', '分页查询企业模块 @author 开云', '/oa/enterprise/page/query', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.queryByPage', '[{"deletedFlag":false,"keywords":"","pageNum":1,"pageSize":15,"searchCount":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 11:34:05', '2022-10-21 11:34:05'), - (237, 1, 1, '管理员', 'OA办公-企业', '查询企业详情 @author 开云', '/oa/enterprise/get/6', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.getDetail', '[6]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 11:34:07', '2022-10-21 11:34:07'), - (238, 1, 1, '管理员', 'OA办公-企业', '编辑企业 @author 开云', '/oa/enterprise/update', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.updateEnterprise', '[{"address":"fgdsda","city":130300,"cityName":"秦皇岛市","contact":"110","contactPhone":"13123123123","createUserId":1,"createUserName":"管理员","disabledFlag":false,"district":130306,"districtName":"抚宁区","email":"110@qq.cc","enterpriseId":6,"enterpriseLogo":"public/common/882d5810d01549209e709d6658a8e4772022-10-21 11:35:08.jpeg","enterpriseName":"1024物流公司","province":130000,"provinceName":"河北省","type":1,"unifiedSocialCreditCode":"110"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 11:35:11', '2022-10-21 11:35:11'), - (239, 1, 1, '管理员', 'OA办公-企业', '查询企业详情 @author 开云', '/oa/enterprise/get/15', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.getDetail', '[15]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 11:35:15', '2022-10-21 11:35:15'), - (240, 1, 1, '管理员', 'OA办公-企业', '编辑企业 @author 开云', '/oa/enterprise/update', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.updateEnterprise', '[{"address":"wqdqwe1啊啊","businessLicense":"public/common/a4ce8db50ff74e05ad2e492dd94335cb2022-10-21 11:36:34.png","city":110100,"cityName":"北京市","contact":"12312324234","contactPhone":"13123123123","createUserId":1,"createUserName":"管理员","disabledFlag":true,"district":110117,"districtName":"平谷区","email":"qweqwe@11.asd1","enterpriseId":15,"enterpriseLogo":"public/common/035f9b3366fc4a108495a18b5af4236c2022-10-21 11:33:46.jpg","enterpriseName":"1024创新实验室","province":110000,"provinceName":"北京市","type":1,"unifiedSocialCreditCode":"而非教科文irl啊啊啊1112"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 11:36:39', '2022-10-21 11:36:39'), - (241, 1, 1, '管理员', 'OA办公-企业', '查询企业详情 @author 开云', '/oa/enterprise/get/5', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.getDetail', '[5]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 11:51:34', '2022-10-21 11:51:34'), - (242, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 11:51:34', '2022-10-21 11:51:34'), - (243, 1, 1, '管理员', 'OA办公-企业', '分页查询企业模块 @author 开云', '/oa/enterprise/page/query', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.queryByPage', '[{"deletedFlag":false,"keywords":"","pageNum":1,"pageSize":15,"searchCount":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 11:51:34', '2022-10-21 11:51:34'), - (244, 1, 1, '管理员', 'OA办公-企业', '查询企业详情 @author 开云', '/oa/enterprise/get/15', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.getDetail', '[15]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 11:51:36', '2022-10-21 11:51:36'), - (245, 1, 1, '管理员', 'OA办公-企业', '编辑企业 @author 开云', '/oa/enterprise/update', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.updateEnterprise', '[{"address":"wqdqwe1啊啊","businessLicense":"public/common/b298956317bd419d899a4d3f1d28dbb6-20221021115215-png","city":110100,"cityName":"北京市","contact":"12312324234","contactPhone":"13123123123","createUserId":1,"createUserName":"管理员","disabledFlag":true,"district":110117,"districtName":"平谷区","email":"qweqwe@11.asd1","enterpriseId":15,"enterpriseLogo":"public/common/7e3cb80f02c84ca3aba359f166c8c69e-20221021115207-jpg","enterpriseName":"1024创新实验室","province":110000,"provinceName":"北京市","type":1,"unifiedSocialCreditCode":"而非教科文irl啊啊啊1112"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 11:52:17', '2022-10-21 11:52:17'), - (246, 1, 1, '管理员', 'OA办公-企业', '分页查询企业模块 @author 开云', '/oa/enterprise/page/query', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.queryByPage', '[{"deletedFlag":false,"keywords":"","pageNum":1,"pageSize":15,"searchCount":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 12:17:37', '2022-10-21 12:17:37'), - (247, 1, 1, '管理员', 'OA办公-企业', '查询企业详情 @author 开云', '/oa/enterprise/get/6', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.getDetail', '[6]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 12:17:41', '2022-10-21 12:17:41'), - (248, 1, 1, '管理员', 'OA办公-企业', '编辑企业 @author 开云', '/oa/enterprise/update', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.updateEnterprise', '[{"address":"fgdsda","businessLicense":"public/common/888ea37c5a6c4c088658264464ba3cae_20221021121755_png","city":130300,"cityName":"秦皇岛市","contact":"110","contactPhone":"13123123123","createUserId":1,"createUserName":"管理员","disabledFlag":false,"district":130306,"districtName":"抚宁区","email":"110@qq.cc","enterpriseId":6,"enterpriseLogo":"public/common/b817542a80a84435ae86991d68546eb4_20221021121746_jpeg","enterpriseName":"1024物流公司","province":130000,"provinceName":"河北省","type":1,"unifiedSocialCreditCode":"110"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 12:17:57', '2022-10-21 12:17:57'), - (249, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 12:51:20', '2022-10-21 12:51:20'), - (250, 1, 1, '管理员', '系统-部门管理', '查询部门列表 @author 卓大', '/department/listAll', 'net.lab1024.sa.admin.module.system.department.controller.DepartmentController.listAll', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 12:51:23', '2022-10-21 12:51:23'), - (251, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 12:51:24', '2022-10-21 12:51:24'), - (252, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"departmentId":1,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 12:51:24', '2022-10-21 12:51:24'), - (253, 1, 1, '管理员', '系统-角色', '获取所有角色 @author 卓大', '/role/getAll', 'net.lab1024.sa.admin.module.system.role.controller.RoleController.getAllRole', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 12:51:27', '2022-10-21 12:51:27'), - (254, 1, 1, '管理员', '系统-角色-菜单', '获取角色关联菜单权限 @author 卓大', '/role/menu/getRoleSelectedMenu/1', 'net.lab1024.sa.admin.module.system.role.controller.RoleMenuController.getRoleSelectedMenu', '[1]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 12:51:28', '2022-10-21 12:51:28'), - (255, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 12:51:33', '2022-10-21 12:51:33'), - (256, 1, 1, '管理员', 'OA办公-企业', '分页查询企业模块 @author 开云', '/oa/enterprise/page/query', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.queryByPage', '[{"deletedFlag":false,"keywords":"","pageNum":1,"pageSize":15,"searchCount":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 12:51:34', '2022-10-21 12:51:34'), - (257, 1, 1, '管理员', 'OA办公-企业', '分页查询企业模块 @author 开云', '/oa/enterprise/page/query', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.queryByPage', '[{"deletedFlag":false,"keywords":"","pageNum":1,"pageSize":15,"searchCount":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 12:51:43', '2022-10-21 12:51:43'), - (258, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 12:52:27', '2022-10-21 12:52:27'), - (259, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 12:52:31', '2022-10-21 12:52:31'), - (260, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 12:52:31', '2022-10-21 12:52:31'), - (261, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 12:52:31', '2022-10-21 12:52:31'), - (262, 1, 1, '管理员', '系统-菜单', '更新菜单 @author 卓大', '/menu/update', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.updateMenu', '[{"apiPermsList":[],"cacheFlag":false,"disabledFlag":false,"frameFlag":false,"icon":"FileWordOutlined","menuId":146,"menuName":"系统文档","menuType":1,"parentId":0,"sort":500,"updateUserId":1,"visibleFlag":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 12:52:42', '2022-10-21 12:52:42'), - (263, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 12:52:43', '2022-10-21 12:52:43'), - (264, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 12:52:47', '2022-10-21 12:52:47'), - (265, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 12:53:02', '2022-10-21 12:53:02'), - (266, 1, 1, '管理员', '系统-部门管理', '查询部门列表 @author 卓大', '/department/listAll', 'net.lab1024.sa.admin.module.system.department.controller.DepartmentController.listAll', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 12:57:39', '2022-10-21 12:57:39'), - (267, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 12:57:39', '2022-10-21 12:57:39'), - (268, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"departmentId":1,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 12:57:39', '2022-10-21 12:57:39'), - (269, 1, 1, '管理员', '系统-角色', '获取所有角色 @author 卓大', '/role/getAll', 'net.lab1024.sa.admin.module.system.role.controller.RoleController.getAllRole', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 12:57:39', '2022-10-21 12:57:39'), - (270, 1, 1, '管理员', '系统-角色-菜单', '获取角色关联菜单权限 @author 卓大', '/role/menu/getRoleSelectedMenu/1', 'net.lab1024.sa.admin.module.system.role.controller.RoleMenuController.getRoleSelectedMenu', '[1]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 12:57:40', '2022-10-21 12:57:40'), - (271, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 12:57:42', '2022-10-21 12:57:42'), - (272, 1, 1, '管理员', 'OA办公-企业', '分页查询企业模块 @author 开云', '/oa/enterprise/page/query', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.queryByPage', '[{"deletedFlag":false,"keywords":"","pageNum":1,"pageSize":15,"searchCount":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 12:58:33', '2022-10-21 12:58:33'), - (273, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 12:58:41', '2022-10-21 12:58:41'), - (274, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":2,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 12:58:41', '2022-10-21 12:58:41'), - (275, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 12:58:42', '2022-10-21 12:58:42'), - (276, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 0, 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.builder.BuilderException: Error evaluating expression \'query.goodsType != null\'. Cause: org.apache.ibatis.ognl.NoSuchPropertyException: net.lab1024.sa.admin.module.business.goods.domain.form.GoodsQueryForm.goodsType\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:440)\r\n at com.sun.proxy.$Proxy116.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:223)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:173)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:78)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.query(Unknown Source)\r\n at net.lab1024.sa.admin.module.business.goods.service.GoodsService.query(GoodsService.java:142)\r\n at net.lab1024.sa.admin.module.business.goods.service.GoodsService$$FastClassBySpringCGLIB$$1.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:779)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at com.alibaba.druid.support.spring.stat.DruidStatInterceptor.invoke(DruidStatInterceptor.java:73)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:692)\r\n at net.lab1024.sa.admin.module.business.goods.service.GoodsService$$EnhancerBySpringCGLIB$$1.query()\r\n at net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query(GoodsController.java:40)\r\n at net.lab1024.sa.admin.module.business.goods.controller.GoodsController$$FastClassBySpringCGLIB$$1.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:779)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.aspectj.AspectJAfterThrowingAdvice.invoke(AspectJAfterThrowingAdvice.java:64)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.adapter.AfterReturningAdviceInterceptor.invoke(AfterReturningAdviceInterceptor.java:57)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:692)\r\n at net.lab1024.sa.admin.module.business.goods.controller.GoodsController$$EnhancerBySpringCGLIB$$1.query()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:197)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:141)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:894)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1063)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:681)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:228)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:113)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:84)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:121)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:105)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at net.lab1024.sa.common.common.security.SecurityTokenFilter.doFilterInternal(SecurityTokenFilter.java:62)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)\r\n at org.apache.catalina.core.StandardContextValve.__invoke(StandardContextValve.java:97)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:41002)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)\r\n at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1723)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: org.apache.ibatis.builder.BuilderException: Error evaluating expression \'query.goodsType != null\'. Cause: org.apache.ibatis.ognl.NoSuchPropertyException: net.lab1024.sa.admin.module.business.goods.domain.form.GoodsQueryForm.goodsType\r\n at org.apache.ibatis.scripting.xmltags.OgnlCache.getValue(OgnlCache.java:48)\r\n at org.apache.ibatis.scripting.xmltags.ExpressionEvaluator.evaluateBoolean(ExpressionEvaluator.java:32)\r\n at org.apache.ibatis.scripting.xmltags.IfSqlNode.apply(IfSqlNode.java:34)\r\n at org.apache.ibatis.scripting.xmltags.MixedSqlNode.lambda$apply$0(MixedSqlNode.java:32)\r\n at java.util.ArrayList.forEach(ArrayList.java:1257)\r\n at org.apache.ibatis.scripting.xmltags.MixedSqlNode.apply(MixedSqlNode.java:32)\r\n at org.apache.ibatis.scripting.xmltags.TrimSqlNode.apply(TrimSqlNode.java:55)\r\n at org.apache.ibatis.scripting.xmltags.MixedSqlNode.lambda$apply$0(MixedSqlNode.java:32)\r\n at java.util.ArrayList.forEach(ArrayList.java:1257)\r\n at org.apache.ibatis.scripting.xmltags.MixedSqlNode.apply(MixedSqlNode.java:32)\r\n at org.apache.ibatis.scripting.xmltags.DynamicSqlSource.getBoundSql(DynamicSqlSource.java:39)\r\n at org.apache.ibatis.mapping.MappedStatement.getBoundSql(MappedStatement.java:305)\r\n at net.lab1024.sa.admin.module.system.datascope.MyBatisPlugin.intercept(MyBatisPlugin.java:46)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy156.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)\r\n at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426)\r\n ... 134 more\r\nCaused by: org.apache.ibatis.ognl.NoSuchPropertyException: net.lab1024.sa.admin.module.business.goods.domain.form.GoodsQueryForm.goodsType\r\n at org.apache.ibatis.ognl.ObjectPropertyAccessor.getProperty(ObjectPropertyAccessor.java:164)\r\n at org.apache.ibatis.ognl.OgnlRuntime.getProperty(OgnlRuntime.java:3338)\r\n at org.apache.ibatis.ognl.ASTProperty.getValueBody(ASTProperty.java:121)\r\n at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)\r\n at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)\r\n at org.apache.ibatis.ognl.ASTChain.getValueBody(ASTChain.java:141)\r\n at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)\r\n at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)\r\n at org.apache.ibatis.ognl.ASTNotEq.getValueBody(ASTNotEq.java:50)\r\n at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)\r\n at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)\r\n at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:560)\r\n at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:524)\r\n at org.apache.ibatis.scripting.xmltags.OgnlCache.getValue(OgnlCache.java:46)\r\n ... 154 more\r\n', '2022-10-21 12:58:42', '2022-10-21 12:58:42'), - (277, 1, 1, '管理员', 'OA办公-企业', '查询企业详情 @author 开云', '/oa/enterprise/get/5', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.getDetail', '[5]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 13:02:51', '2022-10-21 13:02:51'), - (278, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 13:02:51', '2022-10-21 13:02:51'), - (279, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 13:02:52', '2022-10-21 13:02:52'), - (280, 1, 1, '管理员', '系统-角色', '获取所有角色 @author 卓大', '/role/getAll', 'net.lab1024.sa.admin.module.system.role.controller.RoleController.getAllRole', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 13:02:53', '2022-10-21 13:02:53'), - (281, 1, 1, '管理员', '系统-角色-菜单', '获取角色关联菜单权限 @author 卓大', '/role/menu/getRoleSelectedMenu/1', 'net.lab1024.sa.admin.module.system.role.controller.RoleMenuController.getRoleSelectedMenu', '[1]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 13:02:53', '2022-10-21 13:02:53'), - (282, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 13:15:04', '2022-10-21 13:15:04'), - (283, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 14:50:30', '2022-10-21 14:50:30'), - (284, 1, 1, '管理员', '系统-部门管理', '查询部门列表 @author 卓大', '/department/listAll', 'net.lab1024.sa.admin.module.system.department.controller.DepartmentController.listAll', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 15:08:50', '2022-10-21 15:08:50'), - (285, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 15:08:50', '2022-10-21 15:08:50'), - (286, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"departmentId":1,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 15:08:50', '2022-10-21 15:08:50'), - (287, 1, 1, '管理员', '系统-部门管理', '查询部门列表 @author 卓大', '/department/listAll', 'net.lab1024.sa.admin.module.system.department.controller.DepartmentController.listAll', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 15:09:18', '2022-10-21 15:09:18'), - (288, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 15:09:18', '2022-10-21 15:09:18'), - (289, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"departmentId":1,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 15:09:18', '2022-10-21 15:09:18'), - (290, 1, 1, '管理员', 'OA办公-企业', '分页查询企业模块 @author 开云', '/oa/enterprise/page/query', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.queryByPage', '[{"deletedFlag":false,"keywords":"","pageNum":1,"pageSize":15,"searchCount":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 15:09:30', '2022-10-21 15:09:30'), - (291, 1, 1, '管理员', 'OA办公-企业', '分页查询企业模块 @author 开云', '/oa/enterprise/page/query', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.queryByPage', '[{"deletedFlag":false,"keywords":"","pageNum":1,"pageSize":15,"searchCount":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 15:12:10', '2022-10-21 15:12:10'), - (292, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 15:12:22', '2022-10-21 15:12:22'), - (293, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 15:13:40', '2022-10-21 15:13:40'), - (294, 1, 1, '管理员', '系统-部门管理', '查询部门列表 @author 卓大', '/department/listAll', 'net.lab1024.sa.admin.module.system.department.controller.DepartmentController.listAll', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 15:13:44', '2022-10-21 15:13:44'), - (295, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 15:13:45', '2022-10-21 15:13:45'), - (296, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"departmentId":1,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 15:13:45', '2022-10-21 15:13:45'), - (297, 1, 1, '管理员', 'OA办公-企业', '分页查询企业模块 @author 开云', '/oa/enterprise/page/query', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.queryByPage', '[{"deletedFlag":false,"keywords":"","pageNum":1,"pageSize":15,"searchCount":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 15:13:48', '2022-10-21 15:13:48'), - (298, 1, 1, '管理员', 'OA办公-企业', '分页查询企业模块 @author 开云', '/oa/enterprise/page/query', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.queryByPage', '[{"deletedFlag":false,"keywords":"","pageNum":1,"pageSize":15,"searchCount":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 15:14:26', '2022-10-21 15:14:26'), - (299, 1, 1, '管理员', 'OA办公-企业', '分页查询企业模块 @author 开云', '/oa/enterprise/page/query', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.queryByPage', '[{"deletedFlag":false,"keywords":"","pageNum":1,"pageSize":15,"searchCount":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 15:14:31', '2022-10-21 15:14:31'), - (300, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 15:15:44', '2022-10-21 15:15:44'), - (301, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 16:00:01', '2022-10-21 16:00:01'), - (302, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 16:01:45', '2022-10-21 16:01:45'), - (303, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 0, 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.builder.BuilderException: Error evaluating expression \'query.goodsType != null\'. Cause: org.apache.ibatis.ognl.NoSuchPropertyException: net.lab1024.sa.admin.module.business.goods.domain.form.GoodsQueryForm.goodsType\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:440)\r\n at com.sun.proxy.$Proxy116.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:223)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:173)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:78)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.query(Unknown Source)\r\n at net.lab1024.sa.admin.module.business.goods.service.GoodsService.query(GoodsService.java:142)\r\n at net.lab1024.sa.admin.module.business.goods.service.GoodsService$$FastClassBySpringCGLIB$$1.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:779)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at com.alibaba.druid.support.spring.stat.DruidStatInterceptor.invoke(DruidStatInterceptor.java:73)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:692)\r\n at net.lab1024.sa.admin.module.business.goods.service.GoodsService$$EnhancerBySpringCGLIB$$1.query()\r\n at net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query(GoodsController.java:42)\r\n at net.lab1024.sa.admin.module.business.goods.controller.GoodsController$$FastClassBySpringCGLIB$$1.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:779)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.aspectj.AspectJAfterThrowingAdvice.invoke(AspectJAfterThrowingAdvice.java:64)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.adapter.AfterReturningAdviceInterceptor.invoke(AfterReturningAdviceInterceptor.java:57)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:692)\r\n at net.lab1024.sa.admin.module.business.goods.controller.GoodsController$$EnhancerBySpringCGLIB$$1.query()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:197)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:141)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:894)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1063)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:681)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:228)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:113)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:84)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:121)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:105)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at net.lab1024.sa.common.common.security.SecurityTokenFilter.doFilterInternal(SecurityTokenFilter.java:62)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)\r\n at org.apache.catalina.core.StandardContextValve.__invoke(StandardContextValve.java:97)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:41002)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)\r\n at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1723)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: org.apache.ibatis.builder.BuilderException: Error evaluating expression \'query.goodsType != null\'. Cause: org.apache.ibatis.ognl.NoSuchPropertyException: net.lab1024.sa.admin.module.business.goods.domain.form.GoodsQueryForm.goodsType\r\n at org.apache.ibatis.scripting.xmltags.OgnlCache.getValue(OgnlCache.java:48)\r\n at org.apache.ibatis.scripting.xmltags.ExpressionEvaluator.evaluateBoolean(ExpressionEvaluator.java:32)\r\n at org.apache.ibatis.scripting.xmltags.IfSqlNode.apply(IfSqlNode.java:34)\r\n at org.apache.ibatis.scripting.xmltags.MixedSqlNode.lambda$apply$0(MixedSqlNode.java:32)\r\n at java.util.ArrayList.forEach(ArrayList.java:1257)\r\n at org.apache.ibatis.scripting.xmltags.MixedSqlNode.apply(MixedSqlNode.java:32)\r\n at org.apache.ibatis.scripting.xmltags.TrimSqlNode.apply(TrimSqlNode.java:55)\r\n at org.apache.ibatis.scripting.xmltags.MixedSqlNode.lambda$apply$0(MixedSqlNode.java:32)\r\n at java.util.ArrayList.forEach(ArrayList.java:1257)\r\n at org.apache.ibatis.scripting.xmltags.MixedSqlNode.apply(MixedSqlNode.java:32)\r\n at org.apache.ibatis.scripting.xmltags.DynamicSqlSource.getBoundSql(DynamicSqlSource.java:39)\r\n at org.apache.ibatis.mapping.MappedStatement.getBoundSql(MappedStatement.java:305)\r\n at net.lab1024.sa.admin.module.system.datascope.MyBatisPlugin.intercept(MyBatisPlugin.java:46)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy156.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)\r\n at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426)\r\n ... 134 more\r\nCaused by: org.apache.ibatis.ognl.NoSuchPropertyException: net.lab1024.sa.admin.module.business.goods.domain.form.GoodsQueryForm.goodsType\r\n at org.apache.ibatis.ognl.ObjectPropertyAccessor.getProperty(ObjectPropertyAccessor.java:164)\r\n at org.apache.ibatis.ognl.OgnlRuntime.getProperty(OgnlRuntime.java:3338)\r\n at org.apache.ibatis.ognl.ASTProperty.getValueBody(ASTProperty.java:121)\r\n at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)\r\n at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)\r\n at org.apache.ibatis.ognl.ASTChain.getValueBody(ASTChain.java:141)\r\n at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)\r\n at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)\r\n at org.apache.ibatis.ognl.ASTNotEq.getValueBody(ASTNotEq.java:50)\r\n at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)\r\n at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)\r\n at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:560)\r\n at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:524)\r\n at org.apache.ibatis.scripting.xmltags.OgnlCache.getValue(OgnlCache.java:46)\r\n ... 154 more\r\n', '2022-10-21 16:01:45', '2022-10-21 16:01:45'), - (304, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 16:08:56', '2022-10-21 16:08:56'), - (305, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 0, 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.builder.BuilderException: Error evaluating expression \'query.goodsType != null\'. Cause: org.apache.ibatis.ognl.NoSuchPropertyException: net.lab1024.sa.admin.module.business.goods.domain.form.GoodsQueryForm.goodsType\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:440)\r\n at com.sun.proxy.$Proxy116.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:223)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:173)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:78)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy166.query(Unknown Source)\r\n at net.lab1024.sa.admin.module.business.goods.service.GoodsService.query(GoodsService.java:142)\r\n at net.lab1024.sa.admin.module.business.goods.service.GoodsService$$FastClassBySpringCGLIB$$1.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:779)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at com.alibaba.druid.support.spring.stat.DruidStatInterceptor.invoke(DruidStatInterceptor.java:73)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:692)\r\n at net.lab1024.sa.admin.module.business.goods.service.GoodsService$$EnhancerBySpringCGLIB$$1.query()\r\n at net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query(GoodsController.java:42)\r\n at net.lab1024.sa.admin.module.business.goods.controller.GoodsController$$FastClassBySpringCGLIB$$1.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:779)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.aspectj.AspectJAfterThrowingAdvice.invoke(AspectJAfterThrowingAdvice.java:64)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.adapter.AfterReturningAdviceInterceptor.invoke(AfterReturningAdviceInterceptor.java:57)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:692)\r\n at net.lab1024.sa.admin.module.business.goods.controller.GoodsController$$EnhancerBySpringCGLIB$$1.query()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:197)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:141)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:894)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1063)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:681)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:228)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:113)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:84)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:121)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:105)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at net.lab1024.sa.common.common.security.SecurityTokenFilter.doFilterInternal(SecurityTokenFilter.java:62)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)\r\n at org.apache.catalina.core.StandardContextValve.__invoke(StandardContextValve.java:97)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:41002)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)\r\n at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1723)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: org.apache.ibatis.builder.BuilderException: Error evaluating expression \'query.goodsType != null\'. Cause: org.apache.ibatis.ognl.NoSuchPropertyException: net.lab1024.sa.admin.module.business.goods.domain.form.GoodsQueryForm.goodsType\r\n at org.apache.ibatis.scripting.xmltags.OgnlCache.getValue(OgnlCache.java:48)\r\n at org.apache.ibatis.scripting.xmltags.ExpressionEvaluator.evaluateBoolean(ExpressionEvaluator.java:32)\r\n at org.apache.ibatis.scripting.xmltags.IfSqlNode.apply(IfSqlNode.java:34)\r\n at org.apache.ibatis.scripting.xmltags.MixedSqlNode.lambda$apply$0(MixedSqlNode.java:32)\r\n at java.util.ArrayList.forEach(ArrayList.java:1257)\r\n at org.apache.ibatis.scripting.xmltags.MixedSqlNode.apply(MixedSqlNode.java:32)\r\n at org.apache.ibatis.scripting.xmltags.TrimSqlNode.apply(TrimSqlNode.java:55)\r\n at org.apache.ibatis.scripting.xmltags.MixedSqlNode.lambda$apply$0(MixedSqlNode.java:32)\r\n at java.util.ArrayList.forEach(ArrayList.java:1257)\r\n at org.apache.ibatis.scripting.xmltags.MixedSqlNode.apply(MixedSqlNode.java:32)\r\n at org.apache.ibatis.scripting.xmltags.DynamicSqlSource.getBoundSql(DynamicSqlSource.java:39)\r\n at org.apache.ibatis.mapping.MappedStatement.getBoundSql(MappedStatement.java:305)\r\n at net.lab1024.sa.admin.module.system.datascope.MyBatisPlugin.intercept(MyBatisPlugin.java:46)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy156.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)\r\n at sun.reflect.GeneratedMethodAccessor234.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426)\r\n ... 134 more\r\nCaused by: org.apache.ibatis.ognl.NoSuchPropertyException: net.lab1024.sa.admin.module.business.goods.domain.form.GoodsQueryForm.goodsType\r\n at org.apache.ibatis.ognl.ObjectPropertyAccessor.getProperty(ObjectPropertyAccessor.java:164)\r\n at org.apache.ibatis.ognl.OgnlRuntime.getProperty(OgnlRuntime.java:3338)\r\n at org.apache.ibatis.ognl.ASTProperty.getValueBody(ASTProperty.java:121)\r\n at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)\r\n at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)\r\n at org.apache.ibatis.ognl.ASTChain.getValueBody(ASTChain.java:141)\r\n at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)\r\n at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)\r\n at org.apache.ibatis.ognl.ASTNotEq.getValueBody(ASTNotEq.java:50)\r\n at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)\r\n at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)\r\n at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:560)\r\n at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:524)\r\n at org.apache.ibatis.scripting.xmltags.OgnlCache.getValue(OgnlCache.java:46)\r\n ... 154 more\r\n', '2022-10-21 16:08:56', '2022-10-21 16:08:56'), - (306, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 0, 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.builder.BuilderException: Error evaluating expression \'query.goodsType != null\'. Cause: org.apache.ibatis.ognl.NoSuchPropertyException: net.lab1024.sa.admin.module.business.goods.domain.form.GoodsQueryForm.goodsType\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:440)\r\n at com.sun.proxy.$Proxy114.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:223)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:173)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:78)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy164.query(Unknown Source)\r\n at net.lab1024.sa.admin.module.business.goods.service.GoodsService.query(GoodsService.java:136)\r\n at net.lab1024.sa.admin.module.business.goods.service.GoodsService$$FastClassBySpringCGLIB$$1.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:779)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at com.alibaba.druid.support.spring.stat.DruidStatInterceptor.invoke(DruidStatInterceptor.java:73)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:692)\r\n at net.lab1024.sa.admin.module.business.goods.service.GoodsService$$EnhancerBySpringCGLIB$$1.query()\r\n at net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query(GoodsController.java:42)\r\n at net.lab1024.sa.admin.module.business.goods.controller.GoodsController$$FastClassBySpringCGLIB$$1.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:779)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.aspectj.AspectJAfterThrowingAdvice.invoke(AspectJAfterThrowingAdvice.java:64)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.adapter.AfterReturningAdviceInterceptor.invoke(AfterReturningAdviceInterceptor.java:57)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:692)\r\n at net.lab1024.sa.admin.module.business.goods.controller.GoodsController$$EnhancerBySpringCGLIB$$1.query()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:197)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:141)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:894)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1063)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:681)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:228)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:113)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:84)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:121)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:105)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at net.lab1024.sa.common.common.security.SecurityTokenFilter.doFilterInternal(SecurityTokenFilter.java:62)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)\r\n at org.apache.catalina.core.StandardContextValve.__invoke(StandardContextValve.java:97)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:41002)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)\r\n at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1723)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: org.apache.ibatis.builder.BuilderException: Error evaluating expression \'query.goodsType != null\'. Cause: org.apache.ibatis.ognl.NoSuchPropertyException: net.lab1024.sa.admin.module.business.goods.domain.form.GoodsQueryForm.goodsType\r\n at org.apache.ibatis.scripting.xmltags.OgnlCache.getValue(OgnlCache.java:48)\r\n at org.apache.ibatis.scripting.xmltags.ExpressionEvaluator.evaluateBoolean(ExpressionEvaluator.java:32)\r\n at org.apache.ibatis.scripting.xmltags.IfSqlNode.apply(IfSqlNode.java:34)\r\n at org.apache.ibatis.scripting.xmltags.MixedSqlNode.lambda$apply$0(MixedSqlNode.java:32)\r\n at java.util.ArrayList.forEach(ArrayList.java:1257)\r\n at org.apache.ibatis.scripting.xmltags.MixedSqlNode.apply(MixedSqlNode.java:32)\r\n at org.apache.ibatis.scripting.xmltags.TrimSqlNode.apply(TrimSqlNode.java:55)\r\n at org.apache.ibatis.scripting.xmltags.MixedSqlNode.lambda$apply$0(MixedSqlNode.java:32)\r\n at java.util.ArrayList.forEach(ArrayList.java:1257)\r\n at org.apache.ibatis.scripting.xmltags.MixedSqlNode.apply(MixedSqlNode.java:32)\r\n at org.apache.ibatis.scripting.xmltags.DynamicSqlSource.getBoundSql(DynamicSqlSource.java:39)\r\n at org.apache.ibatis.mapping.MappedStatement.getBoundSql(MappedStatement.java:305)\r\n at net.lab1024.sa.admin.module.system.datascope.MyBatisPlugin.intercept(MyBatisPlugin.java:46)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy154.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)\r\n at sun.reflect.GeneratedMethodAccessor163.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426)\r\n ... 137 more\r\nCaused by: org.apache.ibatis.ognl.NoSuchPropertyException: net.lab1024.sa.admin.module.business.goods.domain.form.GoodsQueryForm.goodsType\r\n at org.apache.ibatis.ognl.ObjectPropertyAccessor.getProperty(ObjectPropertyAccessor.java:164)\r\n at org.apache.ibatis.ognl.OgnlRuntime.getProperty(OgnlRuntime.java:3338)\r\n at org.apache.ibatis.ognl.ASTProperty.getValueBody(ASTProperty.java:121)\r\n at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)\r\n at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)\r\n at org.apache.ibatis.ognl.ASTChain.getValueBody(ASTChain.java:141)\r\n at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)\r\n at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)\r\n at org.apache.ibatis.ognl.ASTNotEq.getValueBody(ASTNotEq.java:50)\r\n at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)\r\n at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)\r\n at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:560)\r\n at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:524)\r\n at org.apache.ibatis.scripting.xmltags.OgnlCache.getValue(OgnlCache.java:46)\r\n ... 157 more\r\n', '2022-10-21 18:54:29', '2022-10-21 18:54:29'), - (307, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 18:54:29', '2022-10-21 18:54:29'), - (308, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 18:54:33', '2022-10-21 18:54:33'), - (309, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 18:57:05', '2022-10-21 18:57:05'), - (310, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 0, 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.builder.BuilderException: Error evaluating expression \'query.goodsType != null\'. Cause: org.apache.ibatis.ognl.NoSuchPropertyException: net.lab1024.sa.admin.module.business.goods.domain.form.GoodsQueryForm.goodsType\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:440)\r\n at com.sun.proxy.$Proxy114.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:223)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:173)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:78)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy164.query(Unknown Source)\r\n at net.lab1024.sa.admin.module.business.goods.service.GoodsService.query(GoodsService.java:136)\r\n at net.lab1024.sa.admin.module.business.goods.service.GoodsService$$FastClassBySpringCGLIB$$1.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:779)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at com.alibaba.druid.support.spring.stat.DruidStatInterceptor.invoke(DruidStatInterceptor.java:73)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:692)\r\n at net.lab1024.sa.admin.module.business.goods.service.GoodsService$$EnhancerBySpringCGLIB$$1.query()\r\n at net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query(GoodsController.java:42)\r\n at net.lab1024.sa.admin.module.business.goods.controller.GoodsController$$FastClassBySpringCGLIB$$1.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:779)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.aspectj.AspectJAfterThrowingAdvice.invoke(AspectJAfterThrowingAdvice.java:64)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.adapter.AfterReturningAdviceInterceptor.invoke(AfterReturningAdviceInterceptor.java:57)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:692)\r\n at net.lab1024.sa.admin.module.business.goods.controller.GoodsController$$EnhancerBySpringCGLIB$$1.query()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:197)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:141)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:894)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1063)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:681)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:228)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:113)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:84)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:121)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:105)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at net.lab1024.sa.common.common.security.SecurityTokenFilter.doFilterInternal(SecurityTokenFilter.java:62)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)\r\n at org.apache.catalina.core.StandardContextValve.__invoke(StandardContextValve.java:97)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:41002)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)\r\n at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1723)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: org.apache.ibatis.builder.BuilderException: Error evaluating expression \'query.goodsType != null\'. Cause: org.apache.ibatis.ognl.NoSuchPropertyException: net.lab1024.sa.admin.module.business.goods.domain.form.GoodsQueryForm.goodsType\r\n at org.apache.ibatis.scripting.xmltags.OgnlCache.getValue(OgnlCache.java:48)\r\n at org.apache.ibatis.scripting.xmltags.ExpressionEvaluator.evaluateBoolean(ExpressionEvaluator.java:32)\r\n at org.apache.ibatis.scripting.xmltags.IfSqlNode.apply(IfSqlNode.java:34)\r\n at org.apache.ibatis.scripting.xmltags.MixedSqlNode.lambda$apply$0(MixedSqlNode.java:32)\r\n at java.util.ArrayList.forEach(ArrayList.java:1257)\r\n at org.apache.ibatis.scripting.xmltags.MixedSqlNode.apply(MixedSqlNode.java:32)\r\n at org.apache.ibatis.scripting.xmltags.TrimSqlNode.apply(TrimSqlNode.java:55)\r\n at org.apache.ibatis.scripting.xmltags.MixedSqlNode.lambda$apply$0(MixedSqlNode.java:32)\r\n at java.util.ArrayList.forEach(ArrayList.java:1257)\r\n at org.apache.ibatis.scripting.xmltags.MixedSqlNode.apply(MixedSqlNode.java:32)\r\n at org.apache.ibatis.scripting.xmltags.DynamicSqlSource.getBoundSql(DynamicSqlSource.java:39)\r\n at org.apache.ibatis.mapping.MappedStatement.getBoundSql(MappedStatement.java:305)\r\n at net.lab1024.sa.admin.module.system.datascope.MyBatisPlugin.intercept(MyBatisPlugin.java:46)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy154.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)\r\n at sun.reflect.GeneratedMethodAccessor163.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426)\r\n ... 137 more\r\nCaused by: org.apache.ibatis.ognl.NoSuchPropertyException: net.lab1024.sa.admin.module.business.goods.domain.form.GoodsQueryForm.goodsType\r\n at org.apache.ibatis.ognl.ObjectPropertyAccessor.getProperty(ObjectPropertyAccessor.java:164)\r\n at org.apache.ibatis.ognl.OgnlRuntime.getProperty(OgnlRuntime.java:3338)\r\n at org.apache.ibatis.ognl.ASTProperty.getValueBody(ASTProperty.java:121)\r\n at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)\r\n at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)\r\n at org.apache.ibatis.ognl.ASTChain.getValueBody(ASTChain.java:141)\r\n at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)\r\n at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)\r\n at org.apache.ibatis.ognl.ASTNotEq.getValueBody(ASTNotEq.java:50)\r\n at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)\r\n at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)\r\n at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:560)\r\n at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:524)\r\n at org.apache.ibatis.scripting.xmltags.OgnlCache.getValue(OgnlCache.java:46)\r\n ... 157 more\r\n', '2022-10-21 18:57:06', '2022-10-21 18:57:06'), - (311, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 18:57:07', '2022-10-21 18:57:07'), - (312, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 18:59:19', '2022-10-21 18:59:19'), - (313, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 0, 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.builder.BuilderException: Error evaluating expression \'query.goodsType != null\'. Cause: org.apache.ibatis.ognl.NoSuchPropertyException: net.lab1024.sa.admin.module.business.goods.domain.form.GoodsQueryForm.goodsType\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:440)\r\n at com.sun.proxy.$Proxy114.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:223)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:173)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:78)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy164.query(Unknown Source)\r\n at net.lab1024.sa.admin.module.business.goods.service.GoodsService.query(GoodsService.java:136)\r\n at net.lab1024.sa.admin.module.business.goods.service.GoodsService$$FastClassBySpringCGLIB$$1.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:779)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at com.alibaba.druid.support.spring.stat.DruidStatInterceptor.invoke(DruidStatInterceptor.java:73)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:692)\r\n at net.lab1024.sa.admin.module.business.goods.service.GoodsService$$EnhancerBySpringCGLIB$$1.query()\r\n at net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query(GoodsController.java:42)\r\n at net.lab1024.sa.admin.module.business.goods.controller.GoodsController$$FastClassBySpringCGLIB$$1.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:779)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.aspectj.AspectJAfterThrowingAdvice.invoke(AspectJAfterThrowingAdvice.java:64)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.adapter.AfterReturningAdviceInterceptor.invoke(AfterReturningAdviceInterceptor.java:57)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:692)\r\n at net.lab1024.sa.admin.module.business.goods.controller.GoodsController$$EnhancerBySpringCGLIB$$1.query()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:197)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:141)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:894)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1063)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:681)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:228)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:113)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:84)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:121)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:105)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at net.lab1024.sa.common.common.security.SecurityTokenFilter.doFilterInternal(SecurityTokenFilter.java:62)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)\r\n at org.apache.catalina.core.StandardContextValve.__invoke(StandardContextValve.java:97)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:41002)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)\r\n at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1723)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: org.apache.ibatis.builder.BuilderException: Error evaluating expression \'query.goodsType != null\'. Cause: org.apache.ibatis.ognl.NoSuchPropertyException: net.lab1024.sa.admin.module.business.goods.domain.form.GoodsQueryForm.goodsType\r\n at org.apache.ibatis.scripting.xmltags.OgnlCache.getValue(OgnlCache.java:48)\r\n at org.apache.ibatis.scripting.xmltags.ExpressionEvaluator.evaluateBoolean(ExpressionEvaluator.java:32)\r\n at org.apache.ibatis.scripting.xmltags.IfSqlNode.apply(IfSqlNode.java:34)\r\n at org.apache.ibatis.scripting.xmltags.MixedSqlNode.lambda$apply$0(MixedSqlNode.java:32)\r\n at java.util.ArrayList.forEach(ArrayList.java:1257)\r\n at org.apache.ibatis.scripting.xmltags.MixedSqlNode.apply(MixedSqlNode.java:32)\r\n at org.apache.ibatis.scripting.xmltags.TrimSqlNode.apply(TrimSqlNode.java:55)\r\n at org.apache.ibatis.scripting.xmltags.MixedSqlNode.lambda$apply$0(MixedSqlNode.java:32)\r\n at java.util.ArrayList.forEach(ArrayList.java:1257)\r\n at org.apache.ibatis.scripting.xmltags.MixedSqlNode.apply(MixedSqlNode.java:32)\r\n at org.apache.ibatis.scripting.xmltags.DynamicSqlSource.getBoundSql(DynamicSqlSource.java:39)\r\n at org.apache.ibatis.mapping.MappedStatement.getBoundSql(MappedStatement.java:305)\r\n at net.lab1024.sa.admin.module.system.datascope.MyBatisPlugin.intercept(MyBatisPlugin.java:46)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy154.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)\r\n at sun.reflect.GeneratedMethodAccessor163.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426)\r\n ... 137 more\r\nCaused by: org.apache.ibatis.ognl.NoSuchPropertyException: net.lab1024.sa.admin.module.business.goods.domain.form.GoodsQueryForm.goodsType\r\n at org.apache.ibatis.ognl.ObjectPropertyAccessor.getProperty(ObjectPropertyAccessor.java:164)\r\n at org.apache.ibatis.ognl.OgnlRuntime.getProperty(OgnlRuntime.java:3338)\r\n at org.apache.ibatis.ognl.ASTProperty.getValueBody(ASTProperty.java:121)\r\n at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)\r\n at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)\r\n at org.apache.ibatis.ognl.ASTChain.getValueBody(ASTChain.java:141)\r\n at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)\r\n at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)\r\n at org.apache.ibatis.ognl.ASTNotEq.getValueBody(ASTNotEq.java:50)\r\n at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)\r\n at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)\r\n at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:560)\r\n at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:524)\r\n at org.apache.ibatis.scripting.xmltags.OgnlCache.getValue(OgnlCache.java:46)\r\n ... 157 more\r\n', '2022-10-21 18:59:19', '2022-10-21 18:59:19'), - (314, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 18:59:21', '2022-10-21 18:59:21'), - (315, 1, 1, '管理员', 'ERP进销存-商品管理', '添加商品 @author 胡克', '/goods/add', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.add', '[{"categoryId":352,"goodsName":"iphone14","goodsStatus":1,"place":"LUO_YANG","price":150,"remark":"","shelvesFlag":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:00:12', '2022-10-21 19:00:12'), - (316, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 0, 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.builder.BuilderException: Error evaluating expression \'query.goodsType != null\'. Cause: org.apache.ibatis.ognl.NoSuchPropertyException: net.lab1024.sa.admin.module.business.goods.domain.form.GoodsQueryForm.goodsType\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:440)\r\n at com.sun.proxy.$Proxy114.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:223)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:173)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:78)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy164.query(Unknown Source)\r\n at net.lab1024.sa.admin.module.business.goods.service.GoodsService.query(GoodsService.java:136)\r\n at net.lab1024.sa.admin.module.business.goods.service.GoodsService$$FastClassBySpringCGLIB$$1.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:779)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at com.alibaba.druid.support.spring.stat.DruidStatInterceptor.invoke(DruidStatInterceptor.java:73)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:692)\r\n at net.lab1024.sa.admin.module.business.goods.service.GoodsService$$EnhancerBySpringCGLIB$$1.query()\r\n at net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query(GoodsController.java:42)\r\n at net.lab1024.sa.admin.module.business.goods.controller.GoodsController$$FastClassBySpringCGLIB$$1.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:779)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.aspectj.AspectJAfterThrowingAdvice.invoke(AspectJAfterThrowingAdvice.java:64)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.adapter.AfterReturningAdviceInterceptor.invoke(AfterReturningAdviceInterceptor.java:57)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:692)\r\n at net.lab1024.sa.admin.module.business.goods.controller.GoodsController$$EnhancerBySpringCGLIB$$1.query()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:197)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:141)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:894)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1063)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:681)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:228)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:113)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:84)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:121)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:105)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at net.lab1024.sa.common.common.security.SecurityTokenFilter.doFilterInternal(SecurityTokenFilter.java:62)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)\r\n at org.apache.catalina.core.StandardContextValve.__invoke(StandardContextValve.java:97)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:41002)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)\r\n at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1723)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: org.apache.ibatis.builder.BuilderException: Error evaluating expression \'query.goodsType != null\'. Cause: org.apache.ibatis.ognl.NoSuchPropertyException: net.lab1024.sa.admin.module.business.goods.domain.form.GoodsQueryForm.goodsType\r\n at org.apache.ibatis.scripting.xmltags.OgnlCache.getValue(OgnlCache.java:48)\r\n at org.apache.ibatis.scripting.xmltags.ExpressionEvaluator.evaluateBoolean(ExpressionEvaluator.java:32)\r\n at org.apache.ibatis.scripting.xmltags.IfSqlNode.apply(IfSqlNode.java:34)\r\n at org.apache.ibatis.scripting.xmltags.MixedSqlNode.lambda$apply$0(MixedSqlNode.java:32)\r\n at java.util.ArrayList.forEach(ArrayList.java:1257)\r\n at org.apache.ibatis.scripting.xmltags.MixedSqlNode.apply(MixedSqlNode.java:32)\r\n at org.apache.ibatis.scripting.xmltags.TrimSqlNode.apply(TrimSqlNode.java:55)\r\n at org.apache.ibatis.scripting.xmltags.MixedSqlNode.lambda$apply$0(MixedSqlNode.java:32)\r\n at java.util.ArrayList.forEach(ArrayList.java:1257)\r\n at org.apache.ibatis.scripting.xmltags.MixedSqlNode.apply(MixedSqlNode.java:32)\r\n at org.apache.ibatis.scripting.xmltags.DynamicSqlSource.getBoundSql(DynamicSqlSource.java:39)\r\n at org.apache.ibatis.mapping.MappedStatement.getBoundSql(MappedStatement.java:305)\r\n at net.lab1024.sa.admin.module.system.datascope.MyBatisPlugin.intercept(MyBatisPlugin.java:46)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy154.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)\r\n at sun.reflect.GeneratedMethodAccessor163.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426)\r\n ... 137 more\r\nCaused by: org.apache.ibatis.ognl.NoSuchPropertyException: net.lab1024.sa.admin.module.business.goods.domain.form.GoodsQueryForm.goodsType\r\n at org.apache.ibatis.ognl.ObjectPropertyAccessor.getProperty(ObjectPropertyAccessor.java:164)\r\n at org.apache.ibatis.ognl.OgnlRuntime.getProperty(OgnlRuntime.java:3338)\r\n at org.apache.ibatis.ognl.ASTProperty.getValueBody(ASTProperty.java:121)\r\n at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)\r\n at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)\r\n at org.apache.ibatis.ognl.ASTChain.getValueBody(ASTChain.java:141)\r\n at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)\r\n at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)\r\n at org.apache.ibatis.ognl.ASTNotEq.getValueBody(ASTNotEq.java:50)\r\n at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)\r\n at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)\r\n at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:560)\r\n at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:524)\r\n at org.apache.ibatis.scripting.xmltags.OgnlCache.getValue(OgnlCache.java:46)\r\n ... 157 more\r\n', '2022-10-21 19:00:12', '2022-10-21 19:00:12'), - (317, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:03:39', '2022-10-21 19:03:39'), - (318, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 0, 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.builder.BuilderException: Error evaluating expression \'query.goodsType != null\'. Cause: org.apache.ibatis.ognl.NoSuchPropertyException: net.lab1024.sa.admin.module.business.goods.domain.form.GoodsQueryForm.goodsType\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:440)\r\n at com.sun.proxy.$Proxy114.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:223)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:173)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:78)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy164.query(Unknown Source)\r\n at net.lab1024.sa.admin.module.business.goods.service.GoodsService.query(GoodsService.java:136)\r\n at net.lab1024.sa.admin.module.business.goods.service.GoodsService$$FastClassBySpringCGLIB$$1.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:779)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at com.alibaba.druid.support.spring.stat.DruidStatInterceptor.invoke(DruidStatInterceptor.java:73)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:692)\r\n at net.lab1024.sa.admin.module.business.goods.service.GoodsService$$EnhancerBySpringCGLIB$$1.query()\r\n at net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query(GoodsController.java:42)\r\n at net.lab1024.sa.admin.module.business.goods.controller.GoodsController$$FastClassBySpringCGLIB$$1.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:779)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.aspectj.AspectJAfterThrowingAdvice.invoke(AspectJAfterThrowingAdvice.java:64)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.adapter.AfterReturningAdviceInterceptor.invoke(AfterReturningAdviceInterceptor.java:57)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:692)\r\n at net.lab1024.sa.admin.module.business.goods.controller.GoodsController$$EnhancerBySpringCGLIB$$1.query()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:197)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:141)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:894)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1063)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:681)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:228)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:113)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:84)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:121)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:105)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at net.lab1024.sa.common.common.security.SecurityTokenFilter.doFilterInternal(SecurityTokenFilter.java:62)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)\r\n at org.apache.catalina.core.StandardContextValve.__invoke(StandardContextValve.java:97)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:41002)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)\r\n at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1723)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: org.apache.ibatis.builder.BuilderException: Error evaluating expression \'query.goodsType != null\'. Cause: org.apache.ibatis.ognl.NoSuchPropertyException: net.lab1024.sa.admin.module.business.goods.domain.form.GoodsQueryForm.goodsType\r\n at org.apache.ibatis.scripting.xmltags.OgnlCache.getValue(OgnlCache.java:48)\r\n at org.apache.ibatis.scripting.xmltags.ExpressionEvaluator.evaluateBoolean(ExpressionEvaluator.java:32)\r\n at org.apache.ibatis.scripting.xmltags.IfSqlNode.apply(IfSqlNode.java:34)\r\n at org.apache.ibatis.scripting.xmltags.MixedSqlNode.lambda$apply$0(MixedSqlNode.java:32)\r\n at java.util.ArrayList.forEach(ArrayList.java:1257)\r\n at org.apache.ibatis.scripting.xmltags.MixedSqlNode.apply(MixedSqlNode.java:32)\r\n at org.apache.ibatis.scripting.xmltags.TrimSqlNode.apply(TrimSqlNode.java:55)\r\n at org.apache.ibatis.scripting.xmltags.MixedSqlNode.lambda$apply$0(MixedSqlNode.java:32)\r\n at java.util.ArrayList.forEach(ArrayList.java:1257)\r\n at org.apache.ibatis.scripting.xmltags.MixedSqlNode.apply(MixedSqlNode.java:32)\r\n at org.apache.ibatis.scripting.xmltags.DynamicSqlSource.getBoundSql(DynamicSqlSource.java:39)\r\n at org.apache.ibatis.mapping.MappedStatement.getBoundSql(MappedStatement.java:305)\r\n at net.lab1024.sa.admin.module.system.datascope.MyBatisPlugin.intercept(MyBatisPlugin.java:46)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy154.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)\r\n at sun.reflect.GeneratedMethodAccessor163.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426)\r\n ... 137 more\r\nCaused by: org.apache.ibatis.ognl.NoSuchPropertyException: net.lab1024.sa.admin.module.business.goods.domain.form.GoodsQueryForm.goodsType\r\n at org.apache.ibatis.ognl.ObjectPropertyAccessor.getProperty(ObjectPropertyAccessor.java:164)\r\n at org.apache.ibatis.ognl.OgnlRuntime.getProperty(OgnlRuntime.java:3338)\r\n at org.apache.ibatis.ognl.ASTProperty.getValueBody(ASTProperty.java:121)\r\n at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)\r\n at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)\r\n at org.apache.ibatis.ognl.ASTChain.getValueBody(ASTChain.java:141)\r\n at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)\r\n at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)\r\n at org.apache.ibatis.ognl.ASTNotEq.getValueBody(ASTNotEq.java:50)\r\n at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)\r\n at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)\r\n at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:560)\r\n at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:524)\r\n at org.apache.ibatis.scripting.xmltags.OgnlCache.getValue(OgnlCache.java:46)\r\n ... 157 more\r\n', '2022-10-21 19:03:39', '2022-10-21 19:03:39'), - (319, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:04:41', '2022-10-21 19:04:41'), - (320, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:05:22', '2022-10-21 19:05:22'), - (321, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:06:36', '2022-10-21 19:06:36'), - (322, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:06:52', '2022-10-21 19:06:52'), - (323, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:06:52', '2022-10-21 19:06:52'), - (324, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:06:55', '2022-10-21 19:06:55'), - (325, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:06:55', '2022-10-21 19:06:55'), - (326, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:06:58', '2022-10-21 19:06:58'), - (327, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:06:58', '2022-10-21 19:06:58'), - (328, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"categoryId":352,"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:07:02', '2022-10-21 19:07:02'), - (329, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:07:03', '2022-10-21 19:07:03'), - (330, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:08:18', '2022-10-21 19:08:18'), - (331, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:08:19', '2022-10-21 19:08:19'), - (332, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:08:20', '2022-10-21 19:08:20'), - (333, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:08:20', '2022-10-21 19:08:20'), - (334, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:08:25', '2022-10-21 19:08:25'), - (335, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:08:25', '2022-10-21 19:08:25'), - (336, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:09:02', '2022-10-21 19:09:02'), - (337, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:09:02', '2022-10-21 19:09:02'), - (338, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:09:21', '2022-10-21 19:09:21'), - (339, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:09:21', '2022-10-21 19:09:21'), - (340, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:11:25', '2022-10-21 19:11:25'), - (341, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:11:26', '2022-10-21 19:11:26'), - (342, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:11:34', '2022-10-21 19:11:34'), - (343, 1, 1, '管理员', 'ERP进销存-商品管理', '更新商品 @author 胡克', '/goods/update', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.update', '[{"categoryId":352,"goodsId":8,"goodsName":"iphone14","goodsStatus":1,"place":"LUO_YANG","price":150,"remark":"","shelvesFlag":false}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:11:38', '2022-10-21 19:11:38'), - (344, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:11:38', '2022-10-21 19:11:38'), - (345, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:12:31', '2022-10-21 19:12:31'), - (346, 1, 1, '管理员', 'ERP进销存-商品管理', '更新商品 @author 胡克', '/goods/update', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.update', '[{"categoryId":352,"goodsId":8,"goodsName":"iphone14","goodsStatus":1,"place":"ZHENG_ZHOU","price":150,"remark":"","shelvesFlag":false}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:12:50', '2022-10-21 19:12:50'), - (347, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:12:50', '2022-10-21 19:12:50'), - (348, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:13:10', '2022-10-21 19:13:10'), - (349, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:17:57', '2022-10-21 19:17:57'), - (350, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:17:57', '2022-10-21 19:17:57'), - (351, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:20:22', '2022-10-21 19:20:22'), - (352, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:20:22', '2022-10-21 19:20:22'), - (353, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:21:11', '2022-10-21 19:21:11'), - (354, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:21:11', '2022-10-21 19:21:11'), - (355, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"goodsStatus":2,"pageNum":1,"pageSize":10,"place":"LUO_YANG","searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:22:08', '2022-10-21 19:22:08'), - (356, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:22:10', '2022-10-21 19:22:10'), - (357, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"place":"ZHENG_ZHOU","searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:22:16', '2022-10-21 19:22:16'), - (358, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:22:18', '2022-10-21 19:22:18'), - (359, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:22:27', '2022-10-21 19:22:27'), - (360, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:22:28', '2022-10-21 19:22:28'), - (361, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:23:00', '2022-10-21 19:23:00'), - (362, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:23:00', '2022-10-21 19:23:00'), - (363, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:23:03', '2022-10-21 19:23:03'), - (364, 1, 1, '管理员', 'ERP进销存-商品管理', '更新商品 @author 胡克', '/goods/update', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.update', '[{"categoryId":354,"goodsId":4,"goodsName":"计算机组成原理2","goodsStatus":2,"place":"BEI_JING","price":12,"remark":"4234","shelvesFlag":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:23:09', '2022-10-21 19:23:09'), - (365, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:23:09', '2022-10-21 19:23:09'), - (366, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:24:27', '2022-10-21 19:24:27'), - (367, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:24:27', '2022-10-21 19:24:27'), - (368, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:30:55', '2022-10-21 19:30:55'), - (369, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:30:55', '2022-10-21 19:30:55'), - (370, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:30:55', '2022-10-21 19:30:55'), - (371, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:30:55', '2022-10-21 19:30:55'), - (372, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:31:10', '2022-10-21 19:31:10'), - (373, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:31:10', '2022-10-21 19:31:10'), - (374, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:31:21', '2022-10-21 19:31:21'), - (375, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:31:21', '2022-10-21 19:31:21'), - (376, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:31:33', '2022-10-21 19:31:33'), - (377, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:31:33', '2022-10-21 19:31:33'), - (378, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:31:48', '2022-10-21 19:31:48'), - (379, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:31:48', '2022-10-21 19:31:48'), - (380, 1, 1, '管理员', 'ERP进销存-商品管理', '删除 @author 卓大', '/goods/delete/2', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.delete', '[2]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:31:55', '2022-10-21 19:31:55'), - (381, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:31:59', '2022-10-21 19:31:59'), - (382, 1, 1, '管理员', 'ERP进销存-商品管理', '更新商品 @author 胡克', '/goods/update', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.update', '[{"categoryId":2,"goodsId":2,"goodsName":"颈椎病康复指南","goodsStatus":3,"place":"ZHENG_ZHOU","price":988,"shelvesFlag":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:32:07', '2022-10-21 19:32:07'), - (383, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:32:07', '2022-10-21 19:32:07'), - (384, 1, 1, '管理员', 'ERP进销存-商品管理', '删除 @author 卓大', '/goods/delete/2', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.delete', '[2]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 0, 'org.springframework.dao.DataIntegrityViolationException: net.lab1024.sa.common.module.support.datatracer.dao.DataTracerDao.insert (batch index #1) failed. Cause: java.sql.BatchUpdateException: Field \'type\' doesn\'t have a default value\n; Field \'type\' doesn\'t have a default value; nested exception is java.sql.BatchUpdateException: Field \'type\' doesn\'t have a default value\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:251)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:88)\r\n at com.baomidou.mybatisplus.extension.toolkit.SqlHelper.executeBatch(SqlHelper.java:189)\r\n at com.baomidou.mybatisplus.extension.toolkit.SqlHelper.executeBatch(SqlHelper.java:211)\r\n at com.baomidou.mybatisplus.extension.service.impl.ServiceImpl.executeBatch(ServiceImpl.java:239)\r\n at com.baomidou.mybatisplus.extension.service.impl.ServiceImpl.saveBatch(ServiceImpl.java:135)\r\n at com.baomidou.mybatisplus.extension.service.IService.saveBatch(IService.java:73)\r\n at com.baomidou.mybatisplus.extension.service.IService$$FastClassBySpringCGLIB$$1.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:692)\r\n at net.lab1024.sa.common.module.support.datatracer.manager.DataTracerManger$$EnhancerBySpringCGLIB$$1.saveBatch()\r\n at net.lab1024.sa.common.module.support.datatracer.service.DataTracerService.addTraceList(DataTracerService.java:207)\r\n at net.lab1024.sa.common.module.support.datatracer.service.DataTracerService.addTraceList(DataTracerService.java:186)\r\n at net.lab1024.sa.common.module.support.datatracer.service.DataTracerService.batchDelete(DataTracerService.java:135)\r\n at net.lab1024.sa.common.module.support.datatracer.service.DataTracerService$$FastClassBySpringCGLIB$$1.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:779)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at com.alibaba.druid.support.spring.stat.DruidStatInterceptor.invoke(DruidStatInterceptor.java:73)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:692)\r\n at net.lab1024.sa.common.module.support.datatracer.service.DataTracerService$$EnhancerBySpringCGLIB$$1.batchDelete()\r\n at net.lab1024.sa.admin.module.business.goods.service.GoodsService.delete(GoodsService.java:124)\r\n at net.lab1024.sa.admin.module.business.goods.service.GoodsService$$FastClassBySpringCGLIB$$1.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at com.alibaba.druid.support.spring.stat.DruidStatInterceptor.invoke(DruidStatInterceptor.java:73)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:692)\r\n at net.lab1024.sa.admin.module.business.goods.service.GoodsService$$EnhancerBySpringCGLIB$$1.delete()\r\n at net.lab1024.sa.admin.module.business.goods.controller.GoodsController.delete(GoodsController.java:64)\r\n at net.lab1024.sa.admin.module.business.goods.controller.GoodsController$$FastClassBySpringCGLIB$$1.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:779)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.aspectj.AspectJAfterThrowingAdvice.invoke(AspectJAfterThrowingAdvice.java:64)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.adapter.AfterReturningAdviceInterceptor.invoke(AfterReturningAdviceInterceptor.java:57)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:692)\r\n at net.lab1024.sa.admin.module.business.goods.controller.GoodsController$$EnhancerBySpringCGLIB$$1.delete()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:197)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:141)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:894)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1063)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:655)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:228)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:113)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:84)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:121)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:105)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at net.lab1024.sa.common.common.security.SecurityTokenFilter.doFilterInternal(SecurityTokenFilter.java:62)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)\r\n at org.apache.catalina.core.StandardContextValve.__invoke(StandardContextValve.java:97)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:41002)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)\r\n at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1723)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.BatchUpdateException: Field \'type\' doesn\'t have a default value\r\n at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)\r\n at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)\r\n at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)\r\n at java.lang.reflect.Constructor.newInstance(Constructor.java:423)\r\n at com.mysql.cj.util.Util.handleNewInstance(Util.java:192)\r\n at com.mysql.cj.util.Util.getInstance(Util.java:167)\r\n at com.mysql.cj.util.Util.getInstance(Util.java:174)\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createBatchUpdateException(SQLError.java:224)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeBatchedInserts(ClientPreparedStatement.java:755)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeBatchInternal(ClientPreparedStatement.java:426)\r\n at com.mysql.cj.jdbc.StatementImpl.executeBatch(StatementImpl.java:794)\r\n at com.p6spy.engine.wrapper.StatementWrapper.executeBatch(StatementWrapper.java:97)\r\n at com.alibaba.druid.filter.FilterChainImpl.statement_executeBatch(FilterChainImpl.java:3118)\r\n at com.alibaba.druid.filter.FilterAdapter.statement_executeBatch(FilterAdapter.java:2507)\r\n at com.alibaba.druid.filter.FilterEventAdapter.statement_executeBatch(FilterEventAdapter.java:279)\r\n at com.alibaba.druid.filter.FilterChainImpl.statement_executeBatch(FilterChainImpl.java:3116)\r\n at com.alibaba.druid.filter.FilterAdapter.statement_executeBatch(FilterAdapter.java:2507)\r\n at com.alibaba.druid.filter.FilterEventAdapter.statement_executeBatch(FilterEventAdapter.java:279)\r\n at com.alibaba.druid.filter.FilterChainImpl.statement_executeBatch(FilterChainImpl.java:3116)\r\n at com.alibaba.druid.proxy.jdbc.StatementProxyImpl.executeBatch(StatementProxyImpl.java:202)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.executeBatch(DruidPooledPreparedStatement.java:565)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:78)\r\n at com.sun.proxy.$Proxy158.executeBatch(Unknown Source)\r\n at com.baomidou.mybatisplus.core.executor.MybatisBatchExecutor.doFlushStatements(MybatisBatchExecutor.java:135)\r\n at org.apache.ibatis.executor.BaseExecutor.flushStatements(BaseExecutor.java:129)\r\n at org.apache.ibatis.executor.BaseExecutor.flushStatements(BaseExecutor.java:122)\r\n at com.baomidou.mybatisplus.core.executor.MybatisCachingExecutor.flushStatements(MybatisCachingExecutor.java:218)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n at com.sun.proxy.$Proxy154.flushStatements(Unknown Source)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n at com.sun.proxy.$Proxy154.flushStatements(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.flushStatements(DefaultSqlSession.java:252)\r\n at com.baomidou.mybatisplus.extension.toolkit.SqlHelper.lambda$executeBatch$0(SqlHelper.java:217)\r\n at com.baomidou.mybatisplus.extension.toolkit.SqlHelper.executeBatch(SqlHelper.java:179)\r\n ... 152 more\r\nCaused by: java.sql.SQLException: Field \'type\' doesn\'t have a default value\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:953)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1092)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeUpdateInternal(ClientPreparedStatement.java:1040)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeLargeUpdate(ClientPreparedStatement.java:1348)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeBatchedInserts(ClientPreparedStatement.java:716)\r\n ... 189 more\r\n', '2022-10-21 19:32:11', '2022-10-21 19:32:11'), - (385, 1, 1, '管理员', 'ERP进销存-商品管理', '删除 @author 卓大', '/goods/delete/2', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.delete', '[2]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:42:37', '2022-10-21 19:42:37'), - (386, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:42:37', '2022-10-21 19:42:37'), - (387, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:42:42', '2022-10-21 19:42:42'), - (388, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:43:23', '2022-10-21 19:43:23'), - (389, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:47:19', '2022-10-21 19:47:19'), - (390, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:47:19', '2022-10-21 19:47:19'), - (391, 1, 1, '管理员', 'ERP进销存-商品管理', '删除 @author 卓大', '/goods/delete/2', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.delete', '[2]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 0, 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'goodsId\' not found. Available parameters are [deletedFlag, goodsIdList, param1, param2]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:440)\r\n at com.sun.proxy.$Proxy114.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:287)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:65)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy164.batchUpdateDeleted(Unknown Source)\r\n at net.lab1024.sa.admin.module.business.goods.service.GoodsService.batchDelete(GoodsService.java:137)\r\n at net.lab1024.sa.admin.module.business.goods.service.GoodsService.delete(GoodsService.java:124)\r\n at net.lab1024.sa.admin.module.business.goods.service.GoodsService$$FastClassBySpringCGLIB$$1.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at com.alibaba.druid.support.spring.stat.DruidStatInterceptor.invoke(DruidStatInterceptor.java:73)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:692)\r\n at net.lab1024.sa.admin.module.business.goods.service.GoodsService$$EnhancerBySpringCGLIB$$1.delete()\r\n at net.lab1024.sa.admin.module.business.goods.controller.GoodsController.delete(GoodsController.java:64)\r\n at net.lab1024.sa.admin.module.business.goods.controller.GoodsController$$FastClassBySpringCGLIB$$1.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:779)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.aspectj.AspectJAfterThrowingAdvice.invoke(AspectJAfterThrowingAdvice.java:64)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.adapter.AfterReturningAdviceInterceptor.invoke(AfterReturningAdviceInterceptor.java:57)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:692)\r\n at net.lab1024.sa.admin.module.business.goods.controller.GoodsController$$EnhancerBySpringCGLIB$$1.delete()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:197)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:141)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:894)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1063)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:655)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:228)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:113)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:84)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:121)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:105)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at net.lab1024.sa.common.common.security.SecurityTokenFilter.doFilterInternal(SecurityTokenFilter.java:62)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)\r\n at org.apache.catalina.core.StandardContextValve.__invoke(StandardContextValve.java:97)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:41002)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)\r\n at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1723)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'goodsId\' not found. Available parameters are [deletedFlag, goodsIdList, param1, param2]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:212)\r\n at org.apache.ibatis.scripting.xmltags.DynamicContext$ContextAccessor.getProperty(DynamicContext.java:120)\r\n at org.apache.ibatis.ognl.OgnlRuntime.getProperty(OgnlRuntime.java:3338)\r\n at org.apache.ibatis.ognl.ASTProperty.getValueBody(ASTProperty.java:121)\r\n at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)\r\n at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)\r\n at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:560)\r\n at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:524)\r\n at org.apache.ibatis.scripting.xmltags.OgnlCache.getValue(OgnlCache.java:46)\r\n at org.apache.ibatis.scripting.xmltags.ExpressionEvaluator.evaluateIterable(ExpressionEvaluator.java:43)\r\n at org.apache.ibatis.scripting.xmltags.ForEachSqlNode.apply(ForEachSqlNode.java:54)\r\n at org.apache.ibatis.scripting.xmltags.MixedSqlNode.lambda$apply$0(MixedSqlNode.java:32)\r\n at java.util.ArrayList.forEach(ArrayList.java:1257)\r\n at org.apache.ibatis.scripting.xmltags.MixedSqlNode.apply(MixedSqlNode.java:32)\r\n at org.apache.ibatis.scripting.xmltags.DynamicSqlSource.getBoundSql(DynamicSqlSource.java:39)\r\n at org.apache.ibatis.mapping.MappedStatement.getBoundSql(MappedStatement.java:305)\r\n at org.apache.ibatis.executor.statement.BaseStatementHandler.(BaseStatementHandler.java:64)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.(PreparedStatementHandler.java:41)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.(RoutingStatementHandler.java:46)\r\n at org.apache.ibatis.session.Configuration.newStatementHandler(Configuration.java:658)\r\n at com.baomidou.mybatisplus.core.executor.MybatisSimpleExecutor.doUpdate(MybatisSimpleExecutor.java:54)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at com.baomidou.mybatisplus.core.executor.MybatisCachingExecutor.update(MybatisCachingExecutor.java:85)\r\n at sun.reflect.GeneratedMethodAccessor367.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:83)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy154.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor367.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n at com.sun.proxy.$Proxy154.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor432.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426)\r\n ... 136 more\r\n', '2022-10-21 19:47:28', '2022-10-21 19:47:28'), - (392, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:53:07', '2022-10-21 19:53:07'), - (393, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:53:07', '2022-10-21 19:53:07'), - (394, 1, 1, '管理员', 'ERP进销存-商品管理', '删除 @author 卓大', '/goods/delete/2', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.delete', '[2]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 0, 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'goodsId\' not found. Available parameters are [deletedFlag, goodsIdList, param1, param2]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:440)\r\n at com.sun.proxy.$Proxy114.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:287)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:65)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy164.batchUpdateDeleted(Unknown Source)\r\n at net.lab1024.sa.admin.module.business.goods.service.GoodsService.batchDelete(GoodsService.java:137)\r\n at net.lab1024.sa.admin.module.business.goods.service.GoodsService.delete(GoodsService.java:124)\r\n at net.lab1024.sa.admin.module.business.goods.service.GoodsService$$FastClassBySpringCGLIB$$1.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at com.alibaba.druid.support.spring.stat.DruidStatInterceptor.invoke(DruidStatInterceptor.java:73)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:692)\r\n at net.lab1024.sa.admin.module.business.goods.service.GoodsService$$EnhancerBySpringCGLIB$$1.delete()\r\n at net.lab1024.sa.admin.module.business.goods.controller.GoodsController.delete(GoodsController.java:64)\r\n at net.lab1024.sa.admin.module.business.goods.controller.GoodsController$$FastClassBySpringCGLIB$$1.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:779)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.aspectj.AspectJAfterThrowingAdvice.invoke(AspectJAfterThrowingAdvice.java:64)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.adapter.AfterReturningAdviceInterceptor.invoke(AfterReturningAdviceInterceptor.java:57)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:692)\r\n at net.lab1024.sa.admin.module.business.goods.controller.GoodsController$$EnhancerBySpringCGLIB$$1.delete()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:197)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:141)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:894)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1063)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:655)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:228)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:113)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:84)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:121)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:105)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at net.lab1024.sa.common.common.security.SecurityTokenFilter.doFilterInternal(SecurityTokenFilter.java:62)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)\r\n at org.apache.catalina.core.StandardContextValve.__invoke(StandardContextValve.java:97)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:41002)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)\r\n at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1723)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'goodsId\' not found. Available parameters are [deletedFlag, goodsIdList, param1, param2]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:212)\r\n at org.apache.ibatis.scripting.xmltags.DynamicContext$ContextAccessor.getProperty(DynamicContext.java:120)\r\n at org.apache.ibatis.ognl.OgnlRuntime.getProperty(OgnlRuntime.java:3338)\r\n at org.apache.ibatis.ognl.ASTProperty.getValueBody(ASTProperty.java:121)\r\n at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)\r\n at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)\r\n at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:560)\r\n at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:524)\r\n at org.apache.ibatis.scripting.xmltags.OgnlCache.getValue(OgnlCache.java:46)\r\n at org.apache.ibatis.scripting.xmltags.ExpressionEvaluator.evaluateIterable(ExpressionEvaluator.java:43)\r\n at org.apache.ibatis.scripting.xmltags.ForEachSqlNode.apply(ForEachSqlNode.java:54)\r\n at org.apache.ibatis.scripting.xmltags.MixedSqlNode.lambda$apply$0(MixedSqlNode.java:32)\r\n at java.util.ArrayList.forEach(ArrayList.java:1257)\r\n at org.apache.ibatis.scripting.xmltags.MixedSqlNode.apply(MixedSqlNode.java:32)\r\n at org.apache.ibatis.scripting.xmltags.DynamicSqlSource.getBoundSql(DynamicSqlSource.java:39)\r\n at org.apache.ibatis.mapping.MappedStatement.getBoundSql(MappedStatement.java:305)\r\n at org.apache.ibatis.executor.statement.BaseStatementHandler.(BaseStatementHandler.java:64)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.(PreparedStatementHandler.java:41)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.(RoutingStatementHandler.java:46)\r\n at org.apache.ibatis.session.Configuration.newStatementHandler(Configuration.java:658)\r\n at com.baomidou.mybatisplus.core.executor.MybatisSimpleExecutor.doUpdate(MybatisSimpleExecutor.java:54)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at com.baomidou.mybatisplus.core.executor.MybatisCachingExecutor.update(MybatisCachingExecutor.java:85)\r\n at sun.reflect.GeneratedMethodAccessor367.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:83)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy154.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor367.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n at com.sun.proxy.$Proxy154.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor432.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426)\r\n ... 136 more\r\n', '2022-10-21 19:53:12', '2022-10-21 19:53:12'), - (395, 1, 1, '管理员', 'ERP进销存-商品管理', '删除 @author 卓大', '/goods/delete/2', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.delete', '[2]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 0, 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'goodsId\' not found. Available parameters are [deletedFlag, goodsIdList, param1, param2]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:440)\r\n at com.sun.proxy.$Proxy114.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:287)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:65)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy164.batchUpdateDeleted(Unknown Source)\r\n at net.lab1024.sa.admin.module.business.goods.service.GoodsService.batchDelete(GoodsService.java:137)\r\n at net.lab1024.sa.admin.module.business.goods.service.GoodsService.delete(GoodsService.java:124)\r\n at net.lab1024.sa.admin.module.business.goods.service.GoodsService$$FastClassBySpringCGLIB$$1.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at com.alibaba.druid.support.spring.stat.DruidStatInterceptor.invoke(DruidStatInterceptor.java:73)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:692)\r\n at net.lab1024.sa.admin.module.business.goods.service.GoodsService$$EnhancerBySpringCGLIB$$1.delete()\r\n at net.lab1024.sa.admin.module.business.goods.controller.GoodsController.delete(GoodsController.java:64)\r\n at net.lab1024.sa.admin.module.business.goods.controller.GoodsController$$FastClassBySpringCGLIB$$1.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:779)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.aspectj.AspectJAfterThrowingAdvice.invoke(AspectJAfterThrowingAdvice.java:64)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.adapter.AfterReturningAdviceInterceptor.invoke(AfterReturningAdviceInterceptor.java:57)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:692)\r\n at net.lab1024.sa.admin.module.business.goods.controller.GoodsController$$EnhancerBySpringCGLIB$$1.delete()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:197)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:141)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:894)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1063)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:655)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:228)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:113)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:84)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:121)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:105)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at net.lab1024.sa.common.common.security.SecurityTokenFilter.doFilterInternal(SecurityTokenFilter.java:62)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)\r\n at org.apache.catalina.core.StandardContextValve.__invoke(StandardContextValve.java:97)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:41002)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)\r\n at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1723)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'goodsId\' not found. Available parameters are [deletedFlag, goodsIdList, param1, param2]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:212)\r\n at org.apache.ibatis.scripting.xmltags.DynamicContext$ContextAccessor.getProperty(DynamicContext.java:120)\r\n at org.apache.ibatis.ognl.OgnlRuntime.getProperty(OgnlRuntime.java:3338)\r\n at org.apache.ibatis.ognl.ASTProperty.getValueBody(ASTProperty.java:121)\r\n at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)\r\n at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)\r\n at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:560)\r\n at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:524)\r\n at org.apache.ibatis.scripting.xmltags.OgnlCache.getValue(OgnlCache.java:46)\r\n at org.apache.ibatis.scripting.xmltags.ExpressionEvaluator.evaluateIterable(ExpressionEvaluator.java:43)\r\n at org.apache.ibatis.scripting.xmltags.ForEachSqlNode.apply(ForEachSqlNode.java:54)\r\n at org.apache.ibatis.scripting.xmltags.MixedSqlNode.lambda$apply$0(MixedSqlNode.java:32)\r\n at java.util.ArrayList.forEach(ArrayList.java:1257)\r\n at org.apache.ibatis.scripting.xmltags.MixedSqlNode.apply(MixedSqlNode.java:32)\r\n at org.apache.ibatis.scripting.xmltags.DynamicSqlSource.getBoundSql(DynamicSqlSource.java:39)\r\n at org.apache.ibatis.mapping.MappedStatement.getBoundSql(MappedStatement.java:305)\r\n at org.apache.ibatis.executor.statement.BaseStatementHandler.(BaseStatementHandler.java:64)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.(PreparedStatementHandler.java:41)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.(RoutingStatementHandler.java:46)\r\n at org.apache.ibatis.session.Configuration.newStatementHandler(Configuration.java:658)\r\n at com.baomidou.mybatisplus.core.executor.MybatisSimpleExecutor.doUpdate(MybatisSimpleExecutor.java:54)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at com.baomidou.mybatisplus.core.executor.MybatisCachingExecutor.update(MybatisCachingExecutor.java:85)\r\n at sun.reflect.GeneratedMethodAccessor367.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:83)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy154.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor367.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n at com.sun.proxy.$Proxy154.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor432.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426)\r\n ... 136 more\r\n', '2022-10-21 19:53:48', '2022-10-21 19:53:48'), - (396, 1, 1, '管理员', 'ERP进销存-商品管理', '删除 @author 卓大', '/goods/delete/2', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.delete', '[2]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 0, 'org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.binding.BindingException: Parameter \'goodsId\' not found. Available parameters are [deletedFlag, goodsIdList, param1, param2]\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:92)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:440)\r\n at com.sun.proxy.$Proxy114.update(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.update(SqlSessionTemplate.java:287)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:65)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy164.batchUpdateDeleted(Unknown Source)\r\n at net.lab1024.sa.admin.module.business.goods.service.GoodsService.batchDelete(GoodsService.java:137)\r\n at net.lab1024.sa.admin.module.business.goods.service.GoodsService.delete(GoodsService.java:124)\r\n at net.lab1024.sa.admin.module.business.goods.service.GoodsService$$FastClassBySpringCGLIB$$1.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at com.alibaba.druid.support.spring.stat.DruidStatInterceptor.invoke(DruidStatInterceptor.java:73)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:692)\r\n at net.lab1024.sa.admin.module.business.goods.service.GoodsService$$EnhancerBySpringCGLIB$$1.delete()\r\n at net.lab1024.sa.admin.module.business.goods.controller.GoodsController.delete(GoodsController.java:64)\r\n at net.lab1024.sa.admin.module.business.goods.controller.GoodsController$$FastClassBySpringCGLIB$$1.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:779)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.aspectj.AspectJAfterThrowingAdvice.invoke(AspectJAfterThrowingAdvice.java:64)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.adapter.AfterReturningAdviceInterceptor.invoke(AfterReturningAdviceInterceptor.java:57)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:692)\r\n at net.lab1024.sa.admin.module.business.goods.controller.GoodsController$$EnhancerBySpringCGLIB$$1.delete()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:197)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:141)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:894)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1063)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:898)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:655)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:228)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:113)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:84)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:121)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:105)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at net.lab1024.sa.common.common.security.SecurityTokenFilter.doFilterInternal(SecurityTokenFilter.java:62)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)\r\n at org.apache.catalina.core.StandardContextValve.__invoke(StandardContextValve.java:97)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:41002)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)\r\n at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1723)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: org.apache.ibatis.binding.BindingException: Parameter \'goodsId\' not found. Available parameters are [deletedFlag, goodsIdList, param1, param2]\r\n at org.apache.ibatis.binding.MapperMethod$ParamMap.get(MapperMethod.java:212)\r\n at org.apache.ibatis.scripting.xmltags.DynamicContext$ContextAccessor.getProperty(DynamicContext.java:120)\r\n at org.apache.ibatis.ognl.OgnlRuntime.getProperty(OgnlRuntime.java:3338)\r\n at org.apache.ibatis.ognl.ASTProperty.getValueBody(ASTProperty.java:121)\r\n at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)\r\n at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)\r\n at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:560)\r\n at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:524)\r\n at org.apache.ibatis.scripting.xmltags.OgnlCache.getValue(OgnlCache.java:46)\r\n at org.apache.ibatis.scripting.xmltags.ExpressionEvaluator.evaluateIterable(ExpressionEvaluator.java:43)\r\n at org.apache.ibatis.scripting.xmltags.ForEachSqlNode.apply(ForEachSqlNode.java:54)\r\n at org.apache.ibatis.scripting.xmltags.MixedSqlNode.lambda$apply$0(MixedSqlNode.java:32)\r\n at java.util.ArrayList.forEach(ArrayList.java:1257)\r\n at org.apache.ibatis.scripting.xmltags.MixedSqlNode.apply(MixedSqlNode.java:32)\r\n at org.apache.ibatis.scripting.xmltags.DynamicSqlSource.getBoundSql(DynamicSqlSource.java:39)\r\n at org.apache.ibatis.mapping.MappedStatement.getBoundSql(MappedStatement.java:305)\r\n at org.apache.ibatis.executor.statement.BaseStatementHandler.(BaseStatementHandler.java:64)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.(PreparedStatementHandler.java:41)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.(RoutingStatementHandler.java:46)\r\n at org.apache.ibatis.session.Configuration.newStatementHandler(Configuration.java:658)\r\n at com.baomidou.mybatisplus.core.executor.MybatisSimpleExecutor.doUpdate(MybatisSimpleExecutor.java:54)\r\n at org.apache.ibatis.executor.BaseExecutor.update(BaseExecutor.java:117)\r\n at com.baomidou.mybatisplus.core.executor.MybatisCachingExecutor.update(MybatisCachingExecutor.java:85)\r\n at sun.reflect.GeneratedMethodAccessor367.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:83)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy154.update(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor367.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n at com.sun.proxy.$Proxy154.update(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.update(DefaultSqlSession.java:197)\r\n at sun.reflect.GeneratedMethodAccessor432.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426)\r\n ... 136 more\r\n', '2022-10-21 19:53:53', '2022-10-21 19:53:53'), - (397, 1, 1, '管理员', 'ERP进销存-商品管理', '删除 @author 卓大', '/goods/delete/2', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.delete', '[2]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:54:16', '2022-10-21 19:54:16'), - (398, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:54:16', '2022-10-21 19:54:16'), - (399, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:54:45', '2022-10-21 19:54:45'), - (400, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:54:45', '2022-10-21 19:54:45'), - (401, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:56:58', '2022-10-21 19:56:58'), - (402, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:56:58', '2022-10-21 19:56:58'), - (403, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:56:58', '2022-10-21 19:56:58'), - (404, 1, 1, '管理员', 'ERP进销存-商品管理', '批量 @author 卓大', '/goods/batchDelete', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.batchDelete', '[[4,3]]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:57:05', '2022-10-21 19:57:05'), - (405, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:57:05', '2022-10-21 19:57:05'), - (406, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:57:28', '2022-10-21 19:57:28'), - (407, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":"","shelvesFlag":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:57:30', '2022-10-21 19:57:30'), - (408, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":"","shelvesFlag":false}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:57:31', '2022-10-21 19:57:31'), - (409, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:57:32', '2022-10-21 19:57:32'), - (410, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:57:33', '2022-10-21 19:57:33'), - (411, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":"","shelvesFlag":false}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:57:33', '2022-10-21 19:57:33'), - (412, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:57:34', '2022-10-21 19:57:34'), - (413, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:57:37', '2022-10-21 19:57:37'), - (414, 1, 1, '管理员', 'ERP进销存-商品管理', '更新商品 @author 胡克', '/goods/update', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.update', '[{"categoryId":353,"goodsId":1,"goodsName":"Mote60","goodsStatus":1,"place":"BEI_JING","price":9999,"shelvesFlag":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:57:49', '2022-10-21 19:57:49'), - (415, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:57:49', '2022-10-21 19:57:49'), - (416, 1, 1, '管理员', 'ERP进销存-商品管理', '更新商品 @author 胡克', '/goods/update', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.update', '[{"categoryId":352,"goodsId":7,"goodsName":"iphone15 pro","goodsStatus":1,"place":"LUO_YANG","price":50000,"remark":"备注","shelvesFlag":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:58:07', '2022-10-21 19:58:07'), - (417, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:58:07', '2022-10-21 19:58:07'), - (418, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:58:11', '2022-10-21 19:58:11'), - (419, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:59:28', '2022-10-21 19:59:28'), - (420, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:59:28', '2022-10-21 19:59:28'), - (421, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:59:30', '2022-10-21 19:59:30'), - (422, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:59:44', '2022-10-21 19:59:44'), - (423, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:59:45', '2022-10-21 19:59:45'), - (424, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:59:45', '2022-10-21 19:59:45'), - (425, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 19:59:46', '2022-10-21 19:59:46'), - (426, 1, 1, '管理员', '系统-菜单', '添加菜单 @author 卓大', '/menu/add', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.addMenu', '[{"cacheFlag":false,"createUserId":1,"disabledFlag":false,"frameFlag":false,"menuName":"删除","menuType":3,"parentId":0,"permsType":1,"visibleFlag":true,"webPerms":"goods:delete"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:00:12', '2022-10-21 20:00:12'), - (427, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:00:13', '2022-10-21 20:00:13'), - (428, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:00:13', '2022-10-21 20:00:13'), - (429, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:00:18', '2022-10-21 20:00:18'), - (430, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:00:26', '2022-10-21 20:00:26'), - (431, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:00:26', '2022-10-21 20:00:26'), - (432, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:00:26', '2022-10-21 20:00:26'), - (433, 1, 1, '管理员', '系统-菜单', '更新菜单 @author 卓大', '/menu/update', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.updateMenu', '[{"apiPermsList":[],"cacheFlag":false,"contextMenuId":47,"disabledFlag":false,"frameFlag":false,"menuId":194,"menuName":"删除","menuType":3,"parentId":0,"permsType":1,"updateUserId":1,"visibleFlag":true,"webPerms":"goods:delete"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:00:45', '2022-10-21 20:00:45'), - (434, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:00:45', '2022-10-21 20:00:45'), - (435, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:00:45', '2022-10-21 20:00:45'), - (436, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:00:48', '2022-10-21 20:00:48'), - (437, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:00:52', '2022-10-21 20:00:52'), - (438, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:00:53', '2022-10-21 20:00:53'), - (439, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:00:53', '2022-10-21 20:00:53'), - (440, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:00:59', '2022-10-21 20:00:59'), - (441, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:01:01', '2022-10-21 20:01:01'), - (442, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:01:03', '2022-10-21 20:01:03'), - (443, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:01:04', '2022-10-21 20:01:04'), - (444, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:01:04', '2022-10-21 20:01:04'), - (445, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:01:05', '2022-10-21 20:01:05'), - (446, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:02:16', '2022-10-21 20:02:16'), - (447, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:04:15', '2022-10-21 20:04:15'), - (448, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:04:38', '2022-10-21 20:04:38'), - (449, 1, 1, '管理员', '系统-菜单', '更新菜单 @author 卓大', '/menu/update', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.updateMenu', '[{"apiPermsList":[],"cacheFlag":false,"disabledFlag":false,"frameFlag":false,"menuId":194,"menuName":"删除","menuType":3,"parentId":47,"permsType":1,"updateUserId":1,"visibleFlag":true,"webPerms":"goods:delete"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:04:58', '2022-10-21 20:04:58'), - (450, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:04:58', '2022-10-21 20:04:58'), - (451, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:05:11', '2022-10-21 20:05:11'), - (452, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:05:11', '2022-10-21 20:05:11'), - (453, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:05:12', '2022-10-21 20:05:12'), - (454, 1, 1, '管理员', '系统-菜单', '添加菜单 @author 卓大', '/menu/add', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.addMenu', '[{"cacheFlag":false,"createUserId":1,"disabledFlag":false,"frameFlag":false,"menuName":"修改","menuType":3,"parentId":47,"permsType":1,"visibleFlag":true,"webPerms":"goods:update"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:05:24', '2022-10-21 20:05:24'), - (455, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:05:24', '2022-10-21 20:05:24'), - (456, 1, 1, '管理员', 'OA办公-企业', '分页查询企业模块 @author 开云', '/oa/enterprise/page/query', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.queryByPage', '[{"deletedFlag":false,"keywords":"","pageNum":1,"pageSize":15,"searchCount":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:05:53', '2022-10-21 20:05:53'), - (457, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:10:32', '2022-10-21 20:10:32'), - (458, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:10:43', '2022-10-21 20:10:43'), - (459, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:10:43', '2022-10-21 20:10:43'), - (460, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:10:43', '2022-10-21 20:10:43'), - (461, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:10:43', '2022-10-21 20:10:43'), - (462, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:10:43', '2022-10-21 20:10:43'), - (463, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:11:09', '2022-10-21 20:11:09'), - (464, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:11:09', '2022-10-21 20:11:09'), - (465, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:11:09', '2022-10-21 20:11:09'), - (466, 1, 1, '管理员', '系统-菜单', '更新菜单 @author 卓大', '/menu/update', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.updateMenu', '[{"apiPermsList":["EnterpriseController.deleteEnterprise"],"cacheFlag":false,"contextMenuId":144,"disabledFlag":false,"frameFlag":false,"menuId":184,"menuName":"删除","menuType":3,"parentId":144,"permsType":2,"updateUserId":1,"visibleFlag":true,"webPerms":"enterprise:delete"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:11:24', '2022-10-21 20:11:24'), - (467, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:11:25', '2022-10-21 20:11:25'), - (468, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:12:25', '2022-10-21 20:12:25'), - (469, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:12:26', '2022-10-21 20:12:26'), - (470, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:12:28', '2022-10-21 20:12:28'), - (471, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:12:33', '2022-10-21 20:12:33'), - (472, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:12:33', '2022-10-21 20:12:33'), - (473, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:12:35', '2022-10-21 20:12:35'), - (474, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:12:44', '2022-10-21 20:12:44'), - (475, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:12:44', '2022-10-21 20:12:44'), - (476, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:12:44', '2022-10-21 20:12:44'), - (477, 1, 1, '管理员', '系统-菜单', '更新菜单 @author 卓大', '/menu/update', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.updateMenu', '[{"apiPermsList":["EnterpriseController.deleteEnterprise"],"cacheFlag":false,"contextMenuId":144,"disabledFlag":false,"frameFlag":false,"menuId":181,"menuName":"查询","menuType":3,"parentId":144,"permsType":2,"updateUserId":1,"visibleFlag":true,"webPerms":"enterprise:query"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:15:12', '2022-10-21 20:15:12'), - (478, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:15:12', '2022-10-21 20:15:12'), - (479, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:15:20', '2022-10-21 20:15:20'), - (480, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:15:20', '2022-10-21 20:15:20'), - (481, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:15:20', '2022-10-21 20:15:20'), - (482, 1, 1, '管理员', '系统-菜单', '更新菜单 @author 卓大', '/menu/update', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.updateMenu', '[{"apiPermsList":["EnterpriseController.createEnterprise"],"cacheFlag":false,"contextMenuId":144,"disabledFlag":false,"frameFlag":false,"menuId":182,"menuName":"新建","menuType":3,"parentId":144,"permsType":2,"updateUserId":1,"visibleFlag":true,"webPerms":"enterprise:add"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:15:30', '2022-10-21 20:15:30'), - (483, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:15:31', '2022-10-21 20:15:31'), - (484, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:15:33', '2022-10-21 20:15:33'), - (485, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:15:33', '2022-10-21 20:15:33'), - (486, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:15:33', '2022-10-21 20:15:33'), - (487, 1, 1, '管理员', '系统-菜单', '更新菜单 @author 卓大', '/menu/update', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.updateMenu', '[{"apiPermsList":["EnterpriseController.updateEnterprise"],"cacheFlag":false,"contextMenuId":144,"disabledFlag":false,"frameFlag":false,"menuId":183,"menuName":"编辑","menuType":3,"parentId":144,"permsType":2,"updateUserId":1,"visibleFlag":true,"webPerms":"enterprise:edit"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:15:39', '2022-10-21 20:15:39'), - (488, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:15:40', '2022-10-21 20:15:40'), - (489, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:16:03', '2022-10-21 20:16:03'), - (490, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:16:03', '2022-10-21 20:16:03'), - (491, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:16:06', '2022-10-21 20:16:06'), - (492, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:16:12', '2022-10-21 20:16:12'), - (493, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:16:12', '2022-10-21 20:16:12'), - (494, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:16:15', '2022-10-21 20:16:15'), - (495, 1, 1, '管理员', '系统-菜单', '添加菜单 @author 卓大', '/menu/add', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.addMenu', '[{"apiPermsList":["EnterpriseController.getDetail"],"cacheFlag":false,"createUserId":1,"disabledFlag":false,"frameFlag":false,"menuName":"查看详情","menuType":3,"parentId":145,"permsType":2,"visibleFlag":true,"webPerms":"enterprise:detail"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:16:47', '2022-10-21 20:16:47'), - (496, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:16:48', '2022-10-21 20:16:48'), - (497, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:17:48', '2022-10-21 20:17:48'), - (498, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:17:49', '2022-10-21 20:17:49'), - (499, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:17:57', '2022-10-21 20:17:57'), - (500, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:18:49', '2022-10-21 20:18:49'), - (501, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:18:49', '2022-10-21 20:18:49'), - (502, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:18:50', '2022-10-21 20:18:50'), - (503, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:18:52', '2022-10-21 20:18:52'), - (504, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:18:52', '2022-10-21 20:18:52'), - (505, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:18:52', '2022-10-21 20:18:52'), - (506, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:18:55', '2022-10-21 20:18:55'), - (507, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:18:55', '2022-10-21 20:18:55'), - (508, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:19:00', '2022-10-21 20:19:00'), - (509, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:19:06', '2022-10-21 20:19:06'), - (510, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:19:06', '2022-10-21 20:19:06'), - (511, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:19:06', '2022-10-21 20:19:06'), - (512, 1, 1, '管理员', '系统-菜单', '更新菜单 @author 卓大', '/menu/update', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.updateMenu', '[{"apiPermsList":["NoticeController.query"],"cacheFlag":false,"contextMenuId":132,"disabledFlag":false,"frameFlag":false,"menuId":185,"menuName":"查询","menuType":3,"parentId":132,"permsType":2,"updateUserId":1,"visibleFlag":true,"webPerms":"notice:query"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:19:24', '2022-10-21 20:19:24'), - (513, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:19:24', '2022-10-21 20:19:24'), - (514, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:19:40', '2022-10-21 20:19:40'), - (515, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:19:40', '2022-10-21 20:19:40'), - (516, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:19:40', '2022-10-21 20:19:40'), - (517, 1, 1, '管理员', '系统-菜单', '更新菜单 @author 卓大', '/menu/update', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.updateMenu', '[{"apiPermsList":["NoticeController.add"],"cacheFlag":false,"contextMenuId":132,"disabledFlag":false,"frameFlag":false,"menuId":186,"menuName":"新建","menuType":3,"parentId":132,"permsType":2,"updateUserId":1,"visibleFlag":true,"webPerms":"notice:add"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:19:49', '2022-10-21 20:19:49'), - (518, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:19:50', '2022-10-21 20:19:50'), - (519, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:19:53', '2022-10-21 20:19:53'), - (520, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:19:53', '2022-10-21 20:19:53'), - (521, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:19:53', '2022-10-21 20:19:53'), - (522, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:21:11', '2022-10-21 20:21:11'), - (523, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:21:11', '2022-10-21 20:21:11'), - (524, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:21:11', '2022-10-21 20:21:11'), - (525, 1, 1, '管理员', '系统-菜单', '更新菜单 @author 卓大', '/menu/update', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.updateMenu', '[{"apiPermsList":["NoticeController.update"],"cacheFlag":false,"contextMenuId":132,"disabledFlag":false,"frameFlag":false,"menuId":187,"menuName":"编辑","menuType":3,"parentId":132,"permsType":2,"updateUserId":1,"visibleFlag":true,"webPerms":"notice:edit"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:21:16', '2022-10-21 20:21:16'), - (526, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:21:16', '2022-10-21 20:21:16'), - (527, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:21:18', '2022-10-21 20:21:18'), - (528, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:21:19', '2022-10-21 20:21:19'), - (529, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:21:19', '2022-10-21 20:21:19'), - (530, 1, 1, '管理员', '系统-菜单', '更新菜单 @author 卓大', '/menu/update', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.updateMenu', '[{"apiPermsList":["NoticeController.delete"],"cacheFlag":false,"contextMenuId":132,"disabledFlag":false,"frameFlag":false,"menuId":188,"menuName":"删除","menuType":3,"parentId":132,"permsType":2,"updateUserId":1,"visibleFlag":true,"webPerms":"notice:delete"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:21:25', '2022-10-21 20:21:25'), - (531, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:21:26', '2022-10-21 20:21:26'), - (532, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:23:13', '2022-10-21 20:23:13'), - (533, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:26:00', '2022-10-21 20:26:00'), - (534, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:26:20', '2022-10-21 20:26:20'), - (535, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:26:24', '2022-10-21 20:26:24'), - (536, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:26:29', '2022-10-21 20:26:29'), - (537, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:32:16', '2022-10-21 20:32:16'), - (538, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:33:41', '2022-10-21 20:33:41'), - (539, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:33:41', '2022-10-21 20:33:41'), - (540, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:33:48', '2022-10-21 20:33:48'), - (541, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:37:01', '2022-10-21 20:37:01'), - (542, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:37:01', '2022-10-21 20:37:01'), - (543, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:37:01', '2022-10-21 20:37:01'), - (544, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:37:01', '2022-10-21 20:37:01'), - (545, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:37:01', '2022-10-21 20:37:01'), - (546, 1, 1, '管理员', '系统-菜单', '更新菜单 @author 卓大', '/menu/update', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.updateMenu', '[{"apiPermsList":[],"cacheFlag":false,"contextMenuId":133,"disabledFlag":true,"frameFlag":false,"menuId":153,"menuName":"清除缓存","menuType":3,"parentId":133,"permsType":1,"updateUserId":1,"visibleFlag":true,"webPerms":"support:cache:delete"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:37:13', '2022-10-21 20:37:13'), - (547, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:37:14', '2022-10-21 20:37:14'), - (548, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:37:22', '2022-10-21 20:37:22'), - (549, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:37:22', '2022-10-21 20:37:22'), - (550, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:37:22', '2022-10-21 20:37:22'), - (551, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:37:34', '2022-10-21 20:37:34'), - (552, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:37:34', '2022-10-21 20:37:34'), - (553, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:37:35', '2022-10-21 20:37:35'), - (554, 1, 1, '管理员', '系统-菜单', '添加菜单 @author 卓大', '/menu/add', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.addMenu', '[{"cacheFlag":false,"createUserId":1,"disabledFlag":false,"frameFlag":false,"menuName":"查询缓存","menuType":3,"parentId":133,"permsType":1,"visibleFlag":true,"webPerms":"support:cache:names"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:37:55', '2022-10-21 20:37:55'), - (555, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:37:56', '2022-10-21 20:37:56'), - (556, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:38:39', '2022-10-21 20:38:39'), - (557, 1, 1, '管理员', '系统-菜单', '批量删除菜单 @author 卓大', '/menu/batchDelete', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.batchDeleteMenu', '[[197]]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:38:53', '2022-10-21 20:38:53'), - (558, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:38:53', '2022-10-21 20:38:53'), - (559, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:40:10', '2022-10-21 20:40:10'), - (560, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:40:46', '2022-10-21 20:40:46'), - (561, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:40:46', '2022-10-21 20:40:46'), - (562, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:40:46', '2022-10-21 20:40:46'), - (563, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:40:46', '2022-10-21 20:40:46'), - (564, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:40:46', '2022-10-21 20:40:46'), - (565, 1, 1, '管理员', '系统-菜单', '更新菜单 @author 卓大', '/menu/update', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.updateMenu', '[{"apiPermsList":[],"cacheFlag":false,"contextMenuId":152,"disabledFlag":false,"frameFlag":false,"menuId":190,"menuName":"查询","menuType":3,"parentId":152,"permsType":1,"updateUserId":1,"visibleFlag":true,"webPerms":"changeLog:query"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:42:00', '2022-10-21 20:42:00'), - (566, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:42:01', '2022-10-21 20:42:01'), - (567, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:42:07', '2022-10-21 20:42:07'), - (568, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:42:07', '2022-10-21 20:42:07'), - (569, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:42:07', '2022-10-21 20:42:07'), - (570, 1, 1, '管理员', '系统-菜单', '更新菜单 @author 卓大', '/menu/update', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.updateMenu', '[{"apiPermsList":[],"cacheFlag":false,"contextMenuId":152,"disabledFlag":false,"frameFlag":false,"menuId":191,"menuName":"新建","menuType":3,"parentId":152,"permsType":1,"updateUserId":1,"visibleFlag":true,"webPerms":"changeLog:add"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:42:09', '2022-10-21 20:42:09'), - (571, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:42:09', '2022-10-21 20:42:09'), - (572, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:42:13', '2022-10-21 20:42:13'), - (573, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:42:14', '2022-10-21 20:42:14'), - (574, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:42:14', '2022-10-21 20:42:14'), - (575, 1, 1, '管理员', '系统-菜单', '更新菜单 @author 卓大', '/menu/update', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.updateMenu', '[{"apiPermsList":[],"cacheFlag":false,"contextMenuId":152,"disabledFlag":false,"frameFlag":false,"menuId":192,"menuName":"批量删除","menuType":3,"parentId":152,"permsType":1,"updateUserId":1,"visibleFlag":true,"webPerms":"changeLog:batchDelete"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:42:16', '2022-10-21 20:42:16'), - (576, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:42:16', '2022-10-21 20:42:16'), - (577, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:42:19', '2022-10-21 20:42:19'), - (578, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:42:19', '2022-10-21 20:42:19'), - (579, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:42:21', '2022-10-21 20:42:21'), - (580, 1, 1, '管理员', '系统-菜单', '添加菜单 @author 卓大', '/menu/add', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.addMenu', '[{"cacheFlag":false,"createUserId":1,"disabledFlag":false,"frameFlag":false,"menuName":"删除","menuType":3,"parentId":152,"permsType":1,"visibleFlag":true,"webPerms":"changeLog:delete"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:42:34', '2022-10-21 20:42:34'), - (581, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:42:35', '2022-10-21 20:42:35'), - (582, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:44:58', '2022-10-21 20:44:58'), - (583, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:44:58', '2022-10-21 20:44:58'), - (584, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:44:59', '2022-10-21 20:44:59'), - (585, 1, 1, '管理员', '系统-菜单', '添加菜单 @author 卓大', '/menu/add', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.addMenu', '[{"cacheFlag":false,"createUserId":1,"disabledFlag":false,"frameFlag":false,"menuName":"查询","menuType":3,"parentId":109,"permsType":1,"visibleFlag":true,"webPerms":"support:config:query"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:45:14', '2022-10-21 20:45:14'), - (586, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:45:15', '2022-10-21 20:45:15'), - (587, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:47:12', '2022-10-21 20:47:12'), - (588, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:47:12', '2022-10-21 20:47:12'), - (589, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:47:13', '2022-10-21 20:47:13'), - (590, 1, 1, '管理员', '系统-菜单', '添加菜单 @author 卓大', '/menu/add', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.addMenu', '[{"cacheFlag":false,"createUserId":1,"disabledFlag":false,"frameFlag":false,"menuName":"查询","menuType":3,"parentId":193,"permsType":1,"visibleFlag":true,"webPerms":"file:query"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:47:23', '2022-10-21 20:47:23'), - (591, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:47:24', '2022-10-21 20:47:24'), - (592, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:48:20', '2022-10-21 20:48:20'), - (593, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:48:31', '2022-10-21 20:48:31'), - (594, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:48:31', '2022-10-21 20:48:31'), - (595, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:48:31', '2022-10-21 20:48:31'), - (596, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:48:31', '2022-10-21 20:48:31'), - (597, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:48:32', '2022-10-21 20:48:32'), - (598, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:49:10', '2022-10-21 20:49:10'), - (599, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:49:10', '2022-10-21 20:49:10'), - (600, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:49:10', '2022-10-21 20:49:10'), - (601, 1, 1, '管理员', '系统-菜单', '更新菜单 @author 卓大', '/menu/update', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.updateMenu', '[{"apiPermsList":[],"cacheFlag":false,"contextMenuId":147,"disabledFlag":false,"frameFlag":false,"menuId":169,"menuName":"新建","menuType":3,"parentId":147,"permsType":1,"updateUserId":1,"visibleFlag":true,"webPerms":"helpDoc:add"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:49:24', '2022-10-21 20:49:24'), - (602, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:49:25', '2022-10-21 20:49:25'), - (603, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:49:28', '2022-10-21 20:49:28'), - (604, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:49:28', '2022-10-21 20:49:28'), - (605, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:49:28', '2022-10-21 20:49:28'), - (606, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:49:55', '2022-10-21 20:49:55'), - (607, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:49:56', '2022-10-21 20:49:56'), - (608, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:49:56', '2022-10-21 20:49:56'), - (609, 1, 1, '管理员', '系统-菜单', '更新菜单 @author 卓大', '/menu/update', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.updateMenu', '[{"apiPermsList":[],"cacheFlag":false,"contextMenuId":147,"disabledFlag":false,"frameFlag":false,"menuId":171,"menuName":"修改目录","menuType":3,"parentId":147,"permsType":1,"updateUserId":1,"visibleFlag":true,"webPerms":"helpDocCatalog:edit"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:50:01', '2022-10-21 20:50:01'), - (610, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:50:02', '2022-10-21 20:50:02'), - (611, 1, 1, '管理员', '系统-菜单', '批量删除菜单 @author 卓大', '/menu/batchDelete', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.batchDeleteMenu', '[[172]]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:50:36', '2022-10-21 20:50:36'), - (612, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 20:50:36', '2022-10-21 20:50:36'), - (613, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 21:02:52', '2022-10-21 21:02:52'), - (614, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 21:02:53', '2022-10-21 21:02:53'), - (615, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 21:02:54', '2022-10-21 21:02:54'), - (616, 1, 1, '管理员', '系统-菜单', '添加菜单 @author 卓大', '/menu/add', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.addMenu', '[{"cacheFlag":false,"createUserId":1,"disabledFlag":false,"frameFlag":false,"menuName":"删除","menuType":3,"parentId":147,"permsType":1,"visibleFlag":true,"webPerms":"helpDoc:delete"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 21:03:20', '2022-10-21 21:03:20'), - (617, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 21:03:21', '2022-10-21 21:03:21'), - (618, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 21:03:21', '2022-10-21 21:03:21'), - (619, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 21:03:21', '2022-10-21 21:03:21'), - (620, 1, 1, '管理员', '系统-菜单', '添加菜单 @author 卓大', '/menu/add', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.addMenu', '[{"cacheFlag":false,"createUserId":1,"disabledFlag":false,"frameFlag":false,"menuName":"更新","menuType":3,"parentId":147,"permsType":1,"visibleFlag":true,"webPerms":"helpDoc:update"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 21:03:32', '2022-10-21 21:03:32'), - (621, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 21:03:33', '2022-10-21 21:03:33'), - (622, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 21:04:57', '2022-10-21 21:04:57'), - (623, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 21:04:58', '2022-10-21 21:04:58'), - (624, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 21:04:59', '2022-10-21 21:04:59'), - (625, 1, 1, '管理员', '系统-菜单', '添加菜单 @author 卓大', '/menu/add', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.addMenu', '[{"cacheFlag":false,"createUserId":1,"disabledFlag":false,"frameFlag":false,"menuName":"查询","menuType":3,"parentId":143,"permsType":1,"visibleFlag":true,"webPerms":"loginLog:query"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 21:05:11', '2022-10-21 21:05:11'), - (626, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 21:05:11', '2022-10-21 21:05:11'), - (627, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 21:05:49', '2022-10-21 21:05:49'), - (628, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 21:05:50', '2022-10-21 21:05:50'), - (629, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 21:05:52', '2022-10-21 21:05:52'), - (630, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 21:06:23', '2022-10-21 21:06:23'), - (631, 1, 1, '管理员', '系统-菜单', '批量删除菜单 @author 卓大', '/menu/batchDelete', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.batchDeleteMenu', '[[82]]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 21:06:32', '2022-10-21 21:06:32'), - (632, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-21 21:06:32', '2022-10-21 21:06:32'), - (633, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:29:21', '2022-10-22 10:29:21'), - (634, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:29:34', '2022-10-22 10:29:34'), - (635, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:29:34', '2022-10-22 10:29:34'), - (636, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:29:34', '2022-10-22 10:29:34'), - (637, 1, 1, '管理员', '系统-菜单', '更新菜单 @author 卓大', '/menu/update', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.updateMenu', '[{"apiPermsList":[],"cacheFlag":false,"component":"/support/operate-log/operate-log-list.vue","disabledFlag":false,"frameFlag":false,"icon":"VideoCameraOutlined","menuId":81,"menuName":"请求监控","menuType":2,"parentId":111,"path":"/support/log/operate-log/list","updateUserId":1,"visibleFlag":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:29:40', '2022-10-22 10:29:40'), - (638, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:29:40', '2022-10-22 10:29:40'), - (639, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:29:44', '2022-10-22 10:29:44'), - (640, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:29:45', '2022-10-22 10:29:45'), - (641, 1, 1, '管理员', '系统-菜单', '更新菜单 @author 卓大', '/menu/update', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.updateMenu', '[{"apiPermsList":[],"cacheFlag":false,"component":"/support/operate-log/operate-log-list.vue","disabledFlag":false,"frameFlag":false,"icon":"VideoCameraOutlined","menuId":81,"menuName":"请求监控","menuType":2,"parentId":111,"path":"/support/operate-log/operate-log-list","updateUserId":1,"visibleFlag":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:30:05', '2022-10-22 10:30:05'), - (642, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:30:06', '2022-10-22 10:30:06'), - (643, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:30:12', '2022-10-22 10:30:12'), - (644, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:30:12', '2022-10-22 10:30:12'), - (645, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:30:13', '2022-10-22 10:30:13'), - (646, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:33:09', '2022-10-22 10:33:09'), - (647, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:33:12', '2022-10-22 10:33:12'), - (648, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:33:12', '2022-10-22 10:33:12'), - (649, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:33:13', '2022-10-22 10:33:13'), - (650, 1, 1, '管理员', '系统-菜单', '添加菜单 @author 卓大', '/menu/add', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.addMenu', '[{"cacheFlag":false,"createUserId":1,"disabledFlag":false,"frameFlag":false,"menuName":"查询","menuType":3,"parentId":81,"permsType":1,"visibleFlag":true,"webPerms":"operateLog:query"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:33:31', '2022-10-22 10:33:31'), - (651, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:33:31', '2022-10-22 10:33:31'), - (652, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:33:37', '2022-10-22 10:33:37'), - (653, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:33:37', '2022-10-22 10:33:37'), - (654, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:33:38', '2022-10-22 10:33:38'), - (655, 1, 1, '管理员', '系统-菜单', '添加菜单 @author 卓大', '/menu/add', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.addMenu', '[{"cacheFlag":false,"createUserId":1,"disabledFlag":false,"frameFlag":false,"menuName":"详情","menuType":3,"parentId":81,"permsType":1,"visibleFlag":true,"webPerms":"operateLog:detail"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:33:49', '2022-10-22 10:33:49'), - (656, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:33:50', '2022-10-22 10:33:50'), - (657, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:36:17', '2022-10-22 10:36:17'), - (658, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:36:17', '2022-10-22 10:36:17'), - (659, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:36:17', '2022-10-22 10:36:17'), - (660, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:36:17', '2022-10-22 10:36:17'), - (661, 1, 1, '管理员', '系统-菜单', '更新菜单 @author 卓大', '/menu/update', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.updateMenu', '[{"apiPermsList":[],"cacheFlag":false,"contextMenuId":130,"disabledFlag":false,"frameFlag":false,"menuId":157,"menuName":"单号生成","menuType":3,"parentId":130,"permsType":1,"updateUserId":1,"visibleFlag":true,"webPerms":"support:serial:number:generate"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:36:34', '2022-10-22 10:36:34'), - (662, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:36:35', '2022-10-22 10:36:35'), - (663, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:36:36', '2022-10-22 10:36:36'), - (664, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:36:36', '2022-10-22 10:36:36'), - (665, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:36:36', '2022-10-22 10:36:36'), - (666, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:36:37', '2022-10-22 10:36:37'), - (667, 1, 1, '管理员', '系统-菜单', '更新菜单 @author 卓大', '/menu/update', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.updateMenu', '[{"apiPermsList":[],"cacheFlag":false,"contextMenuId":130,"disabledFlag":false,"frameFlag":false,"menuId":158,"menuName":"生成记录","menuType":3,"parentId":130,"permsType":1,"updateUserId":1,"visibleFlag":true,"webPerms":"support:serial:number:record"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:36:42', '2022-10-22 10:36:42'), - (668, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:36:43', '2022-10-22 10:36:43'), - (669, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:37:31', '2022-10-22 10:37:31'), - (670, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:37:31', '2022-10-22 10:37:31'), - (671, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:37:31', '2022-10-22 10:37:31'), - (672, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:37:31', '2022-10-22 10:37:31'), - (673, 1, 1, '管理员', '系统-菜单', '更新菜单 @author 卓大', '/menu/update', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.updateMenu', '[{"apiPermsList":[],"cacheFlag":false,"contextMenuId":117,"disabledFlag":false,"frameFlag":false,"menuId":155,"menuName":"执行","menuType":3,"parentId":117,"permsType":1,"updateUserId":1,"visibleFlag":true,"webPerms":"support:reload:execute"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:37:33', '2022-10-22 10:37:33'), - (674, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:37:33', '2022-10-22 10:37:33'), - (675, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:37:34', '2022-10-22 10:37:34'), - (676, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:37:34', '2022-10-22 10:37:34'), - (677, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:37:35', '2022-10-22 10:37:35'), - (678, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:37:35', '2022-10-22 10:37:35'), - (679, 1, 1, '管理员', '系统-菜单', '更新菜单 @author 卓大', '/menu/update', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.updateMenu', '[{"apiPermsList":[],"cacheFlag":false,"contextMenuId":117,"disabledFlag":false,"frameFlag":false,"menuId":156,"menuName":"查看结果","menuType":3,"parentId":117,"permsType":1,"updateUserId":1,"visibleFlag":true,"webPerms":"support:reload:result"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:37:36', '2022-10-22 10:37:36'), - (680, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:37:37', '2022-10-22 10:37:37'), - (681, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:37:38', '2022-10-22 10:37:38'), - (682, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:37:38', '2022-10-22 10:37:38'), - (683, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:37:38', '2022-10-22 10:37:38'), - (684, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:37:38', '2022-10-22 10:37:38'), - (685, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:38:44', '2022-10-22 10:38:44'), - (686, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:38:44', '2022-10-22 10:38:44'), - (687, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:38:44', '2022-10-22 10:38:44'), - (688, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:38:44', '2022-10-22 10:38:44'), - (689, 1, 1, '管理员', '系统-菜单', '更新菜单 @author 卓大', '/menu/update', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.updateMenu', '[{"apiPermsList":[],"cacheFlag":false,"contextMenuId":148,"disabledFlag":false,"frameFlag":false,"menuId":189,"menuName":"查询","menuType":3,"parentId":148,"permsType":1,"updateUserId":1,"visibleFlag":true,"webPerms":"feedback:query"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:38:46', '2022-10-22 10:38:46'), - (690, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:38:46', '2022-10-22 10:38:46'), - (691, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:39:21', '2022-10-22 10:39:21'), - (692, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:39:21', '2022-10-22 10:39:21'), - (693, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:39:21', '2022-10-22 10:39:21'), - (694, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:39:22', '2022-10-22 10:39:22'), - (695, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:39:23', '2022-10-22 10:39:23'), - (696, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:39:23', '2022-10-22 10:39:23'), - (697, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:39:23', '2022-10-22 10:39:23'), - (698, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:39:24', '2022-10-22 10:39:24'), - (699, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:39:25', '2022-10-22 10:39:25'), - (700, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:39:25', '2022-10-22 10:39:25'), - (701, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:39:25', '2022-10-22 10:39:25'), - (702, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:39:26', '2022-10-22 10:39:26'), - (703, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:39:31', '2022-10-22 10:39:31'), - (704, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:39:31', '2022-10-22 10:39:31'), - (705, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:39:32', '2022-10-22 10:39:32'), - (706, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:39:32', '2022-10-22 10:39:32'), - (707, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:39:34', '2022-10-22 10:39:34'), - (708, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:39:35', '2022-10-22 10:39:35'), - (709, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:39:35', '2022-10-22 10:39:35'), - (710, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:39:35', '2022-10-22 10:39:35'), - (711, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:39:36', '2022-10-22 10:39:36'), - (712, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:40:45', '2022-10-22 10:40:45'), - (713, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:40:46', '2022-10-22 10:40:46'), - (714, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:40:46', '2022-10-22 10:40:46'), - (715, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:40:46', '2022-10-22 10:40:46'), - (716, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:41:40', '2022-10-22 10:41:40'), - (717, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:42:54', '2022-10-22 10:42:54'), - (718, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:44:24', '2022-10-22 10:44:24'), - (719, 1, 1, '管理员', '系统-角色', '获取所有角色 @author 卓大', '/role/getAll', 'net.lab1024.sa.admin.module.system.role.controller.RoleController.getAllRole', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:45:00', '2022-10-22 10:45:00'), - (720, 1, 1, '管理员', '系统-角色-菜单', '获取角色关联菜单权限 @author 卓大', '/role/menu/getRoleSelectedMenu/1', 'net.lab1024.sa.admin.module.system.role.controller.RoleMenuController.getRoleSelectedMenu', '[1]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:45:00', '2022-10-22 10:45:00'), - (721, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:45:21', '2022-10-22 10:45:21'), - (722, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:45:39', '2022-10-22 10:45:39'), - (723, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:45:41', '2022-10-22 10:45:41'), - (724, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:45:47', '2022-10-22 10:45:47'), - (725, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:45:57', '2022-10-22 10:45:57'), - (726, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:45:57', '2022-10-22 10:45:57'), - (727, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:45:57', '2022-10-22 10:45:57'), - (728, 1, 1, '管理员', '系统-菜单', '添加菜单 @author 卓大', '/menu/add', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.addMenu', '[{"cacheFlag":false,"component":"/support/heart-beat/heart-beat-list.vue","createUserId":1,"disabledFlag":false,"frameFlag":false,"icon":"FallOutlined","menuName":"心跳监控","menuType":2,"parentId":111,"path":"/support/heart-beat/heart-beat-list","permsType":1,"visibleFlag":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:47:03', '2022-10-22 10:47:03'), - (729, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:47:03', '2022-10-22 10:47:03'), - (730, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:47:11', '2022-10-22 10:47:11'), - (731, 1, 1, '管理员', '系统-部门管理', '查询部门列表 @author 卓大', '/department/listAll', 'net.lab1024.sa.admin.module.system.department.controller.DepartmentController.listAll', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:49:32', '2022-10-22 10:49:32'), - (732, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"departmentId":1,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:49:32', '2022-10-22 10:49:32'), - (733, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:49:32', '2022-10-22 10:49:32'), - (734, 1, 1, '管理员', '系统-角色', '获取所有角色 @author 卓大', '/role/getAll', 'net.lab1024.sa.admin.module.system.role.controller.RoleController.getAllRole', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:49:36', '2022-10-22 10:49:36'), - (735, 1, 1, '管理员', '系统-部门管理', '查询部门树形列表 @author 卓大', '/department/treeList', 'net.lab1024.sa.admin.module.system.department.controller.DepartmentController.departmentTree', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:49:36', '2022-10-22 10:49:36'), - (736, 1, 1, '管理员', '系统-角色', '获取所有角色 @author 卓大', '/role/getAll', 'net.lab1024.sa.admin.module.system.role.controller.RoleController.getAllRole', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:54:10', '2022-10-22 10:54:10'), - (737, 1, 1, '管理员', '系统-角色-菜单', '获取角色关联菜单权限 @author 卓大', '/role/menu/getRoleSelectedMenu/1', 'net.lab1024.sa.admin.module.system.role.controller.RoleMenuController.getRoleSelectedMenu', '[1]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:54:10', '2022-10-22 10:54:10'), - (738, 1, 1, '管理员', '系统-角色-菜单', '获取角色关联菜单权限 @author 卓大', '/role/menu/getRoleSelectedMenu/34', 'net.lab1024.sa.admin.module.system.role.controller.RoleMenuController.getRoleSelectedMenu', '[34]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:54:12', '2022-10-22 10:54:12'), - (739, 1, 1, '管理员', '系统-角色-菜单', '获取角色关联菜单权限 @author 卓大', '/role/menu/getRoleSelectedMenu/35', 'net.lab1024.sa.admin.module.system.role.controller.RoleMenuController.getRoleSelectedMenu', '[35]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:54:12', '2022-10-22 10:54:12'), - (740, 1, 1, '管理员', '系统-角色-菜单', '获取角色关联菜单权限 @author 卓大', '/role/menu/getRoleSelectedMenu/1', 'net.lab1024.sa.admin.module.system.role.controller.RoleMenuController.getRoleSelectedMenu', '[1]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:54:13', '2022-10-22 10:54:13'), - (741, 1, 1, '管理员', '系统-角色-菜单', '更新角色权限 @author 卓大', '/role/menu/updateRoleMenu', 'net.lab1024.sa.admin.module.system.role.controller.RoleMenuController.updateRoleMenu', '[{"menuIdList":[45,46,86,87,88,91,92,93,94,95,96,76,97,98,99,100,101,102,103,104,26,40,105,106,108,50,130,157,158,193,200,122,111,143],"roleId":1}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:54:28', '2022-10-22 10:54:28'), - (742, 1, 1, '管理员', '系统-系统-数据范围', '获取当前系统所配置的所有数据范围 @author 罗伊', '/dataScope/list', 'net.lab1024.sa.admin.module.system.datascope.DataScopeController.dataScopeList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:54:30', '2022-10-22 10:54:30'), - (743, 1, 1, '管理员', '系统-角色-数据范围', '获取某角色所设置的数据范围 @author 卓大', '/role/dataScope/getRoleDataScopeList/1', 'net.lab1024.sa.admin.module.system.role.controller.RoleDataScopeController.dataScopeListByRole', '[1]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:54:30', '2022-10-22 10:54:30'), - (744, 1, 1, '管理员', '系统-角色-员工', '查询某个角色下的员工列表 @author 卓大', '/role/employee/queryEmployee', 'net.lab1024.sa.admin.module.system.role.controller.RoleEmployeeController.queryEmployee', '[{"pageNum":1,"pageSize":15,"roleId":"1"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:54:30', '2022-10-22 10:54:30'), - (745, 1, 1, '管理员', '系统-角色-员工', '获取某个角色下的所有员工列表(无分页) @author 卓大', '/role/employee/getAllEmployeeByRoleId/1', 'net.lab1024.sa.admin.module.system.role.controller.RoleEmployeeController.listAllEmployeeRoleId', '[1]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:54:32', '2022-10-22 10:54:32'), - (746, 1, 1, '管理员', '系统-部门管理', '查询部门树形列表 @author 卓大', '/department/treeList', 'net.lab1024.sa.admin.module.system.department.controller.DepartmentController.departmentTree', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:54:32', '2022-10-22 10:54:32'), - (747, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:54:32', '2022-10-22 10:54:32'), - (748, 1, 1, '管理员', '系统-角色-员工', '角色成员列表中批量添加员工 @author 卓大', '/role/employee/batchAddRoleEmployee', 'net.lab1024.sa.admin.module.system.role.controller.RoleEmployeeController.addEmployeeList', '[{"employeeIdList":[44],"roleId":1}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:54:35', '2022-10-22 10:54:35'), - (749, 1, 1, '管理员', '系统-角色-员工', '查询某个角色下的员工列表 @author 卓大', '/role/employee/queryEmployee', 'net.lab1024.sa.admin.module.system.role.controller.RoleEmployeeController.queryEmployee', '[{"pageNum":1,"pageSize":15,"roleId":"1"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:54:35', '2022-10-22 10:54:35'), - (750, 44, 1, '卓大', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 1, NULL, '2022-10-22 10:54:55', '2022-10-22 10:54:55'), - (751, 44, 1, '卓大', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 1, NULL, '2022-10-22 10:54:57', '2022-10-22 10:54:57'), - (752, 44, 1, '卓大', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 1, NULL, '2022-10-22 10:55:11', '2022-10-22 10:55:11'), - (753, 44, 1, '卓大', '系统-部门管理', '查询部门列表 @author 卓大', '/department/listAll', 'net.lab1024.sa.admin.module.system.department.controller.DepartmentController.listAll', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 1, NULL, '2022-10-22 10:55:21', '2022-10-22 10:55:21'), - (754, 44, 1, '卓大', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 1, NULL, '2022-10-22 10:55:21', '2022-10-22 10:55:21'), - (755, 44, 1, '卓大', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"departmentId":1,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 1, NULL, '2022-10-22 10:55:21', '2022-10-22 10:55:21'), - (756, 44, 1, '卓大', '系统-部门管理', '查询部门列表 @author 卓大', '/department/listAll', 'net.lab1024.sa.admin.module.system.department.controller.DepartmentController.listAll', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 1, NULL, '2022-10-22 10:56:36', '2022-10-22 10:56:36'), - (757, 44, 1, '卓大', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 1, NULL, '2022-10-22 10:56:36', '2022-10-22 10:56:36'), - (758, 44, 1, '卓大', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"departmentId":1,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 1, NULL, '2022-10-22 10:56:36', '2022-10-22 10:56:36'), - (759, 44, 1, '卓大', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 1, NULL, '2022-10-22 10:56:42', '2022-10-22 10:56:42'), - (760, 44, 1, '卓大', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 1, NULL, '2022-10-22 10:56:48', '2022-10-22 10:56:48'), - (761, 1, 1, '管理员', '系统-角色', '获取所有角色 @author 卓大', '/role/getAll', 'net.lab1024.sa.admin.module.system.role.controller.RoleController.getAllRole', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:57:15', '2022-10-22 10:57:15'), - (762, 1, 1, '管理员', '系统-角色-菜单', '获取角色关联菜单权限 @author 卓大', '/role/menu/getRoleSelectedMenu/1', 'net.lab1024.sa.admin.module.system.role.controller.RoleMenuController.getRoleSelectedMenu', '[1]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 10:57:16', '2022-10-22 10:57:16'), - (763, 44, 1, '卓大', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 1, NULL, '2022-10-22 10:57:16', '2022-10-22 10:57:16'), - (764, 44, 1, '卓大', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 1, NULL, '2022-10-22 10:58:43', '2022-10-22 10:58:43'), - (765, 1, 1, '管理员', '系统-角色', '获取所有角色 @author 卓大', '/role/getAll', 'net.lab1024.sa.admin.module.system.role.controller.RoleController.getAllRole', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 11:03:05', '2022-10-22 11:03:05'), - (766, 44, 1, '卓大', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 1, NULL, '2022-10-22 11:03:06', '2022-10-22 11:03:06'), - (767, 1, 1, '管理员', '系统-角色-菜单', '获取角色关联菜单权限 @author 卓大', '/role/menu/getRoleSelectedMenu/1', 'net.lab1024.sa.admin.module.system.role.controller.RoleMenuController.getRoleSelectedMenu', '[1]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 11:03:06', '2022-10-22 11:03:06'), - (768, 44, 1, '卓大', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 1, NULL, '2022-10-22 11:03:10', '2022-10-22 11:03:10'), - (769, 44, 1, '卓大', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 1, NULL, '2022-10-22 11:03:10', '2022-10-22 11:03:10'), - (770, 44, 1, '卓大', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 1, NULL, '2022-10-22 11:03:10', '2022-10-22 11:03:10'), - (771, 44, 1, '卓大', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 1, NULL, '2022-10-22 11:03:20', '2022-10-22 11:03:20'), - (772, 44, 1, '卓大', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 1, NULL, '2022-10-22 11:03:20', '2022-10-22 11:03:20'), - (773, 44, 1, '卓大', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 1, NULL, '2022-10-22 11:07:41', '2022-10-22 11:07:41'), - (774, 44, 1, '卓大', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 1, NULL, '2022-10-22 11:16:18', '2022-10-22 11:16:18'), - (775, 44, 1, '卓大', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 1, NULL, '2022-10-22 11:16:20', '2022-10-22 11:16:20'), - (776, 44, 1, '卓大', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 1, NULL, '2022-10-22 11:16:20', '2022-10-22 11:16:20'), - (777, 44, 1, '卓大', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 1, NULL, '2022-10-22 11:16:20', '2022-10-22 11:16:20'), - (778, 44, 1, '卓大', '系统-菜单', '更新菜单 @author 卓大', '/menu/update', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.updateMenu', '[{"apiPermsList":[],"cacheFlag":false,"disabledFlag":false,"frameFlag":false,"icon":"UserSwitchOutlined","menuId":45,"menuName":"部门员工","menuType":1,"parentId":0,"path":"/organization","sort":100,"updateUserId":44,"visibleFlag":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 1, NULL, '2022-10-22 11:19:50', '2022-10-22 11:19:50'), - (779, 44, 1, '卓大', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 1, NULL, '2022-10-22 11:19:50', '2022-10-22 11:19:50'), - (780, 44, 1, '卓大', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 1, NULL, '2022-10-22 11:20:07', '2022-10-22 11:20:07'), - (781, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 11:20:57', '2022-10-22 11:20:57'), - (782, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 11:21:07', '2022-10-22 11:21:07'), - (783, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 11:21:07', '2022-10-22 11:21:07'), - (784, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 11:21:07', '2022-10-22 11:21:07'), - (785, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 11:21:07', '2022-10-22 11:21:07'), - (786, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 11:21:08', '2022-10-22 11:21:08'), - (787, 1, 1, '管理员', '系统-菜单', '更新菜单 @author 卓大', '/menu/update', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.updateMenu', '[{"apiPermsList":[],"cacheFlag":false,"disabledFlag":false,"frameFlag":false,"menuId":200,"menuName":"查询","menuType":3,"parentId":193,"permsType":1,"updateUserId":1,"visibleFlag":true,"webPerms":"support:file:query"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 11:21:10', '2022-10-22 11:21:10'), - (788, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 11:21:10', '2022-10-22 11:21:10'), - (789, 44, 1, '卓大', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 1, NULL, '2022-10-22 11:21:43', '2022-10-22 11:21:43'), - (790, 44, 1, '卓大', '系统-部门管理', '查询部门列表 @author 卓大', '/department/listAll', 'net.lab1024.sa.admin.module.system.department.controller.DepartmentController.listAll', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 1, NULL, '2022-10-22 11:21:44', '2022-10-22 11:21:44'), - (791, 44, 1, '卓大', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 1, NULL, '2022-10-22 11:21:45', '2022-10-22 11:21:45'), - (792, 44, 1, '卓大', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"departmentId":1,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 1, NULL, '2022-10-22 11:21:45', '2022-10-22 11:21:45'), - (793, 44, 1, '卓大', '系统-角色', '获取所有角色 @author 卓大', '/role/getAll', 'net.lab1024.sa.admin.module.system.role.controller.RoleController.getAllRole', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 1, NULL, '2022-10-22 11:21:45', '2022-10-22 11:21:45'), - (794, 44, 1, '卓大', '系统-角色-菜单', '获取角色关联菜单权限 @author 卓大', '/role/menu/getRoleSelectedMenu/1', 'net.lab1024.sa.admin.module.system.role.controller.RoleMenuController.getRoleSelectedMenu', '[1]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 1, NULL, '2022-10-22 11:21:45', '2022-10-22 11:21:45'), - (795, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 11:27:51', '2022-10-22 11:27:51'), - (796, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 11:27:51', '2022-10-22 11:27:51'), - (797, 1, 1, '管理员', '系统-菜单', '更新菜单 @author 卓大', '/menu/update', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.updateMenu', '[{"apiPermsList":[],"cacheFlag":false,"component":"/support/code-generator/code-generator-list.vue","disabledFlag":false,"frameFlag":false,"icon":"CoffeeOutlined","menuId":151,"menuName":"代码生成","menuType":2,"parentId":0,"path":"/support/code-generator","sort":600,"updateUserId":1,"visibleFlag":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 11:27:58', '2022-10-22 11:27:58'), - (798, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 11:27:58', '2022-10-22 11:27:58'), - (799, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 11:27:58', '2022-10-22 11:27:58'), - (800, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 11:28:05', '2022-10-22 11:28:05'), - (801, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 11:28:05', '2022-10-22 11:28:05'), - (802, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 11:28:08', '2022-10-22 11:28:08'), - (803, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 11:29:25', '2022-10-22 11:29:25'), - (804, 1, 1, '管理员', '系统-菜单', '添加菜单 @author 卓大', '/menu/add', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.addMenu', '[{"cacheFlag":false,"createUserId":1,"disabledFlag":false,"frameFlag":false,"menuName":"更新","menuType":3,"parentId":152,"permsType":1,"visibleFlag":true,"webPerms":"changeLog:update"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 11:51:32', '2022-10-22 11:51:32'), - (805, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 11:51:32', '2022-10-22 11:51:32'), - (806, 44, 1, '卓大', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 1, NULL, '2022-10-22 11:56:11', '2022-10-22 11:56:11'), - (807, 44, 1, '卓大', '系统-部门管理', '查询部门列表 @author 卓大', '/department/listAll', 'net.lab1024.sa.admin.module.system.department.controller.DepartmentController.listAll', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 1, NULL, '2022-10-22 11:56:14', '2022-10-22 11:56:14'), - (808, 44, 1, '卓大', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 1, NULL, '2022-10-22 11:56:14', '2022-10-22 11:56:14'), - (809, 44, 1, '卓大', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"departmentId":1,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 1, NULL, '2022-10-22 11:56:14', '2022-10-22 11:56:14'), - (810, 44, 1, '卓大', '系统-角色', '获取所有角色 @author 卓大', '/role/getAll', 'net.lab1024.sa.admin.module.system.role.controller.RoleController.getAllRole', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 1, NULL, '2022-10-22 11:56:16', '2022-10-22 11:56:16'), - (811, 44, 1, '卓大', '系统-角色-菜单', '获取角色关联菜单权限 @author 卓大', '/role/menu/getRoleSelectedMenu/1', 'net.lab1024.sa.admin.module.system.role.controller.RoleMenuController.getRoleSelectedMenu', '[1]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 1, NULL, '2022-10-22 11:56:16', '2022-10-22 11:56:16'), - (812, 44, 1, '卓大', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 1, NULL, '2022-10-22 11:56:17', '2022-10-22 11:56:17'), - (813, 44, 1, '卓大', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 1, NULL, '2022-10-22 11:56:18', '2022-10-22 11:56:18'), - (814, 44, 1, '卓大', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 1, NULL, '2022-10-22 11:56:18', '2022-10-22 11:56:18'), - (815, 44, 1, '卓大', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 1, NULL, '2022-10-22 11:56:18', '2022-10-22 11:56:18'), - (816, 44, 1, '卓大', '系统-菜单', '更新菜单 @author 卓大', '/menu/update', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.updateMenu', '[{"apiPermsList":[],"cacheFlag":false,"disabledFlag":false,"frameFlag":false,"icon":"UserSwitchOutlined","menuId":45,"menuName":"部门员工","menuType":1,"parentId":0,"path":"/organization","sort":100,"updateUserId":44,"visibleFlag":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 1, NULL, '2022-10-22 11:56:19', '2022-10-22 11:56:19'), - (817, 44, 1, '卓大', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 1, NULL, '2022-10-22 11:56:20', '2022-10-22 11:56:20'), - (818, 1, 1, '管理员', '系统-部门管理', '查询部门树形列表 @author 卓大', '/department/treeList', 'net.lab1024.sa.admin.module.system.department.controller.DepartmentController.departmentTree', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 14:42:06', '2022-10-22 14:42:06'), - (819, 44, 1, '卓大', 'OA办公-企业', '分页查询企业模块 @author 开云', '/oa/enterprise/page/query', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.queryByPage', '[{"deletedFlag":false,"keywords":"","pageNum":1,"pageSize":15,"searchCount":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 1, NULL, '2022-10-22 14:56:22', '2022-10-22 14:56:22'), - (820, 44, 1, '卓大', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 1, NULL, '2022-10-22 14:56:25', '2022-10-22 14:56:25'), - (821, 44, 1, '卓大', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 1, NULL, '2022-10-22 14:56:26', '2022-10-22 14:56:26'), - (822, 44, 1, '卓大', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 1, NULL, '2022-10-22 14:56:26', '2022-10-22 14:56:26'), - (823, 44, 1, '卓大', 'OA办公-企业', '分页查询企业模块 @author 开云', '/oa/enterprise/page/query', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.queryByPage', '[{"deletedFlag":false,"keywords":"","pageNum":1,"pageSize":15,"searchCount":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 1, NULL, '2022-10-22 14:56:30', '2022-10-22 14:56:30'), - (824, 44, 1, '卓大', 'OA办公-企业', '新建企业 @author 开云', '/oa/enterprise/create', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.createEnterprise', '[{"address":"1024大楼","city":410300,"cityName":"洛阳市","contact":"卓大","contactPhone":"18637925892","createUserId":44,"createUserName":"卓大","disabledFlag":false,"district":410311,"districtName":"洛龙区","email":"lab1024@163.com","enterpriseLogo":"public/common/fb827d63dda74a60ab8b4f70cc7c7d0a_20221022145641_jpg","enterpriseName":"1024创新实验室","province":410000,"provinceName":"河南省","type":1,"unifiedSocialCreditCode":"1024lab"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 1, NULL, '2022-10-22 14:57:36', '2022-10-22 14:57:36'), - (825, 44, 1, '卓大', 'OA办公-企业', '分页查询企业模块 @author 开云', '/oa/enterprise/page/query', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.queryByPage', '[{"deletedFlag":false,"keywords":"","pageNum":1,"pageSize":15,"searchCount":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36 Edg/106.0.1370.47', 1, NULL, '2022-10-22 14:57:37', '2022-10-22 14:57:37'), - (826, 1, 1, '管理员', 'OA办公-企业', '分页查询企业模块 @author 开云', '/oa/enterprise/page/query', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.queryByPage', '[{"deletedFlag":false,"keywords":"","pageNum":1,"pageSize":15,"searchCount":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 17:00:49', '2022-10-22 17:00:49'), - (827, 1, 1, '管理员', 'OA办公-企业', '分页查询企业模块 @author 开云', '/oa/enterprise/page/query', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.queryByPage', '[{"deletedFlag":false,"keywords":"","pageNum":1,"pageSize":15,"searchCount":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 17:02:36', '2022-10-22 17:02:36'), - (828, 1, 1, '管理员', 'OA办公-企业', '新建企业 @author 开云', '/oa/enterprise/create', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.createEnterprise', '[{"address":"区块链大楼","businessLicense":"public/common/852b7e19bef94af39c1a6156edf47cfb_20221022170332_jpg","city":410300,"cityName":"洛阳市","contact":"开云","contactPhone":"18637925892","createUserId":1,"createUserName":"管理员","disabledFlag":false,"district":410311,"districtName":"洛龙区","enterpriseLogo":"public/common/f4a76fa720814949a610f05f6f9545bf_20221022170256_jpg","enterpriseName":"1024创新区块链实验室","province":410000,"provinceName":"河南省","type":1,"unifiedSocialCreditCode":"1024lab_block"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 17:03:35', '2022-10-22 17:03:35'), - (829, 1, 1, '管理员', 'OA办公-企业', '分页查询企业模块 @author 开云', '/oa/enterprise/page/query', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.queryByPage', '[{"deletedFlag":false,"keywords":"","pageNum":1,"pageSize":15,"searchCount":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 17:03:35', '2022-10-22 17:03:35'), - (830, 1, 1, '管理员', 'OA办公-企业', '分页查询企业模块 @author 开云', '/oa/enterprise/page/query', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.queryByPage', '[{"deletedFlag":false,"keywords":"","pageNum":1,"pageSize":15,"searchCount":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 17:04:03', '2022-10-22 17:04:03'), - (831, 1, 1, '管理员', 'OA办公-企业', '分页查询企业模块 @author 开云', '/oa/enterprise/page/query', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.queryByPage', '[{"deletedFlag":false,"keywords":"","pageNum":1,"pageSize":15,"searchCount":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 17:04:19', '2022-10-22 17:04:19'), - (832, 1, 1, '管理员', 'OA办公-企业', '查询企业详情 @author 开云', '/oa/enterprise/get/2', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.getDetail', '[2]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 17:04:24', '2022-10-22 17:04:24'), - (833, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 17:04:24', '2022-10-22 17:04:24'), - (834, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 17:04:43', '2022-10-22 17:04:43'), - (835, 1, 1, '管理员', 'OA办公-企业', '企业查询员工 @author 罗伊', '/oa/enterprise/employee/list', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.employeeList', '[[2]]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 17:04:56', '2022-10-22 17:04:56'), - (836, 1, 1, '管理员', '系统-部门管理', '查询部门树形列表 @author 卓大', '/department/treeList', 'net.lab1024.sa.admin.module.system.department.controller.DepartmentController.departmentTree', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 17:04:56', '2022-10-22 17:04:56'), - (837, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 17:04:56', '2022-10-22 17:04:56'), - (838, 1, 1, '管理员', 'OA办公-企业', '企业查询员工 @author 罗伊', '/oa/enterprise/employee/list', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.employeeList', '[[2]]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 17:07:25', '2022-10-22 17:07:25'), - (839, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 17:07:26', '2022-10-22 17:07:26'), - (840, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 17:07:32', '2022-10-22 17:07:32'), - (841, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 17:11:13', '2022-10-22 17:11:13'), - (842, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 17:11:13', '2022-10-22 17:11:13'), - (843, 1, 1, '管理员', 'OA办公-企业', '查询企业详情 @author 开云', '/oa/enterprise/get/2', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.getDetail', '[2]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 17:53:33', '2022-10-22 17:53:33'), - (844, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 17:53:33', '2022-10-22 17:53:33'), - (845, 1, 1, '管理员', 'OA办公-企业', '查询企业详情 @author 开云', '/oa/enterprise/get/2', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.getDetail', '[2]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 17:53:35', '2022-10-22 17:53:35'), - (846, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 17:53:35', '2022-10-22 17:53:35'), - (847, 1, 1, '管理员', 'OA办公-企业', '查询企业详情 @author 开云', '/oa/enterprise/get/2', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.getDetail', '[2]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 17:53:37', '2022-10-22 17:53:37'), - (848, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 17:53:37', '2022-10-22 17:53:37'), - (849, 1, 1, '管理员', 'OA办公-企业', '查询企业详情 @author 开云', '/oa/enterprise/get/2', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.getDetail', '[2]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 17:53:56', '2022-10-22 17:53:56'), - (850, 1, 1, '管理员', 'OA办公-企业', '分页查询企业员工 @author 卓大', '/oa/enterprise/employee/queryPage', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.queryPageEmployeeList', '[{"enterpriseId":2,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 0, 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'from t_oa_enterprise_employee\n left join t_oa_enterprise on t_oa_enterpr\' at line 6\r\n### The error may exist in file [E:\\code\\transport-projects\\yuxin-tms\\1024lab-tms-service\\sa-admin\\target\\classes\\mapper\\business\\oa\\enterprise\\EnterpriseEmployeeMapper.xml]\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) FROM (select t_oa_enterprise_employee.*, t_oa_enterprise.enterprise_name, t_employee.*, t_employee.actual_name as employeeName, from t_oa_enterprise_employee left join t_oa_enterprise on t_oa_enterprise_employee.enterprise_id = t_oa_enterprise.enterprise_id left join t_employee on t_oa_enterprise_employee.employee_id = t_employee.employee_id where t_oa_enterprise_employee.enterprise_id = ?) TOTAL\r\n### Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'from t_oa_enterprise_employee\n left join t_oa_enterprise on t_oa_enterpr\' at line 6\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'from t_oa_enterprise_employee\n left join t_oa_enterprise on t_oa_enterpr\' at line 6\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:239)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:88)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:440)\r\n at com.sun.proxy.$Proxy114.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:223)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:173)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:78)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy171.queryPageEmployeeList(Unknown Source)\r\n at net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseService.queryPageEmployeeList(EnterpriseService.java:246)\r\n at net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseService$$FastClassBySpringCGLIB$$1.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:779)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at com.alibaba.druid.support.spring.stat.DruidStatInterceptor.invoke(DruidStatInterceptor.java:73)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:692)\r\n at net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseService$$EnhancerBySpringCGLIB$$1.queryPageEmployeeList()\r\n at net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.queryPageEmployeeList(EnterpriseController.java:105)\r\n at net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController$$FastClassBySpringCGLIB$$1.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:779)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.aspectj.AspectJAfterThrowingAdvice.invoke(AspectJAfterThrowingAdvice.java:64)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.adapter.AfterReturningAdviceInterceptor.invoke(AfterReturningAdviceInterceptor.java:57)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:692)\r\n at net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController$$EnhancerBySpringCGLIB$$1.queryPageEmployeeList()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:197)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:141)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:894)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1063)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:681)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:228)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:113)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:84)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:121)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:105)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at net.lab1024.sa.common.common.security.SecurityTokenFilter.doFilterInternal(SecurityTokenFilter.java:62)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)\r\n at org.apache.catalina.core.StandardContextValve.__invoke(StandardContextValve.java:97)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:41002)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)\r\n at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1723)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'from t_oa_enterprise_employee\n left join t_oa_enterprise on t_oa_enterpr\' at line 6\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:953)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:370)\r\n at com.p6spy.engine.wrapper.PreparedStatementWrapper.execute(PreparedStatementWrapper.java:362)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3461)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3459)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3459)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:167)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:497)\r\n at sun.reflect.GeneratedMethodAccessor258.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\r\n at com.sun.proxy.$Proxy159.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:64)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)\r\n at sun.reflect.GeneratedMethodAccessor268.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n at com.sun.proxy.$Proxy157.query(Unknown Source)\r\n at com.baomidou.mybatisplus.core.executor.MybatisSimpleExecutor.doQuery(MybatisSimpleExecutor.java:69)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)\r\n at com.baomidou.mybatisplus.core.executor.MybatisCachingExecutor.query(MybatisCachingExecutor.java:165)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:134)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:59)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy155.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor255.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at net.lab1024.sa.admin.module.system.datascope.MyBatisPlugin.intercept(MyBatisPlugin.java:64)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy155.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)\r\n at sun.reflect.GeneratedMethodAccessor281.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426)\r\n ... 137 more\r\n', '2022-10-22 17:54:08', '2022-10-22 17:54:08'), - (851, 1, 1, '管理员', 'OA办公-企业', '分页查询企业员工 @author 卓大', '/oa/enterprise/employee/queryPage', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.queryPageEmployeeList', '[{"enterpriseId":2,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 0, 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'from t_oa_enterprise_employee\n left join t_oa_enterprise on t_oa_enterpr\' at line 6\r\n### The error may exist in file [E:\\code\\transport-projects\\yuxin-tms\\1024lab-tms-service\\sa-admin\\target\\classes\\mapper\\business\\oa\\enterprise\\EnterpriseEmployeeMapper.xml]\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) FROM (select t_oa_enterprise_employee.*, t_oa_enterprise.enterprise_name, t_employee.*, t_employee.actual_name as employeeName, from t_oa_enterprise_employee left join t_oa_enterprise on t_oa_enterprise_employee.enterprise_id = t_oa_enterprise.enterprise_id left join t_employee on t_oa_enterprise_employee.employee_id = t_employee.employee_id where t_oa_enterprise_employee.enterprise_id = ?) TOTAL\r\n### Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'from t_oa_enterprise_employee\n left join t_oa_enterprise on t_oa_enterpr\' at line 6\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'from t_oa_enterprise_employee\n left join t_oa_enterprise on t_oa_enterpr\' at line 6\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:239)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:88)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:440)\r\n at com.sun.proxy.$Proxy114.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:223)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:173)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:78)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy171.queryPageEmployeeList(Unknown Source)\r\n at net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseService.queryPageEmployeeList(EnterpriseService.java:246)\r\n at net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseService$$FastClassBySpringCGLIB$$1.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:779)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at com.alibaba.druid.support.spring.stat.DruidStatInterceptor.invoke(DruidStatInterceptor.java:73)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:692)\r\n at net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseService$$EnhancerBySpringCGLIB$$1.queryPageEmployeeList()\r\n at net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.queryPageEmployeeList(EnterpriseController.java:105)\r\n at net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController$$FastClassBySpringCGLIB$$1.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:779)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.aspectj.AspectJAfterThrowingAdvice.invoke(AspectJAfterThrowingAdvice.java:64)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.adapter.AfterReturningAdviceInterceptor.invoke(AfterReturningAdviceInterceptor.java:57)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:692)\r\n at net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController$$EnhancerBySpringCGLIB$$1.queryPageEmployeeList()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:197)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:141)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:894)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1063)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:681)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:228)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:113)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:84)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:121)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:105)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at net.lab1024.sa.common.common.security.SecurityTokenFilter.doFilterInternal(SecurityTokenFilter.java:62)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)\r\n at org.apache.catalina.core.StandardContextValve.__invoke(StandardContextValve.java:97)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:41002)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)\r\n at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1723)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'from t_oa_enterprise_employee\n left join t_oa_enterprise on t_oa_enterpr\' at line 6\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:953)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:370)\r\n at com.p6spy.engine.wrapper.PreparedStatementWrapper.execute(PreparedStatementWrapper.java:362)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3461)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3459)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3459)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:167)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:497)\r\n at sun.reflect.GeneratedMethodAccessor258.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\r\n at com.sun.proxy.$Proxy159.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:64)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)\r\n at sun.reflect.GeneratedMethodAccessor268.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n at com.sun.proxy.$Proxy157.query(Unknown Source)\r\n at com.baomidou.mybatisplus.core.executor.MybatisSimpleExecutor.doQuery(MybatisSimpleExecutor.java:69)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)\r\n at com.baomidou.mybatisplus.core.executor.MybatisCachingExecutor.query(MybatisCachingExecutor.java:165)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:134)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:59)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy155.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor255.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at net.lab1024.sa.admin.module.system.datascope.MyBatisPlugin.intercept(MyBatisPlugin.java:64)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy155.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)\r\n at sun.reflect.GeneratedMethodAccessor281.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426)\r\n ... 137 more\r\n', '2022-10-22 17:54:09', '2022-10-22 17:54:09'), - (852, 1, 1, '管理员', 'OA办公-企业', '查询企业详情 @author 开云', '/oa/enterprise/get/2', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.getDetail', '[2]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 17:54:16', '2022-10-22 17:54:16'), - (853, 1, 1, '管理员', 'OA办公-企业', '分页查询企业员工 @author 卓大', '/oa/enterprise/employee/queryPage', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.queryPageEmployeeList', '[{"enterpriseId":2,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 0, 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'from t_oa_enterprise_employee\n left join t_oa_enterprise on t_oa_enterpr\' at line 6\r\n### The error may exist in file [E:\\code\\transport-projects\\yuxin-tms\\1024lab-tms-service\\sa-admin\\target\\classes\\mapper\\business\\oa\\enterprise\\EnterpriseEmployeeMapper.xml]\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: SELECT COUNT(*) FROM (select t_oa_enterprise_employee.*, t_oa_enterprise.enterprise_name, t_employee.*, t_employee.actual_name as employeeName, from t_oa_enterprise_employee left join t_oa_enterprise on t_oa_enterprise_employee.enterprise_id = t_oa_enterprise.enterprise_id left join t_employee on t_oa_enterprise_employee.employee_id = t_employee.employee_id where t_oa_enterprise_employee.enterprise_id = ?) TOTAL\r\n### Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'from t_oa_enterprise_employee\n left join t_oa_enterprise on t_oa_enterpr\' at line 6\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'from t_oa_enterprise_employee\n left join t_oa_enterprise on t_oa_enterpr\' at line 6\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:239)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:88)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:440)\r\n at com.sun.proxy.$Proxy114.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:223)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:173)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:78)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy171.queryPageEmployeeList(Unknown Source)\r\n at net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseService.queryPageEmployeeList(EnterpriseService.java:246)\r\n at net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseService$$FastClassBySpringCGLIB$$1.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:779)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at com.alibaba.druid.support.spring.stat.DruidStatInterceptor.invoke(DruidStatInterceptor.java:73)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:692)\r\n at net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseService$$EnhancerBySpringCGLIB$$1.queryPageEmployeeList()\r\n at net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.queryPageEmployeeList(EnterpriseController.java:105)\r\n at net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController$$FastClassBySpringCGLIB$$1.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:779)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.aspectj.AspectJAfterThrowingAdvice.invoke(AspectJAfterThrowingAdvice.java:64)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.adapter.AfterReturningAdviceInterceptor.invoke(AfterReturningAdviceInterceptor.java:57)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:692)\r\n at net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController$$EnhancerBySpringCGLIB$$1.queryPageEmployeeList()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:197)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:141)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:894)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1063)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:681)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:228)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:113)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:84)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:121)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:105)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at net.lab1024.sa.common.common.security.SecurityTokenFilter.doFilterInternal(SecurityTokenFilter.java:62)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)\r\n at org.apache.catalina.core.StandardContextValve.__invoke(StandardContextValve.java:97)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:41002)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)\r\n at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1723)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'from t_oa_enterprise_employee\n left join t_oa_enterprise on t_oa_enterpr\' at line 6\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:953)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:370)\r\n at com.p6spy.engine.wrapper.PreparedStatementWrapper.execute(PreparedStatementWrapper.java:362)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3461)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3459)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3459)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:167)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:497)\r\n at sun.reflect.GeneratedMethodAccessor258.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\r\n at com.sun.proxy.$Proxy159.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:64)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)\r\n at sun.reflect.GeneratedMethodAccessor268.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n at com.sun.proxy.$Proxy157.query(Unknown Source)\r\n at com.baomidou.mybatisplus.core.executor.MybatisSimpleExecutor.doQuery(MybatisSimpleExecutor.java:69)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)\r\n at com.baomidou.mybatisplus.core.executor.MybatisCachingExecutor.query(MybatisCachingExecutor.java:165)\r\n at com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor.willDoQuery(PaginationInnerInterceptor.java:134)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:59)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy155.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor255.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at net.lab1024.sa.admin.module.system.datascope.MyBatisPlugin.intercept(MyBatisPlugin.java:64)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy155.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)\r\n at sun.reflect.GeneratedMethodAccessor281.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426)\r\n ... 137 more\r\n', '2022-10-22 17:54:16', '2022-10-22 17:54:16'), - (854, 1, 1, '管理员', 'OA办公-企业', '分页查询企业员工 @author 卓大', '/oa/enterprise/employee/queryPage', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.queryPageEmployeeList', '[{"enterpriseId":2,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 17:55:15', '2022-10-22 17:55:15'), - (855, 1, 1, '管理员', 'OA办公-企业', '查询企业详情 @author 开云', '/oa/enterprise/get/2', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.getDetail', '[2]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 17:55:15', '2022-10-22 17:55:15'), - (856, 1, 1, '管理员', 'OA办公-企业', '查询企业全部员工 @author 罗伊', '/oa/enterprise/employee/list', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.employeeList', '[[2]]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 0, 'org.springframework.jdbc.BadSqlGrammarException: \r\n### Error querying database. Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'from t_oa_enterprise_employee\n left join t_oa_enterprise on t_oa_enterpr\' at line 6\r\n### The error may exist in file [E:\\code\\transport-projects\\yuxin-tms\\1024lab-tms-service\\sa-admin\\target\\classes\\mapper\\business\\oa\\enterprise\\EnterpriseEmployeeMapper.xml]\r\n### The error may involve defaultParameterMap\r\n### The error occurred while setting parameters\r\n### SQL: select t_oa_enterprise_employee.*, t_oa_enterprise.enterprise_name, t_employee.*, t_employee.actual_name as employeeName, from t_oa_enterprise_employee left join t_oa_enterprise on t_oa_enterprise_employee.enterprise_id = t_oa_enterprise.enterprise_id left join t_employee on t_oa_enterprise_employee.employee_id = t_employee.employee_id where t_oa_enterprise_employee.enterprise_id in ( ? )\r\n### Cause: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'from t_oa_enterprise_employee\n left join t_oa_enterprise on t_oa_enterpr\' at line 6\n; bad SQL grammar []; nested exception is java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'from t_oa_enterprise_employee\n left join t_oa_enterprise on t_oa_enterpr\' at line 6\r\n at org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator.doTranslate(SQLErrorCodeSQLExceptionTranslator.java:239)\r\n at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:70)\r\n at org.mybatis.spring.MyBatisExceptionTranslator.translateExceptionIfPossible(MyBatisExceptionTranslator.java:88)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:440)\r\n at com.sun.proxy.$Proxy114.selectList(Unknown Source)\r\n at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:223)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:173)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:78)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)\r\n at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)\r\n at com.sun.proxy.$Proxy171.selectByEnterpriseIdList(Unknown Source)\r\n at net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseService.employeeList(EnterpriseService.java:234)\r\n at net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseService$$FastClassBySpringCGLIB$$1.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:779)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at com.alibaba.druid.support.spring.stat.DruidStatInterceptor.invoke(DruidStatInterceptor.java:73)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:692)\r\n at net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseService$$EnhancerBySpringCGLIB$$1.employeeList()\r\n at net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.employeeList(EnterpriseController.java:98)\r\n at net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController$$FastClassBySpringCGLIB$$1.invoke()\r\n at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:779)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.aspectj.AspectJAfterThrowingAdvice.invoke(AspectJAfterThrowingAdvice.java:64)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.adapter.AfterReturningAdviceInterceptor.invoke(AfterReturningAdviceInterceptor.java:57)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:175)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke(MethodSecurityInterceptor.java:61)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:97)\r\n at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)\r\n at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:750)\r\n at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:692)\r\n at net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController$$EnhancerBySpringCGLIB$$1.employeeList()\r\n at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\r\n at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:197)\r\n at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:141)\r\n at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:894)\r\n at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808)\r\n at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)\r\n at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1063)\r\n at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)\r\n at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)\r\n at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:681)\r\n at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)\r\n at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:228)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:113)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at com.alibaba.druid.support.http.WebStatFilter.doFilter(WebStatFilter.java:84)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:327)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:115)\r\n at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:121)\r\n at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:115)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:126)\r\n at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:81)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:105)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:149)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:63)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at net.lab1024.sa.common.common.security.SecurityTokenFilter.doFilterInternal(SecurityTokenFilter.java:62)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.web.filter.CorsFilter.doFilterInternal(CorsFilter.java:91)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:103)\r\n at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:89)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doHeadersAfter(HeaderWriterFilter.java:90)\r\n at org.springframework.security.web.header.HeaderWriterFilter.doFilterInternal(HeaderWriterFilter.java:75)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:110)\r\n at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:80)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:55)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:336)\r\n at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:211)\r\n at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:183)\r\n at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:358)\r\n at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:271)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:100)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201)\r\n at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119)\r\n at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190)\r\n at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163)\r\n at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)\r\n at org.apache.catalina.core.StandardContextValve.__invoke(StandardContextValve.java:97)\r\n at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:41002)\r\n at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)\r\n at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)\r\n at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)\r\n at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)\r\n at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)\r\n at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357)\r\n at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382)\r\n at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)\r\n at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893)\r\n at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1723)\r\n at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)\r\n at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\r\n at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\r\n at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)\r\n at java.lang.Thread.run(Thread.java:748)\r\nCaused by: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near \'from t_oa_enterprise_employee\n left join t_oa_enterprise on t_oa_enterpr\' at line 6\r\n at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)\r\n at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.executeInternal(ClientPreparedStatement.java:953)\r\n at com.mysql.cj.jdbc.ClientPreparedStatement.execute(ClientPreparedStatement.java:370)\r\n at com.p6spy.engine.wrapper.PreparedStatementWrapper.execute(PreparedStatementWrapper.java:362)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3461)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3459)\r\n at com.alibaba.druid.filter.FilterEventAdapter.preparedStatement_execute(FilterEventAdapter.java:440)\r\n at com.alibaba.druid.filter.FilterChainImpl.preparedStatement_execute(FilterChainImpl.java:3459)\r\n at com.alibaba.druid.proxy.jdbc.PreparedStatementProxyImpl.execute(PreparedStatementProxyImpl.java:167)\r\n at com.alibaba.druid.pool.DruidPooledPreparedStatement.execute(DruidPooledPreparedStatement.java:497)\r\n at sun.reflect.GeneratedMethodAccessor258.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.logging.jdbc.PreparedStatementLogger.invoke(PreparedStatementLogger.java:59)\r\n at com.sun.proxy.$Proxy159.execute(Unknown Source)\r\n at org.apache.ibatis.executor.statement.PreparedStatementHandler.query(PreparedStatementHandler.java:64)\r\n at org.apache.ibatis.executor.statement.RoutingStatementHandler.query(RoutingStatementHandler.java:79)\r\n at sun.reflect.GeneratedMethodAccessor268.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:63)\r\n at com.sun.proxy.$Proxy157.query(Unknown Source)\r\n at com.baomidou.mybatisplus.core.executor.MybatisSimpleExecutor.doQuery(MybatisSimpleExecutor.java:69)\r\n at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)\r\n at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)\r\n at com.baomidou.mybatisplus.core.executor.MybatisCachingExecutor.query(MybatisCachingExecutor.java:165)\r\n at com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor.intercept(MybatisPlusInterceptor.java:65)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy155.query(Unknown Source)\r\n at sun.reflect.GeneratedMethodAccessor255.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.apache.ibatis.plugin.Invocation.proceed(Invocation.java:49)\r\n at net.lab1024.sa.admin.module.system.datascope.MyBatisPlugin.intercept(MyBatisPlugin.java:64)\r\n at org.apache.ibatis.plugin.Plugin.invoke(Plugin.java:61)\r\n at com.sun.proxy.$Proxy155.query(Unknown Source)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)\r\n at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)\r\n at sun.reflect.GeneratedMethodAccessor281.invoke(Unknown Source)\r\n at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\r\n at java.lang.reflect.Method.invoke(Method.java:498)\r\n at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426)\r\n ... 137 more\r\n', '2022-10-22 17:55:17', '2022-10-22 17:55:17'), - (857, 1, 1, '管理员', 'OA办公-企业', '分页查询企业员工 @author 卓大', '/oa/enterprise/employee/queryPage', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.queryPageEmployeeList', '[{"enterpriseId":2,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 17:56:13', '2022-10-22 17:56:13'), - (858, 1, 1, '管理员', 'OA办公-企业', '查询企业全部员工 @author 罗伊', '/oa/enterprise/employee/list', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.employeeList', '[[2]]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 17:56:14', '2022-10-22 17:56:14'), - (859, 1, 1, '管理员', '系统-部门管理', '查询部门树形列表 @author 卓大', '/department/treeList', 'net.lab1024.sa.admin.module.system.department.controller.DepartmentController.departmentTree', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 17:56:14', '2022-10-22 17:56:14'), - (860, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 17:56:14', '2022-10-22 17:56:14'), - (861, 1, 1, '管理员', 'OA办公-企业', '查询企业详情 @author 开云', '/oa/enterprise/get/2', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.getDetail', '[2]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 17:57:40', '2022-10-22 17:57:40'), - (862, 1, 1, '管理员', 'OA办公-企业', '分页查询企业员工 @author 卓大', '/oa/enterprise/employee/queryPage', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.queryPageEmployeeList', '[{"enterpriseId":2,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 17:57:40', '2022-10-22 17:57:40'), - (863, 1, 1, '管理员', 'OA办公-企业', '查询企业详情 @author 开云', '/oa/enterprise/get/2', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.getDetail', '[2]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 17:57:40', '2022-10-22 17:57:40'), - (864, 1, 1, '管理员', 'OA办公-企业', '分页查询企业员工 @author 卓大', '/oa/enterprise/employee/queryPage', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.queryPageEmployeeList', '[{"enterpriseId":2,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 17:57:40', '2022-10-22 17:57:40'), - (865, 1, 1, '管理员', 'OA办公-企业', '分页查询企业员工 @author 卓大', '/oa/enterprise/employee/queryPage', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.queryPageEmployeeList', '[{"enterpriseId":2,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 17:57:45', '2022-10-22 17:57:45'), - (866, 1, 1, '管理员', 'OA办公-企业', '查询企业详情 @author 开云', '/oa/enterprise/get/2', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.getDetail', '[2]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 17:57:45', '2022-10-22 17:57:45'), - (867, 1, 1, '管理员', 'OA办公-企业', '查询企业全部员工 @author 罗伊', '/oa/enterprise/employee/list', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.employeeList', '[[2]]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 17:57:45', '2022-10-22 17:57:45'), - (868, 1, 1, '管理员', '系统-部门管理', '查询部门树形列表 @author 卓大', '/department/treeList', 'net.lab1024.sa.admin.module.system.department.controller.DepartmentController.departmentTree', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 17:57:46', '2022-10-22 17:57:46'), - (869, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 17:57:46', '2022-10-22 17:57:46'), - (870, 1, 1, '管理员', 'OA办公-企业', '企业添加员工 @author 罗伊', '/oa/enterprise/employee/add', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.addEmployee', '[{"employeeIdList":[2,44,47],"enterpriseId":2}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 17:57:50', '2022-10-22 17:57:50'), - (871, 1, 1, '管理员', 'OA办公-企业', '分页查询企业员工 @author 卓大', '/oa/enterprise/employee/queryPage', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.queryPageEmployeeList', '[{"enterpriseId":2,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 17:57:50', '2022-10-22 17:57:50'), - (872, 1, 1, '管理员', 'OA办公-企业', '企业删除员工 @author 罗伊', '/oa/enterprise/employee/delete', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.deleteEmployee', '[{"employeeIdList":[47],"enterpriseId":2}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 17:57:55', '2022-10-22 17:57:55'), - (873, 1, 1, '管理员', 'OA办公-企业', '分页查询企业员工 @author 卓大', '/oa/enterprise/employee/queryPage', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.queryPageEmployeeList', '[{"enterpriseId":2,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 17:57:55', '2022-10-22 17:57:55'), - (874, 1, 1, '管理员', 'OA办公-发票信息', '分页查询发票信息 @author 善逸', '/oa/invoice/page/query', 'net.lab1024.sa.admin.module.business.oa.invoice.InvoiceController.queryByPage', '[{"deletedFlag":false,"enterpriseId":2,"keywords":"","pageNum":1,"pageSize":15,"searchCount":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 17:59:21', '2022-10-22 17:59:21'), - (875, 1, 1, '管理员', 'OA办公-发票信息', '新建发票信息 @author 善逸', '/oa/invoice/create', 'net.lab1024.sa.admin.module.business.oa.invoice.InvoiceController.createInvoice', '[{"accountNumber":"1024lab","bankName":"中国银行","createUserId":1,"createUserName":"管理员","disabledFlag":false,"enterpriseId":2,"invoiceHeads":"1024创新实验室","remark":"","taxpayerIdentificationNumber":"1024lab"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 17:59:35', '2022-10-22 17:59:35'), - (876, 1, 1, '管理员', 'OA办公-发票信息', '分页查询发票信息 @author 善逸', '/oa/invoice/page/query', 'net.lab1024.sa.admin.module.business.oa.invoice.InvoiceController.queryByPage', '[{"deletedFlag":false,"enterpriseId":2,"keywords":"","pageNum":1,"pageSize":15,"searchCount":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 17:59:35', '2022-10-22 17:59:35'), - (877, 1, 1, '管理员', 'OA办公-企业', '查询企业详情 @author 开云', '/oa/enterprise/get/2', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.getDetail', '[2]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 17:59:42', '2022-10-22 17:59:42'), - (878, 1, 1, '管理员', 'OA办公-企业', '编辑企业 @author 开云', '/oa/enterprise/update', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.updateEnterprise', '[{"address":"1024大楼","city":410300,"cityName":"洛阳市","contact":"卓大","contactPhone":"18637925892","createUserId":44,"createUserName":"卓大","disabledFlag":false,"district":410311,"districtName":"洛龙区","email":"lab1024@163.com","enterpriseId":2,"enterpriseLogo":"public/common/fb827d63dda74a60ab8b4f70cc7c7d0a_20221022145641_jpg","enterpriseName":"1024创新实验室1","province":410000,"provinceName":"河南省","type":1,"unifiedSocialCreditCode":"1024lab"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 17:59:49', '2022-10-22 17:59:49'), - (879, 1, 1, '管理员', 'OA办公-企业', '查询企业详情 @author 开云', '/oa/enterprise/get/2', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.getDetail', '[2]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 17:59:49', '2022-10-22 17:59:49'), - (880, 1, 1, '管理员', 'OA办公-企业', '查询企业详情 @author 开云', '/oa/enterprise/get/2', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.getDetail', '[2]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 17:59:50', '2022-10-22 17:59:50'), - (881, 1, 1, '管理员', 'OA办公-企业', '编辑企业 @author 开云', '/oa/enterprise/update', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.updateEnterprise', '[{"address":"1024大楼","city":410300,"cityName":"洛阳市","contact":"卓大","contactPhone":"18637925892","createUserId":44,"createUserName":"卓大","disabledFlag":false,"district":410311,"districtName":"洛龙区","email":"lab1024@163.com","enterpriseId":2,"enterpriseLogo":"public/common/fb827d63dda74a60ab8b4f70cc7c7d0a_20221022145641_jpg","enterpriseName":"1024创新实验室","province":410000,"provinceName":"河南省","type":1,"unifiedSocialCreditCode":"1024lab"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 17:59:52', '2022-10-22 17:59:52'), - (882, 1, 1, '管理员', 'OA办公-企业', '查询企业详情 @author 开云', '/oa/enterprise/get/2', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.getDetail', '[2]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 17:59:52', '2022-10-22 17:59:52'), - (883, 1, 1, '管理员', 'OA办公-企业', '分页查询企业模块 @author 开云', '/oa/enterprise/page/query', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.queryByPage', '[{"deletedFlag":false,"keywords":"","pageNum":1,"pageSize":15,"searchCount":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:00:07', '2022-10-22 18:00:07'), - (884, 1, 1, '管理员', '系统-部门管理', '查询部门树形列表 @author 卓大', '/department/treeList', 'net.lab1024.sa.admin.module.system.department.controller.DepartmentController.departmentTree', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:00:19', '2022-10-22 18:00:19'), - (885, 1, 1, '管理员', '系统-部门管理', '查询部门树形列表 @author 卓大', '/department/treeList', 'net.lab1024.sa.admin.module.system.department.controller.DepartmentController.departmentTree', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:00:25', '2022-10-22 18:00:25'), - (886, 1, 1, '管理员', '系统-部门管理', '查询部门列表 @author 卓大', '/department/listAll', 'net.lab1024.sa.admin.module.system.department.controller.DepartmentController.listAll', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:29:02', '2022-10-22 18:29:02'), - (887, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:29:02', '2022-10-22 18:29:02'), - (888, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"departmentId":1,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:29:03', '2022-10-22 18:29:03'), - (889, 1, 1, '管理员', '系统-角色', '获取所有角色 @author 卓大', '/role/getAll', 'net.lab1024.sa.admin.module.system.role.controller.RoleController.getAllRole', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:29:09', '2022-10-22 18:29:09'), - (890, 1, 1, '管理员', '系统-角色-菜单', '获取角色关联菜单权限 @author 卓大', '/role/menu/getRoleSelectedMenu/1', 'net.lab1024.sa.admin.module.system.role.controller.RoleMenuController.getRoleSelectedMenu', '[1]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:29:09', '2022-10-22 18:29:09'), - (891, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:29:11', '2022-10-22 18:29:11'), - (892, 1, 1, '管理员', 'OA办公-企业', '分页查询企业模块 @author 开云', '/oa/enterprise/page/query', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.queryByPage', '[{"deletedFlag":false,"keywords":"","pageNum":1,"pageSize":15,"searchCount":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:29:44', '2022-10-22 18:29:44'), - (893, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:29:47', '2022-10-22 18:29:47'), - (894, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":2,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:29:48', '2022-10-22 18:29:48'), - (895, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:29:48', '2022-10-22 18:29:48'), - (896, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:29:49', '2022-10-22 18:29:49'), - (897, 1, 1, '管理员', '系统-角色', '获取所有角色 @author 卓大', '/role/getAll', 'net.lab1024.sa.admin.module.system.role.controller.RoleController.getAllRole', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:29:51', '2022-10-22 18:29:51'), - (898, 1, 1, '管理员', '系统-角色-菜单', '获取角色关联菜单权限 @author 卓大', '/role/menu/getRoleSelectedMenu/1', 'net.lab1024.sa.admin.module.system.role.controller.RoleMenuController.getRoleSelectedMenu', '[1]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:29:51', '2022-10-22 18:29:51'), - (899, 1, 1, '管理员', '系统-部门管理', '查询部门列表 @author 卓大', '/department/listAll', 'net.lab1024.sa.admin.module.system.department.controller.DepartmentController.listAll', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:29:52', '2022-10-22 18:29:52'), - (900, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:29:52', '2022-10-22 18:29:52'), - (901, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"departmentId":1,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:29:52', '2022-10-22 18:29:52'), - (902, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:29:53', '2022-10-22 18:29:53'), - (903, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:29:57', '2022-10-22 18:29:57'), - (904, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:29:57', '2022-10-22 18:29:57'), - (905, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:29:57', '2022-10-22 18:29:57'), - (906, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:30:04', '2022-10-22 18:30:04'), - (907, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:30:04', '2022-10-22 18:30:04'), - (908, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:30:12', '2022-10-22 18:30:12'), - (909, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:30:12', '2022-10-22 18:30:12'), - (910, 1, 1, '管理员', '系统-菜单', '更新菜单 @author 卓大', '/menu/update', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.updateMenu', '[{"apiPermsList":[],"cacheFlag":false,"disabledFlag":false,"frameFlag":false,"icon":"BankOutlined","menuId":138,"menuName":"OA系统","menuType":1,"parentId":0,"sort":1,"updateUserId":1,"visibleFlag":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:30:15', '2022-10-22 18:30:15'), - (911, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:30:16', '2022-10-22 18:30:16'), - (912, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:30:17', '2022-10-22 18:30:17'), - (913, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:30:17', '2022-10-22 18:30:17'), - (914, 1, 1, '管理员', '系统-菜单', '更新菜单 @author 卓大', '/menu/update', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.updateMenu', '[{"apiPermsList":[],"cacheFlag":false,"disabledFlag":false,"frameFlag":false,"icon":"AccountBookOutlined","menuId":137,"menuName":"进销存系统","menuType":1,"parentId":0,"sort":2,"updateUserId":1,"visibleFlag":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:30:19', '2022-10-22 18:30:19'), - (915, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:30:19', '2022-10-22 18:30:19'), - (916, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:30:24', '2022-10-22 18:30:24'), - (917, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:30:24', '2022-10-22 18:30:24'), - (918, 1, 1, '管理员', '系统-菜单', '更新菜单 @author 卓大', '/menu/update', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.updateMenu', '[{"apiPermsList":[],"cacheFlag":false,"disabledFlag":false,"frameFlag":false,"icon":"FileWordOutlined","menuId":146,"menuName":"系统文档","menuType":1,"parentId":0,"sort":3,"updateUserId":1,"visibleFlag":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:30:26', '2022-10-22 18:30:26'), - (919, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:30:26', '2022-10-22 18:30:26'), - (920, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:30:33', '2022-10-22 18:30:33'), - (921, 1, 1, '管理员', 'OA办公-企业', '分页查询企业模块 @author 开云', '/oa/enterprise/page/query', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.queryByPage', '[{"deletedFlag":false,"keywords":"","pageNum":1,"pageSize":15,"searchCount":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:30:40', '2022-10-22 18:30:40'), - (922, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:31:17', '2022-10-22 18:31:17'), - (923, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:31:17', '2022-10-22 18:31:17'), - (924, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:31:35', '2022-10-22 18:31:35'), - (925, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":2,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:31:36', '2022-10-22 18:31:36'), - (926, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:31:37', '2022-10-22 18:31:37'), - (927, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:31:37', '2022-10-22 18:31:37'), - (928, 1, 1, '管理员', '系统-部门管理', '查询部门列表 @author 卓大', '/department/listAll', 'net.lab1024.sa.admin.module.system.department.controller.DepartmentController.listAll', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:31:46', '2022-10-22 18:31:46'), - (929, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:31:46', '2022-10-22 18:31:46'), - (930, 1, 1, '管理员', '系统-员工管理', '员工管理查询 @author 卓大', '/employee/query', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.query', '[{"deletedFlag":false,"departmentId":1,"disabledFlag":false,"pageNum":1,"pageSize":15}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:31:46', '2022-10-22 18:31:46'), - (931, 1, 1, '管理员', '系统-角色', '获取所有角色 @author 卓大', '/role/getAll', 'net.lab1024.sa.admin.module.system.role.controller.RoleController.getAllRole', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:31:47', '2022-10-22 18:31:47'), - (932, 1, 1, '管理员', '系统-角色-菜单', '获取角色关联菜单权限 @author 卓大', '/role/menu/getRoleSelectedMenu/1', 'net.lab1024.sa.admin.module.system.role.controller.RoleMenuController.getRoleSelectedMenu', '[1]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:31:47', '2022-10-22 18:31:47'), - (933, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:31:49', '2022-10-22 18:31:49'), - (934, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:32:23', '2022-10-22 18:32:23'), - (935, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:32:28', '2022-10-22 18:32:28'), - (936, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:32:28', '2022-10-22 18:32:28'), - (937, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:32:28', '2022-10-22 18:32:28'), - (938, 1, 1, '管理员', '系统-菜单', '更新菜单 @author 卓大', '/menu/update', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.updateMenu', '[{"apiPermsList":[],"cacheFlag":false,"disabledFlag":false,"frameFlag":false,"icon":"BarChartOutlined","menuId":111,"menuName":"监控服务","menuType":1,"parentId":0,"path":"/monitor","sort":4,"updateUserId":1,"visibleFlag":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:32:31', '2022-10-22 18:32:31'), - (939, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:32:31', '2022-10-22 18:32:31'), - (940, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:32:35', '2022-10-22 18:32:35'), - (941, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:32:35', '2022-10-22 18:32:35'), - (942, 1, 1, '管理员', '系统-菜单', '更新菜单 @author 卓大', '/menu/update', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.updateMenu', '[{"apiPermsList":[],"cacheFlag":false,"disabledFlag":false,"frameFlag":false,"icon":"NodeCollapseOutlined","menuId":114,"menuName":"运维工具","menuType":1,"parentId":0,"sort":5,"updateUserId":1,"visibleFlag":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:32:37', '2022-10-22 18:32:37'), - (943, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:32:37', '2022-10-22 18:32:37'), - (944, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:32:48', '2022-10-22 18:32:48'), - (945, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:32:48', '2022-10-22 18:32:48'), - (946, 1, 1, '管理员', '系统-菜单', '更新菜单 @author 卓大', '/menu/update', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.updateMenu', '[{"apiPermsList":[],"cacheFlag":false,"component":"/support/heart-beat/heart-beat-list.vue","disabledFlag":false,"frameFlag":false,"icon":"FallOutlined","menuId":206,"menuName":"心跳监控","menuType":2,"parentId":111,"path":"/support/heart-beat/heart-beat-list","permsType":1,"sort":1,"updateUserId":1,"visibleFlag":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:32:52', '2022-10-22 18:32:52'), - (947, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:32:52', '2022-10-22 18:32:52'), - (948, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:33:00', '2022-10-22 18:33:00'), - (949, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:33:00', '2022-10-22 18:33:00'), - (950, 1, 1, '管理员', '系统-菜单', '更新菜单 @author 卓大', '/menu/update', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.updateMenu', '[{"apiPermsList":[],"cacheFlag":false,"component":"/support/login-log/login-log-list.vue","disabledFlag":false,"frameFlag":false,"icon":"LoginOutlined","menuId":143,"menuName":"登录日志","menuType":2,"parentId":111,"path":"/support/login-log/login-log-list","sort":2,"updateUserId":1,"visibleFlag":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:33:03', '2022-10-22 18:33:03'), - (951, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:33:03', '2022-10-22 18:33:03'), - (952, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:33:05', '2022-10-22 18:33:05'), - (953, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:33:05', '2022-10-22 18:33:05'), - (954, 1, 1, '管理员', '系统-菜单', '更新菜单 @author 卓大', '/menu/update', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.updateMenu', '[{"apiPermsList":[],"cacheFlag":false,"disabledFlag":false,"frameFlag":true,"frameUrl":"http://localhost:60001/druid/index.html","icon":"ConsoleSqlOutlined","menuId":122,"menuName":"数据库监控","menuType":2,"parentId":111,"path":"/support/druid/index","sort":4,"updateUserId":1,"visibleFlag":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:33:07', '2022-10-22 18:33:07'), - (955, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:33:07', '2022-10-22 18:33:07'), - (956, 1, 1, '管理员', '系统-菜单', '获取所有请求路径 @author 卓大', '/menu/auth/url', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.getAuthUrl', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:33:08', '2022-10-22 18:33:08'), - (957, 1, 1, '管理员', '系统-菜单', '查询菜单树 @author 卓大', '/menu/tree', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuTree', '[true]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:33:08', '2022-10-22 18:33:08'), - (958, 1, 1, '管理员', '系统-菜单', '更新菜单 @author 卓大', '/menu/update', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.updateMenu', '[{"apiPermsList":[],"cacheFlag":false,"component":"/support/operate-log/operate-log-list.vue","disabledFlag":false,"frameFlag":false,"icon":"VideoCameraOutlined","menuId":81,"menuName":"请求监控","menuType":2,"parentId":111,"path":"/support/operate-log/operate-log-list","sort":3,"updateUserId":1,"visibleFlag":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:33:10', '2022-10-22 18:33:10'), - (959, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:33:10', '2022-10-22 18:33:10'), - (960, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:33:31', '2022-10-22 18:33:31'), - (961, 1, 1, '管理员', '系统-菜单', '查询菜单列表 @author 卓大', '/menu/query', 'net.lab1024.sa.admin.module.system.menu.controller.MenuController.queryMenuList', '[]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:33:36', '2022-10-22 18:33:36'), - (962, 1, 1, '管理员', 'OA办公-企业', '分页查询企业模块 @author 开云', '/oa/enterprise/page/query', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.queryByPage', '[{"deletedFlag":false,"keywords":"","pageNum":1,"pageSize":15,"searchCount":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:34:16', '2022-10-22 18:34:16'), - (963, 1, 1, '管理员', 'OA办公-企业', '分页查询企业模块 @author 开云', '/oa/enterprise/page/query', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.queryByPage', '[{"deletedFlag":false,"keywords":"","pageNum":1,"pageSize":10,"searchCount":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:35:57', '2022-10-22 18:35:57'), - (964, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:36:04', '2022-10-22 18:36:04'), - (965, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":2,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:36:05', '2022-10-22 18:36:05'), - (966, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:36:05', '2022-10-22 18:36:05'), - (967, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:36:05', '2022-10-22 18:36:05'), - (968, 1, 1, '管理员', 'OA办公-企业', '分页查询企业模块 @author 开云', '/oa/enterprise/page/query', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.queryByPage', '[{"deletedFlag":false,"keywords":"","pageNum":1,"pageSize":10,"searchCount":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:58:40', '2022-10-22 18:58:40'), - (969, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:58:42', '2022-10-22 18:58:42'), - (970, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":2,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:58:43', '2022-10-22 18:58:43'), - (971, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:58:44', '2022-10-22 18:58:44'), - (972, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:58:44', '2022-10-22 18:58:44'), - (973, 1, 1, '管理员', 'OA办公-企业', '分页查询企业模块 @author 开云', '/oa/enterprise/page/query', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.queryByPage', '[{"deletedFlag":false,"keywords":"","pageNum":1,"pageSize":10,"searchCount":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 18:59:23', '2022-10-22 18:59:23'), - (974, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 19:01:51', '2022-10-22 19:01:51'), - (975, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":2,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 19:01:52', '2022-10-22 19:01:52'), - (976, 1, 1, '管理员', 'ERP进销存-分类管理', '查询类目层级树 @author 胡克', '/category/tree', 'net.lab1024.sa.admin.module.business.category.controller.CategoryController.queryTree', '[{"categoryType":1,"parentId":0}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 19:01:53', '2022-10-22 19:01:53'), - (977, 1, 1, '管理员', 'ERP进销存-商品管理', '分页查询 @author 胡克', '/goods/query', 'net.lab1024.sa.admin.module.business.goods.controller.GoodsController.query', '[{"deletedFlag":false,"pageNum":1,"pageSize":10,"searchWord":""}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 19:01:53', '2022-10-22 19:01:53'), - (978, 1, 1, '管理员', 'OA办公-企业', '分页查询企业模块 @author 开云', '/oa/enterprise/page/query', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.queryByPage', '[{"deletedFlag":false,"keywords":"","pageNum":1,"pageSize":10,"searchCount":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 19:02:02', '2022-10-22 19:02:02'), - (979, 1, 1, '管理员', 'OA办公-企业', '分页查询企业模块 @author 开云', '/oa/enterprise/page/query', 'net.lab1024.sa.admin.module.business.oa.enterprise.EnterpriseController.queryByPage', '[{"deletedFlag":false,"keywords":"","pageNum":1,"pageSize":10,"searchCount":true}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 19:02:06', '2022-10-22 19:02:06'), - (980, 1, 1, '管理员', '系统-员工管理', '修改密码 @author 卓大', '/employee/update/password', 'net.lab1024.sa.admin.module.system.employee.controller.EmployeeController.updatePassword', '[{"employeeId":1,"newPassword":"a123123","oldPassword":"123456"}]', '127.0.0.1', 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/106.0.0.0 Safari/537.36', 1, NULL, '2022-10-22 19:32:11', '2022-10-22 19:32:11'); -/*!40000 ALTER TABLE `t_operate_log` ENABLE KEYS */; - --- 导出 表 smart_admin_v2.t_reload_item 结构 -DROP TABLE IF EXISTS `t_reload_item`; -CREATE TABLE IF NOT EXISTS `t_reload_item` ( - `tag` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '项名称', - `args` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL COMMENT '参数 可选', - `identification` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '运行标识', - `update_time` datetime DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, - `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, - PRIMARY KEY (`tag`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='reload项目'; - --- 正在导出表 smart_admin_v2.t_reload_item 的数据:~2 rows (大约) -DELETE FROM `t_reload_item`; -/*!40000 ALTER TABLE `t_reload_item` DISABLE KEYS */; -INSERT INTO `t_reload_item` (`tag`, `args`, `identification`, `update_time`, `create_time`) VALUES - ('system_config', 'e', 'e', '2022-06-20 14:43:14', '2019-04-18 11:48:27'), - ('test', 'd', 'd', '2022-06-20 14:40:33', '2022-06-20 14:05:05'); -/*!40000 ALTER TABLE `t_reload_item` ENABLE KEYS */; - --- 导出 表 smart_admin_v2.t_reload_result 结构 -DROP TABLE IF EXISTS `t_reload_result`; -CREATE TABLE IF NOT EXISTS `t_reload_result` ( - `tag` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, - `identification` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '运行标识', - `args` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL, - `result` tinyint unsigned NOT NULL COMMENT '是否成功 ', - `exception` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci, - `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='reload结果'; - --- 正在导出表 smart_admin_v2.t_reload_result 的数据:~150 rows (大约) -DELETE FROM `t_reload_result`; -/*!40000 ALTER TABLE `t_reload_result` DISABLE KEYS */; -/*!40000 ALTER TABLE `t_reload_result` ENABLE KEYS */; - --- 导出 表 smart_admin_v2.t_role 结构 -DROP TABLE IF EXISTS `t_role`; -CREATE TABLE IF NOT EXISTS `t_role` ( - `role_id` int unsigned NOT NULL AUTO_INCREMENT COMMENT '主键', - `role_name` varchar(20) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '角色名称', - `remark` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci DEFAULT NULL COMMENT '角色描述', - `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '创建时间', - `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - PRIMARY KEY (`role_id`) USING BTREE -) ENGINE=InnoDB AUTO_INCREMENT=57 DEFAULT CHARSET=utf8 COMMENT='角色表'; - --- 正在导出表 smart_admin_v2.t_role 的数据:~5 rows (大约) -DELETE FROM `t_role`; -/*!40000 ALTER TABLE `t_role` DISABLE KEYS */; -INSERT INTO `t_role` (`role_id`, `role_name`, `remark`, `update_time`, `create_time`) VALUES - (1, '技术总监', '', '2022-10-19 20:24:09', '2019-06-21 12:09:34'), - (34, '销售总监', '', '2022-10-19 20:24:28', '2019-08-30 09:30:50'), - (35, '总经理', '', '2019-08-30 09:31:05', '2019-08-30 09:31:05'), - (36, '董事长', '', '2019-08-30 09:31:11', '2019-08-30 09:31:11'), - (37, '财务', '', '2019-08-30 09:31:16', '2019-08-30 09:31:16'); -/*!40000 ALTER TABLE `t_role` ENABLE KEYS */; - --- 导出 表 smart_admin_v2.t_role_data_scope 结构 -DROP TABLE IF EXISTS `t_role_data_scope`; -CREATE TABLE IF NOT EXISTS `t_role_data_scope` ( - `id` int NOT NULL AUTO_INCREMENT, - `data_scope_type` int NOT NULL COMMENT '数据范围id', - `view_type` int NOT NULL COMMENT '数据范围类型', - `role_id` int NOT NULL COMMENT '角色id', - `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', - `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - PRIMARY KEY (`id`) USING BTREE -) ENGINE=InnoDB AUTO_INCREMENT=67 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='角色的数据范围'; - --- 正在导出表 smart_admin_v2.t_role_data_scope 的数据:~0 rows (大约) -DELETE FROM `t_role_data_scope`; -/*!40000 ALTER TABLE `t_role_data_scope` DISABLE KEYS */; -/*!40000 ALTER TABLE `t_role_data_scope` ENABLE KEYS */; - --- 导出 表 smart_admin_v2.t_role_employee 结构 -DROP TABLE IF EXISTS `t_role_employee`; -CREATE TABLE IF NOT EXISTS `t_role_employee` ( - `id` int NOT NULL AUTO_INCREMENT, - `role_id` int NOT NULL COMMENT '角色id', - `employee_id` int NOT NULL COMMENT '员工id', - `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', - `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - PRIMARY KEY (`id`) USING BTREE, - UNIQUE KEY `uk_role_employee` (`role_id`,`employee_id`) USING BTREE -) ENGINE=InnoDB AUTO_INCREMENT=327 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='角色员工功能表'; - --- 正在导出表 smart_admin_v2.t_role_employee 的数据:~2 rows (大约) -DELETE FROM `t_role_employee`; -/*!40000 ALTER TABLE `t_role_employee` DISABLE KEYS */; -INSERT INTO `t_role_employee` (`id`, `role_id`, `employee_id`, `update_time`, `create_time`) VALUES - (325, 36, 63, '2022-10-19 20:25:26', '2022-10-19 20:25:26'), - (326, 1, 44, '2022-10-22 10:54:35', '2022-10-22 10:54:35'); -/*!40000 ALTER TABLE `t_role_employee` ENABLE KEYS */; - --- 导出 表 smart_admin_v2.t_role_menu 结构 -DROP TABLE IF EXISTS `t_role_menu`; -CREATE TABLE IF NOT EXISTS `t_role_menu` ( - `role_menu_id` bigint NOT NULL AUTO_INCREMENT COMMENT '主键id', - `role_id` bigint NOT NULL COMMENT '角色id', - `menu_id` bigint NOT NULL COMMENT '菜单id', - `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', - `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', - PRIMARY KEY (`role_menu_id`) USING BTREE, - KEY `idx_role_id` (`role_id`) USING BTREE, - KEY `idx_menu_id` (`menu_id`) USING BTREE -) ENGINE=InnoDB AUTO_INCREMENT=35 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='角色-菜单\n'; - --- 正在导出表 smart_admin_v2.t_role_menu 的数据:~34 rows (大约) -DELETE FROM `t_role_menu`; -/*!40000 ALTER TABLE `t_role_menu` DISABLE KEYS */; -INSERT INTO `t_role_menu` (`role_menu_id`, `role_id`, `menu_id`, `update_time`, `create_time`) VALUES - (1, 1, 45, '2022-10-22 10:54:27', '2022-10-22 10:54:27'), - (2, 1, 46, '2022-10-22 10:54:27', '2022-10-22 10:54:27'), - (3, 1, 86, '2022-10-22 10:54:27', '2022-10-22 10:54:27'), - (4, 1, 87, '2022-10-22 10:54:27', '2022-10-22 10:54:27'), - (5, 1, 88, '2022-10-22 10:54:27', '2022-10-22 10:54:27'), - (6, 1, 91, '2022-10-22 10:54:27', '2022-10-22 10:54:27'), - (7, 1, 92, '2022-10-22 10:54:27', '2022-10-22 10:54:27'), - (8, 1, 93, '2022-10-22 10:54:27', '2022-10-22 10:54:27'), - (9, 1, 94, '2022-10-22 10:54:27', '2022-10-22 10:54:27'), - (10, 1, 95, '2022-10-22 10:54:27', '2022-10-22 10:54:27'), - (11, 1, 96, '2022-10-22 10:54:27', '2022-10-22 10:54:27'), - (12, 1, 76, '2022-10-22 10:54:27', '2022-10-22 10:54:27'), - (13, 1, 97, '2022-10-22 10:54:27', '2022-10-22 10:54:27'), - (14, 1, 98, '2022-10-22 10:54:27', '2022-10-22 10:54:27'), - (15, 1, 99, '2022-10-22 10:54:27', '2022-10-22 10:54:27'), - (16, 1, 100, '2022-10-22 10:54:27', '2022-10-22 10:54:27'), - (17, 1, 101, '2022-10-22 10:54:27', '2022-10-22 10:54:27'), - (18, 1, 102, '2022-10-22 10:54:27', '2022-10-22 10:54:27'), - (19, 1, 103, '2022-10-22 10:54:27', '2022-10-22 10:54:27'), - (20, 1, 104, '2022-10-22 10:54:27', '2022-10-22 10:54:27'), - (21, 1, 26, '2022-10-22 10:54:27', '2022-10-22 10:54:27'), - (22, 1, 40, '2022-10-22 10:54:27', '2022-10-22 10:54:27'), - (23, 1, 105, '2022-10-22 10:54:27', '2022-10-22 10:54:27'), - (24, 1, 106, '2022-10-22 10:54:27', '2022-10-22 10:54:27'), - (25, 1, 108, '2022-10-22 10:54:27', '2022-10-22 10:54:27'), - (26, 1, 50, '2022-10-22 10:54:27', '2022-10-22 10:54:27'), - (27, 1, 130, '2022-10-22 10:54:27', '2022-10-22 10:54:27'), - (28, 1, 157, '2022-10-22 10:54:27', '2022-10-22 10:54:27'), - (29, 1, 158, '2022-10-22 10:54:27', '2022-10-22 10:54:27'), - (30, 1, 193, '2022-10-22 10:54:27', '2022-10-22 10:54:27'), - (31, 1, 200, '2022-10-22 10:54:27', '2022-10-22 10:54:27'), - (32, 1, 122, '2022-10-22 10:54:27', '2022-10-22 10:54:27'), - (33, 1, 111, '2022-10-22 10:54:27', '2022-10-22 10:54:27'), - (34, 1, 143, '2022-10-22 10:54:27', '2022-10-22 10:54:27'); -/*!40000 ALTER TABLE `t_role_menu` ENABLE KEYS */; - --- 导出 表 smart_admin_v2.t_serial_number 结构 -DROP TABLE IF EXISTS `t_serial_number`; -CREATE TABLE IF NOT EXISTS `t_serial_number` ( - `serial_number_id` int NOT NULL, - `business_name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '业务名称', - `format` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '格式[yyyy]表示年,[mm]标识月,[dd]表示日,[nnn]表示三位数字', - `rule_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '规则格式。none没有周期, year 年周期, month月周期, day日周期', - `init_number` int unsigned NOT NULL DEFAULT '1' COMMENT '初始值', - `step_random_range` int unsigned NOT NULL COMMENT '步长随机数', - `remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL COMMENT '备注', - `last_number` bigint DEFAULT NULL COMMENT '上次产生的单号, 默认为空', - `last_time` datetime DEFAULT NULL COMMENT '上次产生的单号时间', - `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - `create_time` datetime DEFAULT CURRENT_TIMESTAMP, - PRIMARY KEY (`serial_number_id`) USING BTREE, - UNIQUE KEY `key_name` (`business_name`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='单号生成器定义表'; - --- 正在导出表 smart_admin_v2.t_serial_number 的数据:~2 rows (大约) -DELETE FROM `t_serial_number`; -/*!40000 ALTER TABLE `t_serial_number` DISABLE KEYS */; -INSERT INTO `t_serial_number` (`serial_number_id`, `business_name`, `format`, `rule_type`, `init_number`, `step_random_range`, `remark`, `last_number`, `last_time`, `update_time`, `create_time`) VALUES - (1, '订单编号', 'DK[yyyy][mm][dd]NO[nnnnn]', 'day', 1000, 10, 'DK20201101NO321', 1082, '2022-06-24 15:20:40', '2022-06-24 15:20:18', '2021-02-19 14:37:50'), - (2, '合同编号', 'HT[yyyy][mm][dd][nnnnn]-CX', 'none', 1, 1, '', NULL, NULL, '2022-06-24 14:48:05', '2021-08-12 20:40:37'); -/*!40000 ALTER TABLE `t_serial_number` ENABLE KEYS */; - --- 导出 表 smart_admin_v2.t_serial_number_record 结构 -DROP TABLE IF EXISTS `t_serial_number_record`; -CREATE TABLE IF NOT EXISTS `t_serial_number_record` ( - `serial_number_id` int NOT NULL, - `record_date` date NOT NULL COMMENT '记录日期', - `last_number` bigint NOT NULL DEFAULT '0' COMMENT '最后更新值', - `last_time` datetime NOT NULL COMMENT '最后更新时间', - `count` bigint NOT NULL DEFAULT '0' COMMENT '更新次数', - `update_time` datetime DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - `create_time` datetime DEFAULT CURRENT_TIMESTAMP, - KEY `uk_generator` (`serial_number_id`,`record_date`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='serial_number记录表'; - --- 正在导出表 smart_admin_v2.t_serial_number_record 的数据:~2 rows (大约) -DELETE FROM `t_serial_number_record`; -/*!40000 ALTER TABLE `t_serial_number_record` DISABLE KEYS */; -INSERT INTO `t_serial_number_record` (`serial_number_id`, `record_date`, `last_number`, `last_time`, `count`, `update_time`, `create_time`) VALUES - (1, '2022-03-02', 8581, '2022-03-03 14:37:11', 500, '2022-03-03 14:37:46', '2022-03-03 14:36:43'), - (1, '2022-03-03', 7053, '2022-03-03 14:38:48', 1500, '2022-03-03 14:47:32', '2022-03-03 14:38:19'), - (1, '2022-06-24', 1082, '2022-06-24 15:16:13', 15, '2022-06-24 15:20:18', '2022-06-24 15:15:51'); -/*!40000 ALTER TABLE `t_serial_number_record` ENABLE KEYS */; - --- 导出 表 smart_admin_v2.t_table_column 结构 -DROP TABLE IF EXISTS `t_table_column`; -CREATE TABLE IF NOT EXISTS `t_table_column` ( - `table_column_id` bigint NOT NULL AUTO_INCREMENT, - `user_id` bigint NOT NULL COMMENT '用户id', - `user_type` int NOT NULL COMMENT '用户类型', - `table_id` int NOT NULL COMMENT '表格id', - `columns` text CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci COMMENT '具体的表格列,存入的json', - `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, - `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, - PRIMARY KEY (`table_column_id`) USING BTREE, - UNIQUE KEY `uni_employee_table` (`user_id`,`table_id`) USING BTREE -) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci ROW_FORMAT=DYNAMIC COMMENT='表格的自定义列存储'; - --- 正在导出表 smart_admin_v2.t_table_column 的数据:~0 rows (大约) -DELETE FROM `t_table_column`; -/*!40000 ALTER TABLE `t_table_column` DISABLE KEYS */; -/*!40000 ALTER TABLE `t_table_column` ENABLE KEYS */; - -/*!40101 SET SQL_MODE=IFNULL(@OLD_SQL_MODE, '') */; -/*!40014 SET FOREIGN_KEY_CHECKS=IFNULL(@OLD_FOREIGN_KEY_CHECKS, 1) */; -/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; -/*!40111 SET SQL_NOTES=IFNULL(@OLD_SQL_NOTES, 1) */; diff --git a/smart_admin_v2/smart-admin-api/.gitignore b/smart_admin_v2/smart-admin-api/.gitignore new file mode 100644 index 00000000..ab428af8 --- /dev/null +++ b/smart_admin_v2/smart-admin-api/.gitignore @@ -0,0 +1,35 @@ +HELP.md +target/ + +velocity.log + +!.mvn/wrapper/maven-wrapper.jar + + +### STS ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### IntelliJ IDEA ### +.idea +*.iws +*.iml +*.ipr + +.DS_Store + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ + +### VS Code ### +.vscode/ diff --git a/smart-admin-api/sa-parent/pom.xml b/smart_admin_v2/smart-admin-api/pom.xml similarity index 92% rename from smart-admin-api/sa-parent/pom.xml rename to smart_admin_v2/smart-admin-api/pom.xml index c4441069..70da0158 100644 --- a/smart-admin-api/sa-parent/pom.xml +++ b/smart_admin_v2/smart-admin-api/pom.xml @@ -1,11 +1,6 @@ 4.0.0 - - org.springframework.boot - spring-boot-starter-parent - 2.5.2 - net.1024lab sa-parent @@ -13,16 +8,22 @@ pom sa-parent - sa-parent project + SmartAdmin project + + + sa-common + sa-admin + 1.8 + 2.7.5 2.0.8 - 3.4.1 + 3.5.2 3.8.6 2.7.0 - 1.2.62 - 1.1.21 + 2.0.16 + 1.2.14 1.4.2 20.0 1.21 @@ -48,6 +49,16 @@ + + + org.springframework.boot + spring-boot-dependencies + ${springboot.version} + pom + import + + + org.springframework spring-mock @@ -270,7 +281,7 @@ src/main/resources dev/* - sit/* + test/* pre/* prod/* @@ -312,6 +323,11 @@ true + + org.springframework.boot + spring-boot-maven-plugin + ${springboot.version} + diff --git a/smart-admin-api/sa-admin/pom.xml b/smart_admin_v2/smart-admin-api/sa-admin/pom.xml similarity index 70% rename from smart-admin-api/sa-admin/pom.xml rename to smart_admin_v2/smart-admin-api/sa-admin/pom.xml index 65a66035..af0f1935 100644 --- a/smart-admin-api/sa-admin/pom.xml +++ b/smart_admin_v2/smart-admin-api/sa-admin/pom.xml @@ -5,6 +5,7 @@ net.1024lab sa-parent 1.0.0 + ../pom.xml sa-admin @@ -29,6 +30,16 @@ org.springframework.boot spring-boot-maven-plugin + + net.lab1024.sa.admin.SmartAdminApplication + + + + + repackage + + + diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/SmartAdminApplication.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/SmartAdminApplication.java similarity index 86% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/SmartAdminApplication.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/SmartAdminApplication.java index 744b6357..82975649 100644 --- a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/SmartAdminApplication.java +++ b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/SmartAdminApplication.java @@ -4,6 +4,7 @@ import org.apache.ibatis.annotations.Mapper; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.security.servlet.UserDetailsServiceAutoConfiguration; import org.springframework.cache.annotation.EnableCaching; import org.springframework.context.annotation.ComponentScan; import org.springframework.context.annotation.EnableAspectJAutoProxy; @@ -18,12 +19,12 @@ import org.springframework.scheduling.annotation.EnableScheduling; * @Email lab1024@163.com * @Copyright 1024创新实验室 ( https://1024lab.net ),2012-2022 */ -@SpringBootApplication @EnableCaching @EnableScheduling @EnableAspectJAutoProxy(proxyTargetClass = true, exposeProxy = true) @ComponentScan(basePackages = {"net.lab1024.sa"}) @MapperScan(value = "net.lab1024.sa", annotationClass = Mapper.class) +@SpringBootApplication(exclude = {UserDetailsServiceAutoConfiguration.class }) public class SmartAdminApplication { public static void main(String[] args) { diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/common/AdminBaseController.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/common/AdminBaseController.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/common/AdminBaseController.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/common/AdminBaseController.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/config/OperateLogAspectConfig.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/config/OperateLogAspectConfig.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/config/OperateLogAspectConfig.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/config/OperateLogAspectConfig.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/config/SecurityConfig.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/config/SecurityConfig.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/config/SecurityConfig.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/config/SecurityConfig.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/config/SecurityMethodConfig.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/config/SecurityMethodConfig.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/config/SecurityMethodConfig.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/config/SecurityMethodConfig.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/constant/AdminCacheConst.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/constant/AdminCacheConst.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/constant/AdminCacheConst.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/constant/AdminCacheConst.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/constant/AdminRedisKeyConst.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/constant/AdminRedisKeyConst.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/constant/AdminRedisKeyConst.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/constant/AdminRedisKeyConst.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/constant/AdminSwaggerTagConst.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/constant/AdminSwaggerTagConst.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/constant/AdminSwaggerTagConst.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/constant/AdminSwaggerTagConst.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/listener/AdminStartupRunner.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/listener/AdminStartupRunner.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/listener/AdminStartupRunner.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/listener/AdminStartupRunner.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/constant/CategoryTypeEnum.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/constant/CategoryTypeEnum.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/constant/CategoryTypeEnum.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/constant/CategoryTypeEnum.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/controller/CategoryController.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/controller/CategoryController.java similarity index 97% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/controller/CategoryController.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/controller/CategoryController.java index 682132af..5fff565a 100644 --- a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/controller/CategoryController.java +++ b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/controller/CategoryController.java @@ -4,16 +4,15 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import net.lab1024.sa.admin.common.AdminBaseController; import net.lab1024.sa.admin.constant.AdminSwaggerTagConst; -import net.lab1024.sa.admin.module.business.category.service.CategoryService; import net.lab1024.sa.admin.module.business.category.domain.form.CategoryAddForm; import net.lab1024.sa.admin.module.business.category.domain.form.CategoryTreeQueryForm; import net.lab1024.sa.admin.module.business.category.domain.form.CategoryUpdateForm; import net.lab1024.sa.admin.module.business.category.domain.vo.CategoryTreeVO; import net.lab1024.sa.admin.module.business.category.domain.vo.CategoryVO; +import net.lab1024.sa.admin.module.business.category.service.CategoryService; import net.lab1024.sa.common.common.domain.ResponseDTO; import net.lab1024.sa.common.module.support.operatelog.annoation.OperateLog; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import javax.validation.Valid; diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/dao/CategoryDao.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/dao/CategoryDao.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/dao/CategoryDao.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/dao/CategoryDao.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/domain/dto/CategoryBaseDTO.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/domain/dto/CategoryBaseDTO.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/domain/dto/CategoryBaseDTO.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/domain/dto/CategoryBaseDTO.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/domain/dto/CategorySimpleDTO.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/domain/dto/CategorySimpleDTO.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/domain/dto/CategorySimpleDTO.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/domain/dto/CategorySimpleDTO.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/domain/entity/CategoryEntity.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/domain/entity/CategoryEntity.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/domain/entity/CategoryEntity.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/domain/entity/CategoryEntity.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/domain/form/CategoryAddForm.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/domain/form/CategoryAddForm.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/domain/form/CategoryAddForm.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/domain/form/CategoryAddForm.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/domain/form/CategoryTreeQueryForm.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/domain/form/CategoryTreeQueryForm.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/domain/form/CategoryTreeQueryForm.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/domain/form/CategoryTreeQueryForm.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/domain/form/CategoryUpdateForm.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/domain/form/CategoryUpdateForm.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/domain/form/CategoryUpdateForm.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/domain/form/CategoryUpdateForm.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/domain/vo/CategoryTreeVO.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/domain/vo/CategoryTreeVO.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/domain/vo/CategoryTreeVO.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/domain/vo/CategoryTreeVO.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/domain/vo/CategoryVO.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/domain/vo/CategoryVO.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/domain/vo/CategoryVO.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/domain/vo/CategoryVO.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/manager/CategoryCacheManager.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/manager/CategoryCacheManager.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/manager/CategoryCacheManager.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/manager/CategoryCacheManager.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/service/CategoryQueryService.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/service/CategoryQueryService.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/service/CategoryQueryService.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/service/CategoryQueryService.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/service/CategoryService.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/service/CategoryService.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/service/CategoryService.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/category/service/CategoryService.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/constant/GoodsStatusEnum.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/constant/GoodsStatusEnum.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/constant/GoodsStatusEnum.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/constant/GoodsStatusEnum.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/controller/GoodsController.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/controller/GoodsController.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/controller/GoodsController.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/controller/GoodsController.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/dao/GoodsDao.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/dao/GoodsDao.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/dao/GoodsDao.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/dao/GoodsDao.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/domain/entity/GoodsEntity.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/domain/entity/GoodsEntity.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/domain/entity/GoodsEntity.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/domain/entity/GoodsEntity.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/domain/form/GoodsAddForm.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/domain/form/GoodsAddForm.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/domain/form/GoodsAddForm.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/domain/form/GoodsAddForm.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/domain/form/GoodsQueryForm.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/domain/form/GoodsQueryForm.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/domain/form/GoodsQueryForm.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/domain/form/GoodsQueryForm.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/domain/form/GoodsUpdateForm.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/domain/form/GoodsUpdateForm.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/domain/form/GoodsUpdateForm.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/domain/form/GoodsUpdateForm.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/domain/vo/GoodsVO.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/domain/vo/GoodsVO.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/domain/vo/GoodsVO.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/domain/vo/GoodsVO.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/manager/GoodsManager.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/manager/GoodsManager.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/manager/GoodsManager.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/manager/GoodsManager.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/service/GoodsService.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/service/GoodsService.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/service/GoodsService.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/goods/service/GoodsService.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/bank/BankController.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/bank/BankController.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/bank/BankController.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/bank/BankController.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/bank/BankDao.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/bank/BankDao.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/bank/BankDao.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/bank/BankDao.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/bank/BankService.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/bank/BankService.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/bank/BankService.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/bank/BankService.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/bank/domain/BankCreateForm.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/bank/domain/BankCreateForm.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/bank/domain/BankCreateForm.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/bank/domain/BankCreateForm.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/bank/domain/BankEntity.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/bank/domain/BankEntity.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/bank/domain/BankEntity.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/bank/domain/BankEntity.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/bank/domain/BankQueryForm.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/bank/domain/BankQueryForm.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/bank/domain/BankQueryForm.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/bank/domain/BankQueryForm.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/bank/domain/BankUpdateForm.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/bank/domain/BankUpdateForm.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/bank/domain/BankUpdateForm.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/bank/domain/BankUpdateForm.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/bank/domain/BankVO.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/bank/domain/BankVO.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/bank/domain/BankVO.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/bank/domain/BankVO.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/EnterpriseController.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/EnterpriseController.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/EnterpriseController.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/EnterpriseController.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/EnterpriseEmployeeManager.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/EnterpriseEmployeeManager.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/EnterpriseEmployeeManager.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/EnterpriseEmployeeManager.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/EnterpriseService.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/EnterpriseService.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/EnterpriseService.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/EnterpriseService.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/constant/EnterpriseTypeEnum.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/constant/EnterpriseTypeEnum.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/constant/EnterpriseTypeEnum.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/constant/EnterpriseTypeEnum.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/dao/EnterpriseDao.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/dao/EnterpriseDao.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/dao/EnterpriseDao.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/dao/EnterpriseDao.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/dao/EnterpriseEmployeeDao.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/dao/EnterpriseEmployeeDao.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/dao/EnterpriseEmployeeDao.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/dao/EnterpriseEmployeeDao.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/domain/entity/EnterpriseEmployeeEntity.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/domain/entity/EnterpriseEmployeeEntity.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/domain/entity/EnterpriseEmployeeEntity.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/domain/entity/EnterpriseEmployeeEntity.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/domain/entity/EnterpriseEntity.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/domain/entity/EnterpriseEntity.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/domain/entity/EnterpriseEntity.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/domain/entity/EnterpriseEntity.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/domain/form/EnterpriseCreateForm.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/domain/form/EnterpriseCreateForm.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/domain/form/EnterpriseCreateForm.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/domain/form/EnterpriseCreateForm.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/domain/form/EnterpriseEmployeeForm.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/domain/form/EnterpriseEmployeeForm.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/domain/form/EnterpriseEmployeeForm.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/domain/form/EnterpriseEmployeeForm.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/domain/form/EnterpriseEmployeeQueryForm.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/domain/form/EnterpriseEmployeeQueryForm.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/domain/form/EnterpriseEmployeeQueryForm.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/domain/form/EnterpriseEmployeeQueryForm.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/domain/form/EnterpriseQueryForm.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/domain/form/EnterpriseQueryForm.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/domain/form/EnterpriseQueryForm.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/domain/form/EnterpriseQueryForm.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/domain/form/EnterpriseUpdateForm.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/domain/form/EnterpriseUpdateForm.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/domain/form/EnterpriseUpdateForm.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/domain/form/EnterpriseUpdateForm.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/domain/vo/EnterpriseEmployeeVO.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/domain/vo/EnterpriseEmployeeVO.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/domain/vo/EnterpriseEmployeeVO.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/domain/vo/EnterpriseEmployeeVO.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/domain/vo/EnterpriseListVO.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/domain/vo/EnterpriseListVO.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/domain/vo/EnterpriseListVO.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/domain/vo/EnterpriseListVO.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/domain/vo/EnterpriseVO.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/domain/vo/EnterpriseVO.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/domain/vo/EnterpriseVO.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/enterprise/domain/vo/EnterpriseVO.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/invoice/InvoiceController.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/invoice/InvoiceController.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/invoice/InvoiceController.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/invoice/InvoiceController.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/invoice/InvoiceDao.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/invoice/InvoiceDao.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/invoice/InvoiceDao.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/invoice/InvoiceDao.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/invoice/InvoiceService.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/invoice/InvoiceService.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/invoice/InvoiceService.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/invoice/InvoiceService.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/invoice/domain/InvoiceAddForm.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/invoice/domain/InvoiceAddForm.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/invoice/domain/InvoiceAddForm.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/invoice/domain/InvoiceAddForm.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/invoice/domain/InvoiceEntity.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/invoice/domain/InvoiceEntity.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/invoice/domain/InvoiceEntity.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/invoice/domain/InvoiceEntity.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/invoice/domain/InvoiceQueryForm.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/invoice/domain/InvoiceQueryForm.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/invoice/domain/InvoiceQueryForm.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/invoice/domain/InvoiceQueryForm.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/invoice/domain/InvoiceUpdateForm.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/invoice/domain/InvoiceUpdateForm.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/invoice/domain/InvoiceUpdateForm.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/invoice/domain/InvoiceUpdateForm.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/invoice/domain/InvoiceVO.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/invoice/domain/InvoiceVO.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/invoice/domain/InvoiceVO.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/invoice/domain/InvoiceVO.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/constant/NoticeVisibleRangeDataTypeEnum.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/constant/NoticeVisibleRangeDataTypeEnum.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/constant/NoticeVisibleRangeDataTypeEnum.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/constant/NoticeVisibleRangeDataTypeEnum.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/controller/NoticeController.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/controller/NoticeController.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/controller/NoticeController.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/controller/NoticeController.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/dao/NoticeDao.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/dao/NoticeDao.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/dao/NoticeDao.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/dao/NoticeDao.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/dao/NoticeTypeDao.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/dao/NoticeTypeDao.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/dao/NoticeTypeDao.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/dao/NoticeTypeDao.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/entity/NoticeEntity.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/entity/NoticeEntity.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/entity/NoticeEntity.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/entity/NoticeEntity.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/entity/NoticeTypeEntity.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/entity/NoticeTypeEntity.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/entity/NoticeTypeEntity.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/entity/NoticeTypeEntity.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/form/NoticeAddForm.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/form/NoticeAddForm.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/form/NoticeAddForm.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/form/NoticeAddForm.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/form/NoticeEmployeeQueryForm.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/form/NoticeEmployeeQueryForm.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/form/NoticeEmployeeQueryForm.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/form/NoticeEmployeeQueryForm.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/form/NoticeQueryForm.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/form/NoticeQueryForm.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/form/NoticeQueryForm.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/form/NoticeQueryForm.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/form/NoticeUpdateForm.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/form/NoticeUpdateForm.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/form/NoticeUpdateForm.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/form/NoticeUpdateForm.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/form/NoticeViewRecordQueryForm.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/form/NoticeViewRecordQueryForm.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/form/NoticeViewRecordQueryForm.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/form/NoticeViewRecordQueryForm.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/form/NoticeVisibleRangeForm.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/form/NoticeVisibleRangeForm.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/form/NoticeVisibleRangeForm.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/form/NoticeVisibleRangeForm.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/vo/NoticeDetailVO.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/vo/NoticeDetailVO.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/vo/NoticeDetailVO.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/vo/NoticeDetailVO.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/vo/NoticeEmployeeVO.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/vo/NoticeEmployeeVO.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/vo/NoticeEmployeeVO.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/vo/NoticeEmployeeVO.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/vo/NoticeTypeVO.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/vo/NoticeTypeVO.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/vo/NoticeTypeVO.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/vo/NoticeTypeVO.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/vo/NoticeUpdateFormVO.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/vo/NoticeUpdateFormVO.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/vo/NoticeUpdateFormVO.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/vo/NoticeUpdateFormVO.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/vo/NoticeVO.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/vo/NoticeVO.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/vo/NoticeVO.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/vo/NoticeVO.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/vo/NoticeViewRecordVO.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/vo/NoticeViewRecordVO.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/vo/NoticeViewRecordVO.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/vo/NoticeViewRecordVO.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/vo/NoticeVisibleRangeVO.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/vo/NoticeVisibleRangeVO.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/vo/NoticeVisibleRangeVO.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/domain/vo/NoticeVisibleRangeVO.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/manager/NoticeManager.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/manager/NoticeManager.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/manager/NoticeManager.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/manager/NoticeManager.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/service/NoticeEmployeeService.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/service/NoticeEmployeeService.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/service/NoticeEmployeeService.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/service/NoticeEmployeeService.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/service/NoticeService.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/service/NoticeService.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/service/NoticeService.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/service/NoticeService.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/service/NoticeTypeService.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/service/NoticeTypeService.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/service/NoticeTypeService.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/business/oa/notice/service/NoticeTypeService.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/DataScope.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/DataScope.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/DataScope.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/DataScope.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/DataScopeController.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/DataScopeController.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/DataScopeController.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/DataScopeController.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/MyBatisPlugin.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/MyBatisPlugin.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/MyBatisPlugin.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/MyBatisPlugin.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/constant/DataScopeTypeEnum.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/constant/DataScopeTypeEnum.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/constant/DataScopeTypeEnum.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/constant/DataScopeTypeEnum.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/constant/DataScopeViewTypeEnum.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/constant/DataScopeViewTypeEnum.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/constant/DataScopeViewTypeEnum.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/constant/DataScopeViewTypeEnum.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/constant/DataScopeWhereInTypeEnum.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/constant/DataScopeWhereInTypeEnum.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/constant/DataScopeWhereInTypeEnum.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/constant/DataScopeWhereInTypeEnum.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/domain/DataScopeAndViewTypeVO.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/domain/DataScopeAndViewTypeVO.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/domain/DataScopeAndViewTypeVO.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/domain/DataScopeAndViewTypeVO.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/domain/DataScopeDTO.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/domain/DataScopeDTO.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/domain/DataScopeDTO.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/domain/DataScopeDTO.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/domain/DataScopeSqlConfig.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/domain/DataScopeSqlConfig.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/domain/DataScopeSqlConfig.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/domain/DataScopeSqlConfig.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/domain/DataScopeViewTypeVO.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/domain/DataScopeViewTypeVO.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/domain/DataScopeViewTypeVO.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/domain/DataScopeViewTypeVO.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/service/DataScopeService.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/service/DataScopeService.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/service/DataScopeService.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/service/DataScopeService.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/service/DataScopeSqlConfigService.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/service/DataScopeSqlConfigService.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/service/DataScopeSqlConfigService.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/service/DataScopeSqlConfigService.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/service/DataScopeViewService.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/service/DataScopeViewService.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/service/DataScopeViewService.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/service/DataScopeViewService.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/strategy/DataScopePowerStrategy.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/strategy/DataScopePowerStrategy.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/strategy/DataScopePowerStrategy.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/datascope/strategy/DataScopePowerStrategy.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/department/controller/DepartmentController.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/department/controller/DepartmentController.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/department/controller/DepartmentController.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/department/controller/DepartmentController.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/department/dao/DepartmentDao.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/department/dao/DepartmentDao.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/department/dao/DepartmentDao.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/department/dao/DepartmentDao.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/department/domain/entity/DepartmentEntity.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/department/domain/entity/DepartmentEntity.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/department/domain/entity/DepartmentEntity.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/department/domain/entity/DepartmentEntity.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/department/domain/form/DepartmentAddForm.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/department/domain/form/DepartmentAddForm.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/department/domain/form/DepartmentAddForm.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/department/domain/form/DepartmentAddForm.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/department/domain/form/DepartmentUpdateForm.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/department/domain/form/DepartmentUpdateForm.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/department/domain/form/DepartmentUpdateForm.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/department/domain/form/DepartmentUpdateForm.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/department/domain/vo/DepartmentEmployeeTreeVO.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/department/domain/vo/DepartmentEmployeeTreeVO.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/department/domain/vo/DepartmentEmployeeTreeVO.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/department/domain/vo/DepartmentEmployeeTreeVO.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/department/domain/vo/DepartmentTreeVO.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/department/domain/vo/DepartmentTreeVO.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/department/domain/vo/DepartmentTreeVO.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/department/domain/vo/DepartmentTreeVO.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/department/domain/vo/DepartmentVO.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/department/domain/vo/DepartmentVO.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/department/domain/vo/DepartmentVO.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/department/domain/vo/DepartmentVO.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/department/manager/DepartmentCacheManager.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/department/manager/DepartmentCacheManager.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/department/manager/DepartmentCacheManager.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/department/manager/DepartmentCacheManager.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/department/manager/DepartmentManager.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/department/manager/DepartmentManager.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/department/manager/DepartmentManager.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/department/manager/DepartmentManager.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/department/service/DepartmentService.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/department/service/DepartmentService.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/department/service/DepartmentService.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/department/service/DepartmentService.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/controller/EmployeeController.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/controller/EmployeeController.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/controller/EmployeeController.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/controller/EmployeeController.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/dao/EmployeeDao.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/dao/EmployeeDao.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/dao/EmployeeDao.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/dao/EmployeeDao.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/entity/EmployeeEntity.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/entity/EmployeeEntity.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/entity/EmployeeEntity.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/entity/EmployeeEntity.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeAddForm.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeAddForm.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeAddForm.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeAddForm.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeBatchUpdateDepartmentForm.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeBatchUpdateDepartmentForm.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeBatchUpdateDepartmentForm.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeBatchUpdateDepartmentForm.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeQueryForm.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeQueryForm.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeQueryForm.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeQueryForm.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeUpdateForm.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeUpdateForm.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeUpdateForm.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeUpdateForm.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeUpdatePasswordForm.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeUpdatePasswordForm.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeUpdatePasswordForm.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeUpdatePasswordForm.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeUpdateRoleForm.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeUpdateRoleForm.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeUpdateRoleForm.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/form/EmployeeUpdateRoleForm.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/vo/EmployeeVO.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/vo/EmployeeVO.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/vo/EmployeeVO.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/domain/vo/EmployeeVO.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/manager/EmployeeManager.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/manager/EmployeeManager.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/manager/EmployeeManager.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/manager/EmployeeManager.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/service/EmployeePermissionService.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/service/EmployeePermissionService.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/service/EmployeePermissionService.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/service/EmployeePermissionService.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/service/EmployeeService.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/service/EmployeeService.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/service/EmployeeService.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/employee/service/EmployeeService.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/login/controller/LoginController.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/login/controller/LoginController.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/login/controller/LoginController.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/login/controller/LoginController.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/login/domain/LoginEmployeeDetail.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/login/domain/LoginEmployeeDetail.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/login/domain/LoginEmployeeDetail.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/login/domain/LoginEmployeeDetail.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/login/domain/LoginForm.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/login/domain/LoginForm.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/login/domain/LoginForm.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/login/domain/LoginForm.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/login/service/LoginService.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/login/service/LoginService.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/login/service/LoginService.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/login/service/LoginService.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/constant/MenuPermsTypeEnum.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/constant/MenuPermsTypeEnum.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/constant/MenuPermsTypeEnum.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/constant/MenuPermsTypeEnum.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/constant/MenuTypeEnum.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/constant/MenuTypeEnum.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/constant/MenuTypeEnum.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/constant/MenuTypeEnum.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/controller/MenuController.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/controller/MenuController.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/controller/MenuController.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/controller/MenuController.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/dao/MenuDao.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/dao/MenuDao.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/dao/MenuDao.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/dao/MenuDao.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/domain/entity/MenuEntity.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/domain/entity/MenuEntity.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/domain/entity/MenuEntity.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/domain/entity/MenuEntity.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/domain/form/MenuAddForm.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/domain/form/MenuAddForm.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/domain/form/MenuAddForm.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/domain/form/MenuAddForm.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/domain/form/MenuBaseForm.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/domain/form/MenuBaseForm.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/domain/form/MenuBaseForm.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/domain/form/MenuBaseForm.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/domain/form/MenuPointsOperateForm.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/domain/form/MenuPointsOperateForm.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/domain/form/MenuPointsOperateForm.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/domain/form/MenuPointsOperateForm.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/domain/form/MenuUpdateForm.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/domain/form/MenuUpdateForm.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/domain/form/MenuUpdateForm.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/domain/form/MenuUpdateForm.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/domain/vo/MenuSimpleTreeVO.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/domain/vo/MenuSimpleTreeVO.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/domain/vo/MenuSimpleTreeVO.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/domain/vo/MenuSimpleTreeVO.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/domain/vo/MenuTreeVO.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/domain/vo/MenuTreeVO.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/domain/vo/MenuTreeVO.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/domain/vo/MenuTreeVO.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/domain/vo/MenuVO.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/domain/vo/MenuVO.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/domain/vo/MenuVO.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/domain/vo/MenuVO.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/manager/MenuManager.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/manager/MenuManager.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/manager/MenuManager.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/manager/MenuManager.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/service/MenuService.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/service/MenuService.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/service/MenuService.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/menu/service/MenuService.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/controller/RoleController.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/controller/RoleController.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/controller/RoleController.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/controller/RoleController.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/controller/RoleDataScopeController.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/controller/RoleDataScopeController.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/controller/RoleDataScopeController.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/controller/RoleDataScopeController.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/controller/RoleEmployeeController.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/controller/RoleEmployeeController.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/controller/RoleEmployeeController.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/controller/RoleEmployeeController.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/controller/RoleMenuController.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/controller/RoleMenuController.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/controller/RoleMenuController.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/controller/RoleMenuController.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/dao/RoleDao.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/dao/RoleDao.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/dao/RoleDao.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/dao/RoleDao.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/dao/RoleDataScopeDao.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/dao/RoleDataScopeDao.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/dao/RoleDataScopeDao.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/dao/RoleDataScopeDao.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/dao/RoleEmployeeDao.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/dao/RoleEmployeeDao.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/dao/RoleEmployeeDao.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/dao/RoleEmployeeDao.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/dao/RoleMenuDao.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/dao/RoleMenuDao.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/dao/RoleMenuDao.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/dao/RoleMenuDao.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/entity/RoleDataScopeEntity.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/entity/RoleDataScopeEntity.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/entity/RoleDataScopeEntity.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/entity/RoleDataScopeEntity.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/entity/RoleEmployeeEntity.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/entity/RoleEmployeeEntity.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/entity/RoleEmployeeEntity.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/entity/RoleEmployeeEntity.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/entity/RoleEntity.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/entity/RoleEntity.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/entity/RoleEntity.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/entity/RoleEntity.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/entity/RoleMenuEntity.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/entity/RoleMenuEntity.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/entity/RoleMenuEntity.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/entity/RoleMenuEntity.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/form/RoleAddForm.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/form/RoleAddForm.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/form/RoleAddForm.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/form/RoleAddForm.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/form/RoleDataScopeUpdateForm.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/form/RoleDataScopeUpdateForm.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/form/RoleDataScopeUpdateForm.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/form/RoleDataScopeUpdateForm.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/form/RoleEmployeeQueryForm.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/form/RoleEmployeeQueryForm.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/form/RoleEmployeeQueryForm.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/form/RoleEmployeeQueryForm.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/form/RoleEmployeeUpdateForm.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/form/RoleEmployeeUpdateForm.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/form/RoleEmployeeUpdateForm.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/form/RoleEmployeeUpdateForm.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/form/RoleMenuUpdateForm.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/form/RoleMenuUpdateForm.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/form/RoleMenuUpdateForm.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/form/RoleMenuUpdateForm.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/form/RoleQueryForm.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/form/RoleQueryForm.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/form/RoleQueryForm.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/form/RoleQueryForm.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/form/RoleUpdateForm.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/form/RoleUpdateForm.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/form/RoleUpdateForm.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/form/RoleUpdateForm.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/vo/RoleDataScopeVO.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/vo/RoleDataScopeVO.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/vo/RoleDataScopeVO.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/vo/RoleDataScopeVO.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/vo/RoleEmployeeVO.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/vo/RoleEmployeeVO.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/vo/RoleEmployeeVO.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/vo/RoleEmployeeVO.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/vo/RoleMenuTreeVO.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/vo/RoleMenuTreeVO.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/vo/RoleMenuTreeVO.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/vo/RoleMenuTreeVO.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/vo/RoleSelectedVO.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/vo/RoleSelectedVO.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/vo/RoleSelectedVO.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/vo/RoleSelectedVO.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/vo/RoleVO.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/vo/RoleVO.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/vo/RoleVO.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/domain/vo/RoleVO.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/manager/RoleDataScopeManager.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/manager/RoleDataScopeManager.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/manager/RoleDataScopeManager.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/manager/RoleDataScopeManager.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/manager/RoleEmployeeManager.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/manager/RoleEmployeeManager.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/manager/RoleEmployeeManager.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/manager/RoleEmployeeManager.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/manager/RoleMenuManager.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/manager/RoleMenuManager.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/manager/RoleMenuManager.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/manager/RoleMenuManager.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/service/RoleDataScopeService.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/service/RoleDataScopeService.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/service/RoleDataScopeService.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/service/RoleDataScopeService.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/service/RoleEmployeeService.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/service/RoleEmployeeService.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/service/RoleEmployeeService.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/service/RoleEmployeeService.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/service/RoleMenuService.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/service/RoleMenuService.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/service/RoleMenuService.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/service/RoleMenuService.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/service/RoleService.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/service/RoleService.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/service/RoleService.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/role/service/RoleService.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminCacheController.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminCacheController.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminCacheController.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminCacheController.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminChangeLogController.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminChangeLogController.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminChangeLogController.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminChangeLogController.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminConfigController.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminConfigController.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminConfigController.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminConfigController.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminDictController.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminDictController.java similarity index 93% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminDictController.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminDictController.java index 68f40856..8f44a918 100644 --- a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminDictController.java +++ b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminDictController.java @@ -8,11 +8,11 @@ import net.lab1024.sa.common.common.domain.ResponseDTO; import net.lab1024.sa.common.constant.SwaggerTagConst; import net.lab1024.sa.common.module.support.dict.domain.form.*; import net.lab1024.sa.common.module.support.dict.domain.vo.DictKeyVO; -import net.lab1024.sa.common.module.support.dict.domain.vo.DictValueVO; -import net.lab1024.sa.common.module.support.dict.service.DictCacheService; import net.lab1024.sa.common.module.support.dict.service.DictService; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.*; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; import javax.validation.Valid; import java.util.List; diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminFileController.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminFileController.java similarity index 69% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminFileController.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminFileController.java index f8a5b1e4..b4528715 100644 --- a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminFileController.java +++ b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminFileController.java @@ -1,28 +1,20 @@ package net.lab1024.sa.admin.module.system.support; -import cn.hutool.extra.servlet.ServletUtil; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import net.lab1024.sa.common.common.constant.RequestHeaderConst; import net.lab1024.sa.common.common.controller.SupportBaseController; import net.lab1024.sa.common.common.domain.PageResult; -import net.lab1024.sa.common.common.domain.RequestUser; import net.lab1024.sa.common.common.domain.ResponseDTO; -import net.lab1024.sa.common.common.util.SmartRequestUtil; import net.lab1024.sa.common.constant.SwaggerTagConst; -import net.lab1024.sa.common.module.support.file.constant.FileFolderTypeEnum; import net.lab1024.sa.common.module.support.file.domain.form.FileQueryForm; -import net.lab1024.sa.common.module.support.file.domain.form.FileUrlUploadForm; -import net.lab1024.sa.common.module.support.file.domain.vo.FileUploadVO; import net.lab1024.sa.common.module.support.file.domain.vo.FileVO; import net.lab1024.sa.common.module.support.file.service.FileService; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.http.ResponseEntity; import org.springframework.security.access.prepost.PreAuthorize; -import org.springframework.web.bind.annotation.*; -import org.springframework.web.multipart.MultipartFile; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RestController; -import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; /** diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminHeartBeatController.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminHeartBeatController.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminHeartBeatController.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminHeartBeatController.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminHelpDocController.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminHelpDocController.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminHelpDocController.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminHelpDocController.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminLoginLogController.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminLoginLogController.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminLoginLogController.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminLoginLogController.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminOperateLogController.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminOperateLogController.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminOperateLogController.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminOperateLogController.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminReloadController.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminReloadController.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminReloadController.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminReloadController.java diff --git a/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminSerialNumberController.java b/smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminSerialNumberController.java similarity index 100% rename from smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminSerialNumberController.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/java/net/lab1024/sa/admin/module/system/support/AdminSerialNumberController.java diff --git a/smart-admin-api/sa-admin/src/main/resources/dev/application.yaml b/smart_admin_v2/smart-admin-api/sa-admin/src/main/resources/dev/application.yaml similarity index 100% rename from smart-admin-api/sa-admin/src/main/resources/dev/application.yaml rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/resources/dev/application.yaml diff --git a/smart-admin-api/sa-admin/src/main/resources/dev/log4j2.xml b/smart_admin_v2/smart-admin-api/sa-admin/src/main/resources/dev/log4j2.xml similarity index 100% rename from smart-admin-api/sa-admin/src/main/resources/dev/log4j2.xml rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/resources/dev/log4j2.xml diff --git a/smart-admin-api/sa-admin/src/main/resources/dev/spy.properties b/smart_admin_v2/smart-admin-api/sa-admin/src/main/resources/dev/spy.properties similarity index 100% rename from smart-admin-api/sa-admin/src/main/resources/dev/spy.properties rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/resources/dev/spy.properties diff --git a/smart-admin-api/sa-admin/src/main/resources/mapper/business/category/CategoryMapper.xml b/smart_admin_v2/smart-admin-api/sa-admin/src/main/resources/mapper/business/category/CategoryMapper.xml similarity index 100% rename from smart-admin-api/sa-admin/src/main/resources/mapper/business/category/CategoryMapper.xml rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/resources/mapper/business/category/CategoryMapper.xml diff --git a/smart-admin-api/sa-admin/src/main/resources/mapper/business/goods/GoodsMapper.xml b/smart_admin_v2/smart-admin-api/sa-admin/src/main/resources/mapper/business/goods/GoodsMapper.xml similarity index 100% rename from smart-admin-api/sa-admin/src/main/resources/mapper/business/goods/GoodsMapper.xml rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/resources/mapper/business/goods/GoodsMapper.xml diff --git a/smart-admin-api/sa-admin/src/main/resources/mapper/business/notice/NoticeMapper.xml b/smart_admin_v2/smart-admin-api/sa-admin/src/main/resources/mapper/business/notice/NoticeMapper.xml similarity index 100% rename from smart-admin-api/sa-admin/src/main/resources/mapper/business/notice/NoticeMapper.xml rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/resources/mapper/business/notice/NoticeMapper.xml diff --git a/smart-admin-api/sa-admin/src/main/resources/mapper/business/oa/bank/BankMapper.xml b/smart_admin_v2/smart-admin-api/sa-admin/src/main/resources/mapper/business/oa/bank/BankMapper.xml similarity index 100% rename from smart-admin-api/sa-admin/src/main/resources/mapper/business/oa/bank/BankMapper.xml rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/resources/mapper/business/oa/bank/BankMapper.xml diff --git a/smart-admin-api/sa-admin/src/main/resources/mapper/business/oa/enterprise/EnterpriseEmployeeMapper.xml b/smart_admin_v2/smart-admin-api/sa-admin/src/main/resources/mapper/business/oa/enterprise/EnterpriseEmployeeMapper.xml similarity index 100% rename from smart-admin-api/sa-admin/src/main/resources/mapper/business/oa/enterprise/EnterpriseEmployeeMapper.xml rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/resources/mapper/business/oa/enterprise/EnterpriseEmployeeMapper.xml diff --git a/smart-admin-api/sa-admin/src/main/resources/mapper/business/oa/enterprise/EnterpriseMapper.xml b/smart_admin_v2/smart-admin-api/sa-admin/src/main/resources/mapper/business/oa/enterprise/EnterpriseMapper.xml similarity index 100% rename from smart-admin-api/sa-admin/src/main/resources/mapper/business/oa/enterprise/EnterpriseMapper.xml rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/resources/mapper/business/oa/enterprise/EnterpriseMapper.xml diff --git a/smart-admin-api/sa-admin/src/main/resources/mapper/business/oa/invoice/InvoiceMapper.xml b/smart_admin_v2/smart-admin-api/sa-admin/src/main/resources/mapper/business/oa/invoice/InvoiceMapper.xml similarity index 100% rename from smart-admin-api/sa-admin/src/main/resources/mapper/business/oa/invoice/InvoiceMapper.xml rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/resources/mapper/business/oa/invoice/InvoiceMapper.xml diff --git a/smart-admin-api/sa-admin/src/main/resources/mapper/business/oa/notice/NoticeDao.xml b/smart_admin_v2/smart-admin-api/sa-admin/src/main/resources/mapper/business/oa/notice/NoticeDao.xml similarity index 100% rename from smart-admin-api/sa-admin/src/main/resources/mapper/business/oa/notice/NoticeDao.xml rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/resources/mapper/business/oa/notice/NoticeDao.xml diff --git a/smart-admin-api/sa-admin/src/main/resources/mapper/system/department/DepartmentMapper.xml b/smart_admin_v2/smart-admin-api/sa-admin/src/main/resources/mapper/system/department/DepartmentMapper.xml similarity index 100% rename from smart-admin-api/sa-admin/src/main/resources/mapper/system/department/DepartmentMapper.xml rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/resources/mapper/system/department/DepartmentMapper.xml diff --git a/smart-admin-api/sa-admin/src/main/resources/mapper/system/employee/EmployeeMapper.xml b/smart_admin_v2/smart-admin-api/sa-admin/src/main/resources/mapper/system/employee/EmployeeMapper.xml similarity index 100% rename from smart-admin-api/sa-admin/src/main/resources/mapper/system/employee/EmployeeMapper.xml rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/resources/mapper/system/employee/EmployeeMapper.xml diff --git a/smart-admin-api/sa-admin/src/main/resources/mapper/system/menu/MenuMapper.xml b/smart_admin_v2/smart-admin-api/sa-admin/src/main/resources/mapper/system/menu/MenuMapper.xml similarity index 100% rename from smart-admin-api/sa-admin/src/main/resources/mapper/system/menu/MenuMapper.xml rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/resources/mapper/system/menu/MenuMapper.xml diff --git a/smart-admin-api/sa-admin/src/main/resources/mapper/system/role/RoleDataScopeMapper.xml b/smart_admin_v2/smart-admin-api/sa-admin/src/main/resources/mapper/system/role/RoleDataScopeMapper.xml similarity index 100% rename from smart-admin-api/sa-admin/src/main/resources/mapper/system/role/RoleDataScopeMapper.xml rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/resources/mapper/system/role/RoleDataScopeMapper.xml diff --git a/smart-admin-api/sa-admin/src/main/resources/mapper/system/role/RoleEmployeeMapper.xml b/smart_admin_v2/smart-admin-api/sa-admin/src/main/resources/mapper/system/role/RoleEmployeeMapper.xml similarity index 100% rename from smart-admin-api/sa-admin/src/main/resources/mapper/system/role/RoleEmployeeMapper.xml rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/resources/mapper/system/role/RoleEmployeeMapper.xml diff --git a/smart-admin-api/sa-admin/src/main/resources/mapper/system/role/RoleMapper.xml b/smart_admin_v2/smart-admin-api/sa-admin/src/main/resources/mapper/system/role/RoleMapper.xml similarity index 100% rename from smart-admin-api/sa-admin/src/main/resources/mapper/system/role/RoleMapper.xml rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/resources/mapper/system/role/RoleMapper.xml diff --git a/smart-admin-api/sa-admin/src/main/resources/mapper/system/role/RoleMenuMapper.xml b/smart_admin_v2/smart-admin-api/sa-admin/src/main/resources/mapper/system/role/RoleMenuMapper.xml similarity index 100% rename from smart-admin-api/sa-admin/src/main/resources/mapper/system/role/RoleMenuMapper.xml rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/resources/mapper/system/role/RoleMenuMapper.xml diff --git a/smart-admin-api/sa-admin/src/main/resources/pre/application.yaml b/smart_admin_v2/smart-admin-api/sa-admin/src/main/resources/pre/application.yaml similarity index 100% rename from smart-admin-api/sa-admin/src/main/resources/pre/application.yaml rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/resources/pre/application.yaml diff --git a/smart-admin-api/sa-admin/src/main/resources/pre/log4j2.xml b/smart_admin_v2/smart-admin-api/sa-admin/src/main/resources/pre/log4j2.xml similarity index 100% rename from smart-admin-api/sa-admin/src/main/resources/pre/log4j2.xml rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/resources/pre/log4j2.xml diff --git a/smart-admin-api/sa-admin/src/main/resources/prod/application.yaml b/smart_admin_v2/smart-admin-api/sa-admin/src/main/resources/prod/application.yaml similarity index 59% rename from smart-admin-api/sa-admin/src/main/resources/prod/application.yaml rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/resources/prod/application.yaml index 678132ec..fedc2a63 100644 --- a/smart-admin-api/sa-admin/src/main/resources/prod/application.yaml +++ b/smart_admin_v2/smart-admin-api/sa-admin/src/main/resources/prod/application.yaml @@ -6,9 +6,9 @@ spring: profiles: active: '@profiles.active@' datasource: - url: jdbc:p6spy:mysql://127.0.0.1:3306/smart_admin_v2_prod?autoReconnect=true&useServerPreparedStmts=false&rewriteBatchedStatements=true&characterEncoding=UTF-8&useSSL=false&allowMultiQueries=true&serverTimezone=Asia/Shanghai + url: jdbc:p6spy:mysql://127.0.0.1:3306/smart_admin_v2?autoReconnect=true&useServerPreparedStmts=false&rewriteBatchedStatements=true&characterEncoding=UTF-8&useSSL=false&allowMultiQueries=true&serverTimezone=Asia/Shanghai username: root - password: Lab1024 + password: 1024lab driver-class-name: com.p6spy.engine.spy.P6SpyDriver project: name: sa-admin diff --git a/smart-admin-api/sa-admin/src/main/resources/prod/log4j2.xml b/smart_admin_v2/smart-admin-api/sa-admin/src/main/resources/prod/log4j2.xml similarity index 100% rename from smart-admin-api/sa-admin/src/main/resources/prod/log4j2.xml rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/resources/prod/log4j2.xml diff --git a/smart-admin-api/sa-admin/src/main/resources/test/application.yaml b/smart_admin_v2/smart-admin-api/sa-admin/src/main/resources/test/application.yaml similarity index 100% rename from smart-admin-api/sa-admin/src/main/resources/test/application.yaml rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/resources/test/application.yaml diff --git a/smart-admin-api/sa-admin/src/main/resources/test/log4j2.xml b/smart_admin_v2/smart-admin-api/sa-admin/src/main/resources/test/log4j2.xml similarity index 100% rename from smart-admin-api/sa-admin/src/main/resources/test/log4j2.xml rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/resources/test/log4j2.xml diff --git a/smart-admin-api/sa-admin/src/main/resources/pre/spy.properties b/smart_admin_v2/smart-admin-api/sa-admin/src/main/resources/test/spy.properties similarity index 100% rename from smart-admin-api/sa-admin/src/main/resources/pre/spy.properties rename to smart_admin_v2/smart-admin-api/sa-admin/src/main/resources/test/spy.properties diff --git a/smart-admin-api/sa-admin/src/test/java/net/lab1024/sa/admin/SmartAdminApplicationTest.java b/smart_admin_v2/smart-admin-api/sa-admin/src/test/java/net/lab1024/sa/admin/SmartAdminApplicationTest.java similarity index 100% rename from smart-admin-api/sa-admin/src/test/java/net/lab1024/sa/admin/SmartAdminApplicationTest.java rename to smart_admin_v2/smart-admin-api/sa-admin/src/test/java/net/lab1024/sa/admin/SmartAdminApplicationTest.java diff --git a/smart-admin-api/sa-common/pom.xml b/smart_admin_v2/smart-admin-api/sa-common/pom.xml similarity index 99% rename from smart-admin-api/sa-common/pom.xml rename to smart_admin_v2/smart-admin-api/sa-common/pom.xml index 3db2f57d..0a52eeda 100644 --- a/smart-admin-api/sa-common/pom.xml +++ b/smart_admin_v2/smart-admin-api/sa-common/pom.xml @@ -5,11 +5,11 @@ net.1024lab sa-parent 1.0.0 + ../pom.xml sa-common 1.0.0 - sa-common sa-common project diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/annoation/NoNeedLogin.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/annoation/NoNeedLogin.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/annoation/NoNeedLogin.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/annoation/NoNeedLogin.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/annoation/SaAuth.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/annoation/SaAuth.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/annoation/SaAuth.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/annoation/SaAuth.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/code/ErrorCode.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/code/ErrorCode.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/code/ErrorCode.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/code/ErrorCode.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/code/ErrorCodeRangeContainer.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/code/ErrorCodeRangeContainer.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/code/ErrorCodeRangeContainer.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/code/ErrorCodeRangeContainer.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/code/ErrorCodeRegister.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/code/ErrorCodeRegister.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/code/ErrorCodeRegister.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/code/ErrorCodeRegister.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/code/SystemErrorCode.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/code/SystemErrorCode.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/code/SystemErrorCode.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/code/SystemErrorCode.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/code/UnexpectedErrorCode.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/code/UnexpectedErrorCode.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/code/UnexpectedErrorCode.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/code/UnexpectedErrorCode.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/code/UserErrorCode.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/code/UserErrorCode.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/code/UserErrorCode.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/code/UserErrorCode.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/constant/RequestHeaderConst.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/constant/RequestHeaderConst.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/constant/RequestHeaderConst.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/constant/RequestHeaderConst.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/constant/StringConst.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/constant/StringConst.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/constant/StringConst.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/constant/StringConst.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/controller/SupportBaseController.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/controller/SupportBaseController.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/controller/SupportBaseController.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/controller/SupportBaseController.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/domain/DataScopePlugin.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/domain/DataScopePlugin.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/domain/DataScopePlugin.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/domain/DataScopePlugin.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/domain/PageParam.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/domain/PageParam.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/domain/PageParam.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/domain/PageParam.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/domain/PageResult.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/domain/PageResult.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/domain/PageResult.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/domain/PageResult.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/domain/RequestUrlVO.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/domain/RequestUrlVO.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/domain/RequestUrlVO.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/domain/RequestUrlVO.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/domain/RequestUser.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/domain/RequestUser.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/domain/RequestUser.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/domain/RequestUser.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/domain/ResponseDTO.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/domain/ResponseDTO.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/domain/ResponseDTO.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/domain/ResponseDTO.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/domain/SystemEnvironment.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/domain/SystemEnvironment.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/domain/SystemEnvironment.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/domain/SystemEnvironment.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/domain/ValidateData.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/domain/ValidateData.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/domain/ValidateData.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/domain/ValidateData.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/domain/ValidateList.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/domain/ValidateList.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/domain/ValidateList.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/domain/ValidateList.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/enumeration/BaseEnum.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/enumeration/BaseEnum.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/enumeration/BaseEnum.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/enumeration/BaseEnum.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/enumeration/GenderEnum.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/enumeration/GenderEnum.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/enumeration/GenderEnum.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/enumeration/GenderEnum.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/enumeration/SystemEnvironmentEnum.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/enumeration/SystemEnvironmentEnum.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/enumeration/SystemEnvironmentEnum.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/enumeration/SystemEnvironmentEnum.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/enumeration/UserTypeEnum.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/enumeration/UserTypeEnum.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/enumeration/UserTypeEnum.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/enumeration/UserTypeEnum.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/excel/ExcelStyle.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/excel/ExcelStyle.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/excel/ExcelStyle.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/excel/ExcelStyle.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/exception/BusinessException.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/exception/BusinessException.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/exception/BusinessException.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/exception/BusinessException.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/interceptor/AbstractInterceptor.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/interceptor/AbstractInterceptor.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/interceptor/AbstractInterceptor.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/interceptor/AbstractInterceptor.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/json/deserializer/DictValueVoDeserializer.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/json/deserializer/DictValueVoDeserializer.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/json/deserializer/DictValueVoDeserializer.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/json/deserializer/DictValueVoDeserializer.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/json/deserializer/FileKeyVoDeserializer.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/json/deserializer/FileKeyVoDeserializer.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/json/deserializer/FileKeyVoDeserializer.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/json/deserializer/FileKeyVoDeserializer.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/json/deserializer/LongJsonDeserializer.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/json/deserializer/LongJsonDeserializer.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/json/deserializer/LongJsonDeserializer.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/json/deserializer/LongJsonDeserializer.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/json/serializer/BigDecimalNullZeroSerializer.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/json/serializer/BigDecimalNullZeroSerializer.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/json/serializer/BigDecimalNullZeroSerializer.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/json/serializer/BigDecimalNullZeroSerializer.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/json/serializer/DictValueVoSerializer.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/json/serializer/DictValueVoSerializer.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/json/serializer/DictValueVoSerializer.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/json/serializer/DictValueVoSerializer.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/json/serializer/FileKeySerializer.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/json/serializer/FileKeySerializer.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/json/serializer/FileKeySerializer.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/json/serializer/FileKeySerializer.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/json/serializer/FileKeyVoSerializer.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/json/serializer/FileKeyVoSerializer.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/json/serializer/FileKeyVoSerializer.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/json/serializer/FileKeyVoSerializer.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/json/serializer/LongJsonSerializer.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/json/serializer/LongJsonSerializer.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/json/serializer/LongJsonSerializer.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/json/serializer/LongJsonSerializer.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/security/AbstractSecurityConfig.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/security/AbstractSecurityConfig.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/security/AbstractSecurityConfig.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/security/AbstractSecurityConfig.java index eda6db22..91fb7212 100644 --- a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/security/AbstractSecurityConfig.java +++ b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/security/AbstractSecurityConfig.java @@ -52,7 +52,7 @@ public abstract class AbstractSecurityConfig extends WebSecurityConfigurerAdapte * @return */ protected String[] getNoNeedLoginUrl() { - return ignoreUrlList.toArray(new String[ignoreUrlList.size()]); + return noNeedLoginUrlList.toArray(new String[noNeedLoginUrlList.size()]); } /** @@ -61,7 +61,7 @@ public abstract class AbstractSecurityConfig extends WebSecurityConfigurerAdapte * @return */ protected String[] getIgnoreUrlList() { - return noNeedLoginUrlList.toArray(new String[noNeedLoginUrlList.size()]); + return ignoreUrlList.toArray(new String[ignoreUrlList.size()]); } @Override diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/security/SecurityAuthenticationFailHandler.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/security/SecurityAuthenticationFailHandler.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/security/SecurityAuthenticationFailHandler.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/security/SecurityAuthenticationFailHandler.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/security/SecurityMethodSource.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/security/SecurityMethodSource.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/security/SecurityMethodSource.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/security/SecurityMethodSource.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/security/SecurityPermissionCheckService.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/security/SecurityPermissionCheckService.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/security/SecurityPermissionCheckService.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/security/SecurityPermissionCheckService.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/security/SecurityTokenFilter.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/security/SecurityTokenFilter.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/security/SecurityTokenFilter.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/security/SecurityTokenFilter.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/swagger/ApiModelPropertyEnum.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/swagger/ApiModelPropertyEnum.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/swagger/ApiModelPropertyEnum.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/swagger/ApiModelPropertyEnum.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/swagger/Swagger2MapperImplExtension.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/swagger/Swagger2MapperImplExtension.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/swagger/Swagger2MapperImplExtension.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/swagger/Swagger2MapperImplExtension.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/swagger/SwaggerApiModelPropertyEnumPlugin.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/swagger/SwaggerApiModelPropertyEnumPlugin.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/swagger/SwaggerApiModelPropertyEnumPlugin.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/swagger/SwaggerApiModelPropertyEnumPlugin.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/util/SmartBeanUtil.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/util/SmartBeanUtil.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/util/SmartBeanUtil.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/util/SmartBeanUtil.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/util/SmartBigDecimalUtil.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/util/SmartBigDecimalUtil.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/util/SmartBigDecimalUtil.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/util/SmartBigDecimalUtil.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/util/SmartEasyPoiExcelUtil.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/util/SmartEasyPoiExcelUtil.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/util/SmartEasyPoiExcelUtil.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/util/SmartEasyPoiExcelUtil.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/util/SmartEnumUtil.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/util/SmartEnumUtil.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/util/SmartEnumUtil.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/util/SmartEnumUtil.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/util/SmartPageUtil.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/util/SmartPageUtil.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/util/SmartPageUtil.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/util/SmartPageUtil.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/util/SmartRequestUtil.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/util/SmartRequestUtil.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/util/SmartRequestUtil.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/util/SmartRequestUtil.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/util/SmartStringUtil.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/util/SmartStringUtil.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/util/SmartStringUtil.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/util/SmartStringUtil.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/util/SmartVerificationUtil.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/util/SmartVerificationUtil.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/util/SmartVerificationUtil.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/util/SmartVerificationUtil.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/validator/enumeration/CheckEnum.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/validator/enumeration/CheckEnum.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/validator/enumeration/CheckEnum.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/validator/enumeration/CheckEnum.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/validator/enumeration/EnumValidator.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/validator/enumeration/EnumValidator.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/validator/enumeration/EnumValidator.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/common/validator/enumeration/EnumValidator.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/AsyncConfig.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/AsyncConfig.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/AsyncConfig.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/AsyncConfig.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/CorsFilterConfig.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/CorsFilterConfig.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/CorsFilterConfig.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/CorsFilterConfig.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/DataSourceConfig.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/DataSourceConfig.java similarity index 92% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/DataSourceConfig.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/DataSourceConfig.java index 35f8606d..cb937a0b 100644 --- a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/DataSourceConfig.java +++ b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/DataSourceConfig.java @@ -90,12 +90,6 @@ public class DataSourceConfig { @Value("${spring.datasource.druid.method.pointcut}") String methodPointcut; - @Autowired - private StatFilter logSlowSql; - - @Autowired - private DruidStatInterceptor druidStatInterceptor; - @Autowired private MybatisPlusInterceptor paginationInterceptor; @@ -121,7 +115,11 @@ public class DataSourceConfig { try { druidDataSource.setFilters(filters); ArrayList arrayList = new ArrayList<>(); - arrayList.add(logSlowSql); + StatFilter statFilter = new StatFilter(); + statFilter.setMergeSql(true); + statFilter.setSlowSqlMillis(500); + statFilter.setLogSlowSql(true); + arrayList.add(statFilter); druidDataSource.setProxyFilters(arrayList); druidDataSource.init(); } catch (SQLException e) { @@ -181,20 +179,6 @@ public class DataSourceConfig { return filterRegistrationBean; } - @Bean - public StatFilter logSlowSql() { - StatFilter statFilter = new StatFilter(); - statFilter.setMergeSql(true); - statFilter.setSlowSqlMillis(500); - statFilter.setLogSlowSql(true); - return statFilter; - } - - @Bean(name = "druid-stat-interceptor") - public DruidStatInterceptor druidStatInterceptor() { - return new DruidStatInterceptor(); - } - @Bean public JdkRegexpMethodPointcut jdkRegexpMethodPointcut() { JdkRegexpMethodPointcut jdkRegexpMethodPointcut = new JdkRegexpMethodPointcut(); @@ -206,7 +190,7 @@ public class DataSourceConfig { public DefaultPointcutAdvisor defaultPointcutAdvisor() { DefaultPointcutAdvisor pointcutAdvisor = new DefaultPointcutAdvisor(); pointcutAdvisor.setPointcut(jdkRegexpMethodPointcut()); - pointcutAdvisor.setAdvice(druidStatInterceptor); + pointcutAdvisor.setAdvice(new DruidStatInterceptor()); return pointcutAdvisor; } diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/DateConfig.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/DateConfig.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/DateConfig.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/DateConfig.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/FileCloudConfig.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/FileCloudConfig.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/FileCloudConfig.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/FileCloudConfig.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/HeartBeatConfig.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/HeartBeatConfig.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/HeartBeatConfig.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/HeartBeatConfig.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/MvcConfig.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/MvcConfig.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/MvcConfig.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/MvcConfig.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/MybatisPlusConfig.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/MybatisPlusConfig.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/MybatisPlusConfig.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/MybatisPlusConfig.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/PostProcessorConfig.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/PostProcessorConfig.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/PostProcessorConfig.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/PostProcessorConfig.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/RedisConfig.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/RedisConfig.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/RedisConfig.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/RedisConfig.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/ReloadConfig.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/ReloadConfig.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/ReloadConfig.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/ReloadConfig.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/RepeatSubmitConfig.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/RepeatSubmitConfig.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/RepeatSubmitConfig.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/RepeatSubmitConfig.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/RestTemplateConfig.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/RestTemplateConfig.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/RestTemplateConfig.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/RestTemplateConfig.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/ScheduleConfig.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/ScheduleConfig.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/ScheduleConfig.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/ScheduleConfig.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/SwaggerConfig.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/SwaggerConfig.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/SwaggerConfig.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/SwaggerConfig.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/SystemEnvironmentConfig.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/SystemEnvironmentConfig.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/SystemEnvironmentConfig.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/SystemEnvironmentConfig.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/UrlConfig.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/UrlConfig.java similarity index 99% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/UrlConfig.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/UrlConfig.java index bb86ccb8..6e8ae116 100644 --- a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/UrlConfig.java +++ b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/config/UrlConfig.java @@ -37,6 +37,7 @@ public class UrlConfig { @Autowired private RequestMappingHandlerMapping requestMappingHandlerMapping; + /** * 获取每个方法的请求路径 * @@ -49,6 +50,7 @@ public class UrlConfig { Map map = requestMappingHandlerMapping.getHandlerMethods(); for (Map.Entry entry : map.entrySet()) { RequestMappingInfo requestMappingInfo = entry.getKey(); + Set urls = requestMappingInfo.getPatternsCondition().getPatterns(); if (CollectionUtils.isEmpty(urls)) { continue; @@ -140,6 +142,7 @@ public class UrlConfig { ignoreUrlList.add("/swagger-ui.html"); ignoreUrlList.add("/swagger-resources/**"); ignoreUrlList.add("/webjars/**"); + ignoreUrlList.add("/druid/**"); ignoreUrlList.add("/*/api-docs"); return ignoreUrlList; } diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/constant/CacheKeyConst.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/constant/CacheKeyConst.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/constant/CacheKeyConst.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/constant/CacheKeyConst.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/constant/RedisKeyConst.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/constant/RedisKeyConst.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/constant/RedisKeyConst.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/constant/RedisKeyConst.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/constant/ReloadConst.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/constant/ReloadConst.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/constant/ReloadConst.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/constant/ReloadConst.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/constant/SwaggerTagConst.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/constant/SwaggerTagConst.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/constant/SwaggerTagConst.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/constant/SwaggerTagConst.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/constant/UrlPrefixConst.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/constant/UrlPrefixConst.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/constant/UrlPrefixConst.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/constant/UrlPrefixConst.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/handler/GlobalExceptionHandler.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/handler/GlobalExceptionHandler.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/handler/GlobalExceptionHandler.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/handler/GlobalExceptionHandler.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/listener/SmartApplicationListener.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/listener/SmartApplicationListener.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/listener/SmartApplicationListener.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/listener/SmartApplicationListener.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/cache/CacheService.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/cache/CacheService.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/cache/CacheService.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/cache/CacheService.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/captcha/CaptchaController.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/captcha/CaptchaController.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/captcha/CaptchaController.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/captcha/CaptchaController.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/captcha/CaptchaService.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/captcha/CaptchaService.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/captcha/CaptchaService.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/captcha/CaptchaService.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/captcha/config/CaptchaColor.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/captcha/config/CaptchaColor.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/captcha/config/CaptchaColor.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/captcha/config/CaptchaColor.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/captcha/config/CaptchaConfig.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/captcha/config/CaptchaConfig.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/captcha/config/CaptchaConfig.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/captcha/config/CaptchaConfig.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/captcha/config/CaptchaNoise.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/captcha/config/CaptchaNoise.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/captcha/config/CaptchaNoise.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/captcha/config/CaptchaNoise.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/captcha/config/CaptchaWordRenderer.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/captcha/config/CaptchaWordRenderer.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/captcha/config/CaptchaWordRenderer.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/captcha/config/CaptchaWordRenderer.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/captcha/domain/CaptchaForm.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/captcha/domain/CaptchaForm.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/captcha/domain/CaptchaForm.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/captcha/domain/CaptchaForm.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/captcha/domain/CaptchaVO.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/captcha/domain/CaptchaVO.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/captcha/domain/CaptchaVO.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/captcha/domain/CaptchaVO.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/changelog/constant/ChangeLogTypeEnum.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/changelog/constant/ChangeLogTypeEnum.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/changelog/constant/ChangeLogTypeEnum.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/changelog/constant/ChangeLogTypeEnum.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/changelog/controller/ChangeLogController.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/changelog/controller/ChangeLogController.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/changelog/controller/ChangeLogController.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/changelog/controller/ChangeLogController.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/changelog/dao/ChangeLogDao.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/changelog/dao/ChangeLogDao.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/changelog/dao/ChangeLogDao.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/changelog/dao/ChangeLogDao.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/changelog/domain/entity/ChangeLogEntity.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/changelog/domain/entity/ChangeLogEntity.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/changelog/domain/entity/ChangeLogEntity.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/changelog/domain/entity/ChangeLogEntity.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/changelog/domain/form/ChangeLogAddForm.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/changelog/domain/form/ChangeLogAddForm.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/changelog/domain/form/ChangeLogAddForm.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/changelog/domain/form/ChangeLogAddForm.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/changelog/domain/form/ChangeLogQueryForm.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/changelog/domain/form/ChangeLogQueryForm.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/changelog/domain/form/ChangeLogQueryForm.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/changelog/domain/form/ChangeLogQueryForm.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/changelog/domain/form/ChangeLogUpdateForm.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/changelog/domain/form/ChangeLogUpdateForm.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/changelog/domain/form/ChangeLogUpdateForm.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/changelog/domain/form/ChangeLogUpdateForm.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/changelog/domain/vo/ChangeLogVO.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/changelog/domain/vo/ChangeLogVO.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/changelog/domain/vo/ChangeLogVO.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/changelog/domain/vo/ChangeLogVO.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/changelog/manager/ChangeLogManager.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/changelog/manager/ChangeLogManager.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/changelog/manager/ChangeLogManager.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/changelog/manager/ChangeLogManager.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/changelog/service/ChangeLogService.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/changelog/service/ChangeLogService.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/changelog/service/ChangeLogService.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/changelog/service/ChangeLogService.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/constant/CodeDeleteEnum.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/constant/CodeDeleteEnum.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/constant/CodeDeleteEnum.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/constant/CodeDeleteEnum.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/constant/CodeFrontComponentEnum.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/constant/CodeFrontComponentEnum.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/constant/CodeFrontComponentEnum.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/constant/CodeFrontComponentEnum.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/constant/CodeGeneratorConstant.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/constant/CodeGeneratorConstant.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/constant/CodeGeneratorConstant.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/constant/CodeGeneratorConstant.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/constant/CodeGeneratorPageTypeEnum.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/constant/CodeGeneratorPageTypeEnum.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/constant/CodeGeneratorPageTypeEnum.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/constant/CodeGeneratorPageTypeEnum.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/constant/CodeQueryFieldQueryTypeEnum.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/constant/CodeQueryFieldQueryTypeEnum.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/constant/CodeQueryFieldQueryTypeEnum.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/constant/CodeQueryFieldQueryTypeEnum.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/controller/CodeGeneratorController.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/controller/CodeGeneratorController.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/controller/CodeGeneratorController.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/controller/CodeGeneratorController.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/dao/CodeGeneratorConfigDao.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/dao/CodeGeneratorConfigDao.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/dao/CodeGeneratorConfigDao.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/dao/CodeGeneratorConfigDao.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/dao/CodeGeneratorDao.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/dao/CodeGeneratorDao.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/dao/CodeGeneratorDao.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/dao/CodeGeneratorDao.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/entity/CodeGeneratorConfigEntity.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/entity/CodeGeneratorConfigEntity.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/entity/CodeGeneratorConfigEntity.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/entity/CodeGeneratorConfigEntity.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/form/CodeGeneratorConfigForm.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/form/CodeGeneratorConfigForm.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/form/CodeGeneratorConfigForm.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/form/CodeGeneratorConfigForm.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/form/CodeGeneratorPreviewForm.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/form/CodeGeneratorPreviewForm.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/form/CodeGeneratorPreviewForm.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/form/CodeGeneratorPreviewForm.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/form/TableQueryForm.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/form/TableQueryForm.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/form/TableQueryForm.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/form/TableQueryForm.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/model/CodeBasic.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/model/CodeBasic.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/model/CodeBasic.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/model/CodeBasic.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/model/CodeDelete.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/model/CodeDelete.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/model/CodeDelete.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/model/CodeDelete.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/model/CodeField.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/model/CodeField.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/model/CodeField.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/model/CodeField.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/model/CodeInsertAndUpdate.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/model/CodeInsertAndUpdate.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/model/CodeInsertAndUpdate.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/model/CodeInsertAndUpdate.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/model/CodeInsertAndUpdateField.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/model/CodeInsertAndUpdateField.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/model/CodeInsertAndUpdateField.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/model/CodeInsertAndUpdateField.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/model/CodeQueryField.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/model/CodeQueryField.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/model/CodeQueryField.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/model/CodeQueryField.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/model/CodeTableField.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/model/CodeTableField.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/model/CodeTableField.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/model/CodeTableField.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/vo/TableColumnVO.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/vo/TableColumnVO.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/vo/TableColumnVO.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/vo/TableColumnVO.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/vo/TableConfigVO.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/vo/TableConfigVO.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/vo/TableConfigVO.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/vo/TableConfigVO.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/vo/TableVO.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/vo/TableVO.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/vo/TableVO.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/domain/vo/TableVO.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/CodeGeneratorService.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/CodeGeneratorService.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/CodeGeneratorService.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/CodeGeneratorService.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/CodeGeneratorTemplateService.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/CodeGeneratorTemplateService.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/CodeGeneratorTemplateService.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/CodeGeneratorTemplateService.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/CodeGenerateBaseVariableService.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/CodeGenerateBaseVariableService.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/CodeGenerateBaseVariableService.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/CodeGenerateBaseVariableService.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/backend/ControllerVariableService.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/backend/ControllerVariableService.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/backend/ControllerVariableService.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/backend/ControllerVariableService.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/backend/DaoVariableService.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/backend/DaoVariableService.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/backend/DaoVariableService.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/backend/DaoVariableService.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/backend/ManagerVariableService.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/backend/ManagerVariableService.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/backend/ManagerVariableService.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/backend/ManagerVariableService.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/backend/ServiceVariableService.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/backend/ServiceVariableService.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/backend/ServiceVariableService.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/backend/ServiceVariableService.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/backend/domain/AddFormVariableService.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/backend/domain/AddFormVariableService.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/backend/domain/AddFormVariableService.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/backend/domain/AddFormVariableService.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/backend/domain/DeleteFormVariableService.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/backend/domain/DeleteFormVariableService.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/backend/domain/DeleteFormVariableService.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/backend/domain/DeleteFormVariableService.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/backend/domain/EntityVariableService.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/backend/domain/EntityVariableService.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/backend/domain/EntityVariableService.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/backend/domain/EntityVariableService.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/backend/domain/MapperVariableService.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/backend/domain/MapperVariableService.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/backend/domain/MapperVariableService.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/backend/domain/MapperVariableService.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/backend/domain/QueryFormVariableService.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/backend/domain/QueryFormVariableService.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/backend/domain/QueryFormVariableService.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/backend/domain/QueryFormVariableService.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/backend/domain/UpdateFormVariableService.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/backend/domain/UpdateFormVariableService.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/backend/domain/UpdateFormVariableService.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/backend/domain/UpdateFormVariableService.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/backend/domain/VOVariableService.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/backend/domain/VOVariableService.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/backend/domain/VOVariableService.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/backend/domain/VOVariableService.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/front/ApiVariableService.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/front/ApiVariableService.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/front/ApiVariableService.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/front/ApiVariableService.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/front/ConstVariableService.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/front/ConstVariableService.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/front/ConstVariableService.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/front/ConstVariableService.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/front/FormVariableService.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/front/FormVariableService.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/front/FormVariableService.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/front/FormVariableService.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/front/ListVariableService.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/front/ListVariableService.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/front/ListVariableService.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/service/variable/front/ListVariableService.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/util/CodeGeneratorTool.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/util/CodeGeneratorTool.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/util/CodeGeneratorTool.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/codegenerator/util/CodeGeneratorTool.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/config/ConfigController.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/config/ConfigController.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/config/ConfigController.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/config/ConfigController.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/config/ConfigDao.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/config/ConfigDao.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/config/ConfigDao.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/config/ConfigDao.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/config/ConfigKeyEnum.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/config/ConfigKeyEnum.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/config/ConfigKeyEnum.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/config/ConfigKeyEnum.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/config/ConfigService.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/config/ConfigService.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/config/ConfigService.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/config/ConfigService.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/config/domain/ConfigAddForm.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/config/domain/ConfigAddForm.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/config/domain/ConfigAddForm.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/config/domain/ConfigAddForm.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/config/domain/ConfigEntity.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/config/domain/ConfigEntity.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/config/domain/ConfigEntity.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/config/domain/ConfigEntity.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/config/domain/ConfigQueryForm.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/config/domain/ConfigQueryForm.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/config/domain/ConfigQueryForm.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/config/domain/ConfigQueryForm.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/config/domain/ConfigUpdateForm.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/config/domain/ConfigUpdateForm.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/config/domain/ConfigUpdateForm.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/config/domain/ConfigUpdateForm.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/config/domain/ConfigVO.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/config/domain/ConfigVO.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/config/domain/ConfigVO.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/config/domain/ConfigVO.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/annoation/DataTracerFieldBigDecimal.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/annoation/DataTracerFieldBigDecimal.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/annoation/DataTracerFieldBigDecimal.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/annoation/DataTracerFieldBigDecimal.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/annoation/DataTracerFieldDict.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/annoation/DataTracerFieldDict.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/annoation/DataTracerFieldDict.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/annoation/DataTracerFieldDict.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/annoation/DataTracerFieldEnum.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/annoation/DataTracerFieldEnum.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/annoation/DataTracerFieldEnum.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/annoation/DataTracerFieldEnum.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/annoation/DataTracerFieldLabel.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/annoation/DataTracerFieldLabel.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/annoation/DataTracerFieldLabel.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/annoation/DataTracerFieldLabel.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/annoation/DataTracerFieldSql.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/annoation/DataTracerFieldSql.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/annoation/DataTracerFieldSql.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/annoation/DataTracerFieldSql.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/constant/DataTracerConst.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/constant/DataTracerConst.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/constant/DataTracerConst.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/constant/DataTracerConst.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/constant/DataTracerTypeEnum.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/constant/DataTracerTypeEnum.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/constant/DataTracerTypeEnum.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/constant/DataTracerTypeEnum.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/controller/DataTracerController.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/controller/DataTracerController.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/controller/DataTracerController.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/controller/DataTracerController.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/dao/DataTracerDao.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/dao/DataTracerDao.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/dao/DataTracerDao.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/dao/DataTracerDao.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/domain/bo/DataTracerContentBO.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/domain/bo/DataTracerContentBO.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/domain/bo/DataTracerContentBO.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/domain/bo/DataTracerContentBO.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/domain/entity/DataTracerEntity.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/domain/entity/DataTracerEntity.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/domain/entity/DataTracerEntity.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/domain/entity/DataTracerEntity.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/domain/form/DataTracerForm.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/domain/form/DataTracerForm.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/domain/form/DataTracerForm.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/domain/form/DataTracerForm.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/domain/form/DataTracerQueryForm.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/domain/form/DataTracerQueryForm.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/domain/form/DataTracerQueryForm.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/domain/form/DataTracerQueryForm.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/domain/vo/DataTracerVO.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/domain/vo/DataTracerVO.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/domain/vo/DataTracerVO.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/domain/vo/DataTracerVO.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/manager/DataTracerManger.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/manager/DataTracerManger.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/manager/DataTracerManger.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/manager/DataTracerManger.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/service/DataTracerChangeContentService.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/service/DataTracerChangeContentService.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/service/DataTracerChangeContentService.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/service/DataTracerChangeContentService.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/service/DataTracerService.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/service/DataTracerService.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/service/DataTracerService.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/datatracer/service/DataTracerService.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/controller/DictController.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/controller/DictController.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/controller/DictController.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/controller/DictController.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/dao/DictKeyDao.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/dao/DictKeyDao.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/dao/DictKeyDao.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/dao/DictKeyDao.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/dao/DictValueDao.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/dao/DictValueDao.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/dao/DictValueDao.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/dao/DictValueDao.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/domain/entity/DictKeyEntity.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/domain/entity/DictKeyEntity.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/domain/entity/DictKeyEntity.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/domain/entity/DictKeyEntity.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/domain/entity/DictValueEntity.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/domain/entity/DictValueEntity.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/domain/entity/DictValueEntity.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/domain/entity/DictValueEntity.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/domain/form/DictKeyAddForm.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/domain/form/DictKeyAddForm.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/domain/form/DictKeyAddForm.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/domain/form/DictKeyAddForm.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/domain/form/DictKeyQueryForm.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/domain/form/DictKeyQueryForm.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/domain/form/DictKeyQueryForm.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/domain/form/DictKeyQueryForm.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/domain/form/DictKeyUpdateForm.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/domain/form/DictKeyUpdateForm.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/domain/form/DictKeyUpdateForm.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/domain/form/DictKeyUpdateForm.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/domain/form/DictValueAddForm.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/domain/form/DictValueAddForm.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/domain/form/DictValueAddForm.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/domain/form/DictValueAddForm.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/domain/form/DictValueQueryForm.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/domain/form/DictValueQueryForm.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/domain/form/DictValueQueryForm.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/domain/form/DictValueQueryForm.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/domain/form/DictValueUpdateForm.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/domain/form/DictValueUpdateForm.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/domain/form/DictValueUpdateForm.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/domain/form/DictValueUpdateForm.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/domain/vo/DictKeyVO.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/domain/vo/DictKeyVO.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/domain/vo/DictKeyVO.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/domain/vo/DictKeyVO.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/domain/vo/DictValueVO.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/domain/vo/DictValueVO.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/domain/vo/DictValueVO.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/domain/vo/DictValueVO.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/service/DictCacheService.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/service/DictCacheService.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/service/DictCacheService.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/service/DictCacheService.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/service/DictService.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/service/DictService.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/service/DictService.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/dict/service/DictService.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/feedback/controller/FeedbackController.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/feedback/controller/FeedbackController.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/feedback/controller/FeedbackController.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/feedback/controller/FeedbackController.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/feedback/dao/FeedbackDao.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/feedback/dao/FeedbackDao.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/feedback/dao/FeedbackDao.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/feedback/dao/FeedbackDao.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/feedback/domain/FeedbackAddForm.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/feedback/domain/FeedbackAddForm.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/feedback/domain/FeedbackAddForm.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/feedback/domain/FeedbackAddForm.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/feedback/domain/FeedbackEntity.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/feedback/domain/FeedbackEntity.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/feedback/domain/FeedbackEntity.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/feedback/domain/FeedbackEntity.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/feedback/domain/FeedbackQueryForm.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/feedback/domain/FeedbackQueryForm.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/feedback/domain/FeedbackQueryForm.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/feedback/domain/FeedbackQueryForm.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/feedback/domain/FeedbackVO.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/feedback/domain/FeedbackVO.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/feedback/domain/FeedbackVO.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/feedback/domain/FeedbackVO.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/feedback/service/FeedbackService.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/feedback/service/FeedbackService.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/feedback/service/FeedbackService.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/feedback/service/FeedbackService.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/constant/FileFolderTypeEnum.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/constant/FileFolderTypeEnum.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/constant/FileFolderTypeEnum.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/constant/FileFolderTypeEnum.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/controller/FileController.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/controller/FileController.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/controller/FileController.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/controller/FileController.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/dao/FileDao.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/dao/FileDao.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/dao/FileDao.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/dao/FileDao.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/domain/entity/FileEntity.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/domain/entity/FileEntity.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/domain/entity/FileEntity.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/domain/entity/FileEntity.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/domain/form/FileQueryForm.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/domain/form/FileQueryForm.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/domain/form/FileQueryForm.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/domain/form/FileQueryForm.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/domain/form/FileUrlUploadForm.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/domain/form/FileUrlUploadForm.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/domain/form/FileUrlUploadForm.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/domain/form/FileUrlUploadForm.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/domain/vo/FileDownloadVO.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/domain/vo/FileDownloadVO.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/domain/vo/FileDownloadVO.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/domain/vo/FileDownloadVO.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/domain/vo/FileMetadataVO.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/domain/vo/FileMetadataVO.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/domain/vo/FileMetadataVO.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/domain/vo/FileMetadataVO.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/domain/vo/FileUploadVO.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/domain/vo/FileUploadVO.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/domain/vo/FileUploadVO.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/domain/vo/FileUploadVO.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/domain/vo/FileVO.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/domain/vo/FileVO.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/domain/vo/FileVO.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/domain/vo/FileVO.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/service/FileService.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/service/FileService.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/service/FileService.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/service/FileService.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/service/FileStorageCloudServiceImpl.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/service/FileStorageCloudServiceImpl.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/service/FileStorageCloudServiceImpl.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/service/FileStorageCloudServiceImpl.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/service/FileStorageLocalServiceImpl.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/service/FileStorageLocalServiceImpl.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/service/FileStorageLocalServiceImpl.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/service/FileStorageLocalServiceImpl.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/service/IFileStorageService.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/service/IFileStorageService.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/service/IFileStorageService.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/file/service/IFileStorageService.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/heartbeat/HeartBeatRecordDao.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/heartbeat/HeartBeatRecordDao.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/heartbeat/HeartBeatRecordDao.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/heartbeat/HeartBeatRecordDao.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/heartbeat/HeartBeatRecordHandler.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/heartbeat/HeartBeatRecordHandler.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/heartbeat/HeartBeatRecordHandler.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/heartbeat/HeartBeatRecordHandler.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/heartbeat/HeartBeatService.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/heartbeat/HeartBeatService.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/heartbeat/HeartBeatService.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/heartbeat/HeartBeatService.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/heartbeat/core/HeartBeatManager.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/heartbeat/core/HeartBeatManager.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/heartbeat/core/HeartBeatManager.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/heartbeat/core/HeartBeatManager.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/heartbeat/core/HeartBeatRecord.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/heartbeat/core/HeartBeatRecord.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/heartbeat/core/HeartBeatRecord.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/heartbeat/core/HeartBeatRecord.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/heartbeat/core/HeartBeatRunnable.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/heartbeat/core/HeartBeatRunnable.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/heartbeat/core/HeartBeatRunnable.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/heartbeat/core/HeartBeatRunnable.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/heartbeat/core/IHeartBeatRecordHandler.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/heartbeat/core/IHeartBeatRecordHandler.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/heartbeat/core/IHeartBeatRecordHandler.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/heartbeat/core/IHeartBeatRecordHandler.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/heartbeat/domain/HeartBeatRecordEntity.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/heartbeat/domain/HeartBeatRecordEntity.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/heartbeat/domain/HeartBeatRecordEntity.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/heartbeat/domain/HeartBeatRecordEntity.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/heartbeat/domain/HeartBeatRecordQueryForm.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/heartbeat/domain/HeartBeatRecordQueryForm.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/heartbeat/domain/HeartBeatRecordQueryForm.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/heartbeat/domain/HeartBeatRecordQueryForm.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/heartbeat/domain/HeartBeatRecordVO.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/heartbeat/domain/HeartBeatRecordVO.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/heartbeat/domain/HeartBeatRecordVO.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/heartbeat/domain/HeartBeatRecordVO.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/controller/HelpDocController.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/controller/HelpDocController.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/controller/HelpDocController.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/controller/HelpDocController.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/dao/HelpDocCatalogDao.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/dao/HelpDocCatalogDao.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/dao/HelpDocCatalogDao.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/dao/HelpDocCatalogDao.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/dao/HelpDocDao.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/dao/HelpDocDao.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/dao/HelpDocDao.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/dao/HelpDocDao.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/entity/HelpDocCatalogEntity.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/entity/HelpDocCatalogEntity.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/entity/HelpDocCatalogEntity.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/entity/HelpDocCatalogEntity.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/entity/HelpDocEntity.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/entity/HelpDocEntity.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/entity/HelpDocEntity.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/entity/HelpDocEntity.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/form/HelpDocAddForm.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/form/HelpDocAddForm.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/form/HelpDocAddForm.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/form/HelpDocAddForm.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/form/HelpDocCatalogAddForm.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/form/HelpDocCatalogAddForm.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/form/HelpDocCatalogAddForm.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/form/HelpDocCatalogAddForm.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/form/HelpDocCatalogUpdateForm.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/form/HelpDocCatalogUpdateForm.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/form/HelpDocCatalogUpdateForm.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/form/HelpDocCatalogUpdateForm.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/form/HelpDocQueryForm.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/form/HelpDocQueryForm.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/form/HelpDocQueryForm.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/form/HelpDocQueryForm.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/form/HelpDocRelationForm.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/form/HelpDocRelationForm.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/form/HelpDocRelationForm.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/form/HelpDocRelationForm.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/form/HelpDocUpdateForm.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/form/HelpDocUpdateForm.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/form/HelpDocUpdateForm.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/form/HelpDocUpdateForm.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/form/HelpDocViewRecordQueryForm.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/form/HelpDocViewRecordQueryForm.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/form/HelpDocViewRecordQueryForm.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/form/HelpDocViewRecordQueryForm.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/vo/HelpDocCatalogVO.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/vo/HelpDocCatalogVO.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/vo/HelpDocCatalogVO.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/vo/HelpDocCatalogVO.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/vo/HelpDocDetailVO.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/vo/HelpDocDetailVO.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/vo/HelpDocDetailVO.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/vo/HelpDocDetailVO.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/vo/HelpDocRecordVO.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/vo/HelpDocRecordVO.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/vo/HelpDocRecordVO.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/vo/HelpDocRecordVO.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/vo/HelpDocRelationVO.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/vo/HelpDocRelationVO.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/vo/HelpDocRelationVO.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/vo/HelpDocRelationVO.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/vo/HelpDocVO.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/vo/HelpDocVO.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/vo/HelpDocVO.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/vo/HelpDocVO.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/vo/HelpDocViewRecordVO.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/vo/HelpDocViewRecordVO.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/vo/HelpDocViewRecordVO.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/domain/vo/HelpDocViewRecordVO.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/manager/HelpDocManager.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/manager/HelpDocManager.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/manager/HelpDocManager.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/manager/HelpDocManager.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/service/HelpDocCatalogService.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/service/HelpDocCatalogService.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/service/HelpDocCatalogService.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/service/HelpDocCatalogService.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/service/HelpDocService.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/service/HelpDocService.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/service/HelpDocService.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/service/HelpDocService.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/service/HelpDocUserService.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/service/HelpDocUserService.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/service/HelpDocUserService.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/helpdoc/service/HelpDocUserService.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/jwe/DecryptData.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/jwe/DecryptData.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/jwe/DecryptData.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/jwe/DecryptData.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/jwe/JweAspect.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/jwe/JweAspect.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/jwe/JweAspect.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/jwe/JweAspect.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/jwe/JweDecrypt.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/jwe/JweDecrypt.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/jwe/JweDecrypt.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/jwe/JweDecrypt.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/jwe/JweEncrypt.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/jwe/JweEncrypt.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/jwe/JweEncrypt.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/jwe/JweEncrypt.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/jwe/JweUserKey.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/jwe/JweUserKey.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/jwe/JweUserKey.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/jwe/JweUserKey.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/loginlog/LoginLogDao.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/loginlog/LoginLogDao.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/loginlog/LoginLogDao.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/loginlog/LoginLogDao.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/loginlog/LoginLogResultEnum.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/loginlog/LoginLogResultEnum.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/loginlog/LoginLogResultEnum.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/loginlog/LoginLogResultEnum.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/loginlog/LoginLogService.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/loginlog/LoginLogService.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/loginlog/LoginLogService.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/loginlog/LoginLogService.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/loginlog/domain/LoginLogEntity.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/loginlog/domain/LoginLogEntity.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/loginlog/domain/LoginLogEntity.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/loginlog/domain/LoginLogEntity.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/loginlog/domain/LoginLogQueryForm.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/loginlog/domain/LoginLogQueryForm.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/loginlog/domain/LoginLogQueryForm.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/loginlog/domain/LoginLogQueryForm.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/loginlog/domain/LoginLogVO.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/loginlog/domain/LoginLogVO.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/loginlog/domain/LoginLogVO.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/loginlog/domain/LoginLogVO.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/operatelog/OperateLogDao.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/operatelog/OperateLogDao.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/operatelog/OperateLogDao.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/operatelog/OperateLogDao.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/operatelog/OperateLogService.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/operatelog/OperateLogService.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/operatelog/OperateLogService.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/operatelog/OperateLogService.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/operatelog/annoation/OperateLog.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/operatelog/annoation/OperateLog.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/operatelog/annoation/OperateLog.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/operatelog/annoation/OperateLog.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/operatelog/core/OperateLogAspect.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/operatelog/core/OperateLogAspect.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/operatelog/core/OperateLogAspect.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/operatelog/core/OperateLogAspect.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/operatelog/core/OperateLogConfig.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/operatelog/core/OperateLogConfig.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/operatelog/core/OperateLogConfig.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/operatelog/core/OperateLogConfig.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/operatelog/domain/OperateLogEntity.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/operatelog/domain/OperateLogEntity.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/operatelog/domain/OperateLogEntity.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/operatelog/domain/OperateLogEntity.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/operatelog/domain/OperateLogQueryForm.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/operatelog/domain/OperateLogQueryForm.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/operatelog/domain/OperateLogQueryForm.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/operatelog/domain/OperateLogQueryForm.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/operatelog/domain/OperateLogVO.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/operatelog/domain/OperateLogVO.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/operatelog/domain/OperateLogVO.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/operatelog/domain/OperateLogVO.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/redis/RedisService.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/redis/RedisService.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/redis/RedisService.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/redis/RedisService.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/ReloadCommand.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/ReloadCommand.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/ReloadCommand.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/ReloadCommand.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/ReloadService.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/ReloadService.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/ReloadService.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/ReloadService.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/core/AbstractSmartReloadCommand.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/core/AbstractSmartReloadCommand.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/core/AbstractSmartReloadCommand.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/core/AbstractSmartReloadCommand.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/core/SmartReloadManager.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/core/SmartReloadManager.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/core/SmartReloadManager.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/core/SmartReloadManager.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/core/annoation/SmartReload.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/core/annoation/SmartReload.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/core/annoation/SmartReload.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/core/annoation/SmartReload.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/core/domain/SmartReloadItem.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/core/domain/SmartReloadItem.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/core/domain/SmartReloadItem.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/core/domain/SmartReloadItem.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/core/domain/SmartReloadObject.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/core/domain/SmartReloadObject.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/core/domain/SmartReloadObject.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/core/domain/SmartReloadObject.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/core/domain/SmartReloadResult.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/core/domain/SmartReloadResult.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/core/domain/SmartReloadResult.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/core/domain/SmartReloadResult.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/core/thread/SmartReloadRunnable.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/core/thread/SmartReloadRunnable.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/core/thread/SmartReloadRunnable.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/core/thread/SmartReloadRunnable.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/dao/ReloadItemDao.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/dao/ReloadItemDao.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/dao/ReloadItemDao.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/dao/ReloadItemDao.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/dao/ReloadResultDao.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/dao/ReloadResultDao.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/dao/ReloadResultDao.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/dao/ReloadResultDao.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/domain/ReloadForm.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/domain/ReloadForm.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/domain/ReloadForm.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/domain/ReloadForm.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/domain/ReloadItemEntity.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/domain/ReloadItemEntity.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/domain/ReloadItemEntity.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/domain/ReloadItemEntity.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/domain/ReloadItemVO.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/domain/ReloadItemVO.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/domain/ReloadItemVO.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/domain/ReloadItemVO.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/domain/ReloadResultEntity.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/domain/ReloadResultEntity.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/domain/ReloadResultEntity.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/domain/ReloadResultEntity.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/domain/ReloadResultVO.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/domain/ReloadResultVO.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/domain/ReloadResultVO.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/reload/domain/ReloadResultVO.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/repeatsubmit/RepeatSubmitAspect.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/repeatsubmit/RepeatSubmitAspect.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/repeatsubmit/RepeatSubmitAspect.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/repeatsubmit/RepeatSubmitAspect.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/repeatsubmit/annoation/RepeatSubmit.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/repeatsubmit/annoation/RepeatSubmit.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/repeatsubmit/annoation/RepeatSubmit.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/repeatsubmit/annoation/RepeatSubmit.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/repeatsubmit/ticket/AbstractRepeatSubmitTicket.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/repeatsubmit/ticket/AbstractRepeatSubmitTicket.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/repeatsubmit/ticket/AbstractRepeatSubmitTicket.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/repeatsubmit/ticket/AbstractRepeatSubmitTicket.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/repeatsubmit/ticket/RepeatSubmitCaffeineTicket.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/repeatsubmit/ticket/RepeatSubmitCaffeineTicket.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/repeatsubmit/ticket/RepeatSubmitCaffeineTicket.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/repeatsubmit/ticket/RepeatSubmitCaffeineTicket.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/repeatsubmit/ticket/RepeatSubmitRedisTicket.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/repeatsubmit/ticket/RepeatSubmitRedisTicket.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/repeatsubmit/ticket/RepeatSubmitRedisTicket.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/repeatsubmit/ticket/RepeatSubmitRedisTicket.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/constant/SerialNumberIdEnum.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/constant/SerialNumberIdEnum.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/constant/SerialNumberIdEnum.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/constant/SerialNumberIdEnum.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/constant/SerialNumberRuleTypeEnum.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/constant/SerialNumberRuleTypeEnum.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/constant/SerialNumberRuleTypeEnum.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/constant/SerialNumberRuleTypeEnum.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/dao/SerialNumberDao.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/dao/SerialNumberDao.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/dao/SerialNumberDao.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/dao/SerialNumberDao.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/dao/SerialNumberRecordDao.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/dao/SerialNumberRecordDao.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/dao/SerialNumberRecordDao.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/dao/SerialNumberRecordDao.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/domain/SerialNumberEntity.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/domain/SerialNumberEntity.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/domain/SerialNumberEntity.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/domain/SerialNumberEntity.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/domain/SerialNumberGenerateForm.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/domain/SerialNumberGenerateForm.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/domain/SerialNumberGenerateForm.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/domain/SerialNumberGenerateForm.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/domain/SerialNumberGenerateResultBO.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/domain/SerialNumberGenerateResultBO.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/domain/SerialNumberGenerateResultBO.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/domain/SerialNumberGenerateResultBO.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/domain/SerialNumberInfoBO.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/domain/SerialNumberInfoBO.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/domain/SerialNumberInfoBO.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/domain/SerialNumberInfoBO.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/domain/SerialNumberLastGenerateBO.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/domain/SerialNumberLastGenerateBO.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/domain/SerialNumberLastGenerateBO.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/domain/SerialNumberLastGenerateBO.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/domain/SerialNumberRecordEntity.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/domain/SerialNumberRecordEntity.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/domain/SerialNumberRecordEntity.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/domain/SerialNumberRecordEntity.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/domain/SerialNumberRecordQueryForm.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/domain/SerialNumberRecordQueryForm.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/domain/SerialNumberRecordQueryForm.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/domain/SerialNumberRecordQueryForm.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/service/SerialNumberBaseService.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/service/SerialNumberBaseService.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/service/SerialNumberBaseService.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/service/SerialNumberBaseService.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/service/SerialNumberRecordService.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/service/SerialNumberRecordService.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/service/SerialNumberRecordService.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/service/SerialNumberRecordService.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/service/SerialNumberService.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/service/SerialNumberService.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/service/SerialNumberService.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/service/SerialNumberService.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/service/impl/SerialNumberInternService.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/service/impl/SerialNumberInternService.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/service/impl/SerialNumberInternService.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/service/impl/SerialNumberInternService.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/service/impl/SerialNumberMysqlService.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/service/impl/SerialNumberMysqlService.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/service/impl/SerialNumberMysqlService.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/service/impl/SerialNumberMysqlService.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/service/impl/SerialNumberRedisService.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/service/impl/SerialNumberRedisService.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/service/impl/SerialNumberRedisService.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/serialnumber/service/impl/SerialNumberRedisService.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/table/TableColumnController.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/table/TableColumnController.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/table/TableColumnController.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/table/TableColumnController.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/table/TableColumnDao.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/table/TableColumnDao.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/table/TableColumnDao.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/table/TableColumnDao.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/table/TableColumnService.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/table/TableColumnService.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/table/TableColumnService.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/table/TableColumnService.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/table/domain/TableColumnEntity.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/table/domain/TableColumnEntity.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/table/domain/TableColumnEntity.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/table/domain/TableColumnEntity.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/table/domain/TableColumnItemForm.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/table/domain/TableColumnItemForm.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/table/domain/TableColumnItemForm.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/table/domain/TableColumnItemForm.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/table/domain/TableColumnUpdateForm.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/table/domain/TableColumnUpdateForm.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/table/domain/TableColumnUpdateForm.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/table/domain/TableColumnUpdateForm.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/token/JwtConst.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/token/JwtConst.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/token/JwtConst.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/token/JwtConst.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/token/LoginDeviceEnum.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/token/LoginDeviceEnum.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/token/LoginDeviceEnum.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/token/LoginDeviceEnum.java diff --git a/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/token/TokenService.java b/smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/token/TokenService.java similarity index 100% rename from smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/token/TokenService.java rename to smart_admin_v2/smart-admin-api/sa-common/src/main/java/net/lab1024/sa/common/module/support/token/TokenService.java diff --git a/smart-admin-api/sa-common/src/main/resources/META-INF/spring.factories b/smart_admin_v2/smart-admin-api/sa-common/src/main/resources/META-INF/spring.factories similarity index 100% rename from smart-admin-api/sa-common/src/main/resources/META-INF/spring.factories rename to smart_admin_v2/smart-admin-api/sa-common/src/main/resources/META-INF/spring.factories diff --git a/smart-admin-api/sa-common/src/main/resources/banner.txt b/smart_admin_v2/smart-admin-api/sa-common/src/main/resources/banner.txt similarity index 100% rename from smart-admin-api/sa-common/src/main/resources/banner.txt rename to smart_admin_v2/smart-admin-api/sa-common/src/main/resources/banner.txt diff --git a/smart-admin-api/sa-common/src/main/resources/code-generator-template/java/constant/enum.java.vm b/smart_admin_v2/smart-admin-api/sa-common/src/main/resources/code-generator-template/java/constant/enum.java.vm similarity index 100% rename from smart-admin-api/sa-common/src/main/resources/code-generator-template/java/constant/enum.java.vm rename to smart_admin_v2/smart-admin-api/sa-common/src/main/resources/code-generator-template/java/constant/enum.java.vm diff --git a/smart-admin-api/sa-common/src/main/resources/code-generator-template/java/controller/Controller.java.vm b/smart_admin_v2/smart-admin-api/sa-common/src/main/resources/code-generator-template/java/controller/Controller.java.vm similarity index 100% rename from smart-admin-api/sa-common/src/main/resources/code-generator-template/java/controller/Controller.java.vm rename to smart_admin_v2/smart-admin-api/sa-common/src/main/resources/code-generator-template/java/controller/Controller.java.vm diff --git a/smart-admin-api/sa-common/src/main/resources/code-generator-template/java/dao/Dao.java.vm b/smart_admin_v2/smart-admin-api/sa-common/src/main/resources/code-generator-template/java/dao/Dao.java.vm similarity index 100% rename from smart-admin-api/sa-common/src/main/resources/code-generator-template/java/dao/Dao.java.vm rename to smart_admin_v2/smart-admin-api/sa-common/src/main/resources/code-generator-template/java/dao/Dao.java.vm diff --git a/smart-admin-api/sa-common/src/main/resources/code-generator-template/java/domain/entity/Entity.java.vm b/smart_admin_v2/smart-admin-api/sa-common/src/main/resources/code-generator-template/java/domain/entity/Entity.java.vm similarity index 100% rename from smart-admin-api/sa-common/src/main/resources/code-generator-template/java/domain/entity/Entity.java.vm rename to smart_admin_v2/smart-admin-api/sa-common/src/main/resources/code-generator-template/java/domain/entity/Entity.java.vm diff --git a/smart-admin-api/sa-common/src/main/resources/code-generator-template/java/domain/form/AddForm.java.vm b/smart_admin_v2/smart-admin-api/sa-common/src/main/resources/code-generator-template/java/domain/form/AddForm.java.vm similarity index 100% rename from smart-admin-api/sa-common/src/main/resources/code-generator-template/java/domain/form/AddForm.java.vm rename to smart_admin_v2/smart-admin-api/sa-common/src/main/resources/code-generator-template/java/domain/form/AddForm.java.vm diff --git a/smart-admin-api/sa-common/src/main/resources/code-generator-template/java/domain/form/QueryForm.java.vm b/smart_admin_v2/smart-admin-api/sa-common/src/main/resources/code-generator-template/java/domain/form/QueryForm.java.vm similarity index 100% rename from smart-admin-api/sa-common/src/main/resources/code-generator-template/java/domain/form/QueryForm.java.vm rename to smart_admin_v2/smart-admin-api/sa-common/src/main/resources/code-generator-template/java/domain/form/QueryForm.java.vm diff --git a/smart-admin-api/sa-common/src/main/resources/code-generator-template/java/domain/form/UpdateForm.java.vm b/smart_admin_v2/smart-admin-api/sa-common/src/main/resources/code-generator-template/java/domain/form/UpdateForm.java.vm similarity index 100% rename from smart-admin-api/sa-common/src/main/resources/code-generator-template/java/domain/form/UpdateForm.java.vm rename to smart_admin_v2/smart-admin-api/sa-common/src/main/resources/code-generator-template/java/domain/form/UpdateForm.java.vm diff --git a/smart-admin-api/sa-common/src/main/resources/code-generator-template/java/domain/vo/VO.java.vm b/smart_admin_v2/smart-admin-api/sa-common/src/main/resources/code-generator-template/java/domain/vo/VO.java.vm similarity index 100% rename from smart-admin-api/sa-common/src/main/resources/code-generator-template/java/domain/vo/VO.java.vm rename to smart_admin_v2/smart-admin-api/sa-common/src/main/resources/code-generator-template/java/domain/vo/VO.java.vm diff --git a/smart-admin-api/sa-common/src/main/resources/code-generator-template/java/manager/Manager.java.vm b/smart_admin_v2/smart-admin-api/sa-common/src/main/resources/code-generator-template/java/manager/Manager.java.vm similarity index 100% rename from smart-admin-api/sa-common/src/main/resources/code-generator-template/java/manager/Manager.java.vm rename to smart_admin_v2/smart-admin-api/sa-common/src/main/resources/code-generator-template/java/manager/Manager.java.vm diff --git a/smart-admin-api/sa-common/src/main/resources/code-generator-template/java/mapper/Mapper.xml.vm b/smart_admin_v2/smart-admin-api/sa-common/src/main/resources/code-generator-template/java/mapper/Mapper.xml.vm similarity index 100% rename from smart-admin-api/sa-common/src/main/resources/code-generator-template/java/mapper/Mapper.xml.vm rename to smart_admin_v2/smart-admin-api/sa-common/src/main/resources/code-generator-template/java/mapper/Mapper.xml.vm diff --git a/smart-admin-api/sa-common/src/main/resources/code-generator-template/java/service/Service.java.vm b/smart_admin_v2/smart-admin-api/sa-common/src/main/resources/code-generator-template/java/service/Service.java.vm similarity index 100% rename from smart-admin-api/sa-common/src/main/resources/code-generator-template/java/service/Service.java.vm rename to smart_admin_v2/smart-admin-api/sa-common/src/main/resources/code-generator-template/java/service/Service.java.vm diff --git a/smart-admin-api/sa-common/src/main/resources/code-generator-template/js/api.js.vm b/smart_admin_v2/smart-admin-api/sa-common/src/main/resources/code-generator-template/js/api.js.vm similarity index 100% rename from smart-admin-api/sa-common/src/main/resources/code-generator-template/js/api.js.vm rename to smart_admin_v2/smart-admin-api/sa-common/src/main/resources/code-generator-template/js/api.js.vm diff --git a/smart-admin-api/sa-common/src/main/resources/code-generator-template/js/const.js.vm b/smart_admin_v2/smart-admin-api/sa-common/src/main/resources/code-generator-template/js/const.js.vm similarity index 100% rename from smart-admin-api/sa-common/src/main/resources/code-generator-template/js/const.js.vm rename to smart_admin_v2/smart-admin-api/sa-common/src/main/resources/code-generator-template/js/const.js.vm diff --git a/smart-admin-api/sa-common/src/main/resources/code-generator-template/js/form.vue.vm b/smart_admin_v2/smart-admin-api/sa-common/src/main/resources/code-generator-template/js/form.vue.vm similarity index 100% rename from smart-admin-api/sa-common/src/main/resources/code-generator-template/js/form.vue.vm rename to smart_admin_v2/smart-admin-api/sa-common/src/main/resources/code-generator-template/js/form.vue.vm diff --git a/smart-admin-api/sa-common/src/main/resources/code-generator-template/js/list.vue.vm b/smart_admin_v2/smart-admin-api/sa-common/src/main/resources/code-generator-template/js/list.vue.vm similarity index 100% rename from smart-admin-api/sa-common/src/main/resources/code-generator-template/js/list.vue.vm rename to smart_admin_v2/smart-admin-api/sa-common/src/main/resources/code-generator-template/js/list.vue.vm diff --git a/smart-admin-api/sa-common/src/main/resources/code-generator-template/tools.xml b/smart_admin_v2/smart-admin-api/sa-common/src/main/resources/code-generator-template/tools.xml similarity index 100% rename from smart-admin-api/sa-common/src/main/resources/code-generator-template/tools.xml rename to smart_admin_v2/smart-admin-api/sa-common/src/main/resources/code-generator-template/tools.xml diff --git a/smart-admin-api/sa-common/src/main/resources/dev/sa-common.yaml b/smart_admin_v2/smart-admin-api/sa-common/src/main/resources/dev/sa-common.yaml similarity index 94% rename from smart-admin-api/sa-common/src/main/resources/dev/sa-common.yaml rename to smart_admin_v2/smart-admin-api/sa-common/src/main/resources/dev/sa-common.yaml index e95bb7a8..acfe4826 100644 --- a/smart-admin-api/sa-common/src/main/resources/dev/sa-common.yaml +++ b/smart_admin_v2/smart-admin-api/sa-common/src/main/resources/dev/sa-common.yaml @@ -1,9 +1,9 @@ spring: # 数据库连接信息 datasource: - url: jdbc:p6spy:mysql://127.0.0.1:3307/smart_admin_v2?autoReconnect=true&useServerPreparedStmts=false&rewriteBatchedStatements=true&characterEncoding=UTF-8&useSSL=false&allowMultiQueries=true&serverTimezone=Asia/Shanghai + url: jdbc:p6spy:mysql://127.0.0.1:3306/smart_admin_v2?autoReconnect=true&useServerPreparedStmts=false&rewriteBatchedStatements=true&characterEncoding=UTF-8&useSSL=false&allowMultiQueries=true&serverTimezone=Asia/Shanghai username: root - password: Lab024 + password: lab1024 initial-size: 2 min-idle: 2 max-active: 10 @@ -20,6 +20,11 @@ spring: method: pointcut: net.lab1024.sa..*Service.* + # mvc swagger bugfix + mvc: + pathmatch: + matching-strategy: ant_path_matcher + # redis 连接池配置信息 redis: database: 1 diff --git a/smart-admin-api/sa-common/src/main/resources/mapper/support/ChangeLogMapper.xml b/smart_admin_v2/smart-admin-api/sa-common/src/main/resources/mapper/support/ChangeLogMapper.xml similarity index 100% rename from smart-admin-api/sa-common/src/main/resources/mapper/support/ChangeLogMapper.xml rename to smart_admin_v2/smart-admin-api/sa-common/src/main/resources/mapper/support/ChangeLogMapper.xml diff --git a/smart-admin-api/sa-common/src/main/resources/mapper/support/CodeGeneratorMapper.xml b/smart_admin_v2/smart-admin-api/sa-common/src/main/resources/mapper/support/CodeGeneratorMapper.xml similarity index 100% rename from smart-admin-api/sa-common/src/main/resources/mapper/support/CodeGeneratorMapper.xml rename to smart_admin_v2/smart-admin-api/sa-common/src/main/resources/mapper/support/CodeGeneratorMapper.xml diff --git a/smart-admin-api/sa-common/src/main/resources/mapper/support/ConfigMapper.xml b/smart_admin_v2/smart-admin-api/sa-common/src/main/resources/mapper/support/ConfigMapper.xml similarity index 100% rename from smart-admin-api/sa-common/src/main/resources/mapper/support/ConfigMapper.xml rename to smart_admin_v2/smart-admin-api/sa-common/src/main/resources/mapper/support/ConfigMapper.xml diff --git a/smart-admin-api/sa-common/src/main/resources/mapper/support/DataTracerMapper.xml b/smart_admin_v2/smart-admin-api/sa-common/src/main/resources/mapper/support/DataTracerMapper.xml similarity index 100% rename from smart-admin-api/sa-common/src/main/resources/mapper/support/DataTracerMapper.xml rename to smart_admin_v2/smart-admin-api/sa-common/src/main/resources/mapper/support/DataTracerMapper.xml diff --git a/smart-admin-api/sa-common/src/main/resources/mapper/support/DictKeyMapper.xml b/smart_admin_v2/smart-admin-api/sa-common/src/main/resources/mapper/support/DictKeyMapper.xml similarity index 100% rename from smart-admin-api/sa-common/src/main/resources/mapper/support/DictKeyMapper.xml rename to smart_admin_v2/smart-admin-api/sa-common/src/main/resources/mapper/support/DictKeyMapper.xml diff --git a/smart-admin-api/sa-common/src/main/resources/mapper/support/DictValueMapper.xml b/smart_admin_v2/smart-admin-api/sa-common/src/main/resources/mapper/support/DictValueMapper.xml similarity index 100% rename from smart-admin-api/sa-common/src/main/resources/mapper/support/DictValueMapper.xml rename to smart_admin_v2/smart-admin-api/sa-common/src/main/resources/mapper/support/DictValueMapper.xml diff --git a/smart-admin-api/sa-common/src/main/resources/mapper/support/FeedbackMapper.xml b/smart_admin_v2/smart-admin-api/sa-common/src/main/resources/mapper/support/FeedbackMapper.xml similarity index 100% rename from smart-admin-api/sa-common/src/main/resources/mapper/support/FeedbackMapper.xml rename to smart_admin_v2/smart-admin-api/sa-common/src/main/resources/mapper/support/FeedbackMapper.xml diff --git a/smart-admin-api/sa-common/src/main/resources/mapper/support/FileMapper.xml b/smart_admin_v2/smart-admin-api/sa-common/src/main/resources/mapper/support/FileMapper.xml similarity index 100% rename from smart-admin-api/sa-common/src/main/resources/mapper/support/FileMapper.xml rename to smart_admin_v2/smart-admin-api/sa-common/src/main/resources/mapper/support/FileMapper.xml diff --git a/smart-admin-api/sa-common/src/main/resources/mapper/support/HeartBeatRecordMapper.xml b/smart_admin_v2/smart-admin-api/sa-common/src/main/resources/mapper/support/HeartBeatRecordMapper.xml similarity index 100% rename from smart-admin-api/sa-common/src/main/resources/mapper/support/HeartBeatRecordMapper.xml rename to smart_admin_v2/smart-admin-api/sa-common/src/main/resources/mapper/support/HeartBeatRecordMapper.xml diff --git a/smart-admin-api/sa-common/src/main/resources/mapper/support/HelpDocDao.xml b/smart_admin_v2/smart-admin-api/sa-common/src/main/resources/mapper/support/HelpDocDao.xml similarity index 100% rename from smart-admin-api/sa-common/src/main/resources/mapper/support/HelpDocDao.xml rename to smart_admin_v2/smart-admin-api/sa-common/src/main/resources/mapper/support/HelpDocDao.xml diff --git a/smart-admin-api/sa-common/src/main/resources/mapper/support/LoginLogMapper.xml b/smart_admin_v2/smart-admin-api/sa-common/src/main/resources/mapper/support/LoginLogMapper.xml similarity index 100% rename from smart-admin-api/sa-common/src/main/resources/mapper/support/LoginLogMapper.xml rename to smart_admin_v2/smart-admin-api/sa-common/src/main/resources/mapper/support/LoginLogMapper.xml diff --git a/smart-admin-api/sa-common/src/main/resources/mapper/support/OperateLogMapper.xml b/smart_admin_v2/smart-admin-api/sa-common/src/main/resources/mapper/support/OperateLogMapper.xml similarity index 100% rename from smart-admin-api/sa-common/src/main/resources/mapper/support/OperateLogMapper.xml rename to smart_admin_v2/smart-admin-api/sa-common/src/main/resources/mapper/support/OperateLogMapper.xml diff --git a/smart-admin-api/sa-common/src/main/resources/mapper/support/ReloadItemMapper.xml b/smart_admin_v2/smart-admin-api/sa-common/src/main/resources/mapper/support/ReloadItemMapper.xml similarity index 100% rename from smart-admin-api/sa-common/src/main/resources/mapper/support/ReloadItemMapper.xml rename to smart_admin_v2/smart-admin-api/sa-common/src/main/resources/mapper/support/ReloadItemMapper.xml diff --git a/smart-admin-api/sa-common/src/main/resources/mapper/support/ReloadResultMapper.xml b/smart_admin_v2/smart-admin-api/sa-common/src/main/resources/mapper/support/ReloadResultMapper.xml similarity index 100% rename from smart-admin-api/sa-common/src/main/resources/mapper/support/ReloadResultMapper.xml rename to smart_admin_v2/smart-admin-api/sa-common/src/main/resources/mapper/support/ReloadResultMapper.xml diff --git a/smart-admin-api/sa-common/src/main/resources/mapper/support/SerialNumberMapper.xml b/smart_admin_v2/smart-admin-api/sa-common/src/main/resources/mapper/support/SerialNumberMapper.xml similarity index 100% rename from smart-admin-api/sa-common/src/main/resources/mapper/support/SerialNumberMapper.xml rename to smart_admin_v2/smart-admin-api/sa-common/src/main/resources/mapper/support/SerialNumberMapper.xml diff --git a/smart-admin-api/sa-common/src/main/resources/mapper/support/SerialNumberRecordMapper.xml b/smart_admin_v2/smart-admin-api/sa-common/src/main/resources/mapper/support/SerialNumberRecordMapper.xml similarity index 100% rename from smart-admin-api/sa-common/src/main/resources/mapper/support/SerialNumberRecordMapper.xml rename to smart_admin_v2/smart-admin-api/sa-common/src/main/resources/mapper/support/SerialNumberRecordMapper.xml diff --git a/smart-admin-api/sa-common/src/main/resources/mapper/support/TableColumnMapper.xml b/smart_admin_v2/smart-admin-api/sa-common/src/main/resources/mapper/support/TableColumnMapper.xml similarity index 100% rename from smart-admin-api/sa-common/src/main/resources/mapper/support/TableColumnMapper.xml rename to smart_admin_v2/smart-admin-api/sa-common/src/main/resources/mapper/support/TableColumnMapper.xml diff --git a/smart-admin-api/sa-common/src/main/resources/pre/sa-common.yaml b/smart_admin_v2/smart-admin-api/sa-common/src/main/resources/pre/sa-common.yaml similarity index 97% rename from smart-admin-api/sa-common/src/main/resources/pre/sa-common.yaml rename to smart_admin_v2/smart-admin-api/sa-common/src/main/resources/pre/sa-common.yaml index 7aea8a75..a61381ce 100644 --- a/smart-admin-api/sa-common/src/main/resources/pre/sa-common.yaml +++ b/smart_admin_v2/smart-admin-api/sa-common/src/main/resources/pre/sa-common.yaml @@ -20,6 +20,11 @@ spring: method: pointcut: net.lab1024.sa..*Service.* + # mvc swagger bugfix + mvc: + pathmatch: + matching-strategy: ant_path_matcher + # redis 连接池配置信息 redis: database: 1 diff --git a/smart-admin-api/sa-common/src/main/resources/prod/sa-common.yaml b/smart_admin_v2/smart-admin-api/sa-common/src/main/resources/prod/sa-common.yaml similarity index 97% rename from smart-admin-api/sa-common/src/main/resources/prod/sa-common.yaml rename to smart_admin_v2/smart-admin-api/sa-common/src/main/resources/prod/sa-common.yaml index 3703ddfb..26ae59b3 100644 --- a/smart-admin-api/sa-common/src/main/resources/prod/sa-common.yaml +++ b/smart_admin_v2/smart-admin-api/sa-common/src/main/resources/prod/sa-common.yaml @@ -20,6 +20,11 @@ spring: method: pointcut: net.lab1024.sa..*Service.* + # mvc swagger bugfix + mvc: + pathmatch: + matching-strategy: ant_path_matcher + # redis 连接池配置信息 redis: database: 1 diff --git a/smart-admin-api/sa-common/src/main/resources/test/sa-common.yaml b/smart_admin_v2/smart-admin-api/sa-common/src/main/resources/test/sa-common.yaml similarity index 97% rename from smart-admin-api/sa-common/src/main/resources/test/sa-common.yaml rename to smart_admin_v2/smart-admin-api/sa-common/src/main/resources/test/sa-common.yaml index 9cf5f478..d6620759 100644 --- a/smart-admin-api/sa-common/src/main/resources/test/sa-common.yaml +++ b/smart_admin_v2/smart-admin-api/sa-common/src/main/resources/test/sa-common.yaml @@ -20,6 +20,11 @@ spring: method: pointcut: net.lab1024.sa..*Service.* + # mvc swagger bugfix + mvc: + pathmatch: + matching-strategy: ant_path_matcher + # redis 连接池配置信息 redis: database: 1 diff --git a/smart-admin-web/javascript-ant-design-vue3/.env b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/.env similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/.env rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/.env diff --git a/smart-admin-web/javascript-ant-design-vue3/.env.development b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/.env.development similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/.env.development rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/.env.development diff --git a/smart-admin-web/javascript-ant-design-vue3/.env.localhost b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/.env.localhost similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/.env.localhost rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/.env.localhost diff --git a/smart-admin-web/typescript-ant-design-vue3/.env.pre b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/.env.pre similarity index 60% rename from smart-admin-web/typescript-ant-design-vue3/.env.pre rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/.env.pre index c5c3327e..096644a0 100644 --- a/smart-admin-web/typescript-ant-design-vue3/.env.pre +++ b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/.env.pre @@ -1,5 +1,5 @@ -VITE_APP_API_URL = 'http://127.0.0.1:1024' +VITE_APP_API_URL = 'http://preview.smartadmin.1024lab.net/smart-admin-api' VITE_APP_PROJECT_TITLE = 'SmartAdmin 预发布环境(Pre)' diff --git a/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/.env.production b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/.env.production new file mode 100644 index 00000000..97ccc6d7 --- /dev/null +++ b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/.env.production @@ -0,0 +1,8 @@ + +VITE_APP_API_URL = 'http://preview.smartadmin.1024lab.net/smart-admin-api' + +VITE_APP_PROJECT_TITLE = 'SmartAdmin V2.X' + +VITE_APP_PROFILE = 'prod' + +VITE_APP_MODE = 'production' \ No newline at end of file diff --git a/smart-admin-web/javascript-ant-design-vue3/.env.test b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/.env.test similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/.env.test rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/.env.test diff --git a/smart-admin-web/javascript-ant-design-vue3/.eslintignore b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/.eslintignore similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/.eslintignore rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/.eslintignore diff --git a/smart-admin-web/javascript-ant-design-vue3/.eslintrc.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/.eslintrc.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/.eslintrc.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/.eslintrc.js diff --git a/smart-admin-web/javascript-ant-design-vue3/.gitignore b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/.gitignore similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/.gitignore rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/.gitignore diff --git a/smart-admin-web/javascript-ant-design-vue3/.prettierrc.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/.prettierrc.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/.prettierrc.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/.prettierrc.js diff --git a/smart-admin-web/javascript-ant-design-vue3/.stylelintignore b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/.stylelintignore similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/.stylelintignore rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/.stylelintignore diff --git a/smart-admin-web/javascript-ant-design-vue3/.stylelintrc.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/.stylelintrc.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/.stylelintrc.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/.stylelintrc.js diff --git a/smart-admin-web/typescript-ant-design-vue3/README.md b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/README.en.md similarity index 100% rename from smart-admin-web/typescript-ant-design-vue3/README.md rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/README.en.md diff --git a/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/README.md b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/README.md new file mode 100644 index 00000000..e69de29b diff --git a/smart-admin-web/javascript-ant-design-vue3/index.html b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/index.html similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/index.html rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/index.html diff --git a/smart-admin-web/javascript-ant-design-vue3/jsconfig.json b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/jsconfig.json similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/jsconfig.json rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/jsconfig.json diff --git a/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/package-lock.json b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/package-lock.json new file mode 100644 index 00000000..dd13c26f --- /dev/null +++ b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/package-lock.json @@ -0,0 +1,10197 @@ +{ + "name": "SmartAdmin", + "version": "2.0.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "SmartAdmin", + "version": "2.0.0", + "license": "MIT", + "dependencies": { + "@ant-design/icons-vue": "^6.1.0", + "@wangeditor/editor": "^5.0.1", + "@wangeditor/editor-for-vue": "^5.1.11", + "ant-design-vue": "3.2.5", + "axios": "~0.27.2", + "clipboard": "~2.0.11", + "crypto-js": "~4.1.1", + "decimal.js": "^10.3.1", + "diff": "^5.1.0", + "diff2html": "^3.4.18", + "echarts": "^5.1.2", + "highlight.js": "^11.6.0", + "js-cookie": "^2.2.1", + "lodash": "^4.17.21", + "lunar-javascript": "^1.2.32", + "mitt": "^3.0.0", + "nprogress": "^0.2.0", + "pinia": "~2.0.14", + "sortablejs": "^1.15.0", + "ua-parser-js": "^1.0.2", + "v-viewer": "~1.6.4", + "vue": "~3.2.26", + "vue-i18n": "^9.1.10", + "vue-router": "~4.0.15", + "vue3-json-viewer": "^2.2.2" + }, + "devDependencies": { + "@vitejs/plugin-vue": "~2.3.3", + "@vue/compiler-sfc": "~3.2.26", + "eslint": "^8.16.0", + "eslint-config-prettier": "~8.5.0", + "eslint-plugin-prettier": "~4.0.0", + "eslint-plugin-vue": "~9.1.0", + "less": "~4.1.1", + "less-loader": "~10.0.1", + "prettier": "~2.6.2", + "rimraf": "^3.0.2", + "stylelint": "~14.8.5", + "stylelint-config-prettier": "~9.0.3", + "stylelint-config-standard": "~25.0.0", + "stylelint-order": "~5.0.0", + "vite": "~2.9.9", + "vite-plugin-mock": "~2.9.6", + "vite-plugin-optimize-persist": "^0.1.2", + "vite-plugin-package-config": "^0.1.1", + "vue-eslint-parser": "~9.0.2" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@ant-design/colors": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-6.0.0.tgz", + "integrity": "sha512-qAZRvPzfdWHtfameEGP2Qvuf838NhergR35o+EuVyB5XvSA98xod5r4utvi4TJ3ywmevm290g9nsCG5MryrdWQ==", + "dependencies": { + "@ctrl/tinycolor": "^3.4.0" + } + }, + "node_modules/@ant-design/icons-svg": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@ant-design/icons-svg/-/icons-svg-4.2.1.tgz", + "integrity": "sha512-EB0iwlKDGpG93hW8f85CTJTs4SvMX7tt5ceupvhALp1IF44SeUFOMhKUOYqpsoYWQKAOuTRDMqn75rEaKDp0Xw==" + }, + "node_modules/@ant-design/icons-vue": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@ant-design/icons-vue/-/icons-vue-6.1.0.tgz", + "integrity": "sha512-EX6bYm56V+ZrKN7+3MT/ubDkvJ5rK/O2t380WFRflDcVFgsvl3NLH7Wxeau6R8DbrO5jWR6DSTC3B6gYFp77AA==", + "dependencies": { + "@ant-design/colors": "^6.0.0", + "@ant-design/icons-svg": "^4.2.1" + }, + "peerDependencies": { + "vue": ">=3.0.3" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dev": true, + "dependencies": { + "@babel/highlight": "^7.18.6" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "node_modules/@babel/highlight/node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.6.tgz", + "integrity": "sha512-h1IUp81s2JYJ3mRkdxJgs4UvmSsRvDrx5ICSJbPvtWYv5i1nTBGcBpnog+89rAFMwvvru6E5NUHdBe01UeSzYA==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/runtime": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.4.tgz", + "integrity": "sha512-EXpLCrk55f+cYqmHsSR+yD/0gAIMxxA9QK9lnQWzhMCvt+YmoBN7Zx94s++Kv0+unHk39vxNO8t+CMA2WSS3wA==", + "dependencies": { + "regenerator-runtime": "^0.13.4" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@ctrl/tinycolor": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.4.1.tgz", + "integrity": "sha512-ej5oVy6lykXsvieQtqZxCOaLT+xD4+QNarq78cIYISHmZXshCvROLudpQN3lfL8G0NL7plMSSK+zlyvCaIJ4Iw==", + "engines": { + "node": ">=10" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz", + "integrity": "sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==", + "cpu": [ + "loong64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", + "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.4.0", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.11.6", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.6.tgz", + "integrity": "sha512-jJr+hPTJYKyDILJfhNSHsjiwXYf26Flsz8DvNndOsHs5pwSnpGUEy8yzF0JYhCEvTDdV2vuOK5tt8BVhwO5/hg==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "node_modules/@intlify/core-base": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/@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.npmjs.org/@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.npmjs.org/@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.npmjs.org/@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.npmjs.org/@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/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "peer": true, + "dependencies": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "dev": true, + "peer": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true, + "peer": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "dev": true, + "peer": true, + "dependencies": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "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.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@rollup/plugin-node-resolve": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz", + "integrity": "sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "deepmerge": "^4.2.2", + "is-builtin-module": "^3.1.0", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + }, + "engines": { + "node": ">= 10.0.0" + }, + "peerDependencies": { + "rollup": "^2.42.0" + } + }, + "node_modules/@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dev": true, + "dependencies": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "engines": { + "node": ">= 8.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0" + } + }, + "node_modules/@rollup/pluginutils/node_modules/estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + }, + "node_modules/@simonwep/pickr": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/@simonwep/pickr/-/pickr-1.8.2.tgz", + "integrity": "sha512-/l5w8BIkrpP6n1xsetx9MWPWlU6OblN5YgZZphxan0Tq4BByTCETL6lyIeY8lagalS2Nbt4F2W034KHLIiunKA==", + "dependencies": { + "core-js": "^3.15.1", + "nanopop": "^2.1.0" + } + }, + "node_modules/@transloadit/prettier-bytes": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/@transloadit/prettier-bytes/-/prettier-bytes-0.0.7.tgz", + "integrity": "sha512-VeJbUb0wEKbcwaSlj5n+LscBl9IPgLPkHVGBkh00cztv6X4L/TJXK58LzFuBKX7/GAfiGhIwH67YTLTlzvIzBA==" + }, + "node_modules/@types/eslint": { + "version": "8.4.8", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.8.tgz", + "integrity": "sha512-zUCKQI1bUCTi+0kQs5ZQzQ/XILWRLIlh15FXWNykJ+NG3TMKMVvwwC6GP3DR1Ylga15fB7iAExSzc4PNlR5i3w==", + "dev": true, + "peer": true, + "dependencies": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "node_modules/@types/eslint-scope": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", + "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "dev": true, + "peer": true, + "dependencies": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "node_modules/@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "dev": true + }, + "node_modules/@types/event-emitter": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@types/event-emitter/-/event-emitter-0.3.3.tgz", + "integrity": "sha512-UfnOK1pIxO7P+EgPRZXD9jMpimd8QEFcEZ5R67R1UhGbv4zghU5+NE7U8M8G9H5Jc8FI51rqDWQs6FtUfq2e/Q==" + }, + "node_modules/@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true, + "peer": true + }, + "node_modules/@types/minimist": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", + "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", + "dev": true + }, + "node_modules/@types/mockjs": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@types/mockjs/-/mockjs-1.0.7.tgz", + "integrity": "sha512-OCxXz6hEaJOVpRwuJMiVY5a6LtJcih+br9gwB/Q8ooOBikvk5FpBQ31OlNimXo3EqKha1Z7PFBni+q9m+8NCWg==", + "dev": true + }, + "node_modules/@types/node": { + "version": "18.11.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.5.tgz", + "integrity": "sha512-3JRwhbjI+cHLAkUorhf8RnqUbFXajvzX4q6fMn5JwkgtuwfYtRQYI3u4V92vI6NJuTsbBQWWh3RZjFsuevyMGQ==", + "dev": true + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "dev": true + }, + "node_modules/@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, + "node_modules/@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@uppy/companion-client": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@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.npmjs.org/@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.npmjs.org/@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.npmjs.org/@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.npmjs.org/@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": "2.3.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-2.3.4.tgz", + "integrity": "sha512-IfFNbtkbIm36O9KB8QodlwwYvTEsJb4Lll4c2IwB3VHc2gie2mSPtSzL0eYay7X2jd/2WX02FjSGTWR6OPr/zg==", + "dev": true, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "vite": "^2.5.10", + "vue": "^3.2.25" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.41.tgz", + "integrity": "sha512-oA4mH6SA78DT+96/nsi4p9DX97PHcNROxs51lYk7gb9Z4BPKQ3Mh+BLn6CQZBw857Iuhu28BfMSRHAlPvD4vlw==", + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/shared": "3.2.41", + "estree-walker": "^2.0.2", + "source-map": "^0.6.1" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.41.tgz", + "integrity": "sha512-xe5TbbIsonjENxJsYRbDJvthzqxLNk+tb3d/c47zgREDa/PCp6/Y4gC/skM4H6PIuX5DAxm7fFJdbjjUH2QTMw==", + "dependencies": { + "@vue/compiler-core": "3.2.41", + "@vue/shared": "3.2.41" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.41.tgz", + "integrity": "sha512-+1P2m5kxOeaxVmJNXnBskAn3BenbTmbxBxWOtBq3mQTCokIreuMULFantBUclP0+KnzNCMOvcnKinqQZmiOF8w==", + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.41", + "@vue/compiler-dom": "3.2.41", + "@vue/compiler-ssr": "3.2.41", + "@vue/reactivity-transform": "3.2.41", + "@vue/shared": "3.2.41", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7", + "postcss": "^8.1.10", + "source-map": "^0.6.1" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.41.tgz", + "integrity": "sha512-Y5wPiNIiaMz/sps8+DmhaKfDm1xgj6GrH99z4gq2LQenfVQcYXmHIOBcs5qPwl7jaW3SUQWjkAPKMfQemEQZwQ==", + "dependencies": { + "@vue/compiler-dom": "3.2.41", + "@vue/shared": "3.2.41" + } + }, + "node_modules/@vue/devtools-api": { + "version": "6.4.5", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.4.5.tgz", + "integrity": "sha512-JD5fcdIuFxU4fQyXUu3w2KpAJHzTVdN+p4iOX2lMWSHMOoQdMAcpFLZzm9Z/2nmsoZ1a96QEhZ26e50xLBsgOQ==" + }, + "node_modules/@vue/reactivity": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.41.tgz", + "integrity": "sha512-9JvCnlj8uc5xRiQGZ28MKGjuCoPhhTwcoAdv3o31+cfGgonwdPNuvqAXLhlzu4zwqavFEG5tvaoINQEfxz+l6g==", + "dependencies": { + "@vue/shared": "3.2.41" + } + }, + "node_modules/@vue/reactivity-transform": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.41.tgz", + "integrity": "sha512-mK5+BNMsL4hHi+IR3Ft/ho6Za+L3FA5j8WvreJ7XzHrqkPq8jtF/SMo7tuc9gHjLDwKZX1nP1JQOKo9IEAn54A==", + "dependencies": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.41", + "@vue/shared": "3.2.41", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.41.tgz", + "integrity": "sha512-0LBBRwqnI0p4FgIkO9q2aJBBTKDSjzhnxrxHYengkAF6dMOjeAIZFDADAlcf2h3GDALWnblbeprYYpItiulSVQ==", + "dependencies": { + "@vue/reactivity": "3.2.41", + "@vue/shared": "3.2.41" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.41.tgz", + "integrity": "sha512-U7zYuR1NVIP8BL6jmOqmapRAHovEFp7CSw4pR2FacqewXNGqZaRfHoNLQsqQvVQ8yuZNZtxSZy0FFyC70YXPpA==", + "dependencies": { + "@vue/runtime-core": "3.2.41", + "@vue/shared": "3.2.41", + "csstype": "^2.6.8" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.41.tgz", + "integrity": "sha512-7YHLkfJdTlsZTV0ae5sPwl9Gn/EGr2hrlbcS/8naXm2CDpnKUwC68i1wGlrYAfIgYWL7vUZwk2GkYLQH5CvFig==", + "dependencies": { + "@vue/compiler-ssr": "3.2.41", + "@vue/shared": "3.2.41" + }, + "peerDependencies": { + "vue": "3.2.41" + } + }, + "node_modules/@vue/shared": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.41.tgz", + "integrity": "sha512-W9mfWLHmJhkfAmV+7gDjcHeAWALQtgGT3JErxULl0oz6R6+3ug91I7IErs93eCFhPCZPHBs4QJS7YWEV7A3sxw==" + }, + "node_modules/@wangeditor/basic-modules": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@wangeditor/basic-modules/-/basic-modules-1.1.6.tgz", + "integrity": "sha512-wckcFm/kEAHpTn7dTmN0+7POFoygqt9bZdNHJUkdKObXtAerml8RdjrkHRcwJFCkSELbrNK63fvkwS0+FsabfA==", + "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.npmjs.org/@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.18", + "resolved": "https://registry.npmjs.org/@wangeditor/core/-/core-1.1.18.tgz", + "integrity": "sha512-GZsW/8tm2Hc2hZKX8BZP9PO7vTZll9YXsOt+jKck3D2bj9nk4T0FZymuE5fq9ZHdo+MwLiXBHXS/D1SIGlVnGQ==", + "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.22", + "resolved": "https://registry.npmjs.org/@wangeditor/editor/-/editor-5.1.22.tgz", + "integrity": "sha512-Bg+NakUvg6+UvkRT/xD9a0zMhPy/4kwhiv8Hp93csa4dg2u/dlZORRTjJCWaWmVK82PrtBG3VAcuw3rPdQCfag==", + "dependencies": { + "@uppy/core": "^2.1.1", + "@uppy/xhr-upload": "^2.0.3", + "@wangeditor/basic-modules": "^1.1.6", + "@wangeditor/code-highlight": "^1.0.3", + "@wangeditor/core": "^1.1.18", + "@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.npmjs.org/@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.npmjs.org/@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.npmjs.org/@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.npmjs.org/@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.npmjs.org/@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/@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "dev": true, + "peer": true, + "dependencies": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "node_modules/@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "dev": true, + "peer": true + }, + "node_modules/@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "dev": true, + "peer": true + }, + "node_modules/@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "dev": true, + "peer": true + }, + "node_modules/@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "dev": true, + "peer": true, + "dependencies": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "dev": true, + "peer": true + }, + "node_modules/@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "dev": true, + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "node_modules/@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "dev": true, + "peer": true, + "dependencies": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "node_modules/@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "dev": true, + "peer": true, + "dependencies": { + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "dev": true, + "peer": true + }, + "node_modules/@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "dev": true, + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "dev": true, + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "dev": true, + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "dev": true, + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "node_modules/@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "dev": true, + "peer": true, + "dependencies": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "node_modules/@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true, + "peer": true + }, + "node_modules/@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true, + "peer": true + }, + "node_modules/abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "node_modules/acorn": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "dev": true, + "peer": true, + "peerDependencies": { + "acorn": "^8" + } + }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peer": true, + "peerDependencies": { + "ajv": "^6.9.1" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/ant-design-vue": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/ant-design-vue/-/ant-design-vue-3.2.5.tgz", + "integrity": "sha512-O6nxTHkRgqI3zIZ702hfBM4pamsYJs5ey63DY3BAq5zy1thLxcjjx4K4V2Zf9QtVQgsD8bgf6qb605P14GIqAw==", + "dependencies": { + "@ant-design/colors": "^6.0.0", + "@ant-design/icons-vue": "^6.1.0", + "@babel/runtime": "^7.10.5", + "@ctrl/tinycolor": "^3.4.0", + "@simonwep/pickr": "~1.8.0", + "array-tree-filter": "^2.1.0", + "async-validator": "^4.0.0", + "dayjs": "^1.10.5", + "dom-align": "^1.12.1", + "dom-scroll-into-view": "^2.0.0", + "lodash": "^4.17.21", + "lodash-es": "^4.17.15", + "resize-observer-polyfill": "^1.5.1", + "scroll-into-view-if-needed": "^2.2.25", + "shallow-equal": "^1.0.0", + "vue-types": "^3.0.0", + "warning": "^4.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/ant-design-vue" + }, + "peerDependencies": { + "vue": ">=3.2.0" + } + }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/array-tree-filter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-tree-filter/-/array-tree-filter-2.1.0.tgz", + "integrity": "sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==" + }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true, + "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/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "dependencies": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browserslist": { + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "peer": true, + "dependencies": { + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.9" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "peer": true + }, + "node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "dev": true, + "dependencies": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001425", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001425.tgz", + "integrity": "sha512-/pzFv0OmNG6W0ym80P3NtapU0QEiDS3VuYAZMGoLLqiC7f6FJFe1MjpQDREGApeenD9wloeytmVDj+JLXPC6qw==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + } + ], + "peer": true + }, + "node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "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.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "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/chokidar/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/clipboard": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.11.tgz", + "integrity": "sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==", + "dependencies": { + "good-listener": "^1.2.2", + "select": "^1.1.2", + "tiny-emitter": "^2.0.0" + } + }, + "node_modules/clone-regexp": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-2.2.0.tgz", + "integrity": "sha512-beMpP7BOtTipFuW8hrJvREQ2DrRu3BE7by0ZpibtfBA+qfHYvMGTc2Yb1JMYPKg/JUw0CHYvpg796aNTSW9z7Q==", + "dev": true, + "dependencies": { + "is-regexp": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", + "dev": true + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz", + "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==", + "dev": true, + "peer": true, + "engines": { + "node": "^12.20.0 || >=14" + } + }, + "node_modules/compute-scroll-into-view": { + "version": "1.0.17", + "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-1.0.17.tgz", + "integrity": "sha512-j4dx+Fb0URmzbwwMUrhqWM2BEWHdFGx+qZ9qqASHRPqvTYdqvWnHg0H1hIbcyLnvgnoNAVMlwkepyqM3DaIFUg==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "node_modules/connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "dev": true, + "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.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/connect/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/copy-anything": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", + "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", + "dev": true, + "dependencies": { + "is-what": "^3.14.1" + }, + "funding": { + "url": "https://github.com/sponsors/mesqueeb" + } + }, + "node_modules/core-js": { + "version": "3.26.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.26.0.tgz", + "integrity": "sha512-+DkDrhoR4Y0PxDz6rurahuB+I45OsEUv8E1maPTB6OuHRohMMcznBq9TMpdpDMm/hUPob/mJJS3PqgbHpMTQgw==", + "hasInstallScript": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/core-js" + } + }, + "node_modules/cosmiconfig": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", + "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "dev": true, + "dependencies": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/crypto-js": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz", + "integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==" + }, + "node_modules/css-functions-list": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.1.0.tgz", + "integrity": "sha512-/9lCvYZaUbBGvYUgYGFJ4dcYiyqdhSjG7IPVluoV8A1ILjkF7ilmhp1OGUz8n+nmBcu0RNrQAzgD8B6FJbrt2w==", + "dev": true, + "engines": { + "node": ">=12.22" + } + }, + "node_modules/cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true, + "bin": { + "cssesc": "bin/cssesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/csstype": { + "version": "2.6.21", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" + }, + "node_modules/d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/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.6", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.6.tgz", + "integrity": "sha512-zZbY5giJAinCG+7AGaw0wIhNZ6J8AhWuSXKvuc1KAyMiRsvGQWqh4L+MomvhdAYjN+lqvVCMq1I41e3YHvXkyQ==" + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/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/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decamelize-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", + "integrity": "sha512-ocLWuYzRPoS9bfiSdDd3cxvrzovVMZnRDVEzAs+hWIVXGDbHxWMECij2OBuyB/An0FFW/nLuq6Kv1i/YC5Qfzg==", + "dev": true, + "dependencies": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decamelize-keys/node_modules/map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decimal.js": { + "version": "10.4.2", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.2.tgz", + "integrity": "sha512-ic1yEvwT6GuvaYwBLLY6/aFFgjZdySKTE8en/fkU3QICTmRtgtSlFn0u0BXN06InZwtfCelR7j8LRiDI/02iGA==" + }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "node_modules/deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/delegate": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", + "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==" + }, + "node_modules/diff": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", + "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/diff2html": { + "version": "3.4.21", + "resolved": "https://registry.npmjs.org/diff2html/-/diff2html-3.4.21.tgz", + "integrity": "sha512-I5KoezAf2SwPLHzMz4zRKuYW7KIN4LL4hncwR+rvrFXiYyXPgZRqK+123NodUC2N7HUTgF2lLVDFDyovUQNUUg==", + "dependencies": { + "diff": "5.1.0", + "hogan.js": "3.0.2" + }, + "engines": { + "node": ">=12" + }, + "optionalDependencies": { + "highlight.js": "11.6.0" + } + }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/dom-align": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/dom-align/-/dom-align-1.12.3.tgz", + "integrity": "sha512-Gj9hZN3a07cbR6zviMUBOMPdWxYhbMI+x+WS0NAIu2zFZmbK8ys9R79g+iG9qLnlCwpFoaB+fKy8Pdv470GsPA==" + }, + "node_modules/dom-scroll-into-view": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/dom-scroll-into-view/-/dom-scroll-into-view-2.0.1.tgz", + "integrity": "sha512-bvVTQe1lfaUr1oFzZX80ce9KLDlZ3iU+XGNE/bz9HnGdklTieqsbmsLHe+rT2XWqopvL0PckkYqN7ksmm5pe3w==" + }, + "node_modules/dom7": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dom7/-/dom7-3.0.0.tgz", + "integrity": "sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g==", + "dependencies": { + "ssr-window": "^3.0.0-alpha.1" + } + }, + "node_modules/echarts": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/echarts/-/echarts-5.4.0.tgz", + "integrity": "sha512-uPsO9VRUIKAdFOoH3B0aNg7NRVdN7aM39/OjovjO9MwmWsAkfGyeXJhK+dbRi51iDrQWliXV60/XwLA7kg3z0w==", + "dependencies": { + "tslib": "2.3.0", + "zrender": "5.4.0" + } + }, + "node_modules/ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, + "node_modules/electron-to-chromium": { + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", + "dev": true, + "peer": true + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "node_modules/encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/enhanced-resolve": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", + "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", + "dev": true, + "peer": true, + "dependencies": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "optional": true, + "dependencies": { + "prr": "~1.0.1" + }, + "bin": { + "errno": "cli.js" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "dev": true, + "peer": true + }, + "node_modules/es5-ext": { + "version": "0.10.62", + "resolved": "https://registry.npmjs.org/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.npmjs.org/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.npmjs.org/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.npmjs.org/esbuild/-/esbuild-0.14.54.tgz", + "integrity": "sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==", + "dev": true, + "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.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz", + "integrity": "sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-android-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz", + "integrity": "sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz", + "integrity": "sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-darwin-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz", + "integrity": "sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz", + "integrity": "sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-freebsd-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz", + "integrity": "sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-32": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz", + "integrity": "sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz", + "integrity": "sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz", + "integrity": "sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==", + "cpu": [ + "arm" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz", + "integrity": "sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-mips64le": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz", + "integrity": "sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-ppc64le": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz", + "integrity": "sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-riscv64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz", + "integrity": "sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==", + "cpu": [ + "riscv64" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-linux-s390x": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz", + "integrity": "sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==", + "cpu": [ + "s390x" + ], + "dev": true, + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-netbsd-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz", + "integrity": "sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-openbsd-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz", + "integrity": "sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-sunos-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz", + "integrity": "sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-32": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz", + "integrity": "sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==", + "cpu": [ + "ia32" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz", + "integrity": "sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==", + "cpu": [ + "x64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/esbuild-windows-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz", + "integrity": "sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==", + "cpu": [ + "arm64" + ], + "dev": true, + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=12" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true + }, + "node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint": { + "version": "8.26.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.26.0.tgz", + "integrity": "sha512-kzJkpaw1Bfwheq4VXUezFriD1GxszX6dUekM7Z3aC2o4hju+tsR/XyTC3RcoSD7jmy9VkPU3+N6YjVU2e96Oyg==", + "dev": true, + "dependencies": { + "@eslint/eslintrc": "^1.3.3", + "@humanwhocodes/config-array": "^0.11.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.4.0", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.15.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-sdsl": "^4.1.4", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-config-prettier": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", + "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", + "dev": true, + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, + "node_modules/eslint-plugin-prettier": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.0.0.tgz", + "integrity": "sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ==", + "dev": true, + "dependencies": { + "prettier-linter-helpers": "^1.0.0" + }, + "engines": { + "node": ">=6.0.0" + }, + "peerDependencies": { + "eslint": ">=7.28.0", + "prettier": ">=2.0.0" + }, + "peerDependenciesMeta": { + "eslint-config-prettier": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-vue": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.1.1.tgz", + "integrity": "sha512-W9n5PB1X2jzC7CK6riG0oAcxjmKrjTF6+keL1rni8n57DZeilx/Fulz+IRJK3lYseLNAygN0I62L7DvioW40Tw==", + "dev": true, + "dependencies": { + "eslint-utils": "^3.0.0", + "natural-compare": "^1.4.0", + "nth-check": "^2.0.1", + "postcss-selector-parser": "^6.0.9", + "semver": "^7.3.5", + "vue-eslint-parser": "^9.0.1", + "xml-name-validator": "^4.0.0" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.2.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/espree": { + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz", + "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==", + "dev": true, + "dependencies": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "dependencies": { + "estraverse": "^5.2.0" + }, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/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/events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "peer": true, + "engines": { + "node": ">=0.8.x" + } + }, + "node_modules/execall": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/execall/-/execall-2.0.0.tgz", + "integrity": "sha512-0FU2hZ5Hh6iQnarpRtQurM/aAvp3RIbfvgLHrcqJYzhXyV2KFruhuChf9NC6waAhiUR7FFtlugkI4p7f2Fqlow==", + "dev": true, + "dependencies": { + "clone-regexp": "^2.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ext": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/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.npmjs.org/type/-/type-2.7.2.tgz", + "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" + }, + "node_modules/fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "node_modules/fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true + }, + "node_modules/fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "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/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "node_modules/fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true, + "engines": { + "node": ">= 4.9.1" + } + }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, + "node_modules/file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "dependencies": { + "flat-cache": "^3.0.4" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "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.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/finalhandler/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "dependencies": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + }, + "engines": { + "node": "^10.12.0 || >=12.0.0" + } + }, + "node_modules/flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true + }, + "node_modules/follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/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/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/get-stdin": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", + "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true, + "peer": true + }, + "node_modules/global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dev": true, + "dependencies": { + "global-prefix": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "dependencies": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/global-prefix/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/globals": { + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", + "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globjoin": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", + "integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==", + "dev": true + }, + "node_modules/good-listener": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", + "integrity": "sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==", + "dependencies": { + "delegate": "^3.1.2" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, + "node_modules/hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/highlight.js": { + "version": "11.6.0", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.6.0.tgz", + "integrity": "sha512-ig1eqDzJaB0pqEvlPVIpSSyMaO92bH1N2rJpLMN/nX396wTpDA4Eq0uK+7I/2XG17pFaaKE0kjV/XPeGt7Evjw==", + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/hogan.js": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/hogan.js/-/hogan.js-3.0.2.tgz", + "integrity": "sha512-RqGs4wavGYJWE07t35JQccByczmNUXQT0E12ZYV1VKYu5UiAU9lsos/yBAcf840+zrUQQxgVduCR5/B8nNtibg==", + "dependencies": { + "mkdirp": "0.3.0", + "nopt": "1.0.10" + }, + "bin": { + "hulk": "bin/hulk" + } + }, + "node_modules/hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/html-tags": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.2.0.tgz", + "integrity": "sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/html-void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/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.npmjs.org/i18next/-/i18next-20.6.1.tgz", + "integrity": "sha512-yCMYTMEJ9ihCwEQQ3phLo7I/Pwycf8uAx+sRHwwk5U9Aui/IZYgQRyMqXafQOw5QQ7DM1Z+WyEXWIqSuJHhG2A==", + "dependencies": { + "@babel/runtime": "^7.12.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "optional": true, + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, + "node_modules/image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", + "dev": true, + "optional": true, + "bin": { + "image-size": "bin/image-size.js" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/immer": { + "version": "9.0.16", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.16.tgz", + "integrity": "sha512-qenGE7CstVm1NrHQbMh8YaSzTZTFNP3zPqr3YU0S0UY441j4bJTg4A2Hh5KAhwgaiU6ZZ1Ar6y/2f4TblnMReQ==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/immer" + } + }, + "node_modules/import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "dependencies": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/import-lazy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", + "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true, + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-builtin-module": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.0.tgz", + "integrity": "sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==", + "dev": true, + "dependencies": { + "builtin-modules": "^3.3.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-hotkey": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/is-hotkey/-/is-hotkey-0.2.0.tgz", + "integrity": "sha512-UknnZK4RakDmTgz4PI1wIph5yxSs/mvChWs9ifnlXsKuXgWmOkY/hAE0H/k2MIqH0RlRye0i1oC07MCRSD28Mw==" + }, + "node_modules/is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-regexp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-2.1.0.tgz", + "integrity": "sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/is-url": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", + "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==" + }, + "node_modules/is-what": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", + "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", + "dev": true + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "node_modules/jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "peer": true, + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest-worker/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "peer": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/js-cookie": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz", + "integrity": "sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==" + }, + "node_modules/js-sdsl": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.5.tgz", + "integrity": "sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==", + "dev": true + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "node_modules/json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "node_modules/jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/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/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/klona": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", + "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/known-css-properties": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.25.0.tgz", + "integrity": "sha512-b0/9J1O9Jcyik1GC6KC42hJ41jKwdO/Mq8Mdo5sYN+IuRTXs2YFHZC3kZSx6ueusqa95x3wLYe/ytKjbAfGixA==", + "dev": true + }, + "node_modules/less": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/less/-/less-4.1.3.tgz", + "integrity": "sha512-w16Xk/Ta9Hhyei0Gpz9m7VS8F28nieJaL/VyShID7cYvP6IL5oHeL6p4TXSDJqZE/lNv0oJ2pGVjJsRkfwm5FA==", + "dev": true, + "dependencies": { + "copy-anything": "^2.0.1", + "parse-node-version": "^1.0.1", + "tslib": "^2.3.0" + }, + "bin": { + "lessc": "bin/lessc" + }, + "engines": { + "node": ">=6" + }, + "optionalDependencies": { + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "needle": "^3.1.0", + "source-map": "~0.6.0" + } + }, + "node_modules/less-loader": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-10.0.1.tgz", + "integrity": "sha512-Crln//HpW9M5CbtdfWm3IO66Cvx1WhZQvNybXgfB2dD/6Sav9ppw+IWqs/FQKPBFO4B6X0X28Z0WNznshgwUzA==", + "dev": true, + "dependencies": { + "klona": "^2.0.4" + }, + "engines": { + "node": ">= 12.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "less": "^3.5.0 || ^4.0.0", + "webpack": "^5.0.0" + } + }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "node_modules/loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6.11.5" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "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.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/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.npmjs.org/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.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + }, + "node_modules/lodash.foreach": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/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.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==" + }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "node_modules/lodash.throttle": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/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.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz", + "integrity": "sha512-QyffEA3i5dma5q2490+SgCvDN0pXLmRGSyAANuVi0HQ01Pkfr9fuoKQW8wm1wGBnJITs/mS7wQvS6VshUEBFCw==" + }, + "node_modules/lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/lunar-javascript": { + "version": "1.2.35", + "resolved": "https://registry.npmjs.org/lunar-javascript/-/lunar-javascript-1.2.35.tgz", + "integrity": "sha512-VD/roaK6fvv1PUv9G8zV0TjjW/TTngiLGltl4B4tGRi5cE7vTIEB7X9pfA8RTg8sgttiUs5gWfY/v8N0tYg0vA==" + }, + "node_modules/magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "dependencies": { + "sourcemap-codec": "^1.4.8" + } + }, + "node_modules/make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "optional": true, + "dependencies": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/make-dir/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "optional": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mathml-tag-names": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", + "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/meow": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", + "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", + "dev": true, + "dependencies": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize": "^1.2.0", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/meow/node_modules/type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true, + "peer": true + }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "dependencies": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "optional": true, + "bin": { + "mime": "cli.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/mime-match/-/mime-match-1.0.2.tgz", + "integrity": "sha512-VXp/ugGDVh3eCLOBCiHZMYWQaTNUHv2IJrut+yXA6+JbLPXHglHwfS/5A5L0ll+jkCY7fIzRJcH6OIunF+c6Cg==", + "dependencies": { + "wildcard": "^1.1.0" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "dev": true, + "dependencies": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/mitt": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.0.tgz", + "integrity": "sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ==" + }, + "node_modules/mkdirp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz", + "integrity": "sha512-OHsdUcVAQ6pOtg5JYWpCBo9W/GySVuwvP9hueRMW7UqshC0tbfzLv8wjySTPm3tfUZ/21CE9E1pJagOA91Pxew==", + "deprecated": "Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)", + "engines": { + "node": "*" + } + }, + "node_modules/mockjs": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mockjs/-/mockjs-1.1.0.tgz", + "integrity": "sha512-eQsKcWzIaZzEZ07NuEyO4Nw65g0hdWAyurVol1IPl1gahRwY+svqzfgfey8U8dahLwG44d6/RwEzuK52rSa/JQ==", + "dev": true, + "peer": true, + "dependencies": { + "commander": "*" + }, + "bin": { + "random": "bin/random" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/namespace-emitter": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/namespace-emitter/-/namespace-emitter-2.0.1.tgz", + "integrity": "sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g==" + }, + "node_modules/nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/nanopop": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/nanopop/-/nanopop-2.2.0.tgz", + "integrity": "sha512-E9JaHcxh3ere8/BEZHAcnuD10RluTSPyTToBvoFWS9/7DcCx6gyKjbn7M7Bx7E1veCxCuY1iO6h4+gdAf1j73Q==" + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "node_modules/needle": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/needle/-/needle-3.1.0.tgz", + "integrity": "sha512-gCE9weDhjVGCRqS8dwDR/D3GTAeyXLXuqp7I8EzH6DllZGXSUyxuqqLh+YX9rMAWaaTFyVAg6rHGL25dqvczKw==", + "dev": true, + "optional": true, + "dependencies": { + "debug": "^3.2.6", + "iconv-lite": "^0.6.3", + "sax": "^1.2.4" + }, + "bin": { + "needle": "bin/needle" + }, + "engines": { + "node": ">= 4.4.x" + } + }, + "node_modules/needle/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "optional": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true, + "peer": true + }, + "node_modules/next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" + }, + "node_modules/node-releases": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", + "dev": true, + "peer": true + }, + "node_modules/nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", + "dependencies": { + "abbrev": "1" + }, + "bin": { + "nopt": "bin/nopt.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/nprogress": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz", + "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==" + }, + "node_modules/nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "dependencies": { + "boolbase": "^1.0.0" + }, + "funding": { + "url": "https://github.com/fb55/nth-check?sponsor=1" + } + }, + "node_modules/on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "dev": true, + "dependencies": { + "ee-first": "1.1.1" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "dependencies": { + "callsites": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "node_modules/path-to-regexp": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz", + "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==", + "dev": true + }, + "node_modules/path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "optional": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/pinia": { + "version": "2.0.23", + "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.0.23.tgz", + "integrity": "sha512-N15hFf4o5STrxpNrib1IEb1GOArvPYf1zPvQVRGOO1G1d74Ak0J0lVyalX/SmrzdT4Q0nlEFjbURsmBmIGUR5Q==", + "dependencies": { + "@vue/devtools-api": "^6.4.4", + "vue-demi": "*" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "@vue/composition-api": "^1.4.0", + "typescript": ">=4.4.4", + "vue": "^2.6.14 || ^3.2.0" + }, + "peerDependenciesMeta": { + "@vue/composition-api": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/pinia/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/postcss": { + "version": "8.4.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.18.tgz", + "integrity": "sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + } + ], + "dependencies": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/postcss-media-query-parser": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", + "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==", + "dev": true + }, + "node_modules/postcss-resolve-nested-selector": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", + "integrity": "sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==", + "dev": true + }, + "node_modules/postcss-safe-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", + "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", + "dev": true, + "engines": { + "node": ">=12.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + "peerDependencies": { + "postcss": "^8.3.3" + } + }, + "node_modules/postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "dev": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/postcss-sorting": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-7.0.1.tgz", + "integrity": "sha512-iLBFYz6VRYyLJEJsBJ8M3TCqNcckVzz4wFounSc5Oez35ogE/X+aoC5fFu103Ot7NyvjU3/xqIXn93Gp3kJk4g==", + "dev": true, + "peerDependencies": { + "postcss": "^8.3.9" + } + }, + "node_modules/postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "node_modules/preact": { + "version": "10.11.2", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.11.2.tgz", + "integrity": "sha512-skAwGDFmgxhq1DCBHke/9e12ewkhc7WYwjuhHB8HHS8zkdtITXLRmUMTeol2ldxvLwYtwbFeifZ9uDDWuyL4Iw==", + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/preact" + } + }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/prettier": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.2.tgz", + "integrity": "sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==", + "dev": true, + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/prismjs": { + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", + "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "dev": true, + "optional": true + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "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/quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "peer": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up/node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg/node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "node_modules/read-pkg/node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/read-pkg/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "dependencies": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.10", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz", + "integrity": "sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw==" + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, + "node_modules/require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resize-observer-polyfill": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" + }, + "node_modules/resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "dependencies": { + "is-core-module": "^2.9.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/resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/rollup": { + "version": "2.77.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.77.3.tgz", + "integrity": "sha512-/qxNTG7FbmefJWoeeYJFbHehJ2HNWnjkAFRKzWN/45eNBBF/r8lo992CwcJXEzyVxs5FmfId+vTSTQDb+bxA+g==", + "dev": true, + "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.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "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/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "peer": true + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "optional": true + }, + "node_modules/sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true, + "optional": true + }, + "node_modules/schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "peer": true, + "dependencies": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + } + }, + "node_modules/scroll-into-view-if-needed": { + "version": "2.2.29", + "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.29.tgz", + "integrity": "sha512-hxpAR6AN+Gh53AdAimHM6C8oTN1ppwVZITihix+WqalywBeFcQ6LdQP5ABNl26nX8GTEL7VT+b8lKpdqq65wXg==", + "dependencies": { + "compute-scroll-into-view": "^1.0.17" + } + }, + "node_modules/select": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", + "integrity": "sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==" + }, + "node_modules/semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "peer": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/shallow-equal": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/shallow-equal/-/shallow-equal-1.2.1.tgz", + "integrity": "sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==" + }, + "node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/slate": { + "version": "0.72.8", + "resolved": "https://registry.npmjs.org/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.npmjs.org/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/slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/slice-ansi?sponsor=1" + } + }, + "node_modules/snabbdom": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/snabbdom/-/snabbdom-3.5.1.tgz", + "integrity": "sha512-wHMNIOjkm/YNE5EM3RCbr/+DVgPg6AqQAX1eOxO46zYNvCXjKP5Y865tqQj3EXnaMBjkxmQA5jFuDpDK/dbfiA==", + "engines": { + "node": ">=8.3.0" + } + }, + "node_modules/sortablejs": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.15.0.tgz", + "integrity": "sha512-bv9qgVMjUMf89wAvM6AxVvS/4MX3sPeN0+agqShejLU5z5GX4C75ow1O2e5k4L6XItUyAK3gH6AxSbXrOM5e8w==" + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/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.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "peer": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + }, + "node_modules/spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz", + "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==", + "dev": true + }, + "node_modules/specificity": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/specificity/-/specificity-0.4.1.tgz", + "integrity": "sha512-1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg==", + "dev": true, + "bin": { + "specificity": "bin/specificity" + } + }, + "node_modules/ssr-window": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ssr-window/-/ssr-window-3.0.0.tgz", + "integrity": "sha512-q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA==" + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "dependencies": { + "min-indent": "^1.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/style-search": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", + "integrity": "sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==", + "dev": true + }, + "node_modules/stylelint": { + "version": "14.8.5", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.8.5.tgz", + "integrity": "sha512-e3t4H/hlWlspkcNUrkhf44RU3OpPTA7uBOoREGBzSwdEF+2g/+gbZq7WEpMP7BpopcSe/uLaTvDuL+URL7cdnQ==", + "dev": true, + "dependencies": { + "balanced-match": "^2.0.0", + "colord": "^2.9.2", + "cosmiconfig": "^7.0.1", + "css-functions-list": "^3.0.1", + "debug": "^4.3.4", + "execall": "^2.0.0", + "fast-glob": "^3.2.11", + "fastest-levenshtein": "^1.0.12", + "file-entry-cache": "^6.0.1", + "get-stdin": "^8.0.0", + "global-modules": "^2.0.0", + "globby": "^11.1.0", + "globjoin": "^0.1.4", + "html-tags": "^3.2.0", + "ignore": "^5.2.0", + "import-lazy": "^4.0.0", + "imurmurhash": "^0.1.4", + "is-plain-object": "^5.0.0", + "known-css-properties": "^0.25.0", + "mathml-tag-names": "^2.1.3", + "meow": "^9.0.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.14", + "postcss-media-query-parser": "^0.2.3", + "postcss-resolve-nested-selector": "^0.1.1", + "postcss-safe-parser": "^6.0.0", + "postcss-selector-parser": "^6.0.10", + "postcss-value-parser": "^4.2.0", + "resolve-from": "^5.0.0", + "specificity": "^0.4.1", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "style-search": "^0.1.0", + "supports-hyperlinks": "^2.2.0", + "svg-tags": "^1.0.0", + "table": "^6.8.0", + "v8-compile-cache": "^2.3.0", + "write-file-atomic": "^4.0.1" + }, + "bin": { + "stylelint": "bin/stylelint.js" + }, + "engines": { + "node": "^12.20.0 || ^14.13.1 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/stylelint" + } + }, + "node_modules/stylelint-config-prettier": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/stylelint-config-prettier/-/stylelint-config-prettier-9.0.3.tgz", + "integrity": "sha512-5n9gUDp/n5tTMCq1GLqSpA30w2sqWITSSEiAWQlpxkKGAUbjcemQ0nbkRvRUa0B1LgD3+hCvdL7B1eTxy1QHJg==", + "dev": true, + "bin": { + "stylelint-config-prettier": "bin/check.js", + "stylelint-config-prettier-check": "bin/check.js" + }, + "engines": { + "node": ">= 12" + }, + "peerDependencies": { + "stylelint": ">=11.0.0" + } + }, + "node_modules/stylelint-config-standard": { + "version": "25.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-25.0.0.tgz", + "integrity": "sha512-21HnP3VSpaT1wFjFvv9VjvOGDtAviv47uTp3uFmzcN+3Lt+RYRv6oAplLaV51Kf792JSxJ6svCJh/G18E9VnCA==", + "dev": true, + "dependencies": { + "stylelint-config-recommended": "^7.0.0" + }, + "peerDependencies": { + "stylelint": "^14.4.0" + } + }, + "node_modules/stylelint-config-standard/node_modules/stylelint-config-recommended": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-7.0.0.tgz", + "integrity": "sha512-yGn84Bf/q41J4luis1AZ95gj0EQwRX8lWmGmBwkwBNSkpGSpl66XcPTulxGa/Z91aPoNGuIGBmFkcM1MejMo9Q==", + "dev": true, + "peerDependencies": { + "stylelint": "^14.4.0" + } + }, + "node_modules/stylelint-order": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-5.0.0.tgz", + "integrity": "sha512-OWQ7pmicXufDw5BlRqzdz3fkGKJPgLyDwD1rFY3AIEfIH/LQY38Vu/85v8/up0I+VPiuGRwbc2Hg3zLAsJaiyw==", + "dev": true, + "dependencies": { + "postcss": "^8.3.11", + "postcss-sorting": "^7.0.1" + }, + "peerDependencies": { + "stylelint": "^14.0.0" + } + }, + "node_modules/stylelint/node_modules/balanced-match": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", + "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", + "dev": true + }, + "node_modules/stylelint/node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", + "dev": true + }, + "node_modules/table": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", + "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", + "dev": true, + "dependencies": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/table/node_modules/ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dev": true, + "dependencies": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/epoberezkin" + } + }, + "node_modules/table/node_modules/json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + }, + "node_modules/tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/terser": { + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.15.1.tgz", + "integrity": "sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw==", + "dev": true, + "peer": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser-webpack-plugin": { + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz", + "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==", + "dev": true, + "peer": true, + "dependencies": { + "@jridgewell/trace-mapping": "^0.3.14", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", + "terser": "^5.14.1" + }, + "engines": { + "node": ">= 10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependencies": { + "webpack": "^5.1.0" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "esbuild": { + "optional": true + }, + "uglify-js": { + "optional": true + } + } + }, + "node_modules/terser/node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "peer": true + }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "node_modules/throttle-debounce": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-2.3.0.tgz", + "integrity": "sha512-H7oLPV0P7+jgvrk+6mwwwBDmxTaxnu9HMXmloNLXwnNO0ZxZ31Orah2n8lU1eMPvsaowP2CX+USCgyovXfdOFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/tiny-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", + "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" + }, + "node_modules/tiny-warning": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/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.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/tslib": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", + "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" + }, + "node_modules/type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" + }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/ua-parser-js": { + "version": "1.0.32", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.32.tgz", + "integrity": "sha512-dXVsz3M4j+5tTiovFVyVqssXBu5HM47//YSOeZ9fQkdDKkfzv2v3PP1jmH6FUyPW+yCSn7aBVK1fGGKNhowdDA==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/ua-parser-js" + }, + { + "type": "paypal", + "url": "https://paypal.me/faisalman" + } + ], + "engines": { + "node": "*" + } + }, + "node_modules/universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/browserslist" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/browserslist" + } + ], + "peer": true, + "dependencies": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + }, + "bin": { + "browserslist-lint": "cli.js" + }, + "peerDependencies": { + "browserslist": ">= 4.21.0" + } + }, + "node_modules/uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "dependencies": { + "punycode": "^2.1.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "node_modules/utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/v-viewer": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/v-viewer/-/v-viewer-1.6.4.tgz", + "integrity": "sha512-LVkiUHpmsbsZXebeNXnu8krRCi5i2n07FeLFxoIVGhw8lVvTBO0ffpbDC6mLEuacCjrIh09HjIqpciwUtWE8lQ==", + "dependencies": { + "throttle-debounce": "^2.0.1", + "viewerjs": "^1.5.0" + }, + "engines": { + "node": ">=4", + "npm": ">=3" + } + }, + "node_modules/v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/viewerjs": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/viewerjs/-/viewerjs-1.11.0.tgz", + "integrity": "sha512-TE3XvfEXqKV+LdHsRdMSPsCaq0PfKDXm4SjGzfty7CzVxlDbBbT4x38vAqfXfNITmHhHUQefdxdg0Vv4ia+Z9w==" + }, + "node_modules/vite": { + "version": "2.9.15", + "resolved": "https://registry.npmjs.org/vite/-/vite-2.9.15.tgz", + "integrity": "sha512-fzMt2jK4vQ3yK56te3Kqpkaeq9DkcZfBbzHwYpobasvgYmP2SoAr6Aic05CsB4CzCZbsDv4sujX3pkEGhLabVQ==", + "dev": true, + "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-mock": { + "version": "2.9.6", + "resolved": "https://registry.npmjs.org/vite-plugin-mock/-/vite-plugin-mock-2.9.6.tgz", + "integrity": "sha512-/Rm59oPppe/ncbkSrUuAxIQihlI2YcBmnbR4ST1RA2VzM1C0tEQc1KlbQvnUGhXECAGTaQN2JyasiwXP6EtKgg==", + "dev": true, + "dependencies": { + "@rollup/plugin-node-resolve": "^13.0.4", + "@types/mockjs": "^1.0.4", + "chalk": "^4.1.2", + "chokidar": "^3.5.2", + "connect": "^3.7.0", + "debug": "^4.3.2", + "esbuild": "0.11.3", + "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/esbuild": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.11.3.tgz", + "integrity": "sha512-BzVRHcCtFepjS9WcqRjqoIxLqgpK21a8J4Zi4msSGxDxiXVO1IbcqT1KjhdDDnJxKfe7bvzZrvMEX+bVO0Elcw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "esbuild": "bin/esbuild" + } + }, + "node_modules/vite-plugin-optimize-persist": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/vite-plugin-optimize-persist/-/vite-plugin-optimize-persist-0.1.2.tgz", + "integrity": "sha512-H/Ebn2kZO8PvwUF08SsT5K5xMJNCWKoGX71+e9/ER3yNj7GHiFjNQlvGg5ih/zEx09MZ9m7WCxOwmEKbeIVzww==", + "dev": true, + "dependencies": { + "debug": "^4.3.2", + "fs-extra": "^10.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vite": "^2.0.0", + "vite-plugin-package-config": "^0.1.0" + } + }, + "node_modules/vite-plugin-package-config": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/vite-plugin-package-config/-/vite-plugin-package-config-0.1.1.tgz", + "integrity": "sha512-w9B3I8ZnqoyhlbzimXjXNk85imrMZgvI9m8f6j3zonK5IVA5KXzpT+PZOHlDz8lqh1vqvoEI1uhy+ZDoLAiA/w==", + "dev": true, + "dependencies": { + "debug": "^4.3.3" + }, + "funding": { + "url": "https://github.com/sponsors/antfu" + }, + "peerDependencies": { + "vite": "^2.0.0" + } + }, + "node_modules/vue": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.41.tgz", + "integrity": "sha512-uuuvnrDXEeZ9VUPljgHkqB5IaVO8SxhPpqF2eWOukVrBnRBx2THPSGQBnVRt0GrIG1gvCmFXMGbd7FqcT1ixNQ==", + "dependencies": { + "@vue/compiler-dom": "3.2.41", + "@vue/compiler-sfc": "3.2.41", + "@vue/runtime-dom": "3.2.41", + "@vue/server-renderer": "3.2.41", + "@vue/shared": "3.2.41" + } + }, + "node_modules/vue-eslint-parser": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.0.3.tgz", + "integrity": "sha512-yL+ZDb+9T0ELG4VIFo/2anAOz8SvBdlqEnQnvJ3M7Scq56DvtjY0VY88bByRZB0D4J0u8olBcfrXTVONXsh4og==", + "dev": true, + "dependencies": { + "debug": "^4.3.4", + "eslint-scope": "^7.1.1", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1", + "esquery": "^1.4.0", + "lodash": "^4.17.21", + "semver": "^7.3.6" + }, + "engines": { + "node": "^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=6.0.0" + } + }, + "node_modules/vue-i18n": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/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.0.16", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.0.16.tgz", + "integrity": "sha512-JcO7cb8QJLBWE+DfxGUL3xUDOae/8nhM1KVdnudadTAORbuxIC/xAydC5Zr/VLHUDQi1ppuTF5/rjBGzgzrJNA==", + "dependencies": { + "@vue/devtools-api": "^6.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/vue-types": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/vue-types/-/vue-types-3.0.2.tgz", + "integrity": "sha512-IwUC0Aq2zwaXqy74h4WCvFCUtoV0iSWr0snWnE9TnU18S66GAQyqQbRf2qfJtUuiFsBf6qp0MEwdonlwznlcrw==", + "dependencies": { + "is-plain-object": "3.0.1" + }, + "engines": { + "node": ">=10.15.0" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/vue-types/node_modules/is-plain-object": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.1.tgz", + "integrity": "sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/vue3-json-viewer": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/vue3-json-viewer/-/vue3-json-viewer-2.2.2.tgz", + "integrity": "sha512-56l3XDGggnpwEqZieXsSMhNT4NhtO6d7zuSAxHo4i0UVxymyY2jRb7UMQOU1ztChKALZCAzX7DlgrsnEhxu77A==", + "dependencies": { + "clipboard": "^2.0.10" + }, + "peerDependencies": { + "vue": "^3.2.0" + } + }, + "node_modules/warning": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "dependencies": { + "loose-envify": "^1.0.0" + } + }, + "node_modules/watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dev": true, + "peer": true, + "dependencies": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack": { + "version": "5.74.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz", + "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==", + "dev": true, + "peer": true, + "dependencies": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.10.0", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "bin": { + "webpack": "bin/webpack.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/webpack" + }, + "peerDependenciesMeta": { + "webpack-cli": { + "optional": true + } + } + }, + "node_modules/webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "peer": true, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/webpack/node_modules/@types/estree": { + "version": "0.0.51", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", + "dev": true, + "peer": true + }, + "node_modules/webpack/node_modules/eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "peer": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/webpack/node_modules/estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "peer": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/wildcard": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-1.1.2.tgz", + "integrity": "sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng==" + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "node_modules/write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "dependencies": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + }, + "engines": { + "node": "^12.13.0 || ^14.15.0 || >=16.0.0" + } + }, + "node_modules/xml-name-validator": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "dev": true, + "engines": { + "node": ">=12" + } + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zrender": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/zrender/-/zrender-5.4.0.tgz", + "integrity": "sha512-rOS09Z2HSVGFs2dn/TuYk5BlCaZcVe8UDLLjj1ySYF828LATKKdxuakSZMvrDz54yiKPDYVfjdKqcX8Jky3BIA==", + "dependencies": { + "tslib": "2.3.0" + } + } + }, + "dependencies": { + "@ant-design/colors": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/@ant-design/colors/-/colors-6.0.0.tgz", + "integrity": "sha512-qAZRvPzfdWHtfameEGP2Qvuf838NhergR35o+EuVyB5XvSA98xod5r4utvi4TJ3ywmevm290g9nsCG5MryrdWQ==", + "requires": { + "@ctrl/tinycolor": "^3.4.0" + } + }, + "@ant-design/icons-svg": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/@ant-design/icons-svg/-/icons-svg-4.2.1.tgz", + "integrity": "sha512-EB0iwlKDGpG93hW8f85CTJTs4SvMX7tt5ceupvhALp1IF44SeUFOMhKUOYqpsoYWQKAOuTRDMqn75rEaKDp0Xw==" + }, + "@ant-design/icons-vue": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/@ant-design/icons-vue/-/icons-vue-6.1.0.tgz", + "integrity": "sha512-EX6bYm56V+ZrKN7+3MT/ubDkvJ5rK/O2t380WFRflDcVFgsvl3NLH7Wxeau6R8DbrO5jWR6DSTC3B6gYFp77AA==", + "requires": { + "@ant-design/colors": "^6.0.0", + "@ant-design/icons-svg": "^4.2.1" + } + }, + "@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dev": true, + "requires": { + "@babel/highlight": "^7.18.6" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.19.1", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", + "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "dev": true + }, + "@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dev": true, + "requires": { + "color-convert": "^1.9.0" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dev": true, + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dev": true, + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "dev": true + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "dev": true + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dev": true, + "requires": { + "has-flag": "^3.0.0" + } + } + } + }, + "@babel/parser": { + "version": "7.19.6", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.6.tgz", + "integrity": "sha512-h1IUp81s2JYJ3mRkdxJgs4UvmSsRvDrx5ICSJbPvtWYv5i1nTBGcBpnog+89rAFMwvvru6E5NUHdBe01UeSzYA==" + }, + "@babel/runtime": { + "version": "7.19.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.19.4.tgz", + "integrity": "sha512-EXpLCrk55f+cYqmHsSR+yD/0gAIMxxA9QK9lnQWzhMCvt+YmoBN7Zx94s++Kv0+unHk39vxNO8t+CMA2WSS3wA==", + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@ctrl/tinycolor": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/@ctrl/tinycolor/-/tinycolor-3.4.1.tgz", + "integrity": "sha512-ej5oVy6lykXsvieQtqZxCOaLT+xD4+QNarq78cIYISHmZXshCvROLudpQN3lfL8G0NL7plMSSK+zlyvCaIJ4Iw==" + }, + "@esbuild/linux-loong64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.14.54.tgz", + "integrity": "sha512-bZBrLAIX1kpWelV0XemxBZllyRmM6vgFQQG2GdNb+r3Fkp0FOh1NJSvekXDs7jq70k4euu1cryLMfU+mTXlEpw==", + "dev": true, + "optional": true + }, + "@eslint/eslintrc": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.3.tgz", + "integrity": "sha512-uj3pT6Mg+3t39fvLrj8iuCIJ38zKO9FpGtJ4BBJebJhEwjoT+KLVNCcHT5QC9NGRIEi7fZ0ZR8YRb884auB4Lg==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.4.0", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + } + }, + "@humanwhocodes/config-array": { + "version": "0.11.6", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.6.tgz", + "integrity": "sha512-jJr+hPTJYKyDILJfhNSHsjiwXYf26Flsz8DvNndOsHs5pwSnpGUEy8yzF0JYhCEvTDdV2vuOK5tt8BVhwO5/hg==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + } + }, + "@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, + "@intlify/core-base": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/@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.npmjs.org/@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.npmjs.org/@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.npmjs.org/@intlify/shared/-/shared-9.2.2.tgz", + "integrity": "sha512-wRwTpsslgZS5HNyM7uDQYZtxnbI12aGiBZURX3BTR9RFIKKRWpllTsgzHWvj3HKm3Y2Sh5LPC1r0PDCKEhVn9Q==" + }, + "@intlify/vue-devtools": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/@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/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "dev": true, + "peer": true, + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "dev": true, + "peer": true + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", + "dev": true, + "peer": true + }, + "@jridgewell/source-map": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", + "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", + "dev": true, + "peer": true, + "requires": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", + "dev": true, + "peer": true + }, + "@jridgewell/trace-mapping": { + "version": "0.3.17", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.17.tgz", + "integrity": "sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==", + "dev": true, + "peer": true, + "requires": { + "@jridgewell/resolve-uri": "3.1.0", + "@jridgewell/sourcemap-codec": "1.4.14" + } + }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, + "@rollup/plugin-node-resolve": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.3.0.tgz", + "integrity": "sha512-Lus8rbUo1eEcnS4yTFKLZrVumLPY+YayBdWXgFSHYhTT2iJbMhoaaBL3xl5NCdeRytErGr8tZ0L71BMRmnlwSw==", + "dev": true, + "requires": { + "@rollup/pluginutils": "^3.1.0", + "@types/resolve": "1.17.1", + "deepmerge": "^4.2.2", + "is-builtin-module": "^3.1.0", + "is-module": "^1.0.0", + "resolve": "^1.19.0" + } + }, + "@rollup/pluginutils": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-3.1.0.tgz", + "integrity": "sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==", + "dev": true, + "requires": { + "@types/estree": "0.0.39", + "estree-walker": "^1.0.1", + "picomatch": "^2.2.2" + }, + "dependencies": { + "estree-walker": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-1.0.1.tgz", + "integrity": "sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==", + "dev": true + } + } + }, + "@simonwep/pickr": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/@simonwep/pickr/-/pickr-1.8.2.tgz", + "integrity": "sha512-/l5w8BIkrpP6n1xsetx9MWPWlU6OblN5YgZZphxan0Tq4BByTCETL6lyIeY8lagalS2Nbt4F2W034KHLIiunKA==", + "requires": { + "core-js": "^3.15.1", + "nanopop": "^2.1.0" + } + }, + "@transloadit/prettier-bytes": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/@transloadit/prettier-bytes/-/prettier-bytes-0.0.7.tgz", + "integrity": "sha512-VeJbUb0wEKbcwaSlj5n+LscBl9IPgLPkHVGBkh00cztv6X4L/TJXK58LzFuBKX7/GAfiGhIwH67YTLTlzvIzBA==" + }, + "@types/eslint": { + "version": "8.4.8", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.8.tgz", + "integrity": "sha512-zUCKQI1bUCTi+0kQs5ZQzQ/XILWRLIlh15FXWNykJ+NG3TMKMVvwwC6GP3DR1Ylga15fB7iAExSzc4PNlR5i3w==", + "dev": true, + "peer": true, + "requires": { + "@types/estree": "*", + "@types/json-schema": "*" + } + }, + "@types/eslint-scope": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", + "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", + "dev": true, + "peer": true, + "requires": { + "@types/eslint": "*", + "@types/estree": "*" + } + }, + "@types/estree": { + "version": "0.0.39", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.39.tgz", + "integrity": "sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==", + "dev": true + }, + "@types/event-emitter": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/@types/event-emitter/-/event-emitter-0.3.3.tgz", + "integrity": "sha512-UfnOK1pIxO7P+EgPRZXD9jMpimd8QEFcEZ5R67R1UhGbv4zghU5+NE7U8M8G9H5Jc8FI51rqDWQs6FtUfq2e/Q==" + }, + "@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", + "dev": true, + "peer": true + }, + "@types/minimist": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz", + "integrity": "sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==", + "dev": true + }, + "@types/mockjs": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@types/mockjs/-/mockjs-1.0.7.tgz", + "integrity": "sha512-OCxXz6hEaJOVpRwuJMiVY5a6LtJcih+br9gwB/Q8ooOBikvk5FpBQ31OlNimXo3EqKha1Z7PFBni+q9m+8NCWg==", + "dev": true + }, + "@types/node": { + "version": "18.11.5", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.5.tgz", + "integrity": "sha512-3JRwhbjI+cHLAkUorhf8RnqUbFXajvzX4q6fMn5JwkgtuwfYtRQYI3u4V92vI6NJuTsbBQWWh3RZjFsuevyMGQ==", + "dev": true + }, + "@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "dev": true + }, + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", + "dev": true + }, + "@types/resolve": { + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-1.17.1.tgz", + "integrity": "sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, + "@uppy/companion-client": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/@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.npmjs.org/@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.npmjs.org/@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.npmjs.org/@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.npmjs.org/@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": "2.3.4", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-2.3.4.tgz", + "integrity": "sha512-IfFNbtkbIm36O9KB8QodlwwYvTEsJb4Lll4c2IwB3VHc2gie2mSPtSzL0eYay7X2jd/2WX02FjSGTWR6OPr/zg==", + "dev": true, + "requires": {} + }, + "@vue/compiler-core": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.2.41.tgz", + "integrity": "sha512-oA4mH6SA78DT+96/nsi4p9DX97PHcNROxs51lYk7gb9Z4BPKQ3Mh+BLn6CQZBw857Iuhu28BfMSRHAlPvD4vlw==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/shared": "3.2.41", + "estree-walker": "^2.0.2", + "source-map": "^0.6.1" + } + }, + "@vue/compiler-dom": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.2.41.tgz", + "integrity": "sha512-xe5TbbIsonjENxJsYRbDJvthzqxLNk+tb3d/c47zgREDa/PCp6/Y4gC/skM4H6PIuX5DAxm7fFJdbjjUH2QTMw==", + "requires": { + "@vue/compiler-core": "3.2.41", + "@vue/shared": "3.2.41" + } + }, + "@vue/compiler-sfc": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.2.41.tgz", + "integrity": "sha512-+1P2m5kxOeaxVmJNXnBskAn3BenbTmbxBxWOtBq3mQTCokIreuMULFantBUclP0+KnzNCMOvcnKinqQZmiOF8w==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.41", + "@vue/compiler-dom": "3.2.41", + "@vue/compiler-ssr": "3.2.41", + "@vue/reactivity-transform": "3.2.41", + "@vue/shared": "3.2.41", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7", + "postcss": "^8.1.10", + "source-map": "^0.6.1" + } + }, + "@vue/compiler-ssr": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.2.41.tgz", + "integrity": "sha512-Y5wPiNIiaMz/sps8+DmhaKfDm1xgj6GrH99z4gq2LQenfVQcYXmHIOBcs5qPwl7jaW3SUQWjkAPKMfQemEQZwQ==", + "requires": { + "@vue/compiler-dom": "3.2.41", + "@vue/shared": "3.2.41" + } + }, + "@vue/devtools-api": { + "version": "6.4.5", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.4.5.tgz", + "integrity": "sha512-JD5fcdIuFxU4fQyXUu3w2KpAJHzTVdN+p4iOX2lMWSHMOoQdMAcpFLZzm9Z/2nmsoZ1a96QEhZ26e50xLBsgOQ==" + }, + "@vue/reactivity": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.2.41.tgz", + "integrity": "sha512-9JvCnlj8uc5xRiQGZ28MKGjuCoPhhTwcoAdv3o31+cfGgonwdPNuvqAXLhlzu4zwqavFEG5tvaoINQEfxz+l6g==", + "requires": { + "@vue/shared": "3.2.41" + } + }, + "@vue/reactivity-transform": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.2.41.tgz", + "integrity": "sha512-mK5+BNMsL4hHi+IR3Ft/ho6Za+L3FA5j8WvreJ7XzHrqkPq8jtF/SMo7tuc9gHjLDwKZX1nP1JQOKo9IEAn54A==", + "requires": { + "@babel/parser": "^7.16.4", + "@vue/compiler-core": "3.2.41", + "@vue/shared": "3.2.41", + "estree-walker": "^2.0.2", + "magic-string": "^0.25.7" + } + }, + "@vue/runtime-core": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.2.41.tgz", + "integrity": "sha512-0LBBRwqnI0p4FgIkO9q2aJBBTKDSjzhnxrxHYengkAF6dMOjeAIZFDADAlcf2h3GDALWnblbeprYYpItiulSVQ==", + "requires": { + "@vue/reactivity": "3.2.41", + "@vue/shared": "3.2.41" + } + }, + "@vue/runtime-dom": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.2.41.tgz", + "integrity": "sha512-U7zYuR1NVIP8BL6jmOqmapRAHovEFp7CSw4pR2FacqewXNGqZaRfHoNLQsqQvVQ8yuZNZtxSZy0FFyC70YXPpA==", + "requires": { + "@vue/runtime-core": "3.2.41", + "@vue/shared": "3.2.41", + "csstype": "^2.6.8" + } + }, + "@vue/server-renderer": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.2.41.tgz", + "integrity": "sha512-7YHLkfJdTlsZTV0ae5sPwl9Gn/EGr2hrlbcS/8naXm2CDpnKUwC68i1wGlrYAfIgYWL7vUZwk2GkYLQH5CvFig==", + "requires": { + "@vue/compiler-ssr": "3.2.41", + "@vue/shared": "3.2.41" + } + }, + "@vue/shared": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.2.41.tgz", + "integrity": "sha512-W9mfWLHmJhkfAmV+7gDjcHeAWALQtgGT3JErxULl0oz6R6+3ug91I7IErs93eCFhPCZPHBs4QJS7YWEV7A3sxw==" + }, + "@wangeditor/basic-modules": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/@wangeditor/basic-modules/-/basic-modules-1.1.6.tgz", + "integrity": "sha512-wckcFm/kEAHpTn7dTmN0+7POFoygqt9bZdNHJUkdKObXtAerml8RdjrkHRcwJFCkSELbrNK63fvkwS0+FsabfA==", + "requires": { + "is-url": "^1.2.4" + } + }, + "@wangeditor/code-highlight": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@wangeditor/code-highlight/-/code-highlight-1.0.3.tgz", + "integrity": "sha512-iazHwO14XpCuIWJNTQTikqUhGKyqj+dUNWJ9288Oym9M2xMVHvnsOmDU2sgUDWVy+pOLojReMPgXCsvvNlOOhw==", + "requires": { + "prismjs": "^1.23.0" + } + }, + "@wangeditor/core": { + "version": "1.1.18", + "resolved": "https://registry.npmjs.org/@wangeditor/core/-/core-1.1.18.tgz", + "integrity": "sha512-GZsW/8tm2Hc2hZKX8BZP9PO7vTZll9YXsOt+jKck3D2bj9nk4T0FZymuE5fq9ZHdo+MwLiXBHXS/D1SIGlVnGQ==", + "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.22", + "resolved": "https://registry.npmjs.org/@wangeditor/editor/-/editor-5.1.22.tgz", + "integrity": "sha512-Bg+NakUvg6+UvkRT/xD9a0zMhPy/4kwhiv8Hp93csa4dg2u/dlZORRTjJCWaWmVK82PrtBG3VAcuw3rPdQCfag==", + "requires": { + "@uppy/core": "^2.1.1", + "@uppy/xhr-upload": "^2.0.3", + "@wangeditor/basic-modules": "^1.1.6", + "@wangeditor/code-highlight": "^1.0.3", + "@wangeditor/core": "^1.1.18", + "@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.npmjs.org/@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.npmjs.org/@wangeditor/list-module/-/list-module-1.0.5.tgz", + "integrity": "sha512-uDuYTP6DVhcYf7mF1pTlmNn5jOb4QtcVhYwSSAkyg09zqxI1qBqsfUnveeDeDqIuptSJhkh81cyxi+MF8sEPOQ==", + "requires": {} + }, + "@wangeditor/table-module": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/@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.npmjs.org/@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.npmjs.org/@wangeditor/video-module/-/video-module-1.1.4.tgz", + "integrity": "sha512-ZdodDPqKQrgx3IwWu4ZiQmXI8EXZ3hm2/fM6E3t5dB8tCaIGWQZhmqd6P5knfkRAd3z2+YRSRbxOGfoRSp/rLg==", + "requires": {} + }, + "@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", + "dev": true, + "peer": true, + "requires": { + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" + } + }, + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", + "dev": true, + "peer": true + }, + "@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "dev": true, + "peer": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "dev": true, + "peer": true + }, + "@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", + "dev": true, + "peer": true, + "requires": { + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "dev": true, + "peer": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", + "dev": true, + "peer": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" + } + }, + "@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", + "dev": true, + "peer": true, + "requires": { + "@xtuc/ieee754": "^1.2.0" + } + }, + "@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", + "dev": true, + "peer": true, + "requires": { + "@xtuc/long": "4.2.2" + } + }, + "@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", + "dev": true, + "peer": true + }, + "@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", + "dev": true, + "peer": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" + } + }, + "@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", + "dev": true, + "peer": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", + "dev": true, + "peer": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" + } + }, + "@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "dev": true, + "peer": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } + }, + "@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", + "dev": true, + "peer": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" + } + }, + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", + "dev": true, + "peer": true + }, + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", + "dev": true, + "peer": true + }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==" + }, + "acorn": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "dev": true + }, + "acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", + "dev": true, + "peer": true, + "requires": {} + }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "requires": {} + }, + "ajv": { + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" + } + }, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true, + "peer": true, + "requires": {} + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "ant-design-vue": { + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/ant-design-vue/-/ant-design-vue-3.2.5.tgz", + "integrity": "sha512-O6nxTHkRgqI3zIZ702hfBM4pamsYJs5ey63DY3BAq5zy1thLxcjjx4K4V2Zf9QtVQgsD8bgf6qb605P14GIqAw==", + "requires": { + "@ant-design/colors": "^6.0.0", + "@ant-design/icons-vue": "^6.1.0", + "@babel/runtime": "^7.10.5", + "@ctrl/tinycolor": "^3.4.0", + "@simonwep/pickr": "~1.8.0", + "array-tree-filter": "^2.1.0", + "async-validator": "^4.0.0", + "dayjs": "^1.10.5", + "dom-align": "^1.12.1", + "dom-scroll-into-view": "^2.0.0", + "lodash": "^4.17.21", + "lodash-es": "^4.17.15", + "resize-observer-polyfill": "^1.5.1", + "scroll-into-view-if-needed": "^2.2.25", + "shallow-equal": "^1.0.0", + "vue-types": "^3.0.0", + "warning": "^4.0.0" + } + }, + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "array-tree-filter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-tree-filter/-/array-tree-filter-2.1.0.tgz", + "integrity": "sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==" + }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "dev": true + }, + "astral-regex": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", + "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", + "dev": true + }, + "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==" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "requires": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", + "dev": true + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "dev": true + }, + "boolbase": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dev": true, + "requires": { + "fill-range": "^7.0.1" + } + }, + "browserslist": { + "version": "4.21.4", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", + "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "dev": true, + "peer": true, + "requires": { + "caniuse-lite": "^1.0.30001400", + "electron-to-chromium": "^1.4.251", + "node-releases": "^2.0.6", + "update-browserslist-db": "^1.0.9" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true, + "peer": true + }, + "builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true + }, + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "dev": true + }, + "camelcase-keys": { + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", + "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", + "dev": true, + "requires": { + "camelcase": "^5.3.1", + "map-obj": "^4.0.0", + "quick-lru": "^4.0.1" + } + }, + "caniuse-lite": { + "version": "1.0.30001425", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001425.tgz", + "integrity": "sha512-/pzFv0OmNG6W0ym80P3NtapU0QEiDS3VuYAZMGoLLqiC7f6FJFe1MjpQDREGApeenD9wloeytmVDj+JLXPC6qw==", + "dev": true, + "peer": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "dev": true, + "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" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", + "dev": true, + "peer": true + }, + "clipboard": { + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/clipboard/-/clipboard-2.0.11.tgz", + "integrity": "sha512-C+0bbOqkezLIsmWSvlsXS0Q0bmkugu7jcfMIACB+RDEntIzQIkdr148we28AfSloQLRdZlYL/QYyrq05j/3Faw==", + "requires": { + "good-listener": "^1.2.2", + "select": "^1.1.2", + "tiny-emitter": "^2.0.0" + } + }, + "clone-regexp": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-2.2.0.tgz", + "integrity": "sha512-beMpP7BOtTipFuW8hrJvREQ2DrRu3BE7by0ZpibtfBA+qfHYvMGTc2Yb1JMYPKg/JUw0CHYvpg796aNTSW9z7Q==", + "dev": true, + "requires": { + "is-regexp": "^2.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "colord": { + "version": "2.9.3", + "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", + "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", + "dev": true + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "9.4.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz", + "integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==", + "dev": true, + "peer": true + }, + "compute-scroll-into-view": { + "version": "1.0.17", + "resolved": "https://registry.npmjs.org/compute-scroll-into-view/-/compute-scroll-into-view-1.0.17.tgz", + "integrity": "sha512-j4dx+Fb0URmzbwwMUrhqWM2BEWHdFGx+qZ9qqASHRPqvTYdqvWnHg0H1hIbcyLnvgnoNAVMlwkepyqM3DaIFUg==" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", + "dev": true + }, + "connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "dev": true, + "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.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "copy-anything": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", + "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", + "dev": true, + "requires": { + "is-what": "^3.14.1" + } + }, + "core-js": { + "version": "3.26.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.26.0.tgz", + "integrity": "sha512-+DkDrhoR4Y0PxDz6rurahuB+I45OsEUv8E1maPTB6OuHRohMMcznBq9TMpdpDMm/hUPob/mJJS3PqgbHpMTQgw==" + }, + "cosmiconfig": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", + "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", + "dev": true, + "requires": { + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" + } + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "crypto-js": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.1.1.tgz", + "integrity": "sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==" + }, + "css-functions-list": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/css-functions-list/-/css-functions-list-3.1.0.tgz", + "integrity": "sha512-/9lCvYZaUbBGvYUgYGFJ4dcYiyqdhSjG7IPVluoV8A1ILjkF7ilmhp1OGUz8n+nmBcu0RNrQAzgD8B6FJbrt2w==", + "dev": true + }, + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", + "dev": true + }, + "csstype": { + "version": "2.6.21", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.21.tgz", + "integrity": "sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==" + }, + "d": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/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.6", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.6.tgz", + "integrity": "sha512-zZbY5giJAinCG+7AGaw0wIhNZ6J8AhWuSXKvuc1KAyMiRsvGQWqh4L+MomvhdAYjN+lqvVCMq1I41e3YHvXkyQ==" + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==", + "dev": true + }, + "decamelize-keys": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.0.tgz", + "integrity": "sha512-ocLWuYzRPoS9bfiSdDd3cxvrzovVMZnRDVEzAs+hWIVXGDbHxWMECij2OBuyB/An0FFW/nLuq6Kv1i/YC5Qfzg==", + "dev": true, + "requires": { + "decamelize": "^1.1.0", + "map-obj": "^1.0.0" + }, + "dependencies": { + "map-obj": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", + "integrity": "sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==", + "dev": true + } + } + }, + "decimal.js": { + "version": "10.4.2", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.2.tgz", + "integrity": "sha512-ic1yEvwT6GuvaYwBLLY6/aFFgjZdySKTE8en/fkU3QICTmRtgtSlFn0u0BXN06InZwtfCelR7j8LRiDI/02iGA==" + }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, + "deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "dev": true + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + }, + "delegate": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/delegate/-/delegate-3.2.0.tgz", + "integrity": "sha512-IofjkYBZaZivn0V8nnsMJGBr4jVLxHDheKSW88PyxS5QC4Vo9ZbZVvhzlSxY87fVq3STR6r+4cGepyHkcWOQSw==" + }, + "diff": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", + "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==" + }, + "diff2html": { + "version": "3.4.21", + "resolved": "https://registry.npmjs.org/diff2html/-/diff2html-3.4.21.tgz", + "integrity": "sha512-I5KoezAf2SwPLHzMz4zRKuYW7KIN4LL4hncwR+rvrFXiYyXPgZRqK+123NodUC2N7HUTgF2lLVDFDyovUQNUUg==", + "requires": { + "diff": "5.1.0", + "highlight.js": "11.6.0", + "hogan.js": "3.0.2" + } + }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "dom-align": { + "version": "1.12.3", + "resolved": "https://registry.npmjs.org/dom-align/-/dom-align-1.12.3.tgz", + "integrity": "sha512-Gj9hZN3a07cbR6zviMUBOMPdWxYhbMI+x+WS0NAIu2zFZmbK8ys9R79g+iG9qLnlCwpFoaB+fKy8Pdv470GsPA==" + }, + "dom-scroll-into-view": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/dom-scroll-into-view/-/dom-scroll-into-view-2.0.1.tgz", + "integrity": "sha512-bvVTQe1lfaUr1oFzZX80ce9KLDlZ3iU+XGNE/bz9HnGdklTieqsbmsLHe+rT2XWqopvL0PckkYqN7ksmm5pe3w==" + }, + "dom7": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/dom7/-/dom7-3.0.0.tgz", + "integrity": "sha512-oNlcUdHsC4zb7Msx7JN3K0Nro1dzJ48knvBOnDPKJ2GV9wl1i5vydJZUSyOfrkKFDZEud/jBsTk92S/VGSAe/g==", + "requires": { + "ssr-window": "^3.0.0-alpha.1" + } + }, + "echarts": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/echarts/-/echarts-5.4.0.tgz", + "integrity": "sha512-uPsO9VRUIKAdFOoH3B0aNg7NRVdN7aM39/OjovjO9MwmWsAkfGyeXJhK+dbRi51iDrQWliXV60/XwLA7kg3z0w==", + "requires": { + "tslib": "2.3.0", + "zrender": "5.4.0" + } + }, + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", + "dev": true + }, + "electron-to-chromium": { + "version": "1.4.284", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", + "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", + "dev": true, + "peer": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true + }, + "enhanced-resolve": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", + "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", + "dev": true, + "peer": true, + "requires": { + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" + } + }, + "errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "dev": true, + "optional": true, + "requires": { + "prr": "~1.0.1" + } + }, + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dev": true, + "requires": { + "is-arrayish": "^0.2.1" + } + }, + "es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", + "dev": true, + "peer": true + }, + "es5-ext": { + "version": "0.10.62", + "resolved": "https://registry.npmjs.org/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.npmjs.org/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.npmjs.org/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.npmjs.org/esbuild/-/esbuild-0.14.54.tgz", + "integrity": "sha512-Cy9llcy8DvET5uznocPyqL3BFRrFXSVqbgpMJ9Wz8oVjZlh/zUSNbPRbov0VX7VxN2JH1Oa0uNxZ7eLRb62pJA==", + "dev": true, + "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.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.54.tgz", + "integrity": "sha512-Tz2++Aqqz0rJ7kYBfz+iqyE3QMycD4vk7LBRyWaAVFgFtQ/O8EJOnVmTOiDWYZ/uYzB4kvP+bqejYdVKzE5lAQ==", + "dev": true, + "optional": true + }, + "esbuild-android-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.54.tgz", + "integrity": "sha512-F9E+/QDi9sSkLaClO8SOV6etqPd+5DgJje1F9lOWoNncDdOBL2YF59IhsWATSt0TLZbYCf3pNlTHvVV5VfHdvg==", + "dev": true, + "optional": true + }, + "esbuild-darwin-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.54.tgz", + "integrity": "sha512-jtdKWV3nBviOd5v4hOpkVmpxsBy90CGzebpbO9beiqUYVMBtSc0AL9zGftFuBon7PNDcdvNCEuQqw2x0wP9yug==", + "dev": true, + "optional": true + }, + "esbuild-darwin-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.54.tgz", + "integrity": "sha512-OPafJHD2oUPyvJMrsCvDGkRrVCar5aVyHfWGQzY1dWnzErjrDuSETxwA2HSsyg2jORLY8yBfzc1MIpUkXlctmw==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.54.tgz", + "integrity": "sha512-OKwd4gmwHqOTp4mOGZKe/XUlbDJ4Q9TjX0hMPIDBUWWu/kwhBAudJdBoxnjNf9ocIB6GN6CPowYpR/hRCbSYAg==", + "dev": true, + "optional": true + }, + "esbuild-freebsd-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.54.tgz", + "integrity": "sha512-sFwueGr7OvIFiQT6WeG0jRLjkjdqWWSrfbVwZp8iMP+8UHEHRBvlaxL6IuKNDwAozNUmbb8nIMXa7oAOARGs1Q==", + "dev": true, + "optional": true + }, + "esbuild-linux-32": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.54.tgz", + "integrity": "sha512-1ZuY+JDI//WmklKlBgJnglpUL1owm2OX+8E1syCD6UAxcMM/XoWd76OHSjl/0MR0LisSAXDqgjT3uJqT67O3qw==", + "dev": true, + "optional": true + }, + "esbuild-linux-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.54.tgz", + "integrity": "sha512-EgjAgH5HwTbtNsTqQOXWApBaPVdDn7XcK+/PtJwZLT1UmpLoznPd8c5CxqsH2dQK3j05YsB3L17T8vE7cp4cCg==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.54.tgz", + "integrity": "sha512-qqz/SjemQhVMTnvcLGoLOdFpCYbz4v4fUo+TfsWG+1aOu70/80RV6bgNpR2JCrppV2moUQkww+6bWxXRL9YMGw==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.54.tgz", + "integrity": "sha512-WL71L+0Rwv+Gv/HTmxTEmpv0UgmxYa5ftZILVi2QmZBgX3q7+tDeOQNqGtdXSdsL8TQi1vIaVFHUPDe0O0kdig==", + "dev": true, + "optional": true + }, + "esbuild-linux-mips64le": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.54.tgz", + "integrity": "sha512-qTHGQB8D1etd0u1+sB6p0ikLKRVuCWhYQhAHRPkO+OF3I/iSlTKNNS0Lh2Oc0g0UFGguaFZZiPJdJey3AGpAlw==", + "dev": true, + "optional": true + }, + "esbuild-linux-ppc64le": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.54.tgz", + "integrity": "sha512-j3OMlzHiqwZBDPRCDFKcx595XVfOfOnv68Ax3U4UKZ3MTYQB5Yz3X1mn5GnodEVYzhtZgxEBidLWeIs8FDSfrQ==", + "dev": true, + "optional": true + }, + "esbuild-linux-riscv64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.54.tgz", + "integrity": "sha512-y7Vt7Wl9dkOGZjxQZnDAqqn+XOqFD7IMWiewY5SPlNlzMX39ocPQlOaoxvT4FllA5viyV26/QzHtvTjVNOxHZg==", + "dev": true, + "optional": true + }, + "esbuild-linux-s390x": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.54.tgz", + "integrity": "sha512-zaHpW9dziAsi7lRcyV4r8dhfG1qBidQWUXweUjnw+lliChJqQr+6XD71K41oEIC3Mx1KStovEmlzm+MkGZHnHA==", + "dev": true, + "optional": true + }, + "esbuild-netbsd-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.54.tgz", + "integrity": "sha512-PR01lmIMnfJTgeU9VJTDY9ZerDWVFIUzAtJuDHwwceppW7cQWjBBqP48NdeRtoP04/AtO9a7w3viI+PIDr6d+w==", + "dev": true, + "optional": true + }, + "esbuild-openbsd-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.54.tgz", + "integrity": "sha512-Qyk7ikT2o7Wu76UsvvDS5q0amJvmRzDyVlL0qf5VLsLchjCa1+IAvd8kTBgUxD7VBUUVgItLkk609ZHUc1oCaw==", + "dev": true, + "optional": true + }, + "esbuild-sunos-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.54.tgz", + "integrity": "sha512-28GZ24KmMSeKi5ueWzMcco6EBHStL3B6ubM7M51RmPwXQGLe0teBGJocmWhgwccA1GeFXqxzILIxXpHbl9Q/Kw==", + "dev": true, + "optional": true + }, + "esbuild-windows-32": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.54.tgz", + "integrity": "sha512-T+rdZW19ql9MjS7pixmZYVObd9G7kcaZo+sETqNH4RCkuuYSuv9AGHUVnPoP9hhuE1WM1ZimHz1CIBHBboLU7w==", + "dev": true, + "optional": true + }, + "esbuild-windows-64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.54.tgz", + "integrity": "sha512-AoHTRBUuYwXtZhjXZbA1pGfTo8cJo3vZIcWGLiUcTNgHpJJMC1rVA44ZereBHMJtotyN71S8Qw0npiCIkW96cQ==", + "dev": true, + "optional": true + }, + "esbuild-windows-arm64": { + "version": "0.14.54", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.54.tgz", + "integrity": "sha512-M0kuUvXhot1zOISQGXwWn6YtS+Y/1RT9WrVIOywZnJHo3jCDyewAc79aKNQWFCQm+xNHVTq9h8dZKvygoXQQRg==", + "dev": true, + "optional": true + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "dev": true, + "peer": true + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", + "dev": true + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "eslint": { + "version": "8.26.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.26.0.tgz", + "integrity": "sha512-kzJkpaw1Bfwheq4VXUezFriD1GxszX6dUekM7Z3aC2o4hju+tsR/XyTC3RcoSD7jmy9VkPU3+N6YjVU2e96Oyg==", + "dev": true, + "requires": { + "@eslint/eslintrc": "^1.3.3", + "@humanwhocodes/config-array": "^0.11.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@nodelib/fs.walk": "^1.2.8", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.4.0", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "globals": "^13.15.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "is-path-inside": "^3.0.3", + "js-sdsl": "^4.1.4", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + } + }, + "eslint-config-prettier": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", + "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", + "dev": true, + "requires": {} + }, + "eslint-plugin-prettier": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.0.0.tgz", + "integrity": "sha512-98MqmCJ7vJodoQK359bqQWaxOE0CS8paAz/GgjaZLyex4TTk3g9HugoO89EqWCrFiOqn9EVvcoo7gZzONCWVwQ==", + "dev": true, + "requires": { + "prettier-linter-helpers": "^1.0.0" + } + }, + "eslint-plugin-vue": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.1.1.tgz", + "integrity": "sha512-W9n5PB1X2jzC7CK6riG0oAcxjmKrjTF6+keL1rni8n57DZeilx/Fulz+IRJK3lYseLNAygN0I62L7DvioW40Tw==", + "dev": true, + "requires": { + "eslint-utils": "^3.0.0", + "natural-compare": "^1.4.0", + "nth-check": "^2.0.1", + "postcss-selector-parser": "^6.0.9", + "semver": "^7.3.5", + "vue-eslint-parser": "^9.0.1", + "xml-name-validator": "^4.0.0" + } + }, + "eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + } + } + }, + "eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true + }, + "espree": { + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz", + "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==", + "dev": true, + "requires": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + } + }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + } + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "dev": true, + "requires": { + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" + }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, + "event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha512-D9rRn9y7kLPnJ+hMq7S/nhvoKwwvVJahBi2BPmx3bvbsEdK3W9ii8cBSGjP+72/LnM4n6fo3+dkCX5FeTQruXA==", + "requires": { + "d": "1", + "es5-ext": "~0.10.14" + } + }, + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true, + "peer": true + }, + "execall": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/execall/-/execall-2.0.0.tgz", + "integrity": "sha512-0FU2hZ5Hh6iQnarpRtQurM/aAvp3RIbfvgLHrcqJYzhXyV2KFruhuChf9NC6waAhiUR7FFtlugkI4p7f2Fqlow==", + "dev": true, + "requires": { + "clone-regexp": "^2.1.0" + } + }, + "ext": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/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.npmjs.org/type/-/type-2.7.2.tgz", + "integrity": "sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw==" + } + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + }, + "fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==", + "dev": true + }, + "fast-glob": { + "version": "3.2.12", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", + "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "dev": true, + "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" + }, + "dependencies": { + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "requires": { + "is-glob": "^4.0.1" + } + } + } + }, + "fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, + "fastest-levenshtein": { + "version": "1.0.16", + "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz", + "integrity": "sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==", + "dev": true + }, + "fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, + "file-entry-cache": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", + "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", + "dev": true, + "requires": { + "flat-cache": "^3.0.4" + } + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "dev": true, + "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.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + } + } + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "flat-cache": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", + "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", + "dev": true, + "requires": { + "flatted": "^3.1.0", + "rimraf": "^3.0.2" + } + }, + "flatted": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz", + "integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==", + "dev": true + }, + "follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/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" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", + "dev": true + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "get-stdin": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-8.0.0.tgz", + "integrity": "sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==", + "dev": true + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + }, + "glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true, + "peer": true + }, + "global-modules": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-2.0.0.tgz", + "integrity": "sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A==", + "dev": true, + "requires": { + "global-prefix": "^3.0.0" + } + }, + "global-prefix": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/global-prefix/-/global-prefix-3.0.0.tgz", + "integrity": "sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg==", + "dev": true, + "requires": { + "ini": "^1.3.5", + "kind-of": "^6.0.2", + "which": "^1.3.1" + }, + "dependencies": { + "which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "globals": { + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", + "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + } + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, + "globjoin": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/globjoin/-/globjoin-0.1.4.tgz", + "integrity": "sha512-xYfnw62CKG8nLkZBfWbhWwDw02CHty86jfPcc2cr3ZfeuK9ysoVPPEUxf21bAD/rWAgk52SuBrLJlefNy8mvFg==", + "dev": true + }, + "good-listener": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/good-listener/-/good-listener-1.2.2.tgz", + "integrity": "sha512-goW1b+d9q/HIwbVYZzZ6SsTr4IgE+WA44A0GmPIQstuOrgsFcT7VEJ48nmr9GaRtNu0XTKacFLGnBPAM6Afouw==", + "requires": { + "delegate": "^3.1.2" + } + }, + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, + "hard-rejection": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz", + "integrity": "sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA==", + "dev": true + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "highlight.js": { + "version": "11.6.0", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.6.0.tgz", + "integrity": "sha512-ig1eqDzJaB0pqEvlPVIpSSyMaO92bH1N2rJpLMN/nX396wTpDA4Eq0uK+7I/2XG17pFaaKE0kjV/XPeGt7Evjw==" + }, + "hogan.js": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/hogan.js/-/hogan.js-3.0.2.tgz", + "integrity": "sha512-RqGs4wavGYJWE07t35JQccByczmNUXQT0E12ZYV1VKYu5UiAU9lsos/yBAcf840+zrUQQxgVduCR5/B8nNtibg==", + "requires": { + "mkdirp": "0.3.0", + "nopt": "1.0.10" + } + }, + "hosted-git-info": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz", + "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "html-tags": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/html-tags/-/html-tags-3.2.0.tgz", + "integrity": "sha512-vy7ClnArOZwCnqZgvv+ddgHgJiAFXe3Ge9ML5/mBctVJoUoYPCdxVucOywjDARn6CVoh3dRSFdPHy2sX80L0Wg==", + "dev": true + }, + "html-void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-2.0.1.tgz", + "integrity": "sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==" + }, + "i18next": { + "version": "20.6.1", + "resolved": "https://registry.npmjs.org/i18next/-/i18next-20.6.1.tgz", + "integrity": "sha512-yCMYTMEJ9ihCwEQQ3phLo7I/Pwycf8uAx+sRHwwk5U9Aui/IZYgQRyMqXafQOw5QQ7DM1Z+WyEXWIqSuJHhG2A==", + "requires": { + "@babel/runtime": "^7.12.0" + } + }, + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + }, + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true + }, + "image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", + "dev": true, + "optional": true + }, + "immer": { + "version": "9.0.16", + "resolved": "https://registry.npmjs.org/immer/-/immer-9.0.16.tgz", + "integrity": "sha512-qenGE7CstVm1NrHQbMh8YaSzTZTFNP3zPqr3YU0S0UY441j4bJTg4A2Hh5KAhwgaiU6ZZ1Ar6y/2f4TblnMReQ==" + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", + "dev": true, + "requires": { + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" + } + }, + "import-lazy": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-4.0.0.tgz", + "integrity": "sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw==", + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", + "dev": true + }, + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dev": true, + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "ini": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==", + "dev": true + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", + "dev": true + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dev": true, + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-builtin-module": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.0.tgz", + "integrity": "sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==", + "dev": true, + "requires": { + "builtin-modules": "^3.3.0" + } + }, + "is-core-module": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", + "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-hotkey": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/is-hotkey/-/is-hotkey-0.2.0.tgz", + "integrity": "sha512-UknnZK4RakDmTgz4PI1wIph5yxSs/mvChWs9ifnlXsKuXgWmOkY/hAE0H/k2MIqH0RlRye0i1oC07MCRSD28Mw==" + }, + "is-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", + "integrity": "sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-path-inside": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz", + "integrity": "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==", + "dev": true + }, + "is-plain-obj": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", + "integrity": "sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg==", + "dev": true + }, + "is-plain-object": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==" + }, + "is-regexp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-2.1.0.tgz", + "integrity": "sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA==", + "dev": true + }, + "is-url": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", + "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==" + }, + "is-what": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", + "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", + "dev": true + }, + "jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", + "dev": true, + "peer": true, + "requires": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" + }, + "dependencies": { + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dev": true, + "peer": true, + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "js-cookie": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.1.tgz", + "integrity": "sha512-HvdH2LzI/EAZcUwA8+0nKNtWHqS+ZmijLA30RwZA0bo7ToCckjK5MkGhjED9KoRcXO6BaGI3I9UIzSA1FKFPOQ==" + }, + "js-sdsl": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/js-sdsl/-/js-sdsl-4.1.5.tgz", + "integrity": "sha512-08bOAKweV2NUC1wqTtf3qZlnpOX/R2DU9ikpjOHs0H+ibQv3zpncVQg6um4uYtRtrwIX8M4Nh3ytK4HGlYAq7Q==", + "dev": true + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "dev": true + }, + "klona": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", + "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==", + "dev": true + }, + "known-css-properties": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.25.0.tgz", + "integrity": "sha512-b0/9J1O9Jcyik1GC6KC42hJ41jKwdO/Mq8Mdo5sYN+IuRTXs2YFHZC3kZSx6ueusqa95x3wLYe/ytKjbAfGixA==", + "dev": true + }, + "less": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/less/-/less-4.1.3.tgz", + "integrity": "sha512-w16Xk/Ta9Hhyei0Gpz9m7VS8F28nieJaL/VyShID7cYvP6IL5oHeL6p4TXSDJqZE/lNv0oJ2pGVjJsRkfwm5FA==", + "dev": true, + "requires": { + "copy-anything": "^2.0.1", + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "needle": "^3.1.0", + "parse-node-version": "^1.0.1", + "source-map": "~0.6.0", + "tslib": "^2.3.0" + } + }, + "less-loader": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-10.0.1.tgz", + "integrity": "sha512-Crln//HpW9M5CbtdfWm3IO66Cvx1WhZQvNybXgfB2dD/6Sav9ppw+IWqs/FQKPBFO4B6X0X28Z0WNznshgwUzA==", + "dev": true, + "requires": { + "klona": "^2.0.4" + } + }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", + "dev": true + }, + "loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", + "dev": true, + "peer": true + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "requires": { + "p-locate": "^5.0.0" + } + }, + "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.camelcase": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", + "integrity": "sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==" + }, + "lodash.clonedeep": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", + "integrity": "sha512-H5ZhCF25riFd9uB5UCkVKo61m3S/xZk1x4wA6yp/L3RFP6Z/eHH1ymQcGLo7J3GMPfm0V/7m1tryHuGVxpqEBQ==" + }, + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + }, + "lodash.foreach": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.foreach/-/lodash.foreach-4.5.0.tgz", + "integrity": "sha512-aEXTF4d+m05rVOAUG3z4vZZ4xVexLKZGF0lIxuHZ1Hplpk/3B6Z1+/ICICYRLm7c41Z2xiejbkCkJoTlypoXhQ==" + }, + "lodash.isequal": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/lodash.isequal/-/lodash.isequal-4.5.0.tgz", + "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==" + }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, + "lodash.throttle": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", + "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==" + }, + "lodash.toarray": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz", + "integrity": "sha512-QyffEA3i5dma5q2490+SgCvDN0pXLmRGSyAANuVi0HQ01Pkfr9fuoKQW8wm1wGBnJITs/mS7wQvS6VshUEBFCw==" + }, + "lodash.truncate": { + "version": "4.4.2", + "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz", + "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==", + "dev": true + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "lunar-javascript": { + "version": "1.2.35", + "resolved": "https://registry.npmjs.org/lunar-javascript/-/lunar-javascript-1.2.35.tgz", + "integrity": "sha512-VD/roaK6fvv1PUv9G8zV0TjjW/TTngiLGltl4B4tGRi5cE7vTIEB7X9pfA8RTg8sgttiUs5gWfY/v8N0tYg0vA==" + }, + "magic-string": { + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", + "requires": { + "sourcemap-codec": "^1.4.8" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "optional": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" + }, + "dependencies": { + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true, + "optional": true + } + } + }, + "map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "dev": true + }, + "mathml-tag-names": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/mathml-tag-names/-/mathml-tag-names-2.1.3.tgz", + "integrity": "sha512-APMBEanjybaPzUrfqU0IMU5I0AswKMH7k8OTLs0vvV4KZpExkTkY87nR/zpbuTPj+gARop7aGUbl11pnDfW6xg==", + "dev": true + }, + "meow": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/meow/-/meow-9.0.0.tgz", + "integrity": "sha512-+obSblOQmRhcyBt62furQqRAQpNyWXo8BuQ5bN7dG8wmwQ+vwHKp/rCFD4CrTP8CsDQD1sjoZ94K417XEUk8IQ==", + "dev": true, + "requires": { + "@types/minimist": "^1.2.0", + "camelcase-keys": "^6.2.2", + "decamelize": "^1.2.0", + "decamelize-keys": "^1.1.0", + "hard-rejection": "^2.1.0", + "minimist-options": "4.1.0", + "normalize-package-data": "^3.0.0", + "read-pkg-up": "^7.0.1", + "redent": "^3.0.0", + "trim-newlines": "^3.0.0", + "type-fest": "^0.18.0", + "yargs-parser": "^20.2.3" + }, + "dependencies": { + "type-fest": { + "version": "0.18.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz", + "integrity": "sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw==", + "dev": true + } + } + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true, + "peer": true + }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "dev": true, + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true, + "optional": true + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/mime-match/-/mime-match-1.0.2.tgz", + "integrity": "sha512-VXp/ugGDVh3eCLOBCiHZMYWQaTNUHv2IJrut+yXA6+JbLPXHglHwfS/5A5L0ll+jkCY7fIzRJcH6OIunF+c6Cg==", + "requires": { + "wildcard": "^1.1.0" + } + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "min-indent": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz", + "integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==", + "dev": true + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist-options": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", + "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", + "dev": true, + "requires": { + "arrify": "^1.0.1", + "is-plain-obj": "^1.1.0", + "kind-of": "^6.0.3" + } + }, + "mitt": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.0.tgz", + "integrity": "sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ==" + }, + "mkdirp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz", + "integrity": "sha512-OHsdUcVAQ6pOtg5JYWpCBo9W/GySVuwvP9hueRMW7UqshC0tbfzLv8wjySTPm3tfUZ/21CE9E1pJagOA91Pxew==" + }, + "mockjs": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mockjs/-/mockjs-1.1.0.tgz", + "integrity": "sha512-eQsKcWzIaZzEZ07NuEyO4Nw65g0hdWAyurVol1IPl1gahRwY+svqzfgfey8U8dahLwG44d6/RwEzuK52rSa/JQ==", + "dev": true, + "peer": true, + "requires": { + "commander": "*" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "namespace-emitter": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/namespace-emitter/-/namespace-emitter-2.0.1.tgz", + "integrity": "sha512-N/sMKHniSDJBjfrkbS/tpkPj4RAbvW3mr8UAzvlMHyun93XEm83IAvhWtJVHo+RHn/oO8Job5YN4b+wRjSVp5g==" + }, + "nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" + }, + "nanopop": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/nanopop/-/nanopop-2.2.0.tgz", + "integrity": "sha512-E9JaHcxh3ere8/BEZHAcnuD10RluTSPyTToBvoFWS9/7DcCx6gyKjbn7M7Bx7E1veCxCuY1iO6h4+gdAf1j73Q==" + }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, + "needle": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/needle/-/needle-3.1.0.tgz", + "integrity": "sha512-gCE9weDhjVGCRqS8dwDR/D3GTAeyXLXuqp7I8EzH6DllZGXSUyxuqqLh+YX9rMAWaaTFyVAg6rHGL25dqvczKw==", + "dev": true, + "optional": true, + "requires": { + "debug": "^3.2.6", + "iconv-lite": "^0.6.3", + "sax": "^1.2.4" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true, + "peer": true + }, + "next-tick": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" + }, + "node-releases": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", + "dev": true, + "peer": true + }, + "nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha512-NWmpvLSqUrgrAC9HCuxEvb+PSloHpqVu+FqcO4eeF2h5qYRhA7ev6KvelyQAKtegUbC6RypJnlEOhd8vloNKYg==", + "requires": { + "abbrev": "1" + } + }, + "normalize-package-data": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz", + "integrity": "sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA==", + "dev": true, + "requires": { + "hosted-git-info": "^4.0.1", + "is-core-module": "^2.5.0", + "semver": "^7.3.4", + "validate-npm-package-license": "^3.0.1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "dev": true + }, + "nprogress": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/nprogress/-/nprogress-0.2.0.tgz", + "integrity": "sha512-I19aIingLgR1fmhftnbWWO3dXc0hSxqHQHQb3H8m+K3TnEn/iSeTZZOyvKXWqQESMwuUVnatlCnZdLBZZt2VSA==" + }, + "nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", + "dev": true, + "requires": { + "boolbase": "^1.0.0" + } + }, + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww==", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dev": true, + "requires": { + "wrappy": "1" + } + }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "requires": { + "p-limit": "^3.0.2" + } + }, + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "dev": true + }, + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", + "dev": true, + "requires": { + "callsites": "^3.0.0" + } + }, + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + } + }, + "parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true + }, + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", + "dev": true + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "path-to-regexp": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz", + "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==", + "dev": true + }, + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", + "dev": true + }, + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true + }, + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "dev": true, + "optional": true + }, + "pinia": { + "version": "2.0.23", + "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.0.23.tgz", + "integrity": "sha512-N15hFf4o5STrxpNrib1IEb1GOArvPYf1zPvQVRGOO1G1d74Ak0J0lVyalX/SmrzdT4Q0nlEFjbURsmBmIGUR5Q==", + "requires": { + "@vue/devtools-api": "^6.4.4", + "vue-demi": "*" + }, + "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": {} + } + } + }, + "postcss": { + "version": "8.4.18", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.18.tgz", + "integrity": "sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==", + "requires": { + "nanoid": "^3.3.4", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + } + }, + "postcss-media-query-parser": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", + "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==", + "dev": true + }, + "postcss-resolve-nested-selector": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/postcss-resolve-nested-selector/-/postcss-resolve-nested-selector-0.1.1.tgz", + "integrity": "sha512-HvExULSwLqHLgUy1rl3ANIqCsvMS0WHss2UOsXhXnQaZ9VCc2oBvIpXrl00IUFT5ZDITME0o6oiXeiHr2SAIfw==", + "dev": true + }, + "postcss-safe-parser": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz", + "integrity": "sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==", + "dev": true, + "requires": {} + }, + "postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "dev": true, + "requires": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + } + }, + "postcss-sorting": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/postcss-sorting/-/postcss-sorting-7.0.1.tgz", + "integrity": "sha512-iLBFYz6VRYyLJEJsBJ8M3TCqNcckVzz4wFounSc5Oez35ogE/X+aoC5fFu103Ot7NyvjU3/xqIXn93Gp3kJk4g==", + "dev": true, + "requires": {} + }, + "postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", + "dev": true + }, + "preact": { + "version": "10.11.2", + "resolved": "https://registry.npmjs.org/preact/-/preact-10.11.2.tgz", + "integrity": "sha512-skAwGDFmgxhq1DCBHke/9e12ewkhc7WYwjuhHB8HHS8zkdtITXLRmUMTeol2ldxvLwYtwbFeifZ9uDDWuyL4Iw==" + }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, + "prettier": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.2.tgz", + "integrity": "sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==", + "dev": true + }, + "prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dev": true, + "requires": { + "fast-diff": "^1.1.2" + } + }, + "prismjs": { + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", + "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==" + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", + "dev": true, + "optional": true + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, + "quick-lru": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", + "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", + "dev": true + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "peer": true, + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true + }, + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true + } + } + }, + "read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dev": true, + "requires": { + "p-try": "^2.0.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true + } + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dev": true, + "requires": { + "picomatch": "^2.2.1" + } + }, + "redent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", + "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", + "dev": true, + "requires": { + "indent-string": "^4.0.0", + "strip-indent": "^3.0.0" + } + }, + "regenerator-runtime": { + "version": "0.13.10", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz", + "integrity": "sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw==" + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, + "resize-observer-polyfill": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/resize-observer-polyfill/-/resize-observer-polyfill-1.5.1.tgz", + "integrity": "sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==" + }, + "resolve": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "dev": true, + "requires": { + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "rollup": { + "version": "2.77.3", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.77.3.tgz", + "integrity": "sha512-/qxNTG7FbmefJWoeeYJFbHehJ2HNWnjkAFRKzWN/45eNBBF/r8lo992CwcJXEzyVxs5FmfId+vTSTQDb+bxA+g==", + "dev": true, + "requires": { + "fsevents": "~2.3.2" + } + }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true, + "peer": true + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true, + "optional": true + }, + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", + "dev": true, + "optional": true + }, + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", + "dev": true, + "peer": true, + "requires": { + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" + } + }, + "scroll-into-view-if-needed": { + "version": "2.2.29", + "resolved": "https://registry.npmjs.org/scroll-into-view-if-needed/-/scroll-into-view-if-needed-2.2.29.tgz", + "integrity": "sha512-hxpAR6AN+Gh53AdAimHM6C8oTN1ppwVZITihix+WqalywBeFcQ6LdQP5ABNl26nX8GTEL7VT+b8lKpdqq65wXg==", + "requires": { + "compute-scroll-into-view": "^1.0.17" + } + }, + "select": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/select/-/select-1.1.2.tgz", + "integrity": "sha512-OwpTSOfy6xSs1+pwcNrv0RBMOzI39Lp3qQKUTPVVPRjCdNa5JH/oPRiqsesIskK8TVgmRiHwO4KXlV2Li9dANA==" + }, + "semver": { + "version": "7.3.8", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz", + "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dev": true, + "peer": true, + "requires": { + "randombytes": "^2.1.0" + } + }, + "shallow-equal": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/shallow-equal/-/shallow-equal-1.2.1.tgz", + "integrity": "sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==" + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, + "slate": { + "version": "0.72.8", + "resolved": "https://registry.npmjs.org/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.npmjs.org/slate-history/-/slate-history-0.66.0.tgz", + "integrity": "sha512-6MWpxGQZiMvSINlCbMW43E2YBSVMCMCIwQfBzGssjWw4kb0qfvj0pIdblWNRQZD0hR6WHP+dHHgGSeVdMWzfng==", + "requires": { + "is-plain-object": "^5.0.0" + } + }, + "slice-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz", + "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "astral-regex": "^2.0.0", + "is-fullwidth-code-point": "^3.0.0" + } + }, + "snabbdom": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/snabbdom/-/snabbdom-3.5.1.tgz", + "integrity": "sha512-wHMNIOjkm/YNE5EM3RCbr/+DVgPg6AqQAX1eOxO46zYNvCXjKP5Y865tqQj3EXnaMBjkxmQA5jFuDpDK/dbfiA==" + }, + "sortablejs": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.15.0.tgz", + "integrity": "sha512-bv9qgVMjUMf89wAvM6AxVvS/4MX3sPeN0+agqShejLU5z5GX4C75ow1O2e5k4L6XItUyAK3gH6AxSbXrOM5e8w==" + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==" + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "peer": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==" + }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz", + "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==", + "dev": true + }, + "specificity": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/specificity/-/specificity-0.4.1.tgz", + "integrity": "sha512-1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg==", + "dev": true + }, + "ssr-window": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ssr-window/-/ssr-window-3.0.0.tgz", + "integrity": "sha512-q+8UfWDg9Itrg0yWK7oe5p/XRCJpJF9OBtXfOPgSJl+u3Xd5KI328RUEvUqSMVM9CiQUEf1QdBzJMkYGErj9QA==" + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-indent": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", + "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", + "dev": true, + "requires": { + "min-indent": "^1.0.0" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "style-search": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/style-search/-/style-search-0.1.0.tgz", + "integrity": "sha512-Dj1Okke1C3uKKwQcetra4jSuk0DqbzbYtXipzFlFMZtowbF1x7BKJwB9AayVMyFARvU8EDrZdcax4At/452cAg==", + "dev": true + }, + "stylelint": { + "version": "14.8.5", + "resolved": "https://registry.npmjs.org/stylelint/-/stylelint-14.8.5.tgz", + "integrity": "sha512-e3t4H/hlWlspkcNUrkhf44RU3OpPTA7uBOoREGBzSwdEF+2g/+gbZq7WEpMP7BpopcSe/uLaTvDuL+URL7cdnQ==", + "dev": true, + "requires": { + "balanced-match": "^2.0.0", + "colord": "^2.9.2", + "cosmiconfig": "^7.0.1", + "css-functions-list": "^3.0.1", + "debug": "^4.3.4", + "execall": "^2.0.0", + "fast-glob": "^3.2.11", + "fastest-levenshtein": "^1.0.12", + "file-entry-cache": "^6.0.1", + "get-stdin": "^8.0.0", + "global-modules": "^2.0.0", + "globby": "^11.1.0", + "globjoin": "^0.1.4", + "html-tags": "^3.2.0", + "ignore": "^5.2.0", + "import-lazy": "^4.0.0", + "imurmurhash": "^0.1.4", + "is-plain-object": "^5.0.0", + "known-css-properties": "^0.25.0", + "mathml-tag-names": "^2.1.3", + "meow": "^9.0.0", + "micromatch": "^4.0.5", + "normalize-path": "^3.0.0", + "picocolors": "^1.0.0", + "postcss": "^8.4.14", + "postcss-media-query-parser": "^0.2.3", + "postcss-resolve-nested-selector": "^0.1.1", + "postcss-safe-parser": "^6.0.0", + "postcss-selector-parser": "^6.0.10", + "postcss-value-parser": "^4.2.0", + "resolve-from": "^5.0.0", + "specificity": "^0.4.1", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "style-search": "^0.1.0", + "supports-hyperlinks": "^2.2.0", + "svg-tags": "^1.0.0", + "table": "^6.8.0", + "v8-compile-cache": "^2.3.0", + "write-file-atomic": "^4.0.1" + }, + "dependencies": { + "balanced-match": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-2.0.0.tgz", + "integrity": "sha512-1ugUSr8BHXRnK23KfuYS+gVMC3LB8QGH9W1iGtDPsNWoQbgtXSExkBu2aDR4epiGWZOjZsj6lDl/N/AqqTC3UA==", + "dev": true + }, + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "dev": true + } + } + }, + "stylelint-config-prettier": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/stylelint-config-prettier/-/stylelint-config-prettier-9.0.3.tgz", + "integrity": "sha512-5n9gUDp/n5tTMCq1GLqSpA30w2sqWITSSEiAWQlpxkKGAUbjcemQ0nbkRvRUa0B1LgD3+hCvdL7B1eTxy1QHJg==", + "dev": true, + "requires": {} + }, + "stylelint-config-standard": { + "version": "25.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-standard/-/stylelint-config-standard-25.0.0.tgz", + "integrity": "sha512-21HnP3VSpaT1wFjFvv9VjvOGDtAviv47uTp3uFmzcN+3Lt+RYRv6oAplLaV51Kf792JSxJ6svCJh/G18E9VnCA==", + "dev": true, + "requires": { + "stylelint-config-recommended": "^7.0.0" + }, + "dependencies": { + "stylelint-config-recommended": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-7.0.0.tgz", + "integrity": "sha512-yGn84Bf/q41J4luis1AZ95gj0EQwRX8lWmGmBwkwBNSkpGSpl66XcPTulxGa/Z91aPoNGuIGBmFkcM1MejMo9Q==", + "dev": true, + "requires": {} + } + } + }, + "stylelint-order": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/stylelint-order/-/stylelint-order-5.0.0.tgz", + "integrity": "sha512-OWQ7pmicXufDw5BlRqzdz3fkGKJPgLyDwD1rFY3AIEfIH/LQY38Vu/85v8/up0I+VPiuGRwbc2Hg3zLAsJaiyw==", + "dev": true, + "requires": { + "postcss": "^8.3.11", + "postcss-sorting": "^7.0.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "supports-hyperlinks": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz", + "integrity": "sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==", + "dev": true, + "requires": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, + "svg-tags": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/svg-tags/-/svg-tags-1.0.0.tgz", + "integrity": "sha512-ovssysQTa+luh7A5Weu3Rta6FJlFBBbInjOh722LIt6klpU2/HtdUbszju/G4devcvk8PGt7FCLv5wftu3THUA==", + "dev": true + }, + "table": { + "version": "6.8.0", + "resolved": "https://registry.npmjs.org/table/-/table-6.8.0.tgz", + "integrity": "sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==", + "dev": true, + "requires": { + "ajv": "^8.0.1", + "lodash.truncate": "^4.4.2", + "slice-ansi": "^4.0.0", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1" + }, + "dependencies": { + "ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" + } + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", + "dev": true + } + } + }, + "tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", + "dev": true, + "peer": true + }, + "terser": { + "version": "5.15.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.15.1.tgz", + "integrity": "sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw==", + "dev": true, + "peer": true, + "requires": { + "@jridgewell/source-map": "^0.3.2", + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "dependencies": { + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true, + "peer": true + } + } + }, + "terser-webpack-plugin": { + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.6.tgz", + "integrity": "sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==", + "dev": true, + "peer": true, + "requires": { + "@jridgewell/trace-mapping": "^0.3.14", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", + "terser": "^5.14.1" + } + }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, + "throttle-debounce": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/throttle-debounce/-/throttle-debounce-2.3.0.tgz", + "integrity": "sha512-H7oLPV0P7+jgvrk+6mwwwBDmxTaxnu9HMXmloNLXwnNO0ZxZ31Orah2n8lU1eMPvsaowP2CX+USCgyovXfdOFQ==" + }, + "tiny-emitter": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tiny-emitter/-/tiny-emitter-2.1.0.tgz", + "integrity": "sha512-NB6Dk1A9xgQPMoGqC5CVXn123gWyte215ONT5Pp5a0yt4nlEoO1ZWeCwpncaekPHXO60i47ihFnZPiRPjRMq4Q==" + }, + "tiny-warning": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz", + "integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==" + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "trim-newlines": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz", + "integrity": "sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==", + "dev": true + }, + "tslib": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.0.tgz", + "integrity": "sha512-N82ooyxVNm6h1riLCoyS9e3fuJ3AMG2zIZs2Gd1ATcSFjSA23Q0fzjjZeh0jbJvWVDZ0cJT8yaNNaaXHzueNjg==" + }, + "type": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" + }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + }, + "ua-parser-js": { + "version": "1.0.32", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.32.tgz", + "integrity": "sha512-dXVsz3M4j+5tTiovFVyVqssXBu5HM47//YSOeZ9fQkdDKkfzv2v3PP1jmH6FUyPW+yCSn7aBVK1fGGKNhowdDA==" + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "dev": true + }, + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", + "dev": true + }, + "update-browserslist-db": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", + "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "dev": true, + "peer": true, + "requires": { + "escalade": "^3.1.1", + "picocolors": "^1.0.0" + } + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "dev": true, + "requires": { + "punycode": "^2.1.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", + "dev": true + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", + "dev": true + }, + "v-viewer": { + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/v-viewer/-/v-viewer-1.6.4.tgz", + "integrity": "sha512-LVkiUHpmsbsZXebeNXnu8krRCi5i2n07FeLFxoIVGhw8lVvTBO0ffpbDC6mLEuacCjrIh09HjIqpciwUtWE8lQ==", + "requires": { + "throttle-debounce": "^2.0.1", + "viewerjs": "^1.5.0" + } + }, + "v8-compile-cache": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", + "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "viewerjs": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/viewerjs/-/viewerjs-1.11.0.tgz", + "integrity": "sha512-TE3XvfEXqKV+LdHsRdMSPsCaq0PfKDXm4SjGzfty7CzVxlDbBbT4x38vAqfXfNITmHhHUQefdxdg0Vv4ia+Z9w==" + }, + "vite": { + "version": "2.9.15", + "resolved": "https://registry.npmjs.org/vite/-/vite-2.9.15.tgz", + "integrity": "sha512-fzMt2jK4vQ3yK56te3Kqpkaeq9DkcZfBbzHwYpobasvgYmP2SoAr6Aic05CsB4CzCZbsDv4sujX3pkEGhLabVQ==", + "dev": true, + "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-mock": { + "version": "2.9.6", + "resolved": "https://registry.npmjs.org/vite-plugin-mock/-/vite-plugin-mock-2.9.6.tgz", + "integrity": "sha512-/Rm59oPppe/ncbkSrUuAxIQihlI2YcBmnbR4ST1RA2VzM1C0tEQc1KlbQvnUGhXECAGTaQN2JyasiwXP6EtKgg==", + "dev": true, + "requires": { + "@rollup/plugin-node-resolve": "^13.0.4", + "@types/mockjs": "^1.0.4", + "chalk": "^4.1.2", + "chokidar": "^3.5.2", + "connect": "^3.7.0", + "debug": "^4.3.2", + "esbuild": "0.11.3", + "fast-glob": "^3.2.7", + "path-to-regexp": "^6.2.0" + }, + "dependencies": { + "esbuild": { + "version": "0.11.3", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.11.3.tgz", + "integrity": "sha512-BzVRHcCtFepjS9WcqRjqoIxLqgpK21a8J4Zi4msSGxDxiXVO1IbcqT1KjhdDDnJxKfe7bvzZrvMEX+bVO0Elcw==", + "dev": true + } + } + }, + "vite-plugin-optimize-persist": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/vite-plugin-optimize-persist/-/vite-plugin-optimize-persist-0.1.2.tgz", + "integrity": "sha512-H/Ebn2kZO8PvwUF08SsT5K5xMJNCWKoGX71+e9/ER3yNj7GHiFjNQlvGg5ih/zEx09MZ9m7WCxOwmEKbeIVzww==", + "dev": true, + "requires": { + "debug": "^4.3.2", + "fs-extra": "^10.0.0" + } + }, + "vite-plugin-package-config": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/vite-plugin-package-config/-/vite-plugin-package-config-0.1.1.tgz", + "integrity": "sha512-w9B3I8ZnqoyhlbzimXjXNk85imrMZgvI9m8f6j3zonK5IVA5KXzpT+PZOHlDz8lqh1vqvoEI1uhy+ZDoLAiA/w==", + "dev": true, + "requires": { + "debug": "^4.3.3" + } + }, + "vue": { + "version": "3.2.41", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.2.41.tgz", + "integrity": "sha512-uuuvnrDXEeZ9VUPljgHkqB5IaVO8SxhPpqF2eWOukVrBnRBx2THPSGQBnVRt0GrIG1gvCmFXMGbd7FqcT1ixNQ==", + "requires": { + "@vue/compiler-dom": "3.2.41", + "@vue/compiler-sfc": "3.2.41", + "@vue/runtime-dom": "3.2.41", + "@vue/server-renderer": "3.2.41", + "@vue/shared": "3.2.41" + } + }, + "vue-eslint-parser": { + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/vue-eslint-parser/-/vue-eslint-parser-9.0.3.tgz", + "integrity": "sha512-yL+ZDb+9T0ELG4VIFo/2anAOz8SvBdlqEnQnvJ3M7Scq56DvtjY0VY88bByRZB0D4J0u8olBcfrXTVONXsh4og==", + "dev": true, + "requires": { + "debug": "^4.3.4", + "eslint-scope": "^7.1.1", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.3.1", + "esquery": "^1.4.0", + "lodash": "^4.17.21", + "semver": "^7.3.6" + } + }, + "vue-i18n": { + "version": "9.2.2", + "resolved": "https://registry.npmjs.org/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.0.16", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.0.16.tgz", + "integrity": "sha512-JcO7cb8QJLBWE+DfxGUL3xUDOae/8nhM1KVdnudadTAORbuxIC/xAydC5Zr/VLHUDQi1ppuTF5/rjBGzgzrJNA==", + "requires": { + "@vue/devtools-api": "^6.0.0" + } + }, + "vue-types": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/vue-types/-/vue-types-3.0.2.tgz", + "integrity": "sha512-IwUC0Aq2zwaXqy74h4WCvFCUtoV0iSWr0snWnE9TnU18S66GAQyqQbRf2qfJtUuiFsBf6qp0MEwdonlwznlcrw==", + "requires": { + "is-plain-object": "3.0.1" + }, + "dependencies": { + "is-plain-object": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-3.0.1.tgz", + "integrity": "sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==" + } + } + }, + "vue3-json-viewer": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/vue3-json-viewer/-/vue3-json-viewer-2.2.2.tgz", + "integrity": "sha512-56l3XDGggnpwEqZieXsSMhNT4NhtO6d7zuSAxHo4i0UVxymyY2jRb7UMQOU1ztChKALZCAzX7DlgrsnEhxu77A==", + "requires": { + "clipboard": "^2.0.10" + } + }, + "warning": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz", + "integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==", + "requires": { + "loose-envify": "^1.0.0" + } + }, + "watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dev": true, + "peer": true, + "requires": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" + } + }, + "webpack": { + "version": "5.74.0", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.74.0.tgz", + "integrity": "sha512-A2InDwnhhGN4LYctJj6M1JEaGL7Luj6LOmyBHjcI8529cm5p6VXiTIW2sn6ffvEAKmveLzvu4jrihwXtPojlAA==", + "dev": true, + "peer": true, + "requires": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.7.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", + "chrome-trace-event": "^1.0.2", + "enhanced-resolve": "^5.10.0", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.4.0", + "webpack-sources": "^3.2.3" + }, + "dependencies": { + "@types/estree": { + "version": "0.0.51", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", + "dev": true, + "peer": true + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "peer": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" + } + }, + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "dev": true, + "peer": true + } + } + }, + "webpack-sources": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true, + "peer": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + }, + "wildcard": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-1.1.2.tgz", + "integrity": "sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng==" + }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", + "dev": true + }, + "write-file-atomic": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz", + "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "signal-exit": "^3.0.7" + } + }, + "xml-name-validator": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", + "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", + "dev": true + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", + "dev": true + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true + }, + "zrender": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/zrender/-/zrender-5.4.0.tgz", + "integrity": "sha512-rOS09Z2HSVGFs2dn/TuYk5BlCaZcVe8UDLLjj1ySYF828LATKKdxuakSZMvrDz54yiKPDYVfjdKqcX8Jky3BIA==", + "requires": { + "tslib": "2.3.0" + } + } + } +} diff --git a/smart-admin-web/javascript-ant-design-vue3/package.json b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/package.json similarity index 90% rename from smart-admin-web/javascript-ant-design-vue3/package.json rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/package.json index ec59cfac..f32227e9 100644 --- a/smart-admin-web/javascript-ant-design-vue3/package.json +++ b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/package.json @@ -9,13 +9,11 @@ "license": "MIT", "homepage": "https://smartadmin.1024lab.net", "scripts": { - "dev": "vite", - "test": "vite build --mode test", - "pre": "vite build --mode pre", - "prod": "vite build --mode production", "localhost": "vite --mode localhost", - "build": "vue-tsc --noEmit && vite build", - "serve": "vite preview" + "dev": "vite", + "build:test": "vite build --mode test", + "build:pre": "vite build --mode pre", + "build:prod": "vite build --mode production" }, "dependencies": { "@ant-design/icons-vue": "^6.1.0", diff --git a/smart-admin-web/javascript-ant-design-vue3/postcss.config.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/postcss.config.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/postcss.config.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/postcss.config.js diff --git a/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/public/favicon.ico b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/public/favicon.ico new file mode 100644 index 00000000..5e59671b Binary files /dev/null and b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/public/favicon.ico differ diff --git a/smart-admin-web/javascript-ant-design-vue3/src/App.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/App.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/App.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/App.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/api/business/category/category-api.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/business/category/category-api.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/api/business/category/category-api.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/business/category/category-api.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/api/business/goods/goods-api.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/business/goods/goods-api.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/api/business/goods/goods-api.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/business/goods/goods-api.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/api/business/oa/bank-api.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/business/oa/bank-api.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/api/business/oa/bank-api.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/business/oa/bank-api.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/api/business/oa/enterprise-api.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/business/oa/enterprise-api.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/api/business/oa/enterprise-api.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/business/oa/enterprise-api.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/api/business/oa/invoice-api.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/business/oa/invoice-api.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/api/business/oa/invoice-api.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/business/oa/invoice-api.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/api/business/oa/notice-api.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/business/oa/notice-api.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/api/business/oa/notice-api.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/business/oa/notice-api.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/api/support/cache/cache-api.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/support/cache/cache-api.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/api/support/cache/cache-api.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/support/cache/cache-api.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/api/support/change-log/change-log-api.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/support/change-log/change-log-api.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/api/support/change-log/change-log-api.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/support/change-log/change-log-api.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/api/support/code-generator/code-generator-api.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/support/code-generator/code-generator-api.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/api/support/code-generator/code-generator-api.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/support/code-generator/code-generator-api.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/api/support/config/config-api.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/support/config/config-api.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/api/support/config/config-api.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/support/config/config-api.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/api/support/data-tracer/data-tracer-api.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/support/data-tracer/data-tracer-api.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/api/support/data-tracer/data-tracer-api.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/support/data-tracer/data-tracer-api.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/api/support/dict/dict-api.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/support/dict/dict-api.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/api/support/dict/dict-api.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/support/dict/dict-api.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/api/support/feedback/feedback-api.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/support/feedback/feedback-api.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/api/support/feedback/feedback-api.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/support/feedback/feedback-api.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/api/support/file/file-api.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/support/file/file-api.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/api/support/file/file-api.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/support/file/file-api.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/api/support/heart-beat/heart-beat-api.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/support/heart-beat/heart-beat-api.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/api/support/heart-beat/heart-beat-api.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/support/heart-beat/heart-beat-api.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/api/support/help-doc/help-doc-api.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/support/help-doc/help-doc-api.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/api/support/help-doc/help-doc-api.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/support/help-doc/help-doc-api.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/api/support/help-doc/help-doc-catalog-api.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/support/help-doc/help-doc-catalog-api.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/api/support/help-doc/help-doc-catalog-api.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/support/help-doc/help-doc-catalog-api.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/api/support/login-log/login-log-api.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/support/login-log/login-log-api.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/api/support/login-log/login-log-api.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/support/login-log/login-log-api.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/api/support/operate-log/operate-log-api.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/support/operate-log/operate-log-api.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/api/support/operate-log/operate-log-api.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/support/operate-log/operate-log-api.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/api/support/reload/reload-api.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/support/reload/reload-api.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/api/support/reload/reload-api.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/support/reload/reload-api.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/api/support/serial-number/serial-number-api.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/support/serial-number/serial-number-api.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/api/support/serial-number/serial-number-api.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/support/serial-number/serial-number-api.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/api/support/table/table-column-api.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/support/table/table-column-api.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/api/support/table/table-column-api.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/support/table/table-column-api.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/api/system/department/department-api.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/system/department/department-api.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/api/system/department/department-api.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/system/department/department-api.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/api/system/employee/employee-api.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/system/employee/employee-api.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/api/system/employee/employee-api.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/system/employee/employee-api.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/api/system/home/home-api.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/system/home/home-api.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/api/system/home/home-api.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/system/home/home-api.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/api/system/login/login-api.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/system/login/login-api.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/api/system/login/login-api.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/system/login/login-api.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/api/system/menu/menu-api.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/system/menu/menu-api.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/api/system/menu/menu-api.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/system/menu/menu-api.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/api/system/role-menu/role-menu-api.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/system/role-menu/role-menu-api.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/api/system/role-menu/role-menu-api.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/system/role-menu/role-menu-api.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/api/system/role/role-api.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/system/role/role-api.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/api/system/role/role-api.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/api/system/role/role-api.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/assets/images/1024lab/1024lab-gzh.jpg b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/assets/images/1024lab/1024lab-gzh.jpg similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/assets/images/1024lab/1024lab-gzh.jpg rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/assets/images/1024lab/1024lab-gzh.jpg diff --git a/smart-admin-web/javascript-ant-design-vue3/src/assets/images/1024lab/xiaozhen-gzh.jpg b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/assets/images/1024lab/xiaozhen-gzh.jpg similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/assets/images/1024lab/xiaozhen-gzh.jpg rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/assets/images/1024lab/xiaozhen-gzh.jpg diff --git a/smart-admin-web/javascript-ant-design-vue3/src/assets/images/1024lab/zhuoda-wechat.jpg b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/assets/images/1024lab/zhuoda-wechat.jpg similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/assets/images/1024lab/zhuoda-wechat.jpg rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/assets/images/1024lab/zhuoda-wechat.jpg diff --git a/smart-admin-web/javascript-ant-design-vue3/src/assets/images/login/ali-icon.png b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/assets/images/login/ali-icon.png similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/assets/images/login/ali-icon.png rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/assets/images/login/ali-icon.png diff --git a/smart-admin-web/javascript-ant-design-vue3/src/assets/images/login/google-icon.png b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/assets/images/login/google-icon.png similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/assets/images/login/google-icon.png rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/assets/images/login/google-icon.png diff --git a/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/assets/images/login/login-bg.jpg b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/assets/images/login/login-bg.jpg new file mode 100644 index 00000000..cb51b61b Binary files /dev/null and b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/assets/images/login/login-bg.jpg differ diff --git a/smart-admin-web/javascript-ant-design-vue3/src/assets/images/login/login-form-open-eyes-close.png b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/assets/images/login/login-form-open-eyes-close.png similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/assets/images/login/login-form-open-eyes-close.png rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/assets/images/login/login-form-open-eyes-close.png diff --git a/smart-admin-web/javascript-ant-design-vue3/src/assets/images/login/login-form-open-eyes.png b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/assets/images/login/login-form-open-eyes.png similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/assets/images/login/login-form-open-eyes.png rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/assets/images/login/login-form-open-eyes.png diff --git a/smart-admin-web/javascript-ant-design-vue3/src/assets/images/login/login-qr.png b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/assets/images/login/login-qr.png similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/assets/images/login/login-qr.png rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/assets/images/login/login-qr.png diff --git a/smart-admin-web/javascript-ant-design-vue3/src/assets/images/login/qq-icon.png b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/assets/images/login/qq-icon.png similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/assets/images/login/qq-icon.png rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/assets/images/login/qq-icon.png diff --git a/smart-admin-web/javascript-ant-design-vue3/src/assets/images/login/wechat-icon.png b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/assets/images/login/wechat-icon.png similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/assets/images/login/wechat-icon.png rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/assets/images/login/wechat-icon.png diff --git a/smart-admin-web/javascript-ant-design-vue3/src/assets/images/login/weibo-icon.png b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/assets/images/login/weibo-icon.png similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/assets/images/login/weibo-icon.png rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/assets/images/login/weibo-icon.png diff --git a/smart-admin-web/typescript-ant-design-vue3/src/assets/images/logo/logo-min.png b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/assets/images/logo/logo-min.png similarity index 100% rename from smart-admin-web/typescript-ant-design-vue3/src/assets/images/logo/logo-min.png rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/assets/images/logo/logo-min.png diff --git a/smart-admin-web/javascript-ant-design-vue3/src/assets/images/logo/logo.png b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/assets/images/logo/logo.png similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/assets/images/logo/logo.png rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/assets/images/logo/logo.png diff --git a/smart-admin-web/javascript-ant-design-vue3/src/assets/images/logo/smart-admin-logo-white.png b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/assets/images/logo/smart-admin-logo-white.png similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/assets/images/logo/smart-admin-logo-white.png rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/assets/images/logo/smart-admin-logo-white.png diff --git a/smart-admin-web/javascript-ant-design-vue3/src/assets/images/logo/smart-admin-logo.png b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/assets/images/logo/smart-admin-logo.png similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/assets/images/logo/smart-admin-logo.png rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/assets/images/logo/smart-admin-logo.png diff --git a/smart-admin-web/javascript-ant-design-vue3/src/assets/images/notice/edit_icon.png b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/assets/images/notice/edit_icon.png similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/assets/images/notice/edit_icon.png rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/assets/images/notice/edit_icon.png diff --git a/smart-admin-web/javascript-ant-design-vue3/src/assets/images/notice/file_icon.png b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/assets/images/notice/file_icon.png similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/assets/images/notice/file_icon.png rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/assets/images/notice/file_icon.png diff --git a/smart-admin-web/javascript-ant-design-vue3/src/components/business/category-tree-select/index.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/business/category-tree-select/index.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/components/business/category-tree-select/index.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/business/category-tree-select/index.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/components/business/oa/enterprise-bank-select/index.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/business/oa/enterprise-bank-select/index.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/components/business/oa/enterprise-bank-select/index.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/business/oa/enterprise-bank-select/index.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/components/business/oa/enterprise-invoice-select/index.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/business/oa/enterprise-invoice-select/index.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/components/business/oa/enterprise-invoice-select/index.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/business/oa/enterprise-invoice-select/index.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/components/business/oa/enterprise-select/index.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/business/oa/enterprise-select/index.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/components/business/oa/enterprise-select/index.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/business/oa/enterprise-select/index.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/components/framework/area-cascader/index.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/framework/area-cascader/index.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/components/framework/area-cascader/index.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/framework/area-cascader/index.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/components/framework/area-cascader/province-city-district.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/framework/area-cascader/province-city-district.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/components/framework/area-cascader/province-city-district.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/framework/area-cascader/province-city-district.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/components/framework/area-cascader/province-city.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/framework/area-cascader/province-city.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/components/framework/area-cascader/province-city.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/framework/area-cascader/province-city.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/components/framework/boolean-select/index.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/framework/boolean-select/index.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/components/framework/boolean-select/index.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/framework/boolean-select/index.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/components/framework/icon-select/index.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/framework/icon-select/index.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/components/framework/icon-select/index.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/framework/icon-select/index.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/components/framework/iframe/iframe-index.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/framework/iframe/iframe-index.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/components/framework/iframe/iframe-index.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/framework/iframe/iframe-index.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/components/framework/iframe/route-default-component.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/framework/iframe/route-default-component.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/components/framework/iframe/route-default-component.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/framework/iframe/route-default-component.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/components/framework/smart-enum-checkbox/index.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/framework/smart-enum-checkbox/index.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/components/framework/smart-enum-checkbox/index.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/framework/smart-enum-checkbox/index.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/components/framework/smart-enum-radio/index.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/framework/smart-enum-radio/index.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/components/framework/smart-enum-radio/index.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/framework/smart-enum-radio/index.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/components/framework/smart-enum-select/index.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/framework/smart-enum-select/index.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/components/framework/smart-enum-select/index.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/framework/smart-enum-select/index.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/components/framework/smart-loading/index.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/framework/smart-loading/index.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/components/framework/smart-loading/index.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/framework/smart-loading/index.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/components/framework/wangeditor/index.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/framework/wangeditor/index.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/components/framework/wangeditor/index.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/framework/wangeditor/index.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/components/support/data-tracer/index.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/support/data-tracer/index.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/components/support/data-tracer/index.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/support/data-tracer/index.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/components/support/dict-key-select/index.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/support/dict-key-select/index.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/components/support/dict-key-select/index.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/support/dict-key-select/index.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/components/support/dict-select/index.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/support/dict-select/index.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/components/support/dict-select/index.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/support/dict-select/index.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/components/support/file-preview-modal/index.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/support/file-preview-modal/index.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/components/support/file-preview-modal/index.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/support/file-preview-modal/index.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/components/support/file-preview/index.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/support/file-preview/index.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/components/support/file-preview/index.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/support/file-preview/index.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/components/support/file-upload/index.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/support/file-upload/index.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/components/support/file-upload/index.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/support/file-upload/index.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/components/support/table-operator/index.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/support/table-operator/index.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/components/support/table-operator/index.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/support/table-operator/index.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/components/support/table-operator/smart-table-column-merge.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/support/table-operator/smart-table-column-merge.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/components/support/table-operator/smart-table-column-merge.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/support/table-operator/smart-table-column-merge.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/components/support/table-operator/smart-table-column-modal.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/support/table-operator/smart-table-column-modal.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/components/support/table-operator/smart-table-column-modal.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/support/table-operator/smart-table-column-modal.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/components/system/department-tree-select/index.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/system/department-tree-select/index.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/components/system/department-tree-select/index.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/system/department-tree-select/index.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/components/system/employee-select/index.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/system/employee-select/index.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/components/system/employee-select/index.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/system/employee-select/index.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/components/system/employee-table-select-modal/index.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/system/employee-table-select-modal/index.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/components/system/employee-table-select-modal/index.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/system/employee-table-select-modal/index.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/components/system/menu-tree-select/index.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/system/menu-tree-select/index.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/components/system/menu-tree-select/index.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/components/system/menu-tree-select/index.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/config/app-config.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/config/app-config.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/config/app-config.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/config/app-config.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/constants/business/erp/category-const.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/constants/business/erp/category-const.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/constants/business/erp/category-const.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/constants/business/erp/category-const.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/constants/business/erp/goods-const.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/constants/business/erp/goods-const.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/constants/business/erp/goods-const.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/constants/business/erp/goods-const.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/constants/business/oa/enterprise-const.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/constants/business/oa/enterprise-const.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/constants/business/oa/enterprise-const.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/constants/business/oa/enterprise-const.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/constants/business/oa/notice-const.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/constants/business/oa/notice-const.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/constants/business/oa/notice-const.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/constants/business/oa/notice-const.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/constants/common-const.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/constants/common-const.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/constants/common-const.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/constants/common-const.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/constants/index.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/constants/index.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/constants/index.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/constants/index.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/constants/layout-const.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/constants/layout-const.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/constants/layout-const.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/constants/layout-const.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/constants/local-storage-key-const.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/constants/local-storage-key-const.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/constants/local-storage-key-const.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/constants/local-storage-key-const.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/constants/regular-const.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/constants/regular-const.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/constants/regular-const.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/constants/regular-const.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/constants/support/change-log-const.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/constants/support/change-log-const.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/constants/support/change-log-const.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/constants/support/change-log-const.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/constants/support/code-generator-const.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/constants/support/code-generator-const.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/constants/support/code-generator-const.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/constants/support/code-generator-const.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/constants/support/data-tracer-const.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/constants/support/data-tracer-const.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/constants/support/data-tracer-const.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/constants/support/data-tracer-const.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/constants/support/file-const.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/constants/support/file-const.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/constants/support/file-const.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/constants/support/file-const.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/constants/support/login-log-const.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/constants/support/login-log-const.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/constants/support/login-log-const.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/constants/support/login-log-const.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/constants/support/table-id-const.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/constants/support/table-id-const.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/constants/support/table-id-const.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/constants/support/table-id-const.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/constants/system/employee-const.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/constants/system/employee-const.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/constants/system/employee-const.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/constants/system/employee-const.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/constants/system/home-const.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/constants/system/home-const.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/constants/system/home-const.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/constants/system/home-const.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/constants/system/login-device-const.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/constants/system/login-device-const.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/constants/system/login-device-const.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/constants/system/login-device-const.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/constants/system/menu-const.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/constants/system/menu-const.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/constants/system/menu-const.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/constants/system/menu-const.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/directives/privilege.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/directives/privilege.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/directives/privilege.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/directives/privilege.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/i18n/index.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/i18n/index.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/i18n/index.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/i18n/index.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/i18n/lang/en-US/index.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/i18n/lang/en-US/index.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/i18n/lang/en-US/index.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/i18n/lang/en-US/index.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/i18n/lang/zh-CN/index.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/i18n/lang/zh-CN/index.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/i18n/lang/zh-CN/index.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/i18n/lang/zh-CN/index.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/layout/components/header-user-space/header-avatar.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/layout/components/header-user-space/header-avatar.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/layout/components/header-user-space/header-avatar.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/layout/components/header-user-space/header-avatar.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/layout/components/header-user-space/header-message.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/layout/components/header-user-space/header-message.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/layout/components/header-user-space/header-message.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/layout/components/header-user-space/header-message.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/layout/components/header-user-space/header-reset-password-modal/index.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/layout/components/header-user-space/header-reset-password-modal/index.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/layout/components/header-user-space/header-reset-password-modal/index.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/layout/components/header-user-space/header-reset-password-modal/index.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/layout/components/header-user-space/header-setting.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/layout/components/header-user-space/header-setting.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/layout/components/header-user-space/header-setting.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/layout/components/header-user-space/header-setting.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/layout/components/header-user-space/index.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/layout/components/header-user-space/index.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/layout/components/header-user-space/index.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/layout/components/header-user-space/index.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/layout/components/menu-location-breadcrumb/index.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/layout/components/menu-location-breadcrumb/index.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/layout/components/menu-location-breadcrumb/index.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/layout/components/menu-location-breadcrumb/index.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/layout/components/page-tag/index.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/layout/components/page-tag/index.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/layout/components/page-tag/index.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/layout/components/page-tag/index.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/layout/components/side-expand-menu/index.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/layout/components/side-expand-menu/index.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/layout/components/side-expand-menu/index.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/layout/components/side-expand-menu/index.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/layout/components/side-expand-menu/recursion-menu.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/layout/components/side-expand-menu/recursion-menu.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/layout/components/side-expand-menu/recursion-menu.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/layout/components/side-expand-menu/recursion-menu.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/layout/components/side-expand-menu/sub-menu.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/layout/components/side-expand-menu/sub-menu.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/layout/components/side-expand-menu/sub-menu.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/layout/components/side-expand-menu/sub-menu.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/layout/components/side-expand-menu/top-menu.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/layout/components/side-expand-menu/top-menu.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/layout/components/side-expand-menu/top-menu.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/layout/components/side-expand-menu/top-menu.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/layout/components/side-help-doc/components/contact-modal.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/layout/components/side-help-doc/components/contact-modal.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/layout/components/side-help-doc/components/contact-modal.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/layout/components/side-help-doc/components/contact-modal.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/layout/components/side-help-doc/components/feedback-modal.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/layout/components/side-help-doc/components/feedback-modal.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/layout/components/side-help-doc/components/feedback-modal.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/layout/components/side-help-doc/components/feedback-modal.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/layout/components/side-help-doc/index.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/layout/components/side-help-doc/index.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/layout/components/side-help-doc/index.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/layout/components/side-help-doc/index.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/layout/components/side-menu/index.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/layout/components/side-menu/index.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/layout/components/side-menu/index.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/layout/components/side-menu/index.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/layout/components/side-menu/recursion-menu.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/layout/components/side-menu/recursion-menu.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/layout/components/side-menu/recursion-menu.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/layout/components/side-menu/recursion-menu.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/layout/components/side-menu/sub-menu.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/layout/components/side-menu/sub-menu.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/layout/components/side-menu/sub-menu.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/layout/components/side-menu/sub-menu.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/layout/components/smart-footer/index.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/layout/components/smart-footer/index.vue similarity index 87% rename from smart-admin-web/javascript-ant-design-vue3/src/layout/components/smart-footer/index.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/layout/components/smart-footer/index.vue index 83c68afe..0adcd8ce 100644 --- a/smart-admin-web/javascript-ant-design-vue3/src/layout/components/smart-footer/index.vue +++ b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/layout/components/smart-footer/index.vue @@ -10,7 +10,7 @@ diff --git a/smart-admin-web/javascript-ant-design-vue3/src/layout/smart-help-doc-layout.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/layout/smart-help-doc-layout.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/layout/smart-help-doc-layout.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/layout/smart-help-doc-layout.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/layout/smart-keep-alive.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/layout/smart-keep-alive.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/layout/smart-keep-alive.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/layout/smart-keep-alive.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/layout/smart-layout.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/layout/smart-layout.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/layout/smart-layout.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/layout/smart-layout.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/layout/smart-side-expand-layout.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/layout/smart-side-expand-layout.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/layout/smart-side-expand-layout.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/layout/smart-side-expand-layout.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/layout/smart-side-layout.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/layout/smart-side-layout.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/layout/smart-side-layout.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/layout/smart-side-layout.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/lib/axios.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/lib/axios.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/lib/axios.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/lib/axios.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/lib/default-time-ranges.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/lib/default-time-ranges.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/lib/default-time-ranges.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/lib/default-time-ranges.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/lib/highlight-line-number.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/lib/highlight-line-number.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/lib/highlight-line-number.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/lib/highlight-line-number.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/lib/smart-sentry.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/lib/smart-sentry.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/lib/smart-sentry.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/lib/smart-sentry.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/lib/smart-wartermark.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/lib/smart-wartermark.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/lib/smart-wartermark.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/lib/smart-wartermark.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/main.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/main.js similarity index 99% rename from smart-admin-web/javascript-ant-design-vue3/src/main.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/main.js index 8ec51bcb..5f0fcfbf 100644 --- a/smart-admin-web/javascript-ant-design-vue3/src/main.js +++ b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/main.js @@ -56,6 +56,7 @@ async function getLoginInfo() { } catch (e) { message.error(e); smartSentry.captureError(e); + initVue(); } } diff --git a/smart-admin-web/javascript-ant-design-vue3/src/plugins/privilege-plugin.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/plugins/privilege-plugin.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/plugins/privilege-plugin.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/plugins/privilege-plugin.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/plugins/smart-enums-plugin.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/plugins/smart-enums-plugin.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/plugins/smart-enums-plugin.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/plugins/smart-enums-plugin.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/router/index.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/router/index.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/router/index.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/router/index.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/router/routers.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/router/routers.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/router/routers.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/router/routers.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/router/support/help-doc.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/router/support/help-doc.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/router/support/help-doc.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/router/support/help-doc.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/router/system/home.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/router/system/home.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/router/system/home.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/router/system/home.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/router/system/login.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/router/system/login.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/router/system/login.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/router/system/login.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/store/index.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/store/index.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/store/index.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/store/index.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/store/modules/system/app-config.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/store/modules/system/app-config.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/store/modules/system/app-config.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/store/modules/system/app-config.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/store/modules/system/role.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/store/modules/system/role.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/store/modules/system/role.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/store/modules/system/role.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/store/modules/system/spin.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/store/modules/system/spin.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/store/modules/system/spin.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/store/modules/system/spin.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/store/modules/system/user.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/store/modules/system/user.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/store/modules/system/user.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/store/modules/system/user.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/theme/index.less b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/theme/index.less similarity index 98% rename from smart-admin-web/javascript-ant-design-vue3/src/theme/index.less rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/theme/index.less index f0d7d0ad..149891b3 100644 --- a/smart-admin-web/javascript-ant-design-vue3/src/theme/index.less +++ b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/theme/index.less @@ -133,8 +133,6 @@ body { /* code 样式 */ code { display: inline-block; - *display: inline; - *zoom: 1; background-color: #f1f1f1; border-radius: 3px; padding: 3px 5px; diff --git a/smart-admin-web/javascript-ant-design-vue3/src/theme/smart-admin.less b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/theme/smart-admin.less similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/theme/smart-admin.less rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/theme/smart-admin.less diff --git a/smart-admin-web/javascript-ant-design-vue3/src/utils/cookie-util.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/utils/cookie-util.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/utils/cookie-util.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/utils/cookie-util.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/utils/local-util.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/utils/local-util.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/utils/local-util.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/utils/local-util.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/utils/str-util.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/utils/str-util.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/utils/str-util.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/utils/str-util.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/business/erp/catalog/components/category-form-modal.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/business/erp/catalog/components/category-form-modal.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/business/erp/catalog/components/category-form-modal.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/business/erp/catalog/components/category-form-modal.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/business/erp/catalog/components/category-tree-table.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/business/erp/catalog/components/category-tree-table.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/business/erp/catalog/components/category-tree-table.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/business/erp/catalog/components/category-tree-table.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/business/erp/catalog/custom-catalog.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/business/erp/catalog/custom-catalog.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/business/erp/catalog/custom-catalog.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/business/erp/catalog/custom-catalog.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/business/erp/catalog/goods-catalog.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/business/erp/catalog/goods-catalog.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/business/erp/catalog/goods-catalog.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/business/erp/catalog/goods-catalog.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/business/erp/goods/components/goods-form-modal.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/business/erp/goods/components/goods-form-modal.vue similarity index 92% rename from smart-admin-web/javascript-ant-design-vue3/src/views/business/erp/goods/components/goods-form-modal.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/business/erp/goods/components/goods-form-modal.vue index 028d8fdc..94d6db18 100644 --- a/smart-admin-web/javascript-ant-design-vue3/src/views/business/erp/goods/components/goods-form-modal.vue +++ b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/business/erp/goods/components/goods-form-modal.vue @@ -106,6 +106,9 @@ if (rowData && !_.isEmpty(rowData)) { Object.assign(form, rowData); } + if (form.place && form.place.length > 0) { + form.place = form.place[0].valueCode; + } console.log(form); visible.value = true; nextTick(() => { @@ -124,10 +127,14 @@ .then(async () => { SmartLoading.show(); try { + let params = _.cloneDeep(form); + if (params.place && Array.isArray(params.place) && params.place.length > 0) { + params.place = params.place[0].valueCode; + } if (form.goodsId) { - await goodsApi.updateGoods(form); + await goodsApi.updateGoods(params); } else { - await goodsApi.addGoods(form); + await goodsApi.addGoods(params); } message.success(`${form.goodsId ? '修改' : '添加'}成功`); onClose(); diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/business/erp/goods/goods-list.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/business/erp/goods/goods-list.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/business/erp/goods/goods-list.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/business/erp/goods/goods-list.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/enterprise/components/enterprise-bank-list.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/enterprise/components/enterprise-bank-list.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/enterprise/components/enterprise-bank-list.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/enterprise/components/enterprise-bank-list.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/enterprise/components/enterprise-bank-operate-modal.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/enterprise/components/enterprise-bank-operate-modal.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/enterprise/components/enterprise-bank-operate-modal.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/enterprise/components/enterprise-bank-operate-modal.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/enterprise/components/enterprise-employee-list.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/enterprise/components/enterprise-employee-list.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/enterprise/components/enterprise-employee-list.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/enterprise/components/enterprise-employee-list.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/enterprise/components/enterprise-invoice-list.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/enterprise/components/enterprise-invoice-list.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/enterprise/components/enterprise-invoice-list.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/enterprise/components/enterprise-invoice-list.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/enterprise/components/enterprise-invoice-operate-modal.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/enterprise/components/enterprise-invoice-operate-modal.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/enterprise/components/enterprise-invoice-operate-modal.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/enterprise/components/enterprise-invoice-operate-modal.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/enterprise/components/enterprise-operate-modal.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/enterprise/components/enterprise-operate-modal.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/enterprise/components/enterprise-operate-modal.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/enterprise/components/enterprise-operate-modal.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/enterprise/enterprise-detail.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/enterprise/enterprise-detail.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/enterprise/enterprise-detail.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/enterprise/enterprise-detail.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/enterprise/enterprise-list.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/enterprise/enterprise-list.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/enterprise/enterprise-list.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/enterprise/enterprise-list.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/notice/components/notice-form-drawer.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/notice/components/notice-form-drawer.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/notice/components/notice-form-drawer.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/notice/components/notice-form-drawer.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/notice/components/notice-form-visible-modal.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/notice/components/notice-form-visible-modal.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/notice/components/notice-form-visible-modal.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/notice/components/notice-form-visible-modal.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/notice/components/notice-form-visible-transfer-department.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/notice/components/notice-form-visible-transfer-department.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/notice/components/notice-form-visible-transfer-department.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/notice/components/notice-form-visible-transfer-department.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/notice/components/notice-form-visible-transfer-employee.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/notice/components/notice-form-visible-transfer-employee.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/notice/components/notice-form-visible-transfer-employee.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/notice/components/notice-form-visible-transfer-employee.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/notice/components/notice-view-record-list.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/notice/components/notice-view-record-list.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/notice/components/notice-view-record-list.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/notice/components/notice-view-record-list.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/notice/notice-detail.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/notice/notice-detail.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/notice/notice-detail.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/notice/notice-detail.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/notice/notice-employee-detail.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/notice/notice-employee-detail.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/notice/notice-employee-detail.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/notice/notice-employee-detail.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/notice/notice-employee-list.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/notice/notice-employee-list.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/notice/notice-employee-list.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/notice/notice-employee-list.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/notice/notice-list.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/notice/notice-list.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/notice/notice-list.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/business/oa/notice/notice-list.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/support/cache/cache-list.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/cache/cache-list.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/support/cache/cache-list.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/cache/cache-list.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/support/change-log/change-log-form.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/change-log/change-log-form.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/support/change-log/change-log-form.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/change-log/change-log-form.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/support/change-log/change-log-list.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/change-log/change-log-list.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/support/change-log/change-log-list.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/change-log/change-log-list.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/support/change-log/change-log-modal.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/change-log/change-log-modal.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/support/change-log/change-log-modal.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/change-log/change-log-modal.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/support/code-generator/code-generator-list.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/code-generator/code-generator-list.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/support/code-generator/code-generator-list.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/code-generator/code-generator-list.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/support/code-generator/code-generator-util.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/code-generator/code-generator-util.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/support/code-generator/code-generator-util.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/code-generator/code-generator-util.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/support/code-generator/components/form/code-generator-table-config-form-basic.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/code-generator/components/form/code-generator-table-config-form-basic.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/support/code-generator/components/form/code-generator-table-config-form-basic.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/code-generator/components/form/code-generator-table-config-form-basic.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/support/code-generator/components/form/code-generator-table-config-form-delete.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/code-generator/components/form/code-generator-table-config-form-delete.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/support/code-generator/components/form/code-generator-table-config-form-delete.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/code-generator/components/form/code-generator-table-config-form-delete.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/support/code-generator/components/form/code-generator-table-config-form-field.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/code-generator/components/form/code-generator-table-config-form-field.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/support/code-generator/components/form/code-generator-table-config-form-field.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/code-generator/components/form/code-generator-table-config-form-field.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/support/code-generator/components/form/code-generator-table-config-form-insert-and-update.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/code-generator/components/form/code-generator-table-config-form-insert-and-update.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/support/code-generator/components/form/code-generator-table-config-form-insert-and-update.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/code-generator/components/form/code-generator-table-config-form-insert-and-update.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/support/code-generator/components/form/code-generator-table-config-form-query-field.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/code-generator/components/form/code-generator-table-config-form-query-field.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/support/code-generator/components/form/code-generator-table-config-form-query-field.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/code-generator/components/form/code-generator-table-config-form-query-field.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/support/code-generator/components/form/code-generator-table-config-form-table-field.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/code-generator/components/form/code-generator-table-config-form-table-field.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/support/code-generator/components/form/code-generator-table-config-form-table-field.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/code-generator/components/form/code-generator-table-config-form-table-field.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/support/code-generator/components/form/code-generator-table-config-form.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/code-generator/components/form/code-generator-table-config-form.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/support/code-generator/components/form/code-generator-table-config-form.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/code-generator/components/form/code-generator-table-config-form.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/support/code-generator/components/preview/code-generator-preview-modal.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/code-generator/components/preview/code-generator-preview-modal.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/support/code-generator/components/preview/code-generator-preview-modal.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/code-generator/components/preview/code-generator-preview-modal.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/support/config/config-form-modal.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/config/config-form-modal.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/support/config/config-form-modal.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/config/config-form-modal.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/support/config/config-list.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/config/config-list.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/support/config/config-list.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/config/config-list.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/support/dict/components/dict-key-operate-modal.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/dict/components/dict-key-operate-modal.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/support/dict/components/dict-key-operate-modal.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/dict/components/dict-key-operate-modal.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/support/dict/components/dict-value-modal.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/dict/components/dict-value-modal.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/support/dict/components/dict-value-modal.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/dict/components/dict-value-modal.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/support/dict/components/dict-value-operate-modal.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/dict/components/dict-value-operate-modal.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/support/dict/components/dict-value-operate-modal.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/dict/components/dict-value-operate-modal.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/support/dict/index.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/dict/index.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/support/dict/index.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/dict/index.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/support/feedback/feedback-list.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/feedback/feedback-list.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/support/feedback/feedback-list.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/feedback/feedback-list.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/support/file/file-list.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/file/file-list.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/support/file/file-list.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/file/file-list.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/support/heart-beat/heart-beat-list.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/heart-beat/heart-beat-list.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/support/heart-beat/heart-beat-list.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/heart-beat/heart-beat-list.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/support/help-doc/management/components/help-doc-catalog-form-modal.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/help-doc/management/components/help-doc-catalog-form-modal.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/support/help-doc/management/components/help-doc-catalog-form-modal.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/help-doc/management/components/help-doc-catalog-form-modal.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/support/help-doc/management/components/help-doc-catalog-tree-select.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/help-doc/management/components/help-doc-catalog-tree-select.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/support/help-doc/management/components/help-doc-catalog-tree-select.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/help-doc/management/components/help-doc-catalog-tree-select.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/support/help-doc/management/components/help-doc-catalog-tree.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/help-doc/management/components/help-doc-catalog-tree.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/support/help-doc/management/components/help-doc-catalog-tree.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/help-doc/management/components/help-doc-catalog-tree.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/support/help-doc/management/components/help-doc-form-drawer.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/help-doc/management/components/help-doc-form-drawer.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/support/help-doc/management/components/help-doc-form-drawer.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/help-doc/management/components/help-doc-form-drawer.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/support/help-doc/management/components/help-doc-list.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/help-doc/management/components/help-doc-list.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/support/help-doc/management/components/help-doc-list.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/help-doc/management/components/help-doc-list.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/support/help-doc/management/help-doc-manage-list.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/help-doc/management/help-doc-manage-list.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/support/help-doc/management/help-doc-manage-list.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/help-doc/management/help-doc-manage-list.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/support/help-doc/management/help-doc-mitt.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/help-doc/management/help-doc-mitt.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/support/help-doc/management/help-doc-mitt.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/help-doc/management/help-doc-mitt.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/support/help-doc/user-view/components/help-doc-view-record-list.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/help-doc/user-view/components/help-doc-view-record-list.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/support/help-doc/user-view/components/help-doc-view-record-list.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/help-doc/user-view/components/help-doc-view-record-list.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/support/help-doc/user-view/help-doc-user-view.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/help-doc/user-view/help-doc-user-view.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/support/help-doc/user-view/help-doc-user-view.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/help-doc/user-view/help-doc-user-view.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/support/login-log/login-log-list.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/login-log/login-log-list.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/support/login-log/login-log-list.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/login-log/login-log-list.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/support/operate-log/operate-log-detail-modal.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/operate-log/operate-log-detail-modal.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/support/operate-log/operate-log-detail-modal.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/operate-log/operate-log-detail-modal.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/support/operate-log/operate-log-list.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/operate-log/operate-log-list.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/support/operate-log/operate-log-list.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/operate-log/operate-log-list.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/support/reload/do-reload-form-modal.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/reload/do-reload-form-modal.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/support/reload/do-reload-form-modal.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/reload/do-reload-form-modal.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/support/reload/reload-list.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/reload/reload-list.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/support/reload/reload-list.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/reload/reload-list.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/support/reload/reload-result-list.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/reload/reload-result-list.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/support/reload/reload-result-list.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/reload/reload-result-list.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/support/serial-number/serial-number-generate-form-modal.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/serial-number/serial-number-generate-form-modal.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/support/serial-number/serial-number-generate-form-modal.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/serial-number/serial-number-generate-form-modal.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/support/serial-number/serial-number-list.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/serial-number/serial-number-list.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/support/serial-number/serial-number-list.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/serial-number/serial-number-list.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/support/serial-number/serial-number-record-list.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/serial-number/serial-number-record-list.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/support/serial-number/serial-number-record-list.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/support/serial-number/serial-number-record-list.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/system/40X/403.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/40X/403.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/system/40X/403.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/40X/403.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/system/40X/404.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/40X/404.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/system/40X/404.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/40X/404.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/department/components/department-children/index.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/department/components/department-children/index.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/department/components/department-children/index.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/department/components/department-children/index.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/department/components/department-form-modal/index.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/department/components/department-form-modal/index.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/department/components/department-form-modal/index.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/department/components/department-form-modal/index.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/department/components/department-tree/index.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/department/components/department-tree/index.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/department/components/department-tree/index.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/department/components/department-tree/index.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/department/components/employee-department-form-modal/index.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/department/components/employee-department-form-modal/index.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/department/components/employee-department-form-modal/index.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/department/components/employee-department-form-modal/index.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/department/components/employee-form-modal/index.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/department/components/employee-form-modal/index.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/department/components/employee-form-modal/index.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/department/components/employee-form-modal/index.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/department/components/employee-list/index.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/department/components/employee-list/index.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/department/components/employee-list/index.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/department/components/employee-list/index.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/department/components/employee-password-dialog/index.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/department/components/employee-password-dialog/index.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/department/components/employee-password-dialog/index.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/department/components/employee-password-dialog/index.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/department/department-mitt.ts b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/department/department-mitt.ts similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/department/department-mitt.ts rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/department/department-mitt.ts diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/department/index.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/department/index.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/department/index.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/department/index.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/role/components/role-data-scope/index.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/role/components/role-data-scope/index.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/role/components/role-data-scope/index.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/role/components/role-data-scope/index.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/role/components/role-employee-list/index.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/role/components/role-employee-list/index.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/role/components/role-employee-list/index.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/role/components/role-employee-list/index.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/role/components/role-form-modal/index.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/role/components/role-form-modal/index.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/role/components/role-form-modal/index.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/role/components/role-form-modal/index.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/role/components/role-list/index.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/role/components/role-list/index.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/role/components/role-list/index.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/role/components/role-list/index.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/role/components/role-setting/index.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/role/components/role-setting/index.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/role/components/role-setting/index.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/role/components/role-setting/index.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/role/components/role-tree/index.less b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/role/components/role-tree/index.less similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/role/components/role-tree/index.less rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/role/components/role-tree/index.less diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/role/components/role-tree/index.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/role/components/role-tree/index.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/role/components/role-tree/index.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/role/components/role-tree/index.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/role/components/role-tree/role-tree-checkbox.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/role/components/role-tree/role-tree-checkbox.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/role/components/role-tree/role-tree-checkbox.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/role/components/role-tree/role-tree-checkbox.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/role/components/role-tree/role-tree-menu.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/role/components/role-tree/role-tree-menu.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/role/components/role-tree/role-tree-menu.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/role/components/role-tree/role-tree-menu.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/role/components/role-tree/role-tree-point.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/role/components/role-tree/role-tree-point.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/role/components/role-tree/role-tree-point.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/role/components/role-tree/role-tree-point.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/role/index.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/role/index.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/role/index.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/employee/role/index.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/system/home/components/changelog-card.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/home/components/changelog-card.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/system/home/components/changelog-card.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/home/components/changelog-card.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/system/home/components/default-home-card.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/home/components/default-home-card.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/system/home/components/default-home-card.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/home/components/default-home-card.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/system/home/components/echarts/category.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/home/components/echarts/category.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/system/home/components/echarts/category.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/home/components/echarts/category.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/system/home/components/echarts/gauge.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/home/components/echarts/gauge.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/system/home/components/echarts/gauge.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/home/components/echarts/gauge.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/system/home/components/echarts/gradient.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/home/components/echarts/gradient.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/system/home/components/echarts/gradient.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/home/components/echarts/gradient.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/system/home/components/echarts/pie.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/home/components/echarts/pie.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/system/home/components/echarts/pie.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/home/components/echarts/pie.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/system/home/components/official-account-card.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/home/components/official-account-card.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/system/home/components/official-account-card.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/home/components/official-account-card.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/system/home/components/quick-entry/home-quick-entry-modal.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/home/components/quick-entry/home-quick-entry-modal.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/system/home/components/quick-entry/home-quick-entry-modal.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/home/components/quick-entry/home-quick-entry-modal.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/system/home/components/quick-entry/home-quick-entry.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/home/components/quick-entry/home-quick-entry.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/system/home/components/quick-entry/home-quick-entry.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/home/components/quick-entry/home-quick-entry.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/system/home/components/quick-entry/init-quick-entry-list.js b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/home/components/quick-entry/init-quick-entry-list.js similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/system/home/components/quick-entry/init-quick-entry-list.js rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/home/components/quick-entry/init-quick-entry-list.js diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/system/home/components/to-be-done-card.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/home/components/to-be-done-card.vue similarity index 100% rename from smart-admin-web/javascript-ant-design-vue3/src/views/system/home/components/to-be-done-card.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/home/components/to-be-done-card.vue diff --git a/smart-admin-web/javascript-ant-design-vue3/src/views/system/home/home-header.vue b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/home/home-header.vue similarity index 99% rename from smart-admin-web/javascript-ant-design-vue3/src/views/system/home/home-header.vue rename to smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/home/home-header.vue index bb03b2f0..e02a21e1 100644 --- a/smart-admin-web/javascript-ant-design-vue3/src/views/system/home/home-header.vue +++ b/smart_admin_v2/smart-admin-web/javascript-ant-design-vue3/src/views/system/home/home-header.vue @@ -40,7 +40,7 @@