diff --git a/.gitignore b/.gitignore
index 806a9df7..3fda4751 100644
--- a/.gitignore
+++ b/.gitignore
@@ -27,4 +27,6 @@ gen
/other
/dev-sidecar-test
/packages/core/certd/yarn.lock
+/packages/test
+/test/own
/pnpm-lock.yaml
diff --git a/lerna.json b/lerna.json
new file mode 100644
index 00000000..e69de29b
diff --git a/packages/core/api/package.json b/packages/core/api/package.json
index 9c9bf721..aed4a79c 100644
--- a/packages/core/api/package.json
+++ b/packages/core/api/package.json
@@ -1,6 +1,6 @@
{
"name": "@certd/api",
- "version": "0.2.1",
+ "version": "0.3.0",
"description": "",
"type": "module",
"author": "Greper",
diff --git a/packages/core/certd/package.json b/packages/core/certd/package.json
index 7637b870..a63abd35 100644
--- a/packages/core/certd/package.json
+++ b/packages/core/certd/package.json
@@ -1,6 +1,6 @@
{
"name": "@certd/certd",
- "version": "0.2.1",
+ "version": "0.3.0",
"description": "a ssl cert keeper",
"main": "src/index.js",
"scripts": {
@@ -10,8 +10,8 @@
"author": "Greper",
"license": "MIT",
"dependencies": {
- "@certd/acme-client": "^0.2.0",
- "@certd/api": "^0.2.1",
+ "@certd/acme-client": "^0.3.0",
+ "@certd/api": "^0.3.0",
"dayjs": "^1.9.7",
"lodash-es": "^4.17.20",
"node-forge": "^0.10.0"
diff --git a/packages/core/certd/src/acme.js b/packages/core/certd/src/acme.js
index 8e83f345..6ad6a64d 100644
--- a/packages/core/certd/src/acme.js
+++ b/packages/core/certd/src/acme.js
@@ -5,6 +5,9 @@ const logger = util.logger
export class AcmeService {
constructor (store) {
this.store = store
+ acme.setLogger((text) => {
+ logger.info(text)
+ })
}
async getAccountConfig (email) {
diff --git a/packages/core/executor/package.json b/packages/core/executor/package.json
index 326170e1..ca2e0cd0 100644
--- a/packages/core/executor/package.json
+++ b/packages/core/executor/package.json
@@ -1,6 +1,6 @@
{
"name": "@certd/executor",
- "version": "0.2.2",
+ "version": "0.3.0",
"description": "",
"main": "src/index.js",
"scripts": {
@@ -10,15 +10,15 @@
},
"type": "module",
"dependencies": {
- "@certd/api": "^0.2.1",
- "@certd/certd": "^0.2.1",
+ "@certd/api": "^0.3.0",
+ "@certd/certd": "^0.3.0",
"dayjs": "^1.9.7",
"lodash-es": "^4.17.20"
},
"devDependencies": {
- "@certd/plugin-aliyun": "^0.2.2",
- "@certd/plugin-host": "^0.2.1",
- "@certd/plugin-tencent": "^0.2.2",
+ "@certd/plugin-aliyun": "^0.3.0",
+ "@certd/plugin-host": "^0.3.0",
+ "@certd/plugin-tencent": "^0.3.0",
"@rollup/plugin-commonjs": "^17.0.0",
"@rollup/plugin-json": "^4.1.0",
"@rollup/plugin-node-resolve": "^11.0.1",
diff --git a/packages/plugins/plugin-aliyun/package.json b/packages/plugins/plugin-aliyun/package.json
index a0df74f9..5dc585f0 100644
--- a/packages/plugins/plugin-aliyun/package.json
+++ b/packages/plugins/plugin-aliyun/package.json
@@ -1,6 +1,6 @@
{
"name": "@certd/plugin-aliyun",
- "version": "0.2.2",
+ "version": "0.3.0",
"description": "",
"type": "module",
"main": "./dist/index.cjs",
@@ -12,13 +12,13 @@
"@alicloud/cs20151215": "^3.0.3",
"@alicloud/openapi-client": "^0.4.0",
"@alicloud/pop-core": "^1.7.10",
- "@certd/api": "^0.2.1",
+ "@certd/api": "^0.3.0",
"dayjs": "^1.9.7",
"lodash-es": "^4.17.20"
},
"devDependencies": {
- "@certd/certd": "^0.2.1",
- "@certd/plugin-common": "^0.2.1",
+ "@certd/certd": "^0.3.0",
+ "@certd/plugin-common": "^0.3.0",
"chai": "^4.2.0",
"eslint": "^7.15.0",
"eslint-config-standard": "^16.0.2",
diff --git a/packages/plugins/plugin-common/package.json b/packages/plugins/plugin-common/package.json
index 02ac14ae..e679f93d 100644
--- a/packages/plugins/plugin-common/package.json
+++ b/packages/plugins/plugin-common/package.json
@@ -1,6 +1,6 @@
{
"name": "@certd/plugin-common",
- "version": "0.2.1",
+ "version": "0.3.0",
"description": "",
"type": "module",
"main": "./dist/index.cjs",
@@ -13,7 +13,7 @@
"kubernetes-client": "^9.0.0"
},
"devDependencies": {
- "@certd/certd": "^0.2.1",
+ "@certd/certd": "^0.3.0",
"chai": "^4.2.0",
"eslint": "^7.15.0",
"eslint-config-standard": "^16.0.2",
diff --git a/packages/plugins/plugin-host/package.json b/packages/plugins/plugin-host/package.json
index 6bb3dc86..6d1ceb86 100644
--- a/packages/plugins/plugin-host/package.json
+++ b/packages/plugins/plugin-host/package.json
@@ -1,6 +1,6 @@
{
"name": "@certd/plugin-host",
- "version": "0.2.1",
+ "version": "0.3.0",
"description": "",
"type": "module",
"main": "./dist/index.cjs",
@@ -9,13 +9,13 @@
"build": "rollup -c"
},
"dependencies": {
- "@certd/api": "^0.2.1",
+ "@certd/api": "^0.3.0",
"dayjs": "^1.9.7",
"lodash-es": "^4.17.20",
"ssh2": "^0.8.9"
},
"devDependencies": {
- "@certd/certd": "^0.2.1",
+ "@certd/certd": "^0.3.0",
"chai": "^4.2.0",
"eslint": "^7.15.0",
"eslint-config-standard": "^16.0.2",
diff --git a/packages/plugins/plugin-tencent/package.json b/packages/plugins/plugin-tencent/package.json
index b7ad98ca..9623ee48 100644
--- a/packages/plugins/plugin-tencent/package.json
+++ b/packages/plugins/plugin-tencent/package.json
@@ -1,6 +1,6 @@
{
"name": "@certd/plugin-tencent",
- "version": "0.2.2",
+ "version": "0.3.0",
"description": "",
"type": "module",
"main": "./dist/index.cjs",
@@ -9,15 +9,15 @@
"build": "rollup -c"
},
"dependencies": {
- "@certd/api": "^0.2.1",
- "@certd/plugin-common": "^0.2.1",
+ "@certd/api": "^0.3.0",
+ "@certd/plugin-common": "^0.3.0",
"dayjs": "^1.9.7",
"kubernetes-client": "^9.0.0",
"lodash-es": "^4.17.20",
"tencentcloud-sdk-nodejs": "^4.0.44"
},
"devDependencies": {
- "@certd/certd": "^0.2.1",
+ "@certd/certd": "^0.3.0",
"chai": "^4.2.0",
"eslint": "^7.15.0",
"eslint-config-standard": "^16.0.2",
diff --git a/packages/ui/certd-server/package.json b/packages/ui/certd-server/package.json
index fcb541d0..4ab36c58 100644
--- a/packages/ui/certd-server/package.json
+++ b/packages/ui/certd-server/package.json
@@ -10,11 +10,11 @@
"test": "echo \"Error: no test specified\" && exit 1"
},
"dependencies": {
- "@certd/api": "^0.2.1",
- "@certd/executor": "^0.2.2",
- "@certd/plugin-aliyun": "^0.2.2",
- "@certd/plugin-host": "^0.2.1",
- "@certd/plugin-tencent": "^0.2.2",
+ "@certd/api": "^0.3.0",
+ "@certd/executor": "^0.3.0",
+ "@certd/plugin-aliyun": "^0.3.0",
+ "@certd/plugin-host": "^0.3.0",
+ "@certd/plugin-tencent": "^0.3.0",
"compressing": "^1.5.1",
"debug": "^4.1.1",
"fs-extra": "^9.1.0",
diff --git a/packages/ui/certd-server/templates/certd-run/index.js b/packages/ui/certd-server/templates/certd-run/index.js
index 73e94cda..2d5c8500 100644
--- a/packages/ui/certd-server/templates/certd-run/index.js
+++ b/packages/ui/certd-server/templates/certd-run/index.js
@@ -3,16 +3,16 @@ import PluginAliyun from '@certd/plugin-aliyun'
import PluginTencent from '@certd/plugin-tencent'
import PluginHost from '@certd/plugin-host'
+// import options
+import { createRequire } from 'module'
+
// 安装默认插件和授权提供者
PluginAliyun.install()
PluginTencent.install()
PluginHost.install()
-
-// import options
-import { createRequire } from 'module'
const require = createRequire(import.meta.url)
-const options =require('./options.json')
+const options = require('./options.json')
-//开始执行
+// 开始执行
const executor = new Executor()
await executor.run(options)
diff --git a/packages/ui/certd-server/templates/certd-run/package.json b/packages/ui/certd-server/templates/certd-run/package.json
index eaa12c6b..9600504c 100644
--- a/packages/ui/certd-server/templates/certd-run/package.json
+++ b/packages/ui/certd-server/templates/certd-run/package.json
@@ -14,9 +14,9 @@
"author": "greper",
"license": "MIT",
"dependencies": {
- "@certd/executor": "^0.1.15",
- "@certd/plugin-aliyun": "^0.1.15",
- "@certd/plugin-host": "^0.1.15",
- "@certd/plugin-tencent": "^0.1.15"
+ "@certd/executor": "^0.3.0",
+ "@certd/plugin-aliyun": "^0.3.0",
+ "@certd/plugin-host": "^0.3.0",
+ "@certd/plugin-tencent": "^0.3.0"
}
}
diff --git a/packages/ui/certd-ui/.env b/packages/ui/certd-ui/.env
index 15f7db41..67f85a03 100644
--- a/packages/ui/certd-ui/.env
+++ b/packages/ui/certd-ui/.env
@@ -1 +1 @@
-VUE_APP_API=/api
+VITE_APP_API=/api
diff --git a/packages/ui/certd-ui/.eslintignore b/packages/ui/certd-ui/.eslintignore
new file mode 100644
index 00000000..eb79dd5f
--- /dev/null
+++ b/packages/ui/certd-ui/.eslintignore
@@ -0,0 +1,2 @@
+node_modules
+.idea
diff --git a/packages/ui/certd-ui/.eslintrc.js b/packages/ui/certd-ui/.eslintrc.js
index c1f76fb9..a10cc42d 100644
--- a/packages/ui/certd-ui/.eslintrc.js
+++ b/packages/ui/certd-ui/.eslintrc.js
@@ -1,28 +1,76 @@
module.exports = {
root: true,
env: {
- node: true
+ browser: true,
+ node: true,
+ es6: true
+ },
+ parser: "vue-eslint-parser",
+ parserOptions: {
+ parser: "@typescript-eslint/parser",
+ ecmaVersion: 2020,
+ sourceType: "module",
+ jsxPragma: "React",
+ ecmaFeatures: {
+ jsx: true,
+ tsx: true
+ }
},
extends: [
- 'plugin:vue/vue3-essential',
- '@vue/standard'
+ "plugin:vue/vue3-recommended",
+ "plugin:@typescript-eslint/recommended",
+ "plugin:prettier/recommended",
+ "prettier"
],
- parserOptions: {
- parser: 'babel-eslint'
- },
rules: {
- 'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
- 'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off'
- },
- overrides: [
- {
- files: [
- '**/__tests__/*.{j,t}s?(x)',
- '**/tests/unit/**/*.spec.{j,t}s?(x)'
- ],
- env: {
- mocha: true
- }
- }
- ]
-}
+ //"max-len": [0, 200, 2, { ignoreUrls: true }],
+ "@typescript-eslint/ban-ts-ignore": "off",
+ "@typescript-eslint/explicit-function-return-type": "off",
+ "@typescript-eslint/no-explicit-any": "off",
+ "@typescript-eslint/no-var-requires": "off",
+ "@typescript-eslint/no-empty-function": "off",
+ "@typescript-eslint/no-use-before-define": "off",
+ "@typescript-eslint/ban-ts-comment": "off",
+ "@typescript-eslint/ban-types": "off",
+ "@typescript-eslint/no-non-null-assertion": "off",
+ "@typescript-eslint/explicit-module-boundary-types": "off"
+ // "@typescript-eslint/no-unused-vars": [
+ // "error",
+ // {
+ // argsIgnorePattern: "^h$",
+ // varsIgnorePattern: "^h$",
+ // },
+ // ],
+ // "no-unused-vars": [
+ // "error",
+ // {
+ // argsIgnorePattern: "^h$",
+ // varsIgnorePattern: "^h$",
+ // },
+ // ],
+ // "vue/custom-event-name-casing": "off",
+ // "no-use-before-define": "off",
+ // "space-before-function-paren": "off",
+
+ // "vue/attributes-order": "off",
+ // "vue/one-component-per-file": "off",
+ // "vue/html-closing-bracket-newline": "off",
+ // "vue/max-attributes-per-line": "off",
+ // "vue/multiline-html-element-content-newline": "off",
+ // "vue/singleline-html-element-content-newline": "off",
+ // "vue/attribute-hyphenation": "off",
+ // "vue/require-default-prop": "off",
+ // "vue/html-self-closing": [
+ // "error",
+ // {
+ // html: {
+ // void: "always",
+ // normal: "never",
+ // component: "always",
+ // },
+ // svg: "always",
+ // math: "always",
+ // },
+ // ],
+ }
+};
diff --git a/packages/ui/certd-ui/.gitignore b/packages/ui/certd-ui/.gitignore
index cbb386fa..980be95d 100644
--- a/packages/ui/certd-ui/.gitignore
+++ b/packages/ui/certd-ui/.gitignore
@@ -1,7 +1,11 @@
-.vscode/
-node_modules/
-npm-debug.log
-yarn-error.log
+node_modules
+.DS_Store
+dist
+dist-ssr
+*.local
+/stats.html
yarn.lock
-package-lock.json
+.idea
/.idea/
+yarn-error.log
+vite-profile.cpuprofile
diff --git a/packages/ui/certd-ui/.npmignore b/packages/ui/certd-ui/.npmignore
new file mode 100644
index 00000000..b6c09bbd
--- /dev/null
+++ b/packages/ui/certd-ui/.npmignore
@@ -0,0 +1,2 @@
+node_modules
+/stats.html
diff --git a/packages/ui/certd-ui/.prettierrc b/packages/ui/certd-ui/.prettierrc
new file mode 100644
index 00000000..7944aa9b
--- /dev/null
+++ b/packages/ui/certd-ui/.prettierrc
@@ -0,0 +1,5 @@
+{
+
+ "trailingComma": "none",
+ "printWidth": 120
+}
diff --git a/packages/ui/certd-ui/index.html b/packages/ui/certd-ui/index.html
new file mode 100644
index 00000000..e4e27302
--- /dev/null
+++ b/packages/ui/certd-ui/index.html
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+ certd
+
+
+
+
+
+
+
diff --git a/packages/ui/certd-ui/package.json b/packages/ui/certd-ui/package.json
index 65e88bc0..fcc46085 100644
--- a/packages/ui/certd-ui/package.json
+++ b/packages/ui/certd-ui/package.json
@@ -1,62 +1,88 @@
{
"name": "@certd/certd-ui",
"version": "0.2.1",
- "private": false,
+ "private": true,
"scripts": {
- "dev": "vue-cli-service serve",
- "build": "vue-cli-service build",
- "test:unit": "vue-cli-service test:unit",
- "lint": "vue-cli-service lint"
+ "dev": "vite",
+ "dev:pm": "vite --mode pm",
+ "dev:force": "vite --force",
+ "debug": "vite --mode debug",
+ "debug:pm": "vite --mode debugpm",
+ "debug:force": "vite --force --mode debug",
+ "build": "vite build ",
+ "serve": "vite preview",
+ "preview": "vite preview",
+ "pretty-quick": "pretty-quick",
+ "lint-fix": "eslint --fix --ext .js --ext .jsx --ext .vue src/",
+ "upgrade": "yarn upgrade-interactive --latest"
},
+ "author": "Greper",
+ "license": "MIT",
"dependencies": {
+ "@ant-design/colors": "^6.0.0",
"@ant-design/icons-vue": "^6.0.1",
- "ant-design-vue": "^2.0.0",
- "axios": "^0.21.1",
- "core-js": "^3.8.1",
- "lodash-es": "^4.17.20",
- "vue": "^3.0.4",
- "vue-i18n": "^9.0.0-rc.2",
- "vue-router": "^4.0.1"
+ "ant-design-vue": "^3.2.12",
+ "axios": "^0.27.2",
+ "core-js": "^3.25.4",
+ "dayjs": "^1.11.5",
+ "lodash-es": "^4.17.15",
+ "mitt": "^3.0.0",
+ "vue": "^3.2.40",
+ "vue-i18n": "^9.2.2",
+ "vue-router": "^4.1.5"
},
"devDependencies": {
- "@babel/core": "^7.12.10",
- "@babel/eslint-parser": "^7.12.1",
- "@vue/cli-plugin-babel": "~5.0.0-alpha.3",
- "@vue/cli-plugin-eslint": "~5.0.0-alpha.3",
- "@vue/cli-plugin-router": "~5.0.0-alpha.3",
- "@vue/cli-plugin-unit-mocha": "~5.0.0-alpha.3",
- "@vue/cli-plugin-webpack-4": "^5.0.0-alpha.3",
- "@vue/cli-service": "~5.0.0-alpha.3",
- "@vue/compiler-sfc": "^3.0.4",
- "@vue/eslint-config-standard": "^6.0.0",
- "@vue/test-utils": "^2.0.0-0",
- "babel-eslint": "^10.1.0",
- "babel-plugin-import": "^1.13.3",
- "chai": "^4.2.0",
- "compression-webpack-plugin": "^5.0.1",
- "eslint": "^7.15.0",
- "eslint-plugin-import": "^2.20.2",
+ "@rollup/plugin-commonjs": "^22.0.2",
+ "@rollup/plugin-node-resolve": "^14.1.0",
+ "@types/chai": "^4.3.3",
+ "@types/mocha": "^10.0.0",
+ "@types/node": "^18.8.0",
+ "@typescript-eslint/eslint-plugin": "^5.38.1",
+ "@typescript-eslint/parser": "^5.38.1",
+ "@vitejs/plugin-legacy": "^2.2.0",
+ "@vitejs/plugin-vue": "^3.1.2",
+ "@vitejs/plugin-vue-jsx": "^2.0.1",
+ "@vue/compiler-sfc": "^3.2.40",
+ "@vue/eslint-config-typescript": "^11.0.2",
+ "@vue/test-utils": "^2.1.0",
+ "autoprefixer": "^10.4.12",
+ "caller-path": "^4.0.0",
+ "chai": "^4.1.2",
+ "eslint": "^8.24.0",
+ "eslint-config-prettier": "^8.1.0",
+ "eslint-plugin-import": "^2.26.0",
"eslint-plugin-node": "^11.1.0",
- "eslint-plugin-promise": "^4.2.1",
- "eslint-plugin-standard": "^5.0.0",
- "eslint-plugin-vue": "^7.2.0",
- "less": "^3.0.4",
- "less-loader": "^5.0.0",
- "lint-staged": "^9.5.0",
- "postcss": "^8.2.4",
- "webpack": "^4.0.0"
+ "eslint-plugin-prettier": "^4.2.1",
+ "eslint-plugin-promise": "^6.0.1",
+ "eslint-plugin-vue": "^9.5.1",
+ "less": "^4.1.3",
+ "less-loader": "^11.0.0",
+ "lint-staged": "^13.0.3",
+ "postcss": "^8.4.17",
+ "prettier": "2.7.1",
+ "rimraf": "^3.0.2",
+ "rollup": "^2.79.1",
+ "rollup-plugin-visualizer": "^5.8.2",
+ "stylelint": "^14.13.0",
+ "stylelint-config-prettier": "^9.0.3",
+ "stylelint-order": "^5.0.0",
+ "vite": "^3.1.4",
+ "vite-plugin-compression": "^0.5.1",
+ "vite-plugin-optimize-persist": "^0.1.2",
+ "vite-plugin-package-config": "^0.1.1",
+ "vue-eslint-parser": "^9.1.0"
},
- "resolutions": {
- "@vue/cli-*/webpack": "^4.0.0"
+ "husky": {
+ "hooks": {
+ "pre-commit": "pretty-quick --staged"
+ }
},
- "gitHooks": {
- "pre-commit": "lint-staged"
- },
- "lint-staged": {
- "*.{js,jsx,vue}": [
- "vue-cli-service lint",
- "git add"
- ]
- },
- "gitHead": "5fbd7742665c0a949333d805153e9b6af91c0a71"
+ "gitHead": "9c2162697f3affea22c9a8cbc0ca74f4034ab27e",
+ "vite": {
+ "optimizeDeps": {
+ "include": [
+ "@iconify/iconify"
+ ]
+ }
+ }
}
diff --git a/packages/ui/certd-ui/public/public/favicon.ico b/packages/ui/certd-ui/public/public/favicon.ico
new file mode 100644
index 00000000..df36fcfb
Binary files /dev/null and b/packages/ui/certd-ui/public/public/favicon.ico differ
diff --git a/packages/ui/certd-ui/public/public/images/logo-certd/logo.svg b/packages/ui/certd-ui/public/public/images/logo-certd/logo.svg
new file mode 100644
index 00000000..edcdefbe
--- /dev/null
+++ b/packages/ui/certd-ui/public/public/images/logo-certd/logo.svg
@@ -0,0 +1,7 @@
+
diff --git a/packages/ui/certd-ui/public/public/images/logo-certd/rect-black.svg b/packages/ui/certd-ui/public/public/images/logo-certd/rect-black.svg
new file mode 100644
index 00000000..19bf439f
--- /dev/null
+++ b/packages/ui/certd-ui/public/public/images/logo-certd/rect-black.svg
@@ -0,0 +1,44 @@
+
diff --git a/packages/ui/certd-ui/public/public/images/logo-certd/rect.svg b/packages/ui/certd-ui/public/public/images/logo-certd/rect.svg
new file mode 100644
index 00000000..acc2f41c
--- /dev/null
+++ b/packages/ui/certd-ui/public/public/images/logo-certd/rect.svg
@@ -0,0 +1,44 @@
+
diff --git a/packages/ui/certd-ui/public/public/images/logo-certd/square.svg b/packages/ui/certd-ui/public/public/images/logo-certd/square.svg
new file mode 100644
index 00000000..026dd978
--- /dev/null
+++ b/packages/ui/certd-ui/public/public/images/logo-certd/square.svg
@@ -0,0 +1,17 @@
+
diff --git a/packages/ui/certd-ui/public/public/images/logo/logo.svg b/packages/ui/certd-ui/public/public/images/logo/logo.svg
new file mode 100644
index 00000000..edcdefbe
--- /dev/null
+++ b/packages/ui/certd-ui/public/public/images/logo/logo.svg
@@ -0,0 +1,7 @@
+
diff --git a/packages/ui/certd-ui/public/public/images/logo/rect-black.svg b/packages/ui/certd-ui/public/public/images/logo/rect-black.svg
new file mode 100644
index 00000000..a57352ec
--- /dev/null
+++ b/packages/ui/certd-ui/public/public/images/logo/rect-black.svg
@@ -0,0 +1,108 @@
+
+
diff --git a/packages/ui/certd-ui/public/public/images/logo/rect.svg b/packages/ui/certd-ui/public/public/images/logo/rect.svg
new file mode 100644
index 00000000..acc2f41c
--- /dev/null
+++ b/packages/ui/certd-ui/public/public/images/logo/rect.svg
@@ -0,0 +1,44 @@
+
diff --git a/packages/ui/certd-ui/public/public/images/logo/square.svg b/packages/ui/certd-ui/public/public/images/logo/square.svg
new file mode 100644
index 00000000..1b1395a1
--- /dev/null
+++ b/packages/ui/certd-ui/public/public/images/logo/square.svg
@@ -0,0 +1,106 @@
+
+
diff --git a/packages/ui/certd-ui/public/public/index.css b/packages/ui/certd-ui/public/public/index.css
new file mode 100644
index 00000000..0950b050
--- /dev/null
+++ b/packages/ui/certd-ui/public/public/index.css
@@ -0,0 +1,12 @@
+html, body, #app { height: 100%; margin: 0; padding: 0; width: 100%;}
+.fs-bootstrap { background-color: #474949; height: 100%; display: flex; flex-direction: column;position: fixed;width: 100% }
+.fs-bootstrap__main {flex:1; user-select: none; width: 100%; flex-grow: 1; display: flex; justify-content: center; align-items: center; flex-direction: column; }
+.fs-bootstrap__footer { width: 100%; flex-grow: 0; text-align: center; padding: 10px 0; }
+.fs-bootstrap__footer > a { font-size: 12px; color: #ABABAB; text-decoration: none; }
+.fs-bootstrap__loading {box-sizing: border-box; height: 50px; width: 50px; margin-bottom: 5px;border:5px solid #333333;border-bottom:#aaa 5px solid;
+ border-radius:1000px; animation:load 1.1s infinite linear;-webkit-animation:load 1.1s infinite linear;-moz-animation:load 1.1s infinite linear; -o-animation:load 1.1s infinite linear;
+}
+@keyframes load {from {transform:rotate(0deg);-ms-transform:rotate(0deg);}to { transform:rotate(360deg);-ms-transform:rotate(360deg); }
+}@-webkit-keyframes load {from {-webkit-transform:rotate(0deg); }to { -webkit-transform:rotate(360deg);}
+ }@-moz-keyframes load { from { -moz-transform:rotate(0deg); } to { -moz-transform:rotate(360deg);}
+ }@-o-keyframes load { from { -o-transform:rotate(0deg);} to { -o-transform:rotate(360deg);}}
diff --git a/packages/ui/certd-ui/public/public/index.html b/packages/ui/certd-ui/public/public/index.html
new file mode 100644
index 00000000..3e5a1396
--- /dev/null
+++ b/packages/ui/certd-ui/public/public/index.html
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+ <%= htmlWebpackPlugin.options.title %>
+
+
+
+
+
+
+
diff --git a/packages/ui/certd-ui/public/public/logo.svg b/packages/ui/certd-ui/public/public/logo.svg
new file mode 100644
index 00000000..1b1395a1
--- /dev/null
+++ b/packages/ui/certd-ui/public/public/logo.svg
@@ -0,0 +1,106 @@
+
+
diff --git a/packages/ui/certd-ui/src/App.vue b/packages/ui/certd-ui/src/App.vue
index d0d9a9e8..577d0083 100644
--- a/packages/ui/certd-ui/src/App.vue
+++ b/packages/ui/certd-ui/src/App.vue
@@ -16,7 +16,6 @@
diff --git a/packages/ui/certd-ui/src/api/api.access-providers.js b/packages/ui/certd-ui/src/api/api.access-providers.js
index 37192cfc..ab0092ff 100644
--- a/packages/ui/certd-ui/src/api/api.access-providers.js
+++ b/packages/ui/certd-ui/src/api/api.access-providers.js
@@ -1,14 +1,14 @@
-import { request } from './service'
-import inputHandler from './util.input.handler'
+import { request } from "./service";
+import inputHandler from "./util.input.handler";
export default {
- async list () {
+ async list() {
const ret = await request({
- url: '/access-providers/list'
- })
+ url: "/access-providers/list"
+ });
- inputHandler.handle(ret)
+ inputHandler.handle(ret);
- return ret
+ return ret;
}
-}
+};
diff --git a/packages/ui/certd-ui/src/api/api.dns-providers.js b/packages/ui/certd-ui/src/api/api.dns-providers.js
index a9bd4462..c7787f7e 100644
--- a/packages/ui/certd-ui/src/api/api.dns-providers.js
+++ b/packages/ui/certd-ui/src/api/api.dns-providers.js
@@ -1,14 +1,14 @@
-import { request } from './service'
-import inputHandler from './util.input.handler'
+import { request } from "./service";
+import inputHandler from "./util.input.handler";
export default {
- async list () {
+ async list() {
const ret = await request({
- url: '/dns-providers/list'
- })
+ url: "/dns-providers/list"
+ });
- inputHandler.handle(ret)
+ inputHandler.handle(ret);
- return ret
+ return ret;
}
-}
+};
diff --git a/packages/ui/certd-ui/src/api/api.exports.js b/packages/ui/certd-ui/src/api/api.exports.js
index b49fb5c3..46f969de 100644
--- a/packages/ui/certd-ui/src/api/api.exports.js
+++ b/packages/ui/certd-ui/src/api/api.exports.js
@@ -1,40 +1,40 @@
-import { request } from './service'
-import _ from 'lodash-es'
-function arrayToMap (arr) {
+import { request } from "./service";
+import _ from "lodash-es";
+function arrayToMap(arr) {
if (arr && arr instanceof Array) {
- const map = {}
- _.forEach(arr, item => {
- map[item.key] = item
- })
- return map
+ const map = {};
+ _.forEach(arr, (item) => {
+ map[item.key] = item;
+ });
+ return map;
}
- return arr
+ return arr;
}
-function transfer (options) {
- options.accessProviders = arrayToMap(options.accessProviders)
+function transfer(options) {
+ options.accessProviders = arrayToMap(options.accessProviders);
}
export default {
- exportsToZip (options) {
- transfer(options)
+ exportsToZip(options) {
+ transfer(options);
return request({
- url: '/exports/toZip',
+ url: "/exports/toZip",
data: { options },
- method: 'post',
- responseType: 'blob' // 重点在于配置responseType: 'blob'
- }).then(res => {
- console.log('res', res)
- const filename = decodeURI(res.headers['content-disposition'].replace('attachment;filename=', '')) // 由后端设置下载文件名
- const blob = new Blob([res.data], { type: 'application/zip' })
- const a = document.createElement('a')
- const url = window.URL.createObjectURL(blob)
- a.href = url
- a.download = filename
- const body = document.getElementsByTagName('body')[0]
- body.appendChild(a)
- a.click()
- body.removeChild(a)
- window.URL.revokeObjectURL(url)
- })
+ method: "post",
+ responseType: "blob" // 重点在于配置responseType: 'blob'
+ }).then((res) => {
+ console.log("res", res);
+ const filename = decodeURI(res.headers["content-disposition"].replace("attachment;filename=", "")); // 由后端设置下载文件名
+ const blob = new Blob([res.data], { type: "application/zip" });
+ const a = document.createElement("a");
+ const url = window.URL.createObjectURL(blob);
+ a.href = url;
+ a.download = filename;
+ const body = document.getElementsByTagName("body")[0];
+ body.appendChild(a);
+ a.click();
+ body.removeChild(a);
+ window.URL.revokeObjectURL(url);
+ });
}
-}
+};
diff --git a/packages/ui/certd-ui/src/api/api.plugins.js b/packages/ui/certd-ui/src/api/api.plugins.js
index 331d98c4..202e875d 100644
--- a/packages/ui/certd-ui/src/api/api.plugins.js
+++ b/packages/ui/certd-ui/src/api/api.plugins.js
@@ -1,14 +1,14 @@
-import { request } from './service'
-import inputHandler from './util.input.handler'
+import { request } from "./service";
+import inputHandler from "./util.input.handler";
export default {
- async list () {
+ async list() {
const ret = await request({
- url: '/plugins/list'
- })
+ url: "/plugins/list"
+ });
- inputHandler.handle(ret)
+ inputHandler.handle(ret);
- console.log('plugins', ret)
- return ret
+ console.log("plugins", ret);
+ return ret;
}
-}
+};
diff --git a/packages/ui/certd-ui/src/api/index.js b/packages/ui/certd-ui/src/api/index.js
index 113eb526..21852c05 100644
--- a/packages/ui/certd-ui/src/api/index.js
+++ b/packages/ui/certd-ui/src/api/index.js
@@ -1,10 +1,15 @@
-import { assign, map } from 'lodash'
-import { service, request } from './service'
+import { assign, map } from "lodash";
+import { service, request } from "./service";
-const files = require.context('./modules', false, /\.js$/)
-const generators = files.keys().map(key => files(key).default)
+const files = require.context("./modules", false, /\.js$/);
+const generators = files.keys().map((key) => files(key).default);
-export default assign({}, ...map(generators, generator => generator({
- service,
- request
-})))
+export default assign(
+ {},
+ ...map(generators, (generator) =>
+ generator({
+ service,
+ request
+ })
+ )
+);
diff --git a/packages/ui/certd-ui/src/api/service.js b/packages/ui/certd-ui/src/api/service.js
index d688a48d..162ab4bd 100644
--- a/packages/ui/certd-ui/src/api/service.js
+++ b/packages/ui/certd-ui/src/api/service.js
@@ -1,94 +1,117 @@
-import axios from 'axios'
-import { get } from 'lodash-es'
-import { errorLog, errorCreate } from './tools'
-
+import axios from "axios";
+import { get } from "lodash-es";
+import { errorLog, errorCreate } from "./tools";
+import { env } from "/src/utils/util.env";
/**
* @description 创建请求实例
*/
-function createService () {
+function createService() {
// 创建一个 axios 实例
- const service = axios.create()
+ const service = axios.create();
// 请求拦截
service.interceptors.request.use(
- config => config,
- error => {
+ (config) => config,
+ (error) => {
// 发送失败
- console.log(error)
- return Promise.reject(error)
+ console.log(error);
+ return Promise.reject(error);
}
- )
+ );
// 响应拦截
service.interceptors.response.use(
- response => {
- console.log('response.config', response.config)
- if (response.config.responseType === 'blob') {
- return response
+ (response) => {
+ console.log("response.config", response.config);
+ if (response.config.responseType === "blob") {
+ return response;
}
// dataAxios 是 axios 返回数据中的 data
- const dataAxios = response.data
+ const dataAxios = response.data;
// 这个状态码是和后端约定的
- const { code } = dataAxios
+ const { code } = dataAxios;
// 根据 code 进行判断
if (code === undefined) {
// 如果没有 code 代表这不是项目后端开发的接口 比如可能是 D2Admin 请求最新版本
if (response.config.unpack) {
- return dataAxios
+ return dataAxios;
}
- return dataAxios.data
+ return dataAxios.data;
} else {
// 有 code 代表这是一个后端接口 可以进行进一步的判断
switch (code) {
case 0:
// [ 示例 ] code === 0 代表没有错误
- return dataAxios.data
+ return dataAxios.data;
default:
// 不是正确的 code
- errorCreate(`${dataAxios.msg}: ${response.config.url}`)
- return dataAxios
+ errorCreate(`${dataAxios.msg}: ${response.config.url}`);
+ return dataAxios;
}
}
},
- error => {
- const status = get(error, 'response.status')
+ (error) => {
+ const status = get(error, "response.status");
switch (status) {
- case 400: error.message = '请求错误'; break
- case 401: error.message = '未授权,请登录'; break
- case 403: error.message = '拒绝访问'; break
- case 404: error.message = `请求地址出错: ${error.response.config.url}`; break
- case 408: error.message = '请求超时'; break
- case 500: error.message = '服务器内部错误'; break
- case 501: error.message = '服务未实现'; break
- case 502: error.message = '网关错误'; break
- case 503: error.message = '服务不可用'; break
- case 504: error.message = '网关超时'; break
- case 505: error.message = 'HTTP版本不受支持'; break
- default: break
+ case 400:
+ error.message = "请求错误";
+ break;
+ case 401:
+ error.message = "未授权,请登录";
+ break;
+ case 403:
+ error.message = "拒绝访问";
+ break;
+ case 404:
+ error.message = `请求地址出错: ${error.response.config.url}`;
+ break;
+ case 408:
+ error.message = "请求超时";
+ break;
+ case 500:
+ error.message = "服务器内部错误";
+ break;
+ case 501:
+ error.message = "服务未实现";
+ break;
+ case 502:
+ error.message = "网关错误";
+ break;
+ case 503:
+ error.message = "服务不可用";
+ break;
+ case 504:
+ error.message = "网关超时";
+ break;
+ case 505:
+ error.message = "HTTP版本不受支持";
+ break;
+ default:
+ break;
}
- errorLog(error)
- return Promise.reject(error)
+ errorLog(error);
+ return Promise.reject(error);
}
- )
- return service
+ );
+ return service;
}
/**
* @description 创建请求方法
* @param {Object} service axios 实例
*/
-function createRequestFunction (service) {
+function createRequestFunction(service) {
return function (config) {
const configDefault = {
headers: {
- 'Content-Type': get(config, 'headers.Content-Type', 'application/json')
+ "Content-Type": get(config, "headers.Content-Type", "application/json")
},
timeout: 5000,
- baseURL: process.env.VUE_APP_API,
+ baseURL: env.API,
data: {}
- }
- return service(Object.assign(configDefault, config))
- }
+ };
+ return service(Object.assign(configDefault, config));
+ };
}
// 用于真实网络请求的实例和请求方法
-export const service = createService()
-export const request = createRequestFunction(service)
+export const service = createService();
+export const request = createRequestFunction(service);
diff --git a/packages/ui/certd-ui/src/api/tools.js b/packages/ui/certd-ui/src/api/tools.js
index 7526ff94..d35f5064 100644
--- a/packages/ui/certd-ui/src/api/tools.js
+++ b/packages/ui/certd-ui/src/api/tools.js
@@ -1,18 +1,18 @@
-import { notification } from 'ant-design-vue'
+import { notification } from "ant-design-vue";
/**
* @description 安全地解析 json 字符串
* @param {String} jsonString 需要解析的 json 字符串
* @param {String} defaultValue 默认值
*/
-export function parse (jsonString = '{}', defaultValue = {}) {
- let result = defaultValue
+export function parse(jsonString = "{}", defaultValue = {}) {
+ let result = defaultValue;
try {
- result = JSON.parse(jsonString)
+ result = JSON.parse(jsonString);
} catch (error) {
- console.log(error)
+ console.log(error);
}
- return result
+ return result;
}
/**
@@ -21,11 +21,8 @@ export function parse (jsonString = '{}', defaultValue = {}) {
* @param {String} msg 状态信息
* @param {Number} code 状态码
*/
-export function response (data = {}, msg = '', code = 0) {
- return [
- 200,
- { code, msg, data }
- ]
+export function response(data = {}, msg = "", code = 0) {
+ return [200, { code, msg, data }];
}
/**
@@ -33,8 +30,8 @@ export function response (data = {}, msg = '', code = 0) {
* @param {Any} data 返回值
* @param {String} msg 状态信息
*/
-export function responseSuccess (data = {}, msg = '成功') {
- return response(data, msg)
+export function responseSuccess(data = {}, msg = "成功") {
+ return response(data, msg);
}
/**
@@ -43,29 +40,29 @@ export function responseSuccess (data = {}, msg = '成功') {
* @param {String} msg 状态信息
* @param {Number} code 状态码
*/
-export function responseError (data = {}, msg = '请求失败', code = 500) {
- return response(data, msg, code)
+export function responseError(data = {}, msg = "请求失败", code = 500) {
+ return response(data, msg, code);
}
/**
* @description 记录和显示错误
* @param {Error} error 错误对象
*/
-export function errorLog (error) {
+export function errorLog(error) {
// 打印到控制台
- console.log(error)
+ console.log(error);
// 显示提示
notification.error({
message: error.message
- })
+ });
}
/**
* @description 创建一个错误
* @param {String} msg 错误信息
*/
-export function errorCreate (msg) {
- const error = new Error(msg)
- errorLog(error)
- throw error
+export function errorCreate(msg) {
+ const error = new Error(msg);
+ errorLog(error);
+ throw error;
}
diff --git a/packages/ui/certd-ui/src/api/util.input.handler.js b/packages/ui/certd-ui/src/api/util.input.handler.js
index d94b7ff3..fc1b79e7 100644
--- a/packages/ui/certd-ui/src/api/util.input.handler.js
+++ b/packages/ui/certd-ui/src/api/util.input.handler.js
@@ -1,37 +1,35 @@
-import _ from 'lodash-es'
+import _ from "lodash-es";
-function handleInputs (inputs) {
+function handleInputs(inputs) {
if (inputs == null) {
- return
+ return;
}
_.forEach(inputs, (item, key) => {
if (item.required === true) {
if (item.component == null) {
- item.component = {}
+ item.component = {};
}
- let rules = item.component.rules
+ let rules = item.component.rules;
if (rules == null) {
- item.component.rules = rules = []
+ item.component.rules = rules = [];
}
if (rules.length > 0) {
- const hasRequired = rules.filter(rule => {
- return rule.required === true
- })
+ const hasRequired = rules.filter((rule) => {
+ return rule.required === true;
+ });
if (hasRequired.length > 0) {
- return
+ return;
}
}
- rules.push({ required: true, message: '该项必填' })
- delete item.required
+ rules.push({ required: true, message: "该项必填" });
+ delete item.required;
}
- })
+ });
}
export default {
-
- handle (list) {
- _.forEach(list, item => {
- handleInputs(item.input)
- })
+ handle(list) {
+ _.forEach(list, (item) => {
+ handleInputs(item.input);
+ });
}
-
-}
+};
diff --git a/packages/ui/certd-ui/src/components/access-provider-selector/access-provider-manager.vue b/packages/ui/certd-ui/src/components/access-provider-selector/access-provider-manager.vue
index 5342a906..51c2c56e 100644
--- a/packages/ui/certd-ui/src/components/access-provider-selector/access-provider-manager.vue
+++ b/packages/ui/certd-ui/src/components/access-provider-selector/access-provider-manager.vue
@@ -5,7 +5,8 @@
:closable="true"
width="500px"
v-model:visible="visible"
- :after-visible-change="onAfterVisibleChange"
+ :destroyOnClose="true"
+ @after-visible-change="onAfterVisibleChange"
>