Merge branch 'master' into v2
# Conflicts: # .gitignore # .gitmodules # lerna.jsonpull/9/head^2
|
@ -27,4 +27,6 @@ gen
|
||||||
/other
|
/other
|
||||||
/dev-sidecar-test
|
/dev-sidecar-test
|
||||||
/packages/core/certd/yarn.lock
|
/packages/core/certd/yarn.lock
|
||||||
|
/packages/test
|
||||||
|
/test/own
|
||||||
/pnpm-lock.yaml
|
/pnpm-lock.yaml
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@certd/api",
|
"name": "@certd/api",
|
||||||
"version": "0.2.1",
|
"version": "0.3.0",
|
||||||
"description": "",
|
"description": "",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"author": "Greper",
|
"author": "Greper",
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@certd/certd",
|
"name": "@certd/certd",
|
||||||
"version": "0.2.1",
|
"version": "0.3.0",
|
||||||
"description": "a ssl cert keeper",
|
"description": "a ssl cert keeper",
|
||||||
"main": "src/index.js",
|
"main": "src/index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
@ -10,8 +10,8 @@
|
||||||
"author": "Greper",
|
"author": "Greper",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@certd/acme-client": "^0.2.0",
|
"@certd/acme-client": "^0.3.0",
|
||||||
"@certd/api": "^0.2.1",
|
"@certd/api": "^0.3.0",
|
||||||
"dayjs": "^1.9.7",
|
"dayjs": "^1.9.7",
|
||||||
"lodash-es": "^4.17.20",
|
"lodash-es": "^4.17.20",
|
||||||
"node-forge": "^0.10.0"
|
"node-forge": "^0.10.0"
|
||||||
|
|
|
@ -5,6 +5,9 @@ const logger = util.logger
|
||||||
export class AcmeService {
|
export class AcmeService {
|
||||||
constructor (store) {
|
constructor (store) {
|
||||||
this.store = store
|
this.store = store
|
||||||
|
acme.setLogger((text) => {
|
||||||
|
logger.info(text)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
async getAccountConfig (email) {
|
async getAccountConfig (email) {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@certd/executor",
|
"name": "@certd/executor",
|
||||||
"version": "0.2.2",
|
"version": "0.3.0",
|
||||||
"description": "",
|
"description": "",
|
||||||
"main": "src/index.js",
|
"main": "src/index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
@ -10,15 +10,15 @@
|
||||||
},
|
},
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@certd/api": "^0.2.1",
|
"@certd/api": "^0.3.0",
|
||||||
"@certd/certd": "^0.2.1",
|
"@certd/certd": "^0.3.0",
|
||||||
"dayjs": "^1.9.7",
|
"dayjs": "^1.9.7",
|
||||||
"lodash-es": "^4.17.20"
|
"lodash-es": "^4.17.20"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@certd/plugin-aliyun": "^0.2.2",
|
"@certd/plugin-aliyun": "^0.3.0",
|
||||||
"@certd/plugin-host": "^0.2.1",
|
"@certd/plugin-host": "^0.3.0",
|
||||||
"@certd/plugin-tencent": "^0.2.2",
|
"@certd/plugin-tencent": "^0.3.0",
|
||||||
"@rollup/plugin-commonjs": "^17.0.0",
|
"@rollup/plugin-commonjs": "^17.0.0",
|
||||||
"@rollup/plugin-json": "^4.1.0",
|
"@rollup/plugin-json": "^4.1.0",
|
||||||
"@rollup/plugin-node-resolve": "^11.0.1",
|
"@rollup/plugin-node-resolve": "^11.0.1",
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@certd/plugin-aliyun",
|
"name": "@certd/plugin-aliyun",
|
||||||
"version": "0.2.2",
|
"version": "0.3.0",
|
||||||
"description": "",
|
"description": "",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "./dist/index.cjs",
|
"main": "./dist/index.cjs",
|
||||||
|
@ -12,13 +12,13 @@
|
||||||
"@alicloud/cs20151215": "^3.0.3",
|
"@alicloud/cs20151215": "^3.0.3",
|
||||||
"@alicloud/openapi-client": "^0.4.0",
|
"@alicloud/openapi-client": "^0.4.0",
|
||||||
"@alicloud/pop-core": "^1.7.10",
|
"@alicloud/pop-core": "^1.7.10",
|
||||||
"@certd/api": "^0.2.1",
|
"@certd/api": "^0.3.0",
|
||||||
"dayjs": "^1.9.7",
|
"dayjs": "^1.9.7",
|
||||||
"lodash-es": "^4.17.20"
|
"lodash-es": "^4.17.20"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@certd/certd": "^0.2.1",
|
"@certd/certd": "^0.3.0",
|
||||||
"@certd/plugin-common": "^0.2.1",
|
"@certd/plugin-common": "^0.3.0",
|
||||||
"chai": "^4.2.0",
|
"chai": "^4.2.0",
|
||||||
"eslint": "^7.15.0",
|
"eslint": "^7.15.0",
|
||||||
"eslint-config-standard": "^16.0.2",
|
"eslint-config-standard": "^16.0.2",
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@certd/plugin-common",
|
"name": "@certd/plugin-common",
|
||||||
"version": "0.2.1",
|
"version": "0.3.0",
|
||||||
"description": "",
|
"description": "",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "./dist/index.cjs",
|
"main": "./dist/index.cjs",
|
||||||
|
@ -13,7 +13,7 @@
|
||||||
"kubernetes-client": "^9.0.0"
|
"kubernetes-client": "^9.0.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@certd/certd": "^0.2.1",
|
"@certd/certd": "^0.3.0",
|
||||||
"chai": "^4.2.0",
|
"chai": "^4.2.0",
|
||||||
"eslint": "^7.15.0",
|
"eslint": "^7.15.0",
|
||||||
"eslint-config-standard": "^16.0.2",
|
"eslint-config-standard": "^16.0.2",
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@certd/plugin-host",
|
"name": "@certd/plugin-host",
|
||||||
"version": "0.2.1",
|
"version": "0.3.0",
|
||||||
"description": "",
|
"description": "",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "./dist/index.cjs",
|
"main": "./dist/index.cjs",
|
||||||
|
@ -9,13 +9,13 @@
|
||||||
"build": "rollup -c"
|
"build": "rollup -c"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@certd/api": "^0.2.1",
|
"@certd/api": "^0.3.0",
|
||||||
"dayjs": "^1.9.7",
|
"dayjs": "^1.9.7",
|
||||||
"lodash-es": "^4.17.20",
|
"lodash-es": "^4.17.20",
|
||||||
"ssh2": "^0.8.9"
|
"ssh2": "^0.8.9"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@certd/certd": "^0.2.1",
|
"@certd/certd": "^0.3.0",
|
||||||
"chai": "^4.2.0",
|
"chai": "^4.2.0",
|
||||||
"eslint": "^7.15.0",
|
"eslint": "^7.15.0",
|
||||||
"eslint-config-standard": "^16.0.2",
|
"eslint-config-standard": "^16.0.2",
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "@certd/plugin-tencent",
|
"name": "@certd/plugin-tencent",
|
||||||
"version": "0.2.2",
|
"version": "0.3.0",
|
||||||
"description": "",
|
"description": "",
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"main": "./dist/index.cjs",
|
"main": "./dist/index.cjs",
|
||||||
|
@ -9,15 +9,15 @@
|
||||||
"build": "rollup -c"
|
"build": "rollup -c"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@certd/api": "^0.2.1",
|
"@certd/api": "^0.3.0",
|
||||||
"@certd/plugin-common": "^0.2.1",
|
"@certd/plugin-common": "^0.3.0",
|
||||||
"dayjs": "^1.9.7",
|
"dayjs": "^1.9.7",
|
||||||
"kubernetes-client": "^9.0.0",
|
"kubernetes-client": "^9.0.0",
|
||||||
"lodash-es": "^4.17.20",
|
"lodash-es": "^4.17.20",
|
||||||
"tencentcloud-sdk-nodejs": "^4.0.44"
|
"tencentcloud-sdk-nodejs": "^4.0.44"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@certd/certd": "^0.2.1",
|
"@certd/certd": "^0.3.0",
|
||||||
"chai": "^4.2.0",
|
"chai": "^4.2.0",
|
||||||
"eslint": "^7.15.0",
|
"eslint": "^7.15.0",
|
||||||
"eslint-config-standard": "^16.0.2",
|
"eslint-config-standard": "^16.0.2",
|
||||||
|
|
|
@ -10,11 +10,11 @@
|
||||||
"test": "echo \"Error: no test specified\" && exit 1"
|
"test": "echo \"Error: no test specified\" && exit 1"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@certd/api": "^0.2.1",
|
"@certd/api": "^0.3.0",
|
||||||
"@certd/executor": "^0.2.2",
|
"@certd/executor": "^0.3.0",
|
||||||
"@certd/plugin-aliyun": "^0.2.2",
|
"@certd/plugin-aliyun": "^0.3.0",
|
||||||
"@certd/plugin-host": "^0.2.1",
|
"@certd/plugin-host": "^0.3.0",
|
||||||
"@certd/plugin-tencent": "^0.2.2",
|
"@certd/plugin-tencent": "^0.3.0",
|
||||||
"compressing": "^1.5.1",
|
"compressing": "^1.5.1",
|
||||||
"debug": "^4.1.1",
|
"debug": "^4.1.1",
|
||||||
"fs-extra": "^9.1.0",
|
"fs-extra": "^9.1.0",
|
||||||
|
|
|
@ -3,16 +3,16 @@ import PluginAliyun from '@certd/plugin-aliyun'
|
||||||
import PluginTencent from '@certd/plugin-tencent'
|
import PluginTencent from '@certd/plugin-tencent'
|
||||||
import PluginHost from '@certd/plugin-host'
|
import PluginHost from '@certd/plugin-host'
|
||||||
|
|
||||||
|
// import options
|
||||||
|
import { createRequire } from 'module'
|
||||||
|
|
||||||
// 安装默认插件和授权提供者
|
// 安装默认插件和授权提供者
|
||||||
PluginAliyun.install()
|
PluginAliyun.install()
|
||||||
PluginTencent.install()
|
PluginTencent.install()
|
||||||
PluginHost.install()
|
PluginHost.install()
|
||||||
|
|
||||||
// import options
|
|
||||||
import { createRequire } from 'module'
|
|
||||||
const require = createRequire(import.meta.url)
|
const require = createRequire(import.meta.url)
|
||||||
const options =require('./options.json')
|
const options = require('./options.json')
|
||||||
|
|
||||||
//开始执行
|
// 开始执行
|
||||||
const executor = new Executor()
|
const executor = new Executor()
|
||||||
await executor.run(options)
|
await executor.run(options)
|
||||||
|
|
|
@ -14,9 +14,9 @@
|
||||||
"author": "greper",
|
"author": "greper",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@certd/executor": "^0.1.15",
|
"@certd/executor": "^0.3.0",
|
||||||
"@certd/plugin-aliyun": "^0.1.15",
|
"@certd/plugin-aliyun": "^0.3.0",
|
||||||
"@certd/plugin-host": "^0.1.15",
|
"@certd/plugin-host": "^0.3.0",
|
||||||
"@certd/plugin-tencent": "^0.1.15"
|
"@certd/plugin-tencent": "^0.3.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
VUE_APP_API=/api
|
VITE_APP_API=/api
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
node_modules
|
||||||
|
.idea
|
|
@ -1,28 +1,76 @@
|
||||||
module.exports = {
|
module.exports = {
|
||||||
root: true,
|
root: true,
|
||||||
env: {
|
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: [
|
extends: [
|
||||||
'plugin:vue/vue3-essential',
|
"plugin:vue/vue3-recommended",
|
||||||
'@vue/standard'
|
"plugin:@typescript-eslint/recommended",
|
||||||
|
"plugin:prettier/recommended",
|
||||||
|
"prettier"
|
||||||
],
|
],
|
||||||
parserOptions: {
|
|
||||||
parser: 'babel-eslint'
|
|
||||||
},
|
|
||||||
rules: {
|
rules: {
|
||||||
'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off',
|
//"max-len": [0, 200, 2, { ignoreUrls: true }],
|
||||||
'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off'
|
"@typescript-eslint/ban-ts-ignore": "off",
|
||||||
},
|
"@typescript-eslint/explicit-function-return-type": "off",
|
||||||
overrides: [
|
"@typescript-eslint/no-explicit-any": "off",
|
||||||
{
|
"@typescript-eslint/no-var-requires": "off",
|
||||||
files: [
|
"@typescript-eslint/no-empty-function": "off",
|
||||||
'**/__tests__/*.{j,t}s?(x)',
|
"@typescript-eslint/no-use-before-define": "off",
|
||||||
'**/tests/unit/**/*.spec.{j,t}s?(x)'
|
"@typescript-eslint/ban-ts-comment": "off",
|
||||||
],
|
"@typescript-eslint/ban-types": "off",
|
||||||
env: {
|
"@typescript-eslint/no-non-null-assertion": "off",
|
||||||
mocha: true
|
"@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",
|
||||||
|
// },
|
||||||
|
// ],
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
|
@ -1,7 +1,11 @@
|
||||||
.vscode/
|
node_modules
|
||||||
node_modules/
|
.DS_Store
|
||||||
npm-debug.log
|
dist
|
||||||
yarn-error.log
|
dist-ssr
|
||||||
|
*.local
|
||||||
|
/stats.html
|
||||||
yarn.lock
|
yarn.lock
|
||||||
package-lock.json
|
.idea
|
||||||
/.idea/
|
/.idea/
|
||||||
|
yarn-error.log
|
||||||
|
vite-profile.cpuprofile
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
node_modules
|
||||||
|
/stats.html
|
|
@ -0,0 +1,5 @@
|
||||||
|
{
|
||||||
|
|
||||||
|
"trailingComma": "none",
|
||||||
|
"printWidth": 120
|
||||||
|
}
|
|
@ -0,0 +1,21 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="UTF-8" />
|
||||||
|
<link rel="icon" href="/logo.svg" />
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||||
|
<title>certd</title>
|
||||||
|
<link rel="stylesheet" type="text/css" href="/index.css" />
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div id="app">
|
||||||
|
<div class="fs-bootstrap">
|
||||||
|
<div class="fs-bootstrap__main">
|
||||||
|
<div class="fs-bootstrap__loading"></div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<script type="module" src="/src/main.ts"></script>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -1,62 +1,88 @@
|
||||||
{
|
{
|
||||||
"name": "@certd/certd-ui",
|
"name": "@certd/certd-ui",
|
||||||
"version": "0.2.1",
|
"version": "0.2.1",
|
||||||
"private": false,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"dev": "vue-cli-service serve",
|
"dev": "vite",
|
||||||
"build": "vue-cli-service build",
|
"dev:pm": "vite --mode pm",
|
||||||
"test:unit": "vue-cli-service test:unit",
|
"dev:force": "vite --force",
|
||||||
"lint": "vue-cli-service lint"
|
"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": {
|
"dependencies": {
|
||||||
|
"@ant-design/colors": "^6.0.0",
|
||||||
"@ant-design/icons-vue": "^6.0.1",
|
"@ant-design/icons-vue": "^6.0.1",
|
||||||
"ant-design-vue": "^2.0.0",
|
"ant-design-vue": "^3.2.12",
|
||||||
"axios": "^0.21.1",
|
"axios": "^0.27.2",
|
||||||
"core-js": "^3.8.1",
|
"core-js": "^3.25.4",
|
||||||
"lodash-es": "^4.17.20",
|
"dayjs": "^1.11.5",
|
||||||
"vue": "^3.0.4",
|
"lodash-es": "^4.17.15",
|
||||||
"vue-i18n": "^9.0.0-rc.2",
|
"mitt": "^3.0.0",
|
||||||
"vue-router": "^4.0.1"
|
"vue": "^3.2.40",
|
||||||
|
"vue-i18n": "^9.2.2",
|
||||||
|
"vue-router": "^4.1.5"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@babel/core": "^7.12.10",
|
"@rollup/plugin-commonjs": "^22.0.2",
|
||||||
"@babel/eslint-parser": "^7.12.1",
|
"@rollup/plugin-node-resolve": "^14.1.0",
|
||||||
"@vue/cli-plugin-babel": "~5.0.0-alpha.3",
|
"@types/chai": "^4.3.3",
|
||||||
"@vue/cli-plugin-eslint": "~5.0.0-alpha.3",
|
"@types/mocha": "^10.0.0",
|
||||||
"@vue/cli-plugin-router": "~5.0.0-alpha.3",
|
"@types/node": "^18.8.0",
|
||||||
"@vue/cli-plugin-unit-mocha": "~5.0.0-alpha.3",
|
"@typescript-eslint/eslint-plugin": "^5.38.1",
|
||||||
"@vue/cli-plugin-webpack-4": "^5.0.0-alpha.3",
|
"@typescript-eslint/parser": "^5.38.1",
|
||||||
"@vue/cli-service": "~5.0.0-alpha.3",
|
"@vitejs/plugin-legacy": "^2.2.0",
|
||||||
"@vue/compiler-sfc": "^3.0.4",
|
"@vitejs/plugin-vue": "^3.1.2",
|
||||||
"@vue/eslint-config-standard": "^6.0.0",
|
"@vitejs/plugin-vue-jsx": "^2.0.1",
|
||||||
"@vue/test-utils": "^2.0.0-0",
|
"@vue/compiler-sfc": "^3.2.40",
|
||||||
"babel-eslint": "^10.1.0",
|
"@vue/eslint-config-typescript": "^11.0.2",
|
||||||
"babel-plugin-import": "^1.13.3",
|
"@vue/test-utils": "^2.1.0",
|
||||||
"chai": "^4.2.0",
|
"autoprefixer": "^10.4.12",
|
||||||
"compression-webpack-plugin": "^5.0.1",
|
"caller-path": "^4.0.0",
|
||||||
"eslint": "^7.15.0",
|
"chai": "^4.1.2",
|
||||||
"eslint-plugin-import": "^2.20.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-node": "^11.1.0",
|
||||||
"eslint-plugin-promise": "^4.2.1",
|
"eslint-plugin-prettier": "^4.2.1",
|
||||||
"eslint-plugin-standard": "^5.0.0",
|
"eslint-plugin-promise": "^6.0.1",
|
||||||
"eslint-plugin-vue": "^7.2.0",
|
"eslint-plugin-vue": "^9.5.1",
|
||||||
"less": "^3.0.4",
|
"less": "^4.1.3",
|
||||||
"less-loader": "^5.0.0",
|
"less-loader": "^11.0.0",
|
||||||
"lint-staged": "^9.5.0",
|
"lint-staged": "^13.0.3",
|
||||||
"postcss": "^8.2.4",
|
"postcss": "^8.4.17",
|
||||||
"webpack": "^4.0.0"
|
"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": {
|
"husky": {
|
||||||
"@vue/cli-*/webpack": "^4.0.0"
|
"hooks": {
|
||||||
|
"pre-commit": "pretty-quick --staged"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"gitHooks": {
|
"gitHead": "9c2162697f3affea22c9a8cbc0ca74f4034ab27e",
|
||||||
"pre-commit": "lint-staged"
|
"vite": {
|
||||||
},
|
"optimizeDeps": {
|
||||||
"lint-staged": {
|
"include": [
|
||||||
"*.{js,jsx,vue}": [
|
"@iconify/iconify"
|
||||||
"vue-cli-service lint",
|
|
||||||
"git add"
|
|
||||||
]
|
]
|
||||||
},
|
}
|
||||||
"gitHead": "5fbd7742665c0a949333d805153e9b6af91c0a71"
|
}
|
||||||
}
|
}
|
||||||
|
|
After Width: | Height: | Size: 4.2 KiB |
|
@ -0,0 +1,7 @@
|
||||||
|
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width="500" height="500" viewBox="0 0 500.000000 500.000000"
|
||||||
|
>
|
||||||
|
<path d="M28.34 56.68h28.34V36.12H28.34a7.79 7.79 0 1 1 0-15.58h19.84v9.05h8.5V12H28.34a16.29 16.29 0 0 0 0 32.58h19.84v3.56H28.34a19.84 19.84 0 0 1 0-39.68h28.34V0H28.34a28.34 28.34 0 0 0 0 56.68z"
|
||||||
|
transform="translate(70, 76) scale(6,6)"
|
||||||
|
></path>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 402 B |
|
@ -0,0 +1,44 @@
|
||||||
|
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width="800" height="300" viewBox="0 0 800.000000 300.000000"
|
||||||
|
>
|
||||||
|
|
||||||
|
<g fill="#333">
|
||||||
|
<path d="M28.34 56.68h28.34V36.12H28.34a7.79 7.79 0 1 1 0-15.58h19.84v9.05h8.5V12H28.34a16.29 16.29 0 0 0 0 32.58h19.84v3.56H28.34a19.84 19.84 0 0 1 0-39.68h28.34V0H28.34a28.34 28.34 0 0 0 0 56.68z"
|
||||||
|
transform="translate(40, 40) scale(4,4)"
|
||||||
|
></path>
|
||||||
|
<g transform="translate(280, 260) scale(2,2)">
|
||||||
|
<path d="M28.95-58.70L49.98-58.70L49.98-48.22L33.70-48.22Q27.37-48.22 24.46-47.34Q21.56-46.46 19.62-43.91L19.62-43.91Q18.30-42.15 17.82-40.39Q17.34-38.63 16.98-34.41L16.98-34.41L49.98-34.41L49.98-23.94L16.98-23.94Q17.69-16.37 21.47-13.42Q25.26-10.47 34.32-10.47L34.32-10.47L49.98-10.47L49.98 0L33.70 0Q27.10 0 22.09-0.79L22.09-0.79Q14.17-2.11 9.50-7.74L9.50-7.74Q2.82-15.84 2.82-29.66L2.82-29.66Q2.82-44.97 12.23-53.50L12.23-53.50Q15.49-56.41 19.14-57.55Q22.79-58.70 28.95-58.70L28.95-58.70Z"
|
||||||
|
transform="translate(0 0) "
|
||||||
|
|
||||||
|
></path>
|
||||||
|
<path d="M28.51-22.26L18.48-22.26L18.48 0L5.98 0L5.98-58.70L34.67-58.70Q46.99-58.70 51.83-55.53L51.83-55.53Q55.18-53.42 56.98-49.94Q58.78-46.46 58.78-42.33L58.78-42.33Q58.78-33.97 54.56-29.39L54.56-29.39Q51.92-26.66 47.61-25.26L47.61-25.26Q51.04-24.02 52.80-22.66Q54.56-21.30 55.97-18.66L55.97-18.66Q57.02-16.54 57.51-14.61Q57.99-12.67 58.26-8.89L58.26-8.89Q58.78-2.55 59.66 0L59.66 0L45.67 0Q45.06-2.02 44.35-8.36L44.35-8.36Q43.91-13.46 42.55-16.19Q41.18-18.92 38.46-20.50L38.46-20.50Q35.02-22.35 28.51-22.26L28.51-22.26ZM18.48-48.22L18.48-32.74L35.99-32.74Q40.39-32.74 42.24-34.06L42.24-34.06Q45.06-35.99 45.06-40.83L45.06-40.83Q45.06-46.20 40.83-47.70L40.83-47.70Q39.34-48.22 35.99-48.22L35.99-48.22L18.48-48.22Z"
|
||||||
|
transform="translate(58.855999999999995 0) "
|
||||||
|
|
||||||
|
></path>
|
||||||
|
<path d="M19.01 0L19.01-48.22L0.35-48.22L0.35-58.70L50.95-58.70L50.95-48.22L31.50-48.22L31.50 0L19.01 0Z"
|
||||||
|
transform="translate(126.68799999999999 0) "
|
||||||
|
></path>
|
||||||
|
<path d="M5.98 0L5.98-58.70L30.89-58.70Q40.22-58.70 45.32-56.85L45.32-56.85Q54.74-53.42 57.90-44.26L57.90-44.26Q60.28-37.22 60.28-29.22L60.28-29.22Q60.28-21.30 57.99-14.26L57.99-14.26Q55.70-7.04 50.42-3.61L50.42-3.61Q47.08-1.50 43.08-0.75Q39.07 0 30.89 0L30.89 0L5.98 0ZM30.89-48.22L18.48-48.22L18.48-10.47L30.89-10.47Q39.07-10.47 42.24-14.08L42.24-14.08Q44.18-16.37 45.36-20.50Q46.55-24.64 46.55-29.30L46.55-29.30Q46.55-34.50 45.14-38.81Q43.74-43.12 41.45-45.23L41.45-45.23Q38.10-48.22 30.89-48.22L30.89-48.22Z"
|
||||||
|
transform="translate(183.07999999999998 0) "
|
||||||
|
></path>
|
||||||
|
</g>
|
||||||
|
<!-- <path d="M13.00-21.91L21.24-21.91L21.24-17.23L14.04-17.23Q10.39-17.23-->
|
||||||
|
<!-- 9-15.62L9-15.62Q7.65-14.08-->
|
||||||
|
<!-- 7.65-10.93L7.65-10.93Q7.65-7.42 9.86-5.80L9.86-5.80Q10.75-5.17-->
|
||||||
|
<!-- 11.81-4.93Q12.87-4.68-->
|
||||||
|
<!-- 14.76-4.68L14.76-4.68L21.24-4.68L21.24-->
|
||||||
|
<!-- 0L13.00 0Q9.67 0 7.74-0.67Q5.80-1.35-->
|
||||||
|
<!-- 4.32-3.01L4.32-3.01Q1.48-6.17-->
|
||||||
|
<!-- 1.48-11.03L1.48-11.03Q1.48-16.88-->
|
||||||
|
<!-- 4.86-19.75L4.86-19.75Q6.21-20.93-->
|
||||||
|
<!-- 8.10-21.42Q9.99-21.91-->
|
||||||
|
<!-- 13.00-21.91L13.00-21.91ZM31.05-13.32L43.74-13.32L43.74-8.64L31.05-8.64Q31.23-6.48-->
|
||||||
|
<!-- 32.44-5.58Q33.66-4.68 36.41-4.68L36.41-4.68L43.74-4.68L43.74 0L35.73 0Q33.12 0 31.48-0.47Q29.83-0.94 28.39-2.02L28.39-2.02Q24.39-5.13 24.39-11.25L24.39-11.25Q24.39-15.21 26.50-18.18L26.50-18.18Q27.94-20.20 29.97-21.06Q31.99-21.91 35.28-21.91L35.28-21.91L43.74-21.91L43.74-17.23L35.73-17.23Q33.25-17.23 32.27-16.40Q31.27-15.57 31.05-13.32L31.05-13.32ZM48.64 0L48.64-21.91L57.55-21.91Q60.30-21.91 61.81-21.53Q63.31-21.15 64.31-20.25L64.31-20.25Q65.30-19.35 65.70-18Q66.10-16.65 66.10-14.13L66.10-14.13L66.10-12.01L60.30-12.01L60.30-13.18Q60.30-15.52 59.49-16.38Q58.68-17.23 56.38-17.23L56.38-17.23L54.67-17.23L54.67 0L48.64 0ZM67.50-21.91L71.33-21.91L71.33-30.02L77.36-30.02L77.36-21.91L82.94-21.91L82.94-17.23L77.36-17.23L77.36-9.27Q77.36-6.48 77.85-5.76L77.85-5.76Q78.61-4.68 80.55-4.68L80.55-4.68L82.94-4.68L82.94 0L78.57 0Q74.66 0 72.99-1.89Q71.33-3.78 71.33-8.23L71.33-8.23L71.33-17.23L67.50-17.23L67.50-21.91ZM96.08-21.91L101.75-21.91L101.75-30.02L107.73-30.02L107.73 0L97.38 0Q94.23 0 92.61-0.49L92.61-0.49Q88.78-1.71 86.90-5.26L86.90-5.26Q85.59-7.65 85.59-11.12L85.59-11.12Q85.59-16.74 89.37-19.84L89.37-19.84Q91.84-21.91 96.08-21.91L96.08-21.91ZM97.38-4.68L101.75-4.68L101.75-17.23L97.38-17.23Q94.50-17.23 93.02-15.30L93.02-15.30Q91.71-13.68 91.71-11.12L91.71-11.12Q91.71-7.38 93.87-5.76L93.87-5.76Q95.36-4.68 97.38-4.68L97.38-4.68Z"-->
|
||||||
|
<!-- fill="#2c3e50"-->
|
||||||
|
<!-- transform="translate(300, 270) scale(4,4)"-->
|
||||||
|
|
||||||
|
<!-- ></path>-->
|
||||||
|
<text x="300" y="100" font-size="50" font-weight="bold">让你的证书永不过期</text>
|
||||||
|
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 4.7 KiB |
|
@ -0,0 +1,44 @@
|
||||||
|
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width="800" height="300" viewBox="0 0 800.000000 300.000000"
|
||||||
|
>
|
||||||
|
|
||||||
|
<g fill="#fff">
|
||||||
|
<path d="M28.34 56.68h28.34V36.12H28.34a7.79 7.79 0 1 1 0-15.58h19.84v9.05h8.5V12H28.34a16.29 16.29 0 0 0 0 32.58h19.84v3.56H28.34a19.84 19.84 0 0 1 0-39.68h28.34V0H28.34a28.34 28.34 0 0 0 0 56.68z"
|
||||||
|
transform="translate(40, 40) scale(4,4)"
|
||||||
|
></path>
|
||||||
|
<g transform="translate(280, 260) scale(2,2)">
|
||||||
|
<path d="M28.95-58.70L49.98-58.70L49.98-48.22L33.70-48.22Q27.37-48.22 24.46-47.34Q21.56-46.46 19.62-43.91L19.62-43.91Q18.30-42.15 17.82-40.39Q17.34-38.63 16.98-34.41L16.98-34.41L49.98-34.41L49.98-23.94L16.98-23.94Q17.69-16.37 21.47-13.42Q25.26-10.47 34.32-10.47L34.32-10.47L49.98-10.47L49.98 0L33.70 0Q27.10 0 22.09-0.79L22.09-0.79Q14.17-2.11 9.50-7.74L9.50-7.74Q2.82-15.84 2.82-29.66L2.82-29.66Q2.82-44.97 12.23-53.50L12.23-53.50Q15.49-56.41 19.14-57.55Q22.79-58.70 28.95-58.70L28.95-58.70Z"
|
||||||
|
transform="translate(0 0) "
|
||||||
|
|
||||||
|
></path>
|
||||||
|
<path d="M28.51-22.26L18.48-22.26L18.48 0L5.98 0L5.98-58.70L34.67-58.70Q46.99-58.70 51.83-55.53L51.83-55.53Q55.18-53.42 56.98-49.94Q58.78-46.46 58.78-42.33L58.78-42.33Q58.78-33.97 54.56-29.39L54.56-29.39Q51.92-26.66 47.61-25.26L47.61-25.26Q51.04-24.02 52.80-22.66Q54.56-21.30 55.97-18.66L55.97-18.66Q57.02-16.54 57.51-14.61Q57.99-12.67 58.26-8.89L58.26-8.89Q58.78-2.55 59.66 0L59.66 0L45.67 0Q45.06-2.02 44.35-8.36L44.35-8.36Q43.91-13.46 42.55-16.19Q41.18-18.92 38.46-20.50L38.46-20.50Q35.02-22.35 28.51-22.26L28.51-22.26ZM18.48-48.22L18.48-32.74L35.99-32.74Q40.39-32.74 42.24-34.06L42.24-34.06Q45.06-35.99 45.06-40.83L45.06-40.83Q45.06-46.20 40.83-47.70L40.83-47.70Q39.34-48.22 35.99-48.22L35.99-48.22L18.48-48.22Z"
|
||||||
|
transform="translate(58.855999999999995 0) "
|
||||||
|
|
||||||
|
></path>
|
||||||
|
<path d="M19.01 0L19.01-48.22L0.35-48.22L0.35-58.70L50.95-58.70L50.95-48.22L31.50-48.22L31.50 0L19.01 0Z"
|
||||||
|
transform="translate(126.68799999999999 0) "
|
||||||
|
></path>
|
||||||
|
<path d="M5.98 0L5.98-58.70L30.89-58.70Q40.22-58.70 45.32-56.85L45.32-56.85Q54.74-53.42 57.90-44.26L57.90-44.26Q60.28-37.22 60.28-29.22L60.28-29.22Q60.28-21.30 57.99-14.26L57.99-14.26Q55.70-7.04 50.42-3.61L50.42-3.61Q47.08-1.50 43.08-0.75Q39.07 0 30.89 0L30.89 0L5.98 0ZM30.89-48.22L18.48-48.22L18.48-10.47L30.89-10.47Q39.07-10.47 42.24-14.08L42.24-14.08Q44.18-16.37 45.36-20.50Q46.55-24.64 46.55-29.30L46.55-29.30Q46.55-34.50 45.14-38.81Q43.74-43.12 41.45-45.23L41.45-45.23Q38.10-48.22 30.89-48.22L30.89-48.22Z"
|
||||||
|
transform="translate(183.07999999999998 0) "
|
||||||
|
></path>
|
||||||
|
</g>
|
||||||
|
<!-- <path d="M13.00-21.91L21.24-21.91L21.24-17.23L14.04-17.23Q10.39-17.23-->
|
||||||
|
<!-- 9-15.62L9-15.62Q7.65-14.08-->
|
||||||
|
<!-- 7.65-10.93L7.65-10.93Q7.65-7.42 9.86-5.80L9.86-5.80Q10.75-5.17-->
|
||||||
|
<!-- 11.81-4.93Q12.87-4.68-->
|
||||||
|
<!-- 14.76-4.68L14.76-4.68L21.24-4.68L21.24-->
|
||||||
|
<!-- 0L13.00 0Q9.67 0 7.74-0.67Q5.80-1.35-->
|
||||||
|
<!-- 4.32-3.01L4.32-3.01Q1.48-6.17-->
|
||||||
|
<!-- 1.48-11.03L1.48-11.03Q1.48-16.88-->
|
||||||
|
<!-- 4.86-19.75L4.86-19.75Q6.21-20.93-->
|
||||||
|
<!-- 8.10-21.42Q9.99-21.91-->
|
||||||
|
<!-- 13.00-21.91L13.00-21.91ZM31.05-13.32L43.74-13.32L43.74-8.64L31.05-8.64Q31.23-6.48-->
|
||||||
|
<!-- 32.44-5.58Q33.66-4.68 36.41-4.68L36.41-4.68L43.74-4.68L43.74 0L35.73 0Q33.12 0 31.48-0.47Q29.83-0.94 28.39-2.02L28.39-2.02Q24.39-5.13 24.39-11.25L24.39-11.25Q24.39-15.21 26.50-18.18L26.50-18.18Q27.94-20.20 29.97-21.06Q31.99-21.91 35.28-21.91L35.28-21.91L43.74-21.91L43.74-17.23L35.73-17.23Q33.25-17.23 32.27-16.40Q31.27-15.57 31.05-13.32L31.05-13.32ZM48.64 0L48.64-21.91L57.55-21.91Q60.30-21.91 61.81-21.53Q63.31-21.15 64.31-20.25L64.31-20.25Q65.30-19.35 65.70-18Q66.10-16.65 66.10-14.13L66.10-14.13L66.10-12.01L60.30-12.01L60.30-13.18Q60.30-15.52 59.49-16.38Q58.68-17.23 56.38-17.23L56.38-17.23L54.67-17.23L54.67 0L48.64 0ZM67.50-21.91L71.33-21.91L71.33-30.02L77.36-30.02L77.36-21.91L82.94-21.91L82.94-17.23L77.36-17.23L77.36-9.27Q77.36-6.48 77.85-5.76L77.85-5.76Q78.61-4.68 80.55-4.68L80.55-4.68L82.94-4.68L82.94 0L78.57 0Q74.66 0 72.99-1.89Q71.33-3.78 71.33-8.23L71.33-8.23L71.33-17.23L67.50-17.23L67.50-21.91ZM96.08-21.91L101.75-21.91L101.75-30.02L107.73-30.02L107.73 0L97.38 0Q94.23 0 92.61-0.49L92.61-0.49Q88.78-1.71 86.90-5.26L86.90-5.26Q85.59-7.65 85.59-11.12L85.59-11.12Q85.59-16.74 89.37-19.84L89.37-19.84Q91.84-21.91 96.08-21.91L96.08-21.91ZM97.38-4.68L101.75-4.68L101.75-17.23L97.38-17.23Q94.50-17.23 93.02-15.30L93.02-15.30Q91.71-13.68 91.71-11.12L91.71-11.12Q91.71-7.38 93.87-5.76L93.87-5.76Q95.36-4.68 97.38-4.68L97.38-4.68Z"-->
|
||||||
|
<!-- fill="#2c3e50"-->
|
||||||
|
<!-- transform="translate(300, 270) scale(4,4)"-->
|
||||||
|
|
||||||
|
<!-- ></path>-->
|
||||||
|
<text x="300" y="100" font-size="50" font-weight="bold">让你的证书永不过期</text>
|
||||||
|
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 4.7 KiB |
|
@ -0,0 +1,17 @@
|
||||||
|
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width="500" height="500" viewBox="0 0 500.000000 500.000000"
|
||||||
|
>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<path d="M28.34 56.68h28.34V36.12H28.34a7.79 7.79 0 1 1 0-15.58h19.84v9.05h8.5V12H28.34a16.29 16.29 0 0 0 0 32.58h19.84v3.56H28.34a19.84 19.84 0 0 1 0-39.68h28.34V0H28.34a28.34 28.34 0 0 0 0 56.68z"
|
||||||
|
fill="#2c3e50"
|
||||||
|
transform="translate(124, 60) scale(4,4)"
|
||||||
|
></path>
|
||||||
|
<path d="M13.00-21.91L21.24-21.91L21.24-17.23L14.04-17.23Q10.39-17.23 9-15.62L9-15.62Q7.65-14.08 7.65-10.93L7.65-10.93Q7.65-7.42 9.86-5.80L9.86-5.80Q10.75-5.17 11.81-4.93Q12.87-4.68 14.76-4.68L14.76-4.68L21.24-4.68L21.24 0L13.00 0Q9.67 0 7.74-0.67Q5.80-1.35 4.32-3.01L4.32-3.01Q1.48-6.17 1.48-11.03L1.48-11.03Q1.48-16.88 4.86-19.75L4.86-19.75Q6.21-20.93 8.10-21.42Q9.99-21.91 13.00-21.91L13.00-21.91ZM31.05-13.32L43.74-13.32L43.74-8.64L31.05-8.64Q31.23-6.48 32.44-5.58Q33.66-4.68 36.41-4.68L36.41-4.68L43.74-4.68L43.74 0L35.73 0Q33.12 0 31.48-0.47Q29.83-0.94 28.39-2.02L28.39-2.02Q24.39-5.13 24.39-11.25L24.39-11.25Q24.39-15.21 26.50-18.18L26.50-18.18Q27.94-20.20 29.97-21.06Q31.99-21.91 35.28-21.91L35.28-21.91L43.74-21.91L43.74-17.23L35.73-17.23Q33.25-17.23 32.27-16.40Q31.27-15.57 31.05-13.32L31.05-13.32ZM48.64 0L48.64-21.91L57.55-21.91Q60.30-21.91 61.81-21.53Q63.31-21.15 64.31-20.25L64.31-20.25Q65.30-19.35 65.70-18Q66.10-16.65 66.10-14.13L66.10-14.13L66.10-12.01L60.30-12.01L60.30-13.18Q60.30-15.52 59.49-16.38Q58.68-17.23 56.38-17.23L56.38-17.23L54.67-17.23L54.67 0L48.64 0ZM67.50-21.91L71.33-21.91L71.33-30.02L77.36-30.02L77.36-21.91L82.94-21.91L82.94-17.23L77.36-17.23L77.36-9.27Q77.36-6.48 77.85-5.76L77.85-5.76Q78.61-4.68 80.55-4.68L80.55-4.68L82.94-4.68L82.94 0L78.57 0Q74.66 0 72.99-1.89Q71.33-3.78 71.33-8.23L71.33-8.23L71.33-17.23L67.50-17.23L67.50-21.91ZM96.08-21.91L101.75-21.91L101.75-30.02L107.73-30.02L107.73 0L97.38 0Q94.23 0 92.61-0.49L92.61-0.49Q88.78-1.71 86.90-5.26L86.90-5.26Q85.59-7.65 85.59-11.12L85.59-11.12Q85.59-16.74 89.37-19.84L89.37-19.84Q91.84-21.91 96.08-21.91L96.08-21.91ZM97.38-4.68L101.75-4.68L101.75-17.23L97.38-17.23Q94.50-17.23 93.02-15.30L93.02-15.30Q91.71-13.68 91.71-11.12L91.71-11.12Q91.71-7.38 93.87-5.76L93.87-5.76Q95.36-4.68 97.38-4.68L97.38-4.68Z"
|
||||||
|
fill="#2c3e50"
|
||||||
|
transform="translate(28, 430) scale(4,4)"
|
||||||
|
|
||||||
|
></path>
|
||||||
|
|
||||||
|
</svg>
|
After Width: | Height: | Size: 2.3 KiB |
|
@ -0,0 +1,7 @@
|
||||||
|
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width="500" height="500" viewBox="0 0 500.000000 500.000000"
|
||||||
|
>
|
||||||
|
<path d="M28.34 56.68h28.34V36.12H28.34a7.79 7.79 0 1 1 0-15.58h19.84v9.05h8.5V12H28.34a16.29 16.29 0 0 0 0 32.58h19.84v3.56H28.34a19.84 19.84 0 0 1 0-39.68h28.34V0H28.34a28.34 28.34 0 0 0 0 56.68z"
|
||||||
|
transform="translate(70, 76) scale(6,6)"
|
||||||
|
></path>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 402 B |
|
@ -0,0 +1,108 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width="210mm"
|
||||||
|
height="210mm"
|
||||||
|
viewBox="0 0 210 210"
|
||||||
|
version="1.1"
|
||||||
|
id="svg8">
|
||||||
|
<defs
|
||||||
|
id="defs2" />
|
||||||
|
<g
|
||||||
|
id="layer1"
|
||||||
|
style="display:inline">
|
||||||
|
<path
|
||||||
|
style="fill:#002255;stroke:none;stroke-width:0.625348"
|
||||||
|
d="M 35.587501,69.766667 V 59.766664 h 70.000109 69.99991 v 10.000003 9.999997 H 105.58761 35.587501 Z"
|
||||||
|
id="path12" />
|
||||||
|
<rect
|
||||||
|
style="fill:#2a7fff;fill-rule:evenodd;stroke-width:0.214311"
|
||||||
|
id="rect22-2"
|
||||||
|
width="32.244232"
|
||||||
|
height="20"
|
||||||
|
x="71.506088"
|
||||||
|
y="106.64581" />
|
||||||
|
<rect
|
||||||
|
style="fill:#2a7fff;fill-rule:evenodd;stroke-width:0.214311"
|
||||||
|
id="rect22-8-8"
|
||||||
|
width="32.244232"
|
||||||
|
height="20"
|
||||||
|
x="107.42467"
|
||||||
|
y="106.64581" />
|
||||||
|
<rect
|
||||||
|
style="fill:#2a7fff;fill-rule:evenodd;stroke-width:0.214311"
|
||||||
|
id="rect22-8-5-8"
|
||||||
|
width="32.244232"
|
||||||
|
height="20"
|
||||||
|
x="143.34325"
|
||||||
|
y="106.64581" />
|
||||||
|
<rect
|
||||||
|
style="fill:#2a7fff;fill-rule:evenodd;stroke-width:0.214311"
|
||||||
|
id="rect22-2-4"
|
||||||
|
width="32.244232"
|
||||||
|
height="20"
|
||||||
|
x="71.506088"
|
||||||
|
y="129.82079" />
|
||||||
|
<rect
|
||||||
|
style="fill:#2a7fff;fill-rule:evenodd;stroke-width:0.214311"
|
||||||
|
id="rect22-8-8-3"
|
||||||
|
width="32.244232"
|
||||||
|
height="20"
|
||||||
|
x="107.42467"
|
||||||
|
y="129.82079" />
|
||||||
|
<rect
|
||||||
|
style="fill:#2a7fff;fill-rule:evenodd;stroke-width:0.214311"
|
||||||
|
id="rect22-8-5-8-2"
|
||||||
|
width="32.244232"
|
||||||
|
height="20"
|
||||||
|
x="143.34325"
|
||||||
|
y="129.82079" />
|
||||||
|
<rect
|
||||||
|
style="fill:#2a7fff;fill-rule:evenodd;stroke-width:0.214311"
|
||||||
|
id="rect22-2-7"
|
||||||
|
width="32.244232"
|
||||||
|
height="20"
|
||||||
|
x="35.587502"
|
||||||
|
y="106.64581" />
|
||||||
|
<rect
|
||||||
|
style="fill:#2a7fff;fill-rule:evenodd;stroke-width:0.214311"
|
||||||
|
id="rect22-2-4-0"
|
||||||
|
width="32.244232"
|
||||||
|
height="20"
|
||||||
|
x="35.587502"
|
||||||
|
y="129.82079" />
|
||||||
|
<rect
|
||||||
|
style="display:inline;fill:#2a7fff;fill-rule:evenodd;stroke-width:0.214311"
|
||||||
|
id="rect22-2-9"
|
||||||
|
width="32.244232"
|
||||||
|
height="20"
|
||||||
|
x="71.506088"
|
||||||
|
y="82.941666" />
|
||||||
|
<rect
|
||||||
|
style="display:inline;fill:#2a7fff;fill-rule:evenodd;stroke-width:0.214311"
|
||||||
|
id="rect22-8-8-37"
|
||||||
|
width="32.244232"
|
||||||
|
height="20"
|
||||||
|
x="107.42467"
|
||||||
|
y="82.941666" />
|
||||||
|
<rect
|
||||||
|
style="display:inline;fill:#2a7fff;fill-rule:evenodd;stroke-width:0.214311"
|
||||||
|
id="rect22-8-5-8-4"
|
||||||
|
width="32.244232"
|
||||||
|
height="20"
|
||||||
|
x="143.34325"
|
||||||
|
y="82.941666" />
|
||||||
|
<rect
|
||||||
|
style="display:inline;fill:#2a7fff;fill-rule:evenodd;stroke-width:0.214311"
|
||||||
|
id="rect22-2-7-1"
|
||||||
|
width="32.244232"
|
||||||
|
height="20"
|
||||||
|
x="35.587502"
|
||||||
|
y="82.941666" />
|
||||||
|
</g>
|
||||||
|
<polygon
|
||||||
|
points="75.3,174.4 103.1,103.6 79.8,103.6 112.6,41.3 156.4,41.3 129.9,90.5 148.1,90.5 "
|
||||||
|
fill="#f6cc00"
|
||||||
|
id="polygon276"
|
||||||
|
transform="matrix(1.0930933,0,0,0.99853202,-17.517362,-0.52287941)" />
|
||||||
|
</svg>
|
After Width: | Height: | Size: 3.8 KiB |
|
@ -0,0 +1,44 @@
|
||||||
|
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width="800" height="300" viewBox="0 0 800.000000 300.000000"
|
||||||
|
>
|
||||||
|
|
||||||
|
<g fill="#fff">
|
||||||
|
<path d="M28.34 56.68h28.34V36.12H28.34a7.79 7.79 0 1 1 0-15.58h19.84v9.05h8.5V12H28.34a16.29 16.29 0 0 0 0 32.58h19.84v3.56H28.34a19.84 19.84 0 0 1 0-39.68h28.34V0H28.34a28.34 28.34 0 0 0 0 56.68z"
|
||||||
|
transform="translate(40, 40) scale(4,4)"
|
||||||
|
></path>
|
||||||
|
<g transform="translate(280, 260) scale(2,2)">
|
||||||
|
<path d="M28.95-58.70L49.98-58.70L49.98-48.22L33.70-48.22Q27.37-48.22 24.46-47.34Q21.56-46.46 19.62-43.91L19.62-43.91Q18.30-42.15 17.82-40.39Q17.34-38.63 16.98-34.41L16.98-34.41L49.98-34.41L49.98-23.94L16.98-23.94Q17.69-16.37 21.47-13.42Q25.26-10.47 34.32-10.47L34.32-10.47L49.98-10.47L49.98 0L33.70 0Q27.10 0 22.09-0.79L22.09-0.79Q14.17-2.11 9.50-7.74L9.50-7.74Q2.82-15.84 2.82-29.66L2.82-29.66Q2.82-44.97 12.23-53.50L12.23-53.50Q15.49-56.41 19.14-57.55Q22.79-58.70 28.95-58.70L28.95-58.70Z"
|
||||||
|
transform="translate(0 0) "
|
||||||
|
|
||||||
|
></path>
|
||||||
|
<path d="M28.51-22.26L18.48-22.26L18.48 0L5.98 0L5.98-58.70L34.67-58.70Q46.99-58.70 51.83-55.53L51.83-55.53Q55.18-53.42 56.98-49.94Q58.78-46.46 58.78-42.33L58.78-42.33Q58.78-33.97 54.56-29.39L54.56-29.39Q51.92-26.66 47.61-25.26L47.61-25.26Q51.04-24.02 52.80-22.66Q54.56-21.30 55.97-18.66L55.97-18.66Q57.02-16.54 57.51-14.61Q57.99-12.67 58.26-8.89L58.26-8.89Q58.78-2.55 59.66 0L59.66 0L45.67 0Q45.06-2.02 44.35-8.36L44.35-8.36Q43.91-13.46 42.55-16.19Q41.18-18.92 38.46-20.50L38.46-20.50Q35.02-22.35 28.51-22.26L28.51-22.26ZM18.48-48.22L18.48-32.74L35.99-32.74Q40.39-32.74 42.24-34.06L42.24-34.06Q45.06-35.99 45.06-40.83L45.06-40.83Q45.06-46.20 40.83-47.70L40.83-47.70Q39.34-48.22 35.99-48.22L35.99-48.22L18.48-48.22Z"
|
||||||
|
transform="translate(58.855999999999995 0) "
|
||||||
|
|
||||||
|
></path>
|
||||||
|
<path d="M19.01 0L19.01-48.22L0.35-48.22L0.35-58.70L50.95-58.70L50.95-48.22L31.50-48.22L31.50 0L19.01 0Z"
|
||||||
|
transform="translate(126.68799999999999 0) "
|
||||||
|
></path>
|
||||||
|
<path d="M5.98 0L5.98-58.70L30.89-58.70Q40.22-58.70 45.32-56.85L45.32-56.85Q54.74-53.42 57.90-44.26L57.90-44.26Q60.28-37.22 60.28-29.22L60.28-29.22Q60.28-21.30 57.99-14.26L57.99-14.26Q55.70-7.04 50.42-3.61L50.42-3.61Q47.08-1.50 43.08-0.75Q39.07 0 30.89 0L30.89 0L5.98 0ZM30.89-48.22L18.48-48.22L18.48-10.47L30.89-10.47Q39.07-10.47 42.24-14.08L42.24-14.08Q44.18-16.37 45.36-20.50Q46.55-24.64 46.55-29.30L46.55-29.30Q46.55-34.50 45.14-38.81Q43.74-43.12 41.45-45.23L41.45-45.23Q38.10-48.22 30.89-48.22L30.89-48.22Z"
|
||||||
|
transform="translate(183.07999999999998 0) "
|
||||||
|
></path>
|
||||||
|
</g>
|
||||||
|
<!-- <path d="M13.00-21.91L21.24-21.91L21.24-17.23L14.04-17.23Q10.39-17.23-->
|
||||||
|
<!-- 9-15.62L9-15.62Q7.65-14.08-->
|
||||||
|
<!-- 7.65-10.93L7.65-10.93Q7.65-7.42 9.86-5.80L9.86-5.80Q10.75-5.17-->
|
||||||
|
<!-- 11.81-4.93Q12.87-4.68-->
|
||||||
|
<!-- 14.76-4.68L14.76-4.68L21.24-4.68L21.24-->
|
||||||
|
<!-- 0L13.00 0Q9.67 0 7.74-0.67Q5.80-1.35-->
|
||||||
|
<!-- 4.32-3.01L4.32-3.01Q1.48-6.17-->
|
||||||
|
<!-- 1.48-11.03L1.48-11.03Q1.48-16.88-->
|
||||||
|
<!-- 4.86-19.75L4.86-19.75Q6.21-20.93-->
|
||||||
|
<!-- 8.10-21.42Q9.99-21.91-->
|
||||||
|
<!-- 13.00-21.91L13.00-21.91ZM31.05-13.32L43.74-13.32L43.74-8.64L31.05-8.64Q31.23-6.48-->
|
||||||
|
<!-- 32.44-5.58Q33.66-4.68 36.41-4.68L36.41-4.68L43.74-4.68L43.74 0L35.73 0Q33.12 0 31.48-0.47Q29.83-0.94 28.39-2.02L28.39-2.02Q24.39-5.13 24.39-11.25L24.39-11.25Q24.39-15.21 26.50-18.18L26.50-18.18Q27.94-20.20 29.97-21.06Q31.99-21.91 35.28-21.91L35.28-21.91L43.74-21.91L43.74-17.23L35.73-17.23Q33.25-17.23 32.27-16.40Q31.27-15.57 31.05-13.32L31.05-13.32ZM48.64 0L48.64-21.91L57.55-21.91Q60.30-21.91 61.81-21.53Q63.31-21.15 64.31-20.25L64.31-20.25Q65.30-19.35 65.70-18Q66.10-16.65 66.10-14.13L66.10-14.13L66.10-12.01L60.30-12.01L60.30-13.18Q60.30-15.52 59.49-16.38Q58.68-17.23 56.38-17.23L56.38-17.23L54.67-17.23L54.67 0L48.64 0ZM67.50-21.91L71.33-21.91L71.33-30.02L77.36-30.02L77.36-21.91L82.94-21.91L82.94-17.23L77.36-17.23L77.36-9.27Q77.36-6.48 77.85-5.76L77.85-5.76Q78.61-4.68 80.55-4.68L80.55-4.68L82.94-4.68L82.94 0L78.57 0Q74.66 0 72.99-1.89Q71.33-3.78 71.33-8.23L71.33-8.23L71.33-17.23L67.50-17.23L67.50-21.91ZM96.08-21.91L101.75-21.91L101.75-30.02L107.73-30.02L107.73 0L97.38 0Q94.23 0 92.61-0.49L92.61-0.49Q88.78-1.71 86.90-5.26L86.90-5.26Q85.59-7.65 85.59-11.12L85.59-11.12Q85.59-16.74 89.37-19.84L89.37-19.84Q91.84-21.91 96.08-21.91L96.08-21.91ZM97.38-4.68L101.75-4.68L101.75-17.23L97.38-17.23Q94.50-17.23 93.02-15.30L93.02-15.30Q91.71-13.68 91.71-11.12L91.71-11.12Q91.71-7.38 93.87-5.76L93.87-5.76Q95.36-4.68 97.38-4.68L97.38-4.68Z"-->
|
||||||
|
<!-- fill="#2c3e50"-->
|
||||||
|
<!-- transform="translate(300, 270) scale(4,4)"-->
|
||||||
|
|
||||||
|
<!-- ></path>-->
|
||||||
|
<text x="300" y="100" font-size="50" font-weight="bold">让你的证书永不过期</text>
|
||||||
|
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 4.7 KiB |
|
@ -0,0 +1,106 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width="210mm"
|
||||||
|
height="210mm"
|
||||||
|
viewBox="0 0 210 210"
|
||||||
|
version="1.1"
|
||||||
|
id="svg8"
|
||||||
|
>
|
||||||
|
<g id="layer1" style="display:inline">
|
||||||
|
<path
|
||||||
|
style="fill:#002255;stroke:none;stroke-width:0.625348"
|
||||||
|
d="M 35.587501,69.766667 V 59.766664 h 70.000109 69.99991 v 10.000003 9.999997 H 105.58761 35.587501 Z"
|
||||||
|
id="path12" />
|
||||||
|
<rect
|
||||||
|
style="fill:#2a7fff;fill-rule:evenodd;stroke-width:0.214311"
|
||||||
|
id="rect22-2"
|
||||||
|
width="32.244232"
|
||||||
|
height="20"
|
||||||
|
x="71.506088"
|
||||||
|
y="106.64581" />
|
||||||
|
<rect
|
||||||
|
style="fill:#2a7fff;fill-rule:evenodd;stroke-width:0.214311"
|
||||||
|
id="rect22-8-8"
|
||||||
|
width="32.244232"
|
||||||
|
height="20"
|
||||||
|
x="107.42467"
|
||||||
|
y="106.64581" />
|
||||||
|
<rect
|
||||||
|
style="fill:#2a7fff;fill-rule:evenodd;stroke-width:0.214311"
|
||||||
|
id="rect22-8-5-8"
|
||||||
|
width="32.244232"
|
||||||
|
height="20"
|
||||||
|
x="143.34325"
|
||||||
|
y="106.64581" />
|
||||||
|
<rect
|
||||||
|
style="fill:#2a7fff;fill-rule:evenodd;stroke-width:0.214311"
|
||||||
|
id="rect22-2-4"
|
||||||
|
width="32.244232"
|
||||||
|
height="20"
|
||||||
|
x="71.506088"
|
||||||
|
y="129.82079" />
|
||||||
|
<rect
|
||||||
|
style="fill:#2a7fff;fill-rule:evenodd;stroke-width:0.214311"
|
||||||
|
id="rect22-8-8-3"
|
||||||
|
width="32.244232"
|
||||||
|
height="20"
|
||||||
|
x="107.42467"
|
||||||
|
y="129.82079" />
|
||||||
|
<rect
|
||||||
|
style="fill:#2a7fff;fill-rule:evenodd;stroke-width:0.214311"
|
||||||
|
id="rect22-8-5-8-2"
|
||||||
|
width="32.244232"
|
||||||
|
height="20"
|
||||||
|
x="143.34325"
|
||||||
|
y="129.82079" />
|
||||||
|
<rect
|
||||||
|
style="fill:#2a7fff;fill-rule:evenodd;stroke-width:0.214311"
|
||||||
|
id="rect22-2-7"
|
||||||
|
width="32.244232"
|
||||||
|
height="20"
|
||||||
|
x="35.587502"
|
||||||
|
y="106.64581" />
|
||||||
|
<rect
|
||||||
|
style="fill:#2a7fff;fill-rule:evenodd;stroke-width:0.214311"
|
||||||
|
id="rect22-2-4-0"
|
||||||
|
width="32.244232"
|
||||||
|
height="20"
|
||||||
|
x="35.587502"
|
||||||
|
y="129.82079" />
|
||||||
|
<rect
|
||||||
|
style="display:inline;fill:#2a7fff;fill-rule:evenodd;stroke-width:0.214311"
|
||||||
|
id="rect22-2-9"
|
||||||
|
width="32.244232"
|
||||||
|
height="20"
|
||||||
|
x="71.506088"
|
||||||
|
y="82.941666" />
|
||||||
|
<rect
|
||||||
|
style="display:inline;fill:#2a7fff;fill-rule:evenodd;stroke-width:0.214311"
|
||||||
|
id="rect22-8-8-37"
|
||||||
|
width="32.244232"
|
||||||
|
height="20"
|
||||||
|
x="107.42467"
|
||||||
|
y="82.941666" />
|
||||||
|
<rect
|
||||||
|
style="display:inline;fill:#2a7fff;fill-rule:evenodd;stroke-width:0.214311"
|
||||||
|
id="rect22-8-5-8-4"
|
||||||
|
width="32.244232"
|
||||||
|
height="20"
|
||||||
|
x="143.34325"
|
||||||
|
y="82.941666" />
|
||||||
|
<rect
|
||||||
|
style="display:inline;fill:#2a7fff;fill-rule:evenodd;stroke-width:0.214311"
|
||||||
|
id="rect22-2-7-1"
|
||||||
|
width="32.244232"
|
||||||
|
height="20"
|
||||||
|
x="35.587502"
|
||||||
|
y="82.941666" />
|
||||||
|
</g>
|
||||||
|
<polygon
|
||||||
|
points="75.3,174.4 103.1,103.6 79.8,103.6 112.6,41.3 156.4,41.3 129.9,90.5 148.1,90.5 "
|
||||||
|
fill="#f6cc00"
|
||||||
|
id="polygon276"
|
||||||
|
transform="matrix(1.0930933,0,0,0.99853202,-17.517362,-0.52287941)" />
|
||||||
|
|
||||||
|
</svg>
|
After Width: | Height: | Size: 3.7 KiB |
|
@ -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);}}
|
|
@ -0,0 +1,17 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||||
|
<meta name="viewport" content="width=device-width,initial-scale=1.0">
|
||||||
|
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
|
||||||
|
<title><%= htmlWebpackPlugin.options.title %></title>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<noscript>
|
||||||
|
<strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
|
||||||
|
</noscript>
|
||||||
|
<div id="app"></div>
|
||||||
|
<!-- built files will be auto injected -->
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,106 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
width="210mm"
|
||||||
|
height="210mm"
|
||||||
|
viewBox="0 0 210 210"
|
||||||
|
version="1.1"
|
||||||
|
id="svg8"
|
||||||
|
>
|
||||||
|
<g id="layer1" style="display:inline">
|
||||||
|
<path
|
||||||
|
style="fill:#002255;stroke:none;stroke-width:0.625348"
|
||||||
|
d="M 35.587501,69.766667 V 59.766664 h 70.000109 69.99991 v 10.000003 9.999997 H 105.58761 35.587501 Z"
|
||||||
|
id="path12" />
|
||||||
|
<rect
|
||||||
|
style="fill:#2a7fff;fill-rule:evenodd;stroke-width:0.214311"
|
||||||
|
id="rect22-2"
|
||||||
|
width="32.244232"
|
||||||
|
height="20"
|
||||||
|
x="71.506088"
|
||||||
|
y="106.64581" />
|
||||||
|
<rect
|
||||||
|
style="fill:#2a7fff;fill-rule:evenodd;stroke-width:0.214311"
|
||||||
|
id="rect22-8-8"
|
||||||
|
width="32.244232"
|
||||||
|
height="20"
|
||||||
|
x="107.42467"
|
||||||
|
y="106.64581" />
|
||||||
|
<rect
|
||||||
|
style="fill:#2a7fff;fill-rule:evenodd;stroke-width:0.214311"
|
||||||
|
id="rect22-8-5-8"
|
||||||
|
width="32.244232"
|
||||||
|
height="20"
|
||||||
|
x="143.34325"
|
||||||
|
y="106.64581" />
|
||||||
|
<rect
|
||||||
|
style="fill:#2a7fff;fill-rule:evenodd;stroke-width:0.214311"
|
||||||
|
id="rect22-2-4"
|
||||||
|
width="32.244232"
|
||||||
|
height="20"
|
||||||
|
x="71.506088"
|
||||||
|
y="129.82079" />
|
||||||
|
<rect
|
||||||
|
style="fill:#2a7fff;fill-rule:evenodd;stroke-width:0.214311"
|
||||||
|
id="rect22-8-8-3"
|
||||||
|
width="32.244232"
|
||||||
|
height="20"
|
||||||
|
x="107.42467"
|
||||||
|
y="129.82079" />
|
||||||
|
<rect
|
||||||
|
style="fill:#2a7fff;fill-rule:evenodd;stroke-width:0.214311"
|
||||||
|
id="rect22-8-5-8-2"
|
||||||
|
width="32.244232"
|
||||||
|
height="20"
|
||||||
|
x="143.34325"
|
||||||
|
y="129.82079" />
|
||||||
|
<rect
|
||||||
|
style="fill:#2a7fff;fill-rule:evenodd;stroke-width:0.214311"
|
||||||
|
id="rect22-2-7"
|
||||||
|
width="32.244232"
|
||||||
|
height="20"
|
||||||
|
x="35.587502"
|
||||||
|
y="106.64581" />
|
||||||
|
<rect
|
||||||
|
style="fill:#2a7fff;fill-rule:evenodd;stroke-width:0.214311"
|
||||||
|
id="rect22-2-4-0"
|
||||||
|
width="32.244232"
|
||||||
|
height="20"
|
||||||
|
x="35.587502"
|
||||||
|
y="129.82079" />
|
||||||
|
<rect
|
||||||
|
style="display:inline;fill:#2a7fff;fill-rule:evenodd;stroke-width:0.214311"
|
||||||
|
id="rect22-2-9"
|
||||||
|
width="32.244232"
|
||||||
|
height="20"
|
||||||
|
x="71.506088"
|
||||||
|
y="82.941666" />
|
||||||
|
<rect
|
||||||
|
style="display:inline;fill:#2a7fff;fill-rule:evenodd;stroke-width:0.214311"
|
||||||
|
id="rect22-8-8-37"
|
||||||
|
width="32.244232"
|
||||||
|
height="20"
|
||||||
|
x="107.42467"
|
||||||
|
y="82.941666" />
|
||||||
|
<rect
|
||||||
|
style="display:inline;fill:#2a7fff;fill-rule:evenodd;stroke-width:0.214311"
|
||||||
|
id="rect22-8-5-8-4"
|
||||||
|
width="32.244232"
|
||||||
|
height="20"
|
||||||
|
x="143.34325"
|
||||||
|
y="82.941666" />
|
||||||
|
<rect
|
||||||
|
style="display:inline;fill:#2a7fff;fill-rule:evenodd;stroke-width:0.214311"
|
||||||
|
id="rect22-2-7-1"
|
||||||
|
width="32.244232"
|
||||||
|
height="20"
|
||||||
|
x="35.587502"
|
||||||
|
y="82.941666" />
|
||||||
|
</g>
|
||||||
|
<polygon
|
||||||
|
points="75.3,174.4 103.1,103.6 79.8,103.6 112.6,41.3 156.4,41.3 129.9,90.5 148.1,90.5 "
|
||||||
|
fill="#f6cc00"
|
||||||
|
id="polygon276"
|
||||||
|
transform="matrix(1.0930933,0,0,0.99853202,-17.517362,-0.52287941)" />
|
||||||
|
|
||||||
|
</svg>
|
After Width: | Height: | Size: 3.7 KiB |
|
@ -16,7 +16,6 @@
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import zhCN from 'ant-design-vue/es/locale/zh_CN'
|
import zhCN from 'ant-design-vue/es/locale/zh_CN'
|
||||||
import { useI18n } from 'vue-i18n'
|
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
data () {
|
data () {
|
||||||
|
@ -25,8 +24,6 @@ export default {
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
setup () {
|
setup () {
|
||||||
const { t } = useI18n() // call `useI18n`, and spread `t` from `useI18n` returning
|
|
||||||
return { t } // return render context that included `t`
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
import { request } from './service'
|
import { request } from "./service";
|
||||||
import inputHandler from './util.input.handler'
|
import inputHandler from "./util.input.handler";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
async list () {
|
async list() {
|
||||||
const ret = await request({
|
const ret = await request({
|
||||||
url: '/access-providers/list'
|
url: "/access-providers/list"
|
||||||
})
|
});
|
||||||
|
|
||||||
inputHandler.handle(ret)
|
inputHandler.handle(ret);
|
||||||
|
|
||||||
return ret
|
return ret;
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
import { request } from './service'
|
import { request } from "./service";
|
||||||
import inputHandler from './util.input.handler'
|
import inputHandler from "./util.input.handler";
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
async list () {
|
async list() {
|
||||||
const ret = await request({
|
const ret = await request({
|
||||||
url: '/dns-providers/list'
|
url: "/dns-providers/list"
|
||||||
})
|
});
|
||||||
|
|
||||||
inputHandler.handle(ret)
|
inputHandler.handle(ret);
|
||||||
|
|
||||||
return ret
|
return ret;
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
|
@ -1,40 +1,40 @@
|
||||||
import { request } from './service'
|
import { request } from "./service";
|
||||||
import _ from 'lodash-es'
|
import _ from "lodash-es";
|
||||||
function arrayToMap (arr) {
|
function arrayToMap(arr) {
|
||||||
if (arr && arr instanceof Array) {
|
if (arr && arr instanceof Array) {
|
||||||
const map = {}
|
const map = {};
|
||||||
_.forEach(arr, item => {
|
_.forEach(arr, (item) => {
|
||||||
map[item.key] = item
|
map[item.key] = item;
|
||||||
})
|
});
|
||||||
return map
|
return map;
|
||||||
}
|
}
|
||||||
return arr
|
return arr;
|
||||||
}
|
}
|
||||||
|
|
||||||
function transfer (options) {
|
function transfer(options) {
|
||||||
options.accessProviders = arrayToMap(options.accessProviders)
|
options.accessProviders = arrayToMap(options.accessProviders);
|
||||||
}
|
}
|
||||||
export default {
|
export default {
|
||||||
exportsToZip (options) {
|
exportsToZip(options) {
|
||||||
transfer(options)
|
transfer(options);
|
||||||
return request({
|
return request({
|
||||||
url: '/exports/toZip',
|
url: "/exports/toZip",
|
||||||
data: { options },
|
data: { options },
|
||||||
method: 'post',
|
method: "post",
|
||||||
responseType: 'blob' // 重点在于配置responseType: 'blob'
|
responseType: "blob" // 重点在于配置responseType: 'blob'
|
||||||
}).then(res => {
|
}).then((res) => {
|
||||||
console.log('res', res)
|
console.log("res", res);
|
||||||
const filename = decodeURI(res.headers['content-disposition'].replace('attachment;filename=', '')) // 由后端设置下载文件名
|
const filename = decodeURI(res.headers["content-disposition"].replace("attachment;filename=", "")); // 由后端设置下载文件名
|
||||||
const blob = new Blob([res.data], { type: 'application/zip' })
|
const blob = new Blob([res.data], { type: "application/zip" });
|
||||||
const a = document.createElement('a')
|
const a = document.createElement("a");
|
||||||
const url = window.URL.createObjectURL(blob)
|
const url = window.URL.createObjectURL(blob);
|
||||||
a.href = url
|
a.href = url;
|
||||||
a.download = filename
|
a.download = filename;
|
||||||
const body = document.getElementsByTagName('body')[0]
|
const body = document.getElementsByTagName("body")[0];
|
||||||
body.appendChild(a)
|
body.appendChild(a);
|
||||||
a.click()
|
a.click();
|
||||||
body.removeChild(a)
|
body.removeChild(a);
|
||||||
window.URL.revokeObjectURL(url)
|
window.URL.revokeObjectURL(url);
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
|
@ -1,14 +1,14 @@
|
||||||
import { request } from './service'
|
import { request } from "./service";
|
||||||
import inputHandler from './util.input.handler'
|
import inputHandler from "./util.input.handler";
|
||||||
export default {
|
export default {
|
||||||
async list () {
|
async list() {
|
||||||
const ret = await request({
|
const ret = await request({
|
||||||
url: '/plugins/list'
|
url: "/plugins/list"
|
||||||
})
|
});
|
||||||
|
|
||||||
inputHandler.handle(ret)
|
inputHandler.handle(ret);
|
||||||
|
|
||||||
console.log('plugins', ret)
|
console.log("plugins", ret);
|
||||||
return ret
|
return ret;
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
|
|
|
@ -1,10 +1,15 @@
|
||||||
import { assign, map } from 'lodash'
|
import { assign, map } from "lodash";
|
||||||
import { service, request } from './service'
|
import { service, request } from "./service";
|
||||||
|
|
||||||
const files = require.context('./modules', false, /\.js$/)
|
const files = require.context("./modules", false, /\.js$/);
|
||||||
const generators = files.keys().map(key => files(key).default)
|
const generators = files.keys().map((key) => files(key).default);
|
||||||
|
|
||||||
export default assign({}, ...map(generators, generator => generator({
|
export default assign(
|
||||||
|
{},
|
||||||
|
...map(generators, (generator) =>
|
||||||
|
generator({
|
||||||
service,
|
service,
|
||||||
request
|
request
|
||||||
})))
|
})
|
||||||
|
)
|
||||||
|
);
|
||||||
|
|
|
@ -1,94 +1,117 @@
|
||||||
import axios from 'axios'
|
import axios from "axios";
|
||||||
import { get } from 'lodash-es'
|
import { get } from "lodash-es";
|
||||||
import { errorLog, errorCreate } from './tools'
|
import { errorLog, errorCreate } from "./tools";
|
||||||
|
import { env } from "/src/utils/util.env";
|
||||||
/**
|
/**
|
||||||
* @description 创建请求实例
|
* @description 创建请求实例
|
||||||
*/
|
*/
|
||||||
function createService () {
|
function createService() {
|
||||||
// 创建一个 axios 实例
|
// 创建一个 axios 实例
|
||||||
const service = axios.create()
|
const service = axios.create();
|
||||||
// 请求拦截
|
// 请求拦截
|
||||||
service.interceptors.request.use(
|
service.interceptors.request.use(
|
||||||
config => config,
|
(config) => config,
|
||||||
error => {
|
(error) => {
|
||||||
// 发送失败
|
// 发送失败
|
||||||
console.log(error)
|
console.log(error);
|
||||||
return Promise.reject(error)
|
return Promise.reject(error);
|
||||||
}
|
}
|
||||||
)
|
);
|
||||||
// 响应拦截
|
// 响应拦截
|
||||||
service.interceptors.response.use(
|
service.interceptors.response.use(
|
||||||
response => {
|
(response) => {
|
||||||
console.log('response.config', response.config)
|
console.log("response.config", response.config);
|
||||||
if (response.config.responseType === 'blob') {
|
if (response.config.responseType === "blob") {
|
||||||
return response
|
return response;
|
||||||
}
|
}
|
||||||
// dataAxios 是 axios 返回数据中的 data
|
// dataAxios 是 axios 返回数据中的 data
|
||||||
const dataAxios = response.data
|
const dataAxios = response.data;
|
||||||
// 这个状态码是和后端约定的
|
// 这个状态码是和后端约定的
|
||||||
const { code } = dataAxios
|
const { code } = dataAxios;
|
||||||
// 根据 code 进行判断
|
// 根据 code 进行判断
|
||||||
if (code === undefined) {
|
if (code === undefined) {
|
||||||
// 如果没有 code 代表这不是项目后端开发的接口 比如可能是 D2Admin 请求最新版本
|
// 如果没有 code 代表这不是项目后端开发的接口 比如可能是 D2Admin 请求最新版本
|
||||||
if (response.config.unpack) {
|
if (response.config.unpack) {
|
||||||
return dataAxios
|
return dataAxios;
|
||||||
}
|
}
|
||||||
return dataAxios.data
|
return dataAxios.data;
|
||||||
} else {
|
} else {
|
||||||
// 有 code 代表这是一个后端接口 可以进行进一步的判断
|
// 有 code 代表这是一个后端接口 可以进行进一步的判断
|
||||||
switch (code) {
|
switch (code) {
|
||||||
case 0:
|
case 0:
|
||||||
// [ 示例 ] code === 0 代表没有错误
|
// [ 示例 ] code === 0 代表没有错误
|
||||||
return dataAxios.data
|
return dataAxios.data;
|
||||||
default:
|
default:
|
||||||
// 不是正确的 code
|
// 不是正确的 code
|
||||||
errorCreate(`${dataAxios.msg}: ${response.config.url}`)
|
errorCreate(`${dataAxios.msg}: ${response.config.url}`);
|
||||||
return dataAxios
|
return dataAxios;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
error => {
|
(error) => {
|
||||||
const status = get(error, 'response.status')
|
const status = get(error, "response.status");
|
||||||
switch (status) {
|
switch (status) {
|
||||||
case 400: error.message = '请求错误'; break
|
case 400:
|
||||||
case 401: error.message = '未授权,请登录'; break
|
error.message = "请求错误";
|
||||||
case 403: error.message = '拒绝访问'; break
|
break;
|
||||||
case 404: error.message = `请求地址出错: ${error.response.config.url}`; break
|
case 401:
|
||||||
case 408: error.message = '请求超时'; break
|
error.message = "未授权,请登录";
|
||||||
case 500: error.message = '服务器内部错误'; break
|
break;
|
||||||
case 501: error.message = '服务未实现'; break
|
case 403:
|
||||||
case 502: error.message = '网关错误'; break
|
error.message = "拒绝访问";
|
||||||
case 503: error.message = '服务不可用'; break
|
break;
|
||||||
case 504: error.message = '网关超时'; break
|
case 404:
|
||||||
case 505: error.message = 'HTTP版本不受支持'; break
|
error.message = `请求地址出错: ${error.response.config.url}`;
|
||||||
default: break
|
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)
|
errorLog(error);
|
||||||
return Promise.reject(error)
|
return Promise.reject(error);
|
||||||
}
|
}
|
||||||
)
|
);
|
||||||
return service
|
return service;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @description 创建请求方法
|
* @description 创建请求方法
|
||||||
* @param {Object} service axios 实例
|
* @param {Object} service axios 实例
|
||||||
*/
|
*/
|
||||||
function createRequestFunction (service) {
|
function createRequestFunction(service) {
|
||||||
return function (config) {
|
return function (config) {
|
||||||
const configDefault = {
|
const configDefault = {
|
||||||
headers: {
|
headers: {
|
||||||
'Content-Type': get(config, 'headers.Content-Type', 'application/json')
|
"Content-Type": get(config, "headers.Content-Type", "application/json")
|
||||||
},
|
},
|
||||||
timeout: 5000,
|
timeout: 5000,
|
||||||
baseURL: process.env.VUE_APP_API,
|
baseURL: env.API,
|
||||||
data: {}
|
data: {}
|
||||||
}
|
};
|
||||||
return service(Object.assign(configDefault, config))
|
return service(Object.assign(configDefault, config));
|
||||||
}
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
// 用于真实网络请求的实例和请求方法
|
// 用于真实网络请求的实例和请求方法
|
||||||
export const service = createService()
|
export const service = createService();
|
||||||
export const request = createRequestFunction(service)
|
export const request = createRequestFunction(service);
|
||||||
|
|
|
@ -1,18 +1,18 @@
|
||||||
import { notification } from 'ant-design-vue'
|
import { notification } from "ant-design-vue";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @description 安全地解析 json 字符串
|
* @description 安全地解析 json 字符串
|
||||||
* @param {String} jsonString 需要解析的 json 字符串
|
* @param {String} jsonString 需要解析的 json 字符串
|
||||||
* @param {String} defaultValue 默认值
|
* @param {String} defaultValue 默认值
|
||||||
*/
|
*/
|
||||||
export function parse (jsonString = '{}', defaultValue = {}) {
|
export function parse(jsonString = "{}", defaultValue = {}) {
|
||||||
let result = defaultValue
|
let result = defaultValue;
|
||||||
try {
|
try {
|
||||||
result = JSON.parse(jsonString)
|
result = JSON.parse(jsonString);
|
||||||
} catch (error) {
|
} 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 {String} msg 状态信息
|
||||||
* @param {Number} code 状态码
|
* @param {Number} code 状态码
|
||||||
*/
|
*/
|
||||||
export function response (data = {}, msg = '', code = 0) {
|
export function response(data = {}, msg = "", code = 0) {
|
||||||
return [
|
return [200, { code, msg, data }];
|
||||||
200,
|
|
||||||
{ code, msg, data }
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -33,8 +30,8 @@ export function response (data = {}, msg = '', code = 0) {
|
||||||
* @param {Any} data 返回值
|
* @param {Any} data 返回值
|
||||||
* @param {String} msg 状态信息
|
* @param {String} msg 状态信息
|
||||||
*/
|
*/
|
||||||
export function responseSuccess (data = {}, msg = '成功') {
|
export function responseSuccess(data = {}, msg = "成功") {
|
||||||
return response(data, msg)
|
return response(data, msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -43,29 +40,29 @@ export function responseSuccess (data = {}, msg = '成功') {
|
||||||
* @param {String} msg 状态信息
|
* @param {String} msg 状态信息
|
||||||
* @param {Number} code 状态码
|
* @param {Number} code 状态码
|
||||||
*/
|
*/
|
||||||
export function responseError (data = {}, msg = '请求失败', code = 500) {
|
export function responseError(data = {}, msg = "请求失败", code = 500) {
|
||||||
return response(data, msg, code)
|
return response(data, msg, code);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @description 记录和显示错误
|
* @description 记录和显示错误
|
||||||
* @param {Error} error 错误对象
|
* @param {Error} error 错误对象
|
||||||
*/
|
*/
|
||||||
export function errorLog (error) {
|
export function errorLog(error) {
|
||||||
// 打印到控制台
|
// 打印到控制台
|
||||||
console.log(error)
|
console.log(error);
|
||||||
// 显示提示
|
// 显示提示
|
||||||
notification.error({
|
notification.error({
|
||||||
message: error.message
|
message: error.message
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @description 创建一个错误
|
* @description 创建一个错误
|
||||||
* @param {String} msg 错误信息
|
* @param {String} msg 错误信息
|
||||||
*/
|
*/
|
||||||
export function errorCreate (msg) {
|
export function errorCreate(msg) {
|
||||||
const error = new Error(msg)
|
const error = new Error(msg);
|
||||||
errorLog(error)
|
errorLog(error);
|
||||||
throw error
|
throw error;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,37 +1,35 @@
|
||||||
import _ from 'lodash-es'
|
import _ from "lodash-es";
|
||||||
|
|
||||||
function handleInputs (inputs) {
|
function handleInputs(inputs) {
|
||||||
if (inputs == null) {
|
if (inputs == null) {
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
_.forEach(inputs, (item, key) => {
|
_.forEach(inputs, (item, key) => {
|
||||||
if (item.required === true) {
|
if (item.required === true) {
|
||||||
if (item.component == null) {
|
if (item.component == null) {
|
||||||
item.component = {}
|
item.component = {};
|
||||||
}
|
}
|
||||||
let rules = item.component.rules
|
let rules = item.component.rules;
|
||||||
if (rules == null) {
|
if (rules == null) {
|
||||||
item.component.rules = rules = []
|
item.component.rules = rules = [];
|
||||||
}
|
}
|
||||||
if (rules.length > 0) {
|
if (rules.length > 0) {
|
||||||
const hasRequired = rules.filter(rule => {
|
const hasRequired = rules.filter((rule) => {
|
||||||
return rule.required === true
|
return rule.required === true;
|
||||||
})
|
});
|
||||||
if (hasRequired.length > 0) {
|
if (hasRequired.length > 0) {
|
||||||
return
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
rules.push({ required: true, message: '该项必填' })
|
rules.push({ required: true, message: "该项必填" });
|
||||||
delete item.required
|
delete item.required;
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
export default {
|
export default {
|
||||||
|
handle(list) {
|
||||||
handle (list) {
|
_.forEach(list, (item) => {
|
||||||
_.forEach(list, item => {
|
handleInputs(item.input);
|
||||||
handleInputs(item.input)
|
});
|
||||||
})
|
|
||||||
}
|
}
|
||||||
|
};
|
||||||
}
|
|
||||||
|
|
|
@ -5,7 +5,8 @@
|
||||||
:closable="true"
|
:closable="true"
|
||||||
width="500px"
|
width="500px"
|
||||||
v-model:visible="visible"
|
v-model:visible="visible"
|
||||||
:after-visible-change="onAfterVisibleChange"
|
:destroyOnClose="true"
|
||||||
|
@after-visible-change="onAfterVisibleChange"
|
||||||
>
|
>
|
||||||
<div class="d-container access-provider-manager">
|
<div class="d-container access-provider-manager">
|
||||||
<a-button @click="add">
|
<a-button @click="add">
|
||||||
|
@ -73,8 +74,6 @@
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import { ref, reactive, nextTick, watch, inject } from 'vue'
|
import { ref, reactive, nextTick, watch, inject } from 'vue'
|
||||||
// eslint-disable-next-line no-unused-vars
|
|
||||||
import { useForm } from '@ant-design-vue/use'
|
|
||||||
import _ from 'lodash-es'
|
import _ from 'lodash-es'
|
||||||
import providerApi from '../../api/api.access-providers'
|
import providerApi from '../../api/api.access-providers'
|
||||||
function useEdit (props, context, onEditSave) {
|
function useEdit (props, context, onEditSave) {
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
<template>
|
<template>
|
||||||
|
<div>
|
||||||
<div class="access-provider-selector">
|
<div class="access-provider-selector">
|
||||||
<a-select
|
<a-select
|
||||||
:value="value"
|
:value="value"
|
||||||
|
@ -18,11 +19,11 @@
|
||||||
:filter="filter"
|
:filter="filter"
|
||||||
@update:value="valueUpdate"
|
@update:value="valueUpdate"
|
||||||
></access-provider-manager>
|
></access-provider-manager>
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { ref, inject } from 'vue'
|
import { ref, inject } from 'vue'
|
||||||
import AccessProviderManager from './access-provider-manager'
|
import AccessProviderManager from './access-provider-manager.vue'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'access-provider-selector',
|
name: 'access-provider-selector',
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import DContainer from './d-container'
|
import DContainer from './d-container.vue'
|
||||||
import ComponentRender from './component-render'
|
import ComponentRender from './component-render.vue'
|
||||||
import AccessProviderSelector from './access-provider-selector/access-provider-selector'
|
import AccessProviderSelector from './access-provider-selector/access-provider-selector.vue'
|
||||||
|
|
||||||
const list = [
|
const list = [
|
||||||
DContainer,
|
DContainer,
|
||||||
|
|
|
@ -4,12 +4,9 @@ import App from './App.vue'
|
||||||
import Antd from 'ant-design-vue'
|
import Antd from 'ant-design-vue'
|
||||||
import 'ant-design-vue/dist/antd.css'
|
import 'ant-design-vue/dist/antd.css'
|
||||||
import './style/common.less'
|
import './style/common.less'
|
||||||
import { i18n } from './i18n'
|
|
||||||
import icons from './icons'
|
import icons from './icons'
|
||||||
import components from './components'
|
import components from './components'
|
||||||
const app = createApp(App)
|
const app = createApp(App)
|
||||||
app.config.productionTip = false
|
|
||||||
app.use(i18n)
|
|
||||||
icons(app)
|
icons(app)
|
||||||
app.use(Antd)
|
app.use(Antd)
|
||||||
app.use(components)
|
app.use(components)
|
|
@ -0,0 +1,40 @@
|
||||||
|
import _ from "lodash-es";
|
||||||
|
export function getEnvValue(key) {
|
||||||
|
// @ts-ignore
|
||||||
|
return import.meta.env["VITE_APP_" + key];
|
||||||
|
}
|
||||||
|
|
||||||
|
export class EnvConfig {
|
||||||
|
API;
|
||||||
|
MODE;
|
||||||
|
STORAGE;
|
||||||
|
TITLE;
|
||||||
|
PM_ENABLED;
|
||||||
|
constructor() {
|
||||||
|
this.init();
|
||||||
|
}
|
||||||
|
|
||||||
|
init() {
|
||||||
|
// @ts-ignore
|
||||||
|
_.forEach(import.meta.env, (value, key) => {
|
||||||
|
if (key.startsWith("VITE_APP")) {
|
||||||
|
key = key.replace("VITE_APP_", "");
|
||||||
|
this[key] = value;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
// @ts-ignore
|
||||||
|
this.MODE = import.meta.env.MODE;
|
||||||
|
}
|
||||||
|
|
||||||
|
get(key, defaultValue) {
|
||||||
|
return this[key] ?? defaultValue;
|
||||||
|
}
|
||||||
|
isDev() {
|
||||||
|
return this.MODE === "development" || this.MODE === "debug";
|
||||||
|
}
|
||||||
|
isProd() {
|
||||||
|
return this.MODE === "production";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export const env = new EnvConfig();
|
|
@ -1,16 +1,16 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="page-index flex-center">
|
<div class="page-index flex-center">
|
||||||
<H2 class="title">CERT-D</H2>
|
<h2 class="title">CERT-D</h2>
|
||||||
<div class="page-body">
|
<div class="page-body">
|
||||||
|
|
||||||
<a-tabs @change="callback">
|
<a-tabs >
|
||||||
<a-tab-pane key="1" tab="创建新证书">
|
<a-tab-pane key="1" tab="创建新证书">
|
||||||
<div class="create-from-domains">
|
<div class="create-from-domains">
|
||||||
<div class="input-row flex-row">
|
<div class="input-row flex-row">
|
||||||
<a-select
|
<a-select
|
||||||
size="large"
|
size="large"
|
||||||
mode="tags"
|
mode="tags"
|
||||||
:placeholder="$t('please.input.domain')"
|
placeholder="请输入域名"
|
||||||
v-model:value="formData.cert.domains"
|
v-model:value="formData.cert.domains"
|
||||||
:open="false"
|
:open="false"
|
||||||
></a-select>
|
></a-select>
|
||||||
|
@ -51,11 +51,13 @@ export default {
|
||||||
})
|
})
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
const createFromDomain = () => {
|
const createFromDomain = () => {
|
||||||
|
console.log("formData:",formData)
|
||||||
goToDetail(JSON.stringify(formData))
|
goToDetail(JSON.stringify(formData))
|
||||||
}
|
}
|
||||||
|
|
||||||
const goToDetail = (options) => {
|
const goToDetail = (options) => {
|
||||||
router.push({ name: 'detail', params: { options } })
|
console.log("options:",options)
|
||||||
|
router.push({ name: 'detail', state: { options } })
|
||||||
}
|
}
|
||||||
const autoSize = reactive({ minRows: 8, maxRows: 10 })
|
const autoSize = reactive({ minRows: 8, maxRows: 10 })
|
||||||
|
|
||||||
|
|
|
@ -5,17 +5,17 @@
|
||||||
:closable="true"
|
:closable="true"
|
||||||
width="600px"
|
width="600px"
|
||||||
v-model:visible="visible"
|
v-model:visible="visible"
|
||||||
:after-visible-change="afterVisibleChange"
|
@after-visible-change="afterVisibleChange"
|
||||||
>
|
>
|
||||||
|
|
||||||
<d-container>
|
<d-container>
|
||||||
<a-form class="domain-form" :model="formData" :scrollToFirstError="true" :label-col="labelCol" :wrapper-col="wrapperCol">
|
<a-form class="domain-form" :model="formData" :scrollToFirstError="true" :label-col="labelCol" :wrapper-col="wrapperCol">
|
||||||
|
|
||||||
<h3>域名信息</h3>
|
<h3>域名信息</h3>
|
||||||
<a-form-item :label="$t('domain')" v-bind="validateInfos.domains">
|
<a-form-item label="域名" v-bind="validateInfos.domains">
|
||||||
<a-select
|
<a-select
|
||||||
mode="tags"
|
mode="tags"
|
||||||
:placeholder="$t('please.input.domain')"
|
placeholder="请输入域名"
|
||||||
v-model:value="formData.domains"
|
v-model:value="formData.domains"
|
||||||
:open="false"
|
:open="false"
|
||||||
></a-select>
|
></a-select>
|
||||||
|
@ -24,7 +24,7 @@
|
||||||
</template>
|
</template>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|
||||||
<a-form-item :label="$t('email')" v-bind="validateInfos.email">
|
<a-form-item label="邮箱" v-bind="validateInfos.email">
|
||||||
<a-input v-model:value="formData.email"/>
|
<a-input v-model:value="formData.email"/>
|
||||||
</a-form-item>
|
</a-form-item>
|
||||||
|
|
||||||
|
@ -86,7 +86,8 @@
|
||||||
</template>
|
</template>
|
||||||
<script>
|
<script>
|
||||||
import { reactive, ref, watch } from 'vue'
|
import { reactive, ref, watch } from 'vue'
|
||||||
import { useForm } from '@ant-design-vue/use'
|
import { Form } from 'ant-design-vue';
|
||||||
|
const useForm = Form.useForm;
|
||||||
import dnsProviderApi from '../../../api/api.dns-providers'
|
import dnsProviderApi from '../../../api/api.dns-providers'
|
||||||
import _ from 'lodash-es'
|
import _ from 'lodash-es'
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
:closable="true"
|
:closable="true"
|
||||||
width="600px"
|
width="600px"
|
||||||
v-model:visible="taskDrawerVisible"
|
v-model:visible="taskDrawerVisible"
|
||||||
:after-visible-change="taskDrawerOnAfterVisibleChange"
|
@after-visible-change="taskDrawerOnAfterVisibleChange"
|
||||||
>
|
>
|
||||||
|
|
||||||
<template #title>
|
<template #title>
|
||||||
|
|
|
@ -184,13 +184,13 @@ import { message } from 'ant-design-vue'
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
import { reactive, ref, toRef, toRefs, provide, readonly } from 'vue'
|
import { reactive, ref, toRef, toRefs, provide, readonly } from 'vue'
|
||||||
// eslint-disable-next-line no-unused-vars
|
// eslint-disable-next-line no-unused-vars
|
||||||
import { useRoute } from 'vue-router'
|
import { useRoute,useRouter } from 'vue-router'
|
||||||
import CertForm from './components/cert-form'
|
import CertForm from './components/cert-form.vue'
|
||||||
import TaskForm from './components/task-form'
|
import TaskForm from './components/task-form.vue'
|
||||||
import exportsApi from '../../api/api.exports'
|
import exportsApi from '../../api/api.exports'
|
||||||
import _ from 'lodash-es'
|
import _ from 'lodash-es'
|
||||||
import DContainer from '../../components/d-container'
|
import DContainer from '../../components/d-container.vue'
|
||||||
import commonUtil from '@/utils/util.common'
|
import commonUtil from '/src/utils/util.common'
|
||||||
function useDeploy (options) {
|
function useDeploy (options) {
|
||||||
const deployAdd = () => {
|
const deployAdd = () => {
|
||||||
options.deploy.push({
|
options.deploy.push({
|
||||||
|
@ -245,9 +245,8 @@ function useExports (options) {
|
||||||
export default {
|
export default {
|
||||||
components: { DContainer, CertForm, TaskForm },
|
components: { DContainer, CertForm, TaskForm },
|
||||||
setup () {
|
setup () {
|
||||||
const route = useRoute()
|
const state = history.state
|
||||||
console.log('route', route)
|
const optionParams = state.options ? JSON.parse(state.options ) : {}
|
||||||
const optionParams = route.params.options ? JSON.parse(route.params.options) : {}
|
|
||||||
if (optionParams.accessProviders) {
|
if (optionParams.accessProviders) {
|
||||||
optionParams.accessProviders = commonUtil.mapToArray(optionParams.accessProviders)
|
optionParams.accessProviders = commonUtil.mapToArray(optionParams.accessProviders)
|
||||||
}
|
}
|
||||||
|
@ -286,6 +285,10 @@ export default {
|
||||||
taskFormRef.value.taskEdit(deploy, task, index)
|
taskFormRef.value.taskEdit(deploy, task, index)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function taskUpdated(task){
|
||||||
|
console.log('task updated',task)
|
||||||
|
}
|
||||||
|
|
||||||
useProvideAccessProviders(options)
|
useProvideAccessProviders(options)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
@ -297,6 +300,7 @@ export default {
|
||||||
taskFormRef,
|
taskFormRef,
|
||||||
taskAdd,
|
taskAdd,
|
||||||
taskEdit,
|
taskEdit,
|
||||||
|
taskUpdated,
|
||||||
...useExports(options)
|
...useExports(options)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,45 @@
|
||||||
|
{
|
||||||
|
"compilerOptions": {
|
||||||
|
// 这样就可以对 `this` 上的数据属性进行更严格的推断`
|
||||||
|
"noImplicitAny": false,
|
||||||
|
"target": "esnext",
|
||||||
|
"module": "esnext",
|
||||||
|
"strict": true,
|
||||||
|
"jsx": "preserve",
|
||||||
|
"importHelpers": true,
|
||||||
|
"moduleResolution": "node",
|
||||||
|
"experimentalDecorators": true,
|
||||||
|
"skipLibCheck": true,
|
||||||
|
"esModuleInterop": true,
|
||||||
|
"allowSyntheticDefaultImports": true,
|
||||||
|
"sourceMap": true,
|
||||||
|
"baseUrl": ".",
|
||||||
|
"outDir": "./dist/ts",
|
||||||
|
"types": [
|
||||||
|
"mocha",
|
||||||
|
"chai",
|
||||||
|
"node"
|
||||||
|
],
|
||||||
|
"paths": {
|
||||||
|
"/@/*": ["src/*"],
|
||||||
|
"/src/*": ["src/*"],
|
||||||
|
"/#/*": ["types/*"]
|
||||||
|
},
|
||||||
|
"lib": [
|
||||||
|
"esnext",
|
||||||
|
"dom",
|
||||||
|
"dom.iterable",
|
||||||
|
"scripthost"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"include": [
|
||||||
|
"src/**/*.ts",
|
||||||
|
"src/**/*.tsx",
|
||||||
|
"src/**/*.vue",
|
||||||
|
"tests/**/*.ts",
|
||||||
|
"tests/**/*.tsx"
|
||||||
|
],
|
||||||
|
"exclude": [
|
||||||
|
"node_modules"
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,66 @@
|
||||||
|
import vue from "@vitejs/plugin-vue";
|
||||||
|
import vueJsx from "@vitejs/plugin-vue-jsx";
|
||||||
|
import visualizer from "rollup-plugin-visualizer";
|
||||||
|
import viteCompression from "vite-plugin-compression";
|
||||||
|
import * as path from "path";
|
||||||
|
// import { generateModifyVars } from "./build/modify-vars";
|
||||||
|
// import { configThemePlugin } from "./build/theme-plugin";
|
||||||
|
// import OptimizationPersist from "vite-plugin-optimize-persist";
|
||||||
|
// import PkgConfig from "vite-plugin-package-config";
|
||||||
|
// https://vitejs.dev/config/
|
||||||
|
// 增加环境变量 _
|
||||||
|
process.env.VITE_APP_VERSION = require("./package.json").version;
|
||||||
|
process.env.VITE_APP_BUILD_TIME = require("dayjs")().format("YYYY-M-D HH:mm:ss");
|
||||||
|
|
||||||
|
export default ({ command, mode }) => {
|
||||||
|
console.log("args", command, mode);
|
||||||
|
|
||||||
|
const devServerFs: any = {};
|
||||||
|
const devAlias: any[] = [];
|
||||||
|
return {
|
||||||
|
base: "/",
|
||||||
|
plugins: [
|
||||||
|
vueJsx(),
|
||||||
|
vue(),
|
||||||
|
// 压缩build后的代码
|
||||||
|
viteCompression()
|
||||||
|
],
|
||||||
|
esbuild: {
|
||||||
|
// pure: ["console.log", "debugger"],
|
||||||
|
jsxFactory: "h",
|
||||||
|
jsxFragment: "Fragment"
|
||||||
|
},
|
||||||
|
resolve: {
|
||||||
|
alias: [
|
||||||
|
...devAlias,
|
||||||
|
{ find: "/@", replacement: path.resolve("./src") },
|
||||||
|
{ find: "/#", replacement: path.resolve("./types") }
|
||||||
|
],
|
||||||
|
dedupe: ["vue"]
|
||||||
|
},
|
||||||
|
build: {
|
||||||
|
rollupOptions: {
|
||||||
|
plugins: [visualizer()]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
css: {
|
||||||
|
preprocessorOptions: {
|
||||||
|
less: {
|
||||||
|
// 修改默认主题颜色,配置less变量
|
||||||
|
// modifyVars: generateModifyVars(),
|
||||||
|
javascriptEnabled: true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
server: {
|
||||||
|
fs: devServerFs,
|
||||||
|
proxy: {
|
||||||
|
// with options
|
||||||
|
"/api": {
|
||||||
|
//配套后端 https://github.com/fast-crud/fs-server-js
|
||||||
|
target: "http://127.0.0.1:3000"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
};
|
|
@ -1,47 +0,0 @@
|
||||||
const CompressionWebpackPlugin = require('compression-webpack-plugin')
|
|
||||||
|
|
||||||
// 设置不参与构建的库
|
|
||||||
const externals = {}
|
|
||||||
// cdnDependencies.forEach(pkg => { externals[pkg.name] = pkg.library })
|
|
||||||
|
|
||||||
module.exports = {
|
|
||||||
lintOnSave: true,
|
|
||||||
pages: {
|
|
||||||
index: {
|
|
||||||
entry: 'src/main.js',
|
|
||||||
// template 中的 title 标签需要是 <title><%= htmlWebpackPlugin.options.title %></title>
|
|
||||||
title: 'Cert-D'
|
|
||||||
}
|
|
||||||
},
|
|
||||||
devServer: {
|
|
||||||
proxy: {
|
|
||||||
'/': {
|
|
||||||
target: 'http://localhost:3000/'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
css: {
|
|
||||||
loaderOptions: {
|
|
||||||
less: {
|
|
||||||
javascriptEnabled: true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
configureWebpack: config => {
|
|
||||||
const configNew = {}
|
|
||||||
if (process.env.NODE_ENV === 'production') {
|
|
||||||
configNew.externals = externals
|
|
||||||
configNew.plugins = [
|
|
||||||
// gzip
|
|
||||||
new CompressionWebpackPlugin({
|
|
||||||
filename: '[path].gz[query]',
|
|
||||||
test: new RegExp('\\.(' + ['js', 'css'].join('|') + ')$'),
|
|
||||||
threshold: 5120,
|
|
||||||
minRatio: 0.8,
|
|
||||||
deleteOriginalAssets: false
|
|
||||||
})
|
|
||||||
]
|
|
||||||
}
|
|
||||||
return configNew
|
|
||||||
}
|
|
||||||
}
|
|