From 305824ff1ac30d071693b7d9d5f4f31e5ac4aff6 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Thu, 4 Feb 2021 22:07:01 +0800 Subject: [PATCH] refactor: ui --- .../plugins/src/aliyun/deploy-to-cdn/index.js | 11 ++++---- .../src/aliyun/upload-to-aliyun/index.js | 7 ++--- .../src/host/host-shell-execute/index.js | 8 ++++-- .../plugins/src/host/upload-to-host/index.js | 8 ++++-- .../src/tencent/deploy-to-cdn/index.js | 4 +-- .../src/tencent/deploy-to-clb/index.js | 14 +++++++--- .../tencent/deploy-to-tke-ingress/index.js | 27 ++++++++++--------- .../src/tencent/upload-to-tencent/index.js | 10 ++++--- ui/certd-ui/src/api/util.input.handler.js | 7 +++-- .../access-provider-selector.vue | 2 +- 10 files changed, 62 insertions(+), 36 deletions(-) diff --git a/packages/plugins/src/aliyun/deploy-to-cdn/index.js b/packages/plugins/src/aliyun/deploy-to-cdn/index.js index 2fc6fee9..25893fbb 100644 --- a/packages/plugins/src/aliyun/deploy-to-cdn/index.js +++ b/packages/plugins/src/aliyun/deploy-to-cdn/index.js @@ -9,9 +9,9 @@ const define = { domainName: { label: 'cdn加速域名', component: { - placeholder: 'cdn加速域名', - rules: [{ required: true, message: '该项必填' }] - } + placeholder: 'cdn加速域名' + }, + required: true }, certName: { label: '证书名称', @@ -22,6 +22,7 @@ const define = { from: { default: 'upload', label: '证书来源', + required: true, component: { required: true, placeholder: '证书来源', @@ -45,9 +46,9 @@ const define = { accessProvider: { label: 'Access提供者', type: [String, Object], - desc: 'AccessProviders的key 或 一个包含accessKeyId与accessKeySecret的对象', + desc: 'access授权', component: { - name: 'provider-selector', + name: 'access-provider-selector', filter: 'aliyun' }, required: true diff --git a/packages/plugins/src/aliyun/upload-to-aliyun/index.js b/packages/plugins/src/aliyun/upload-to-aliyun/index.js index f9958a89..02137a5e 100644 --- a/packages/plugins/src/aliyun/upload-to-aliyun/index.js +++ b/packages/plugins/src/aliyun/upload-to-aliyun/index.js @@ -11,14 +11,15 @@ const define = { }, regionId: { label: '大区', - default: 'cn-hangzhou' + default: 'cn-hangzhou', + required: true }, accessProvider: { label: 'Access提供者', type: [String, Object], - desc: 'AccessProviders的key 或 一个包含accessKeyId与accessKeySecret的对象', + desc: 'access授权', component: { - name: 'provider-selector', + name: 'access-provider-selector', filter: 'aliyun' }, required: true diff --git a/packages/plugins/src/host/host-shell-execute/index.js b/packages/plugins/src/host/host-shell-execute/index.js index 9582fab1..ae908c67 100644 --- a/packages/plugins/src/host/host-shell-execute/index.js +++ b/packages/plugins/src/host/host-shell-execute/index.js @@ -18,8 +18,12 @@ export class HostShellExecute extends AbstractHostPlugin { accessProvider: { label: '主机登录配置', type: [String, Object], - desc: 'AccessProviders的key 或 一个包含用户名密码的对象', - options: 'accessProviders[type=ssh]' + desc: '登录', + component: { + name: 'access-provider-selector', + filter: 'host' + }, + required: true } }, output: { diff --git a/packages/plugins/src/host/upload-to-host/index.js b/packages/plugins/src/host/upload-to-host/index.js index 762ca244..0f0608ef 100644 --- a/packages/plugins/src/host/upload-to-host/index.js +++ b/packages/plugins/src/host/upload-to-host/index.js @@ -21,8 +21,12 @@ export class UploadCertToHost extends AbstractHostPlugin { accessProvider: { label: '主机登录配置', type: [String, Object], - desc: 'AccessProviders的key 或 一个包含用户名密码的对象', - options: 'accessProviders[type=ssh]' + desc: 'access授权', + component: { + name: 'access-provider-selector', + filter: 'host' + }, + required: true } }, output: { diff --git a/packages/plugins/src/tencent/deploy-to-cdn/index.js b/packages/plugins/src/tencent/deploy-to-cdn/index.js index 04158854..5e2d7171 100644 --- a/packages/plugins/src/tencent/deploy-to-cdn/index.js +++ b/packages/plugins/src/tencent/deploy-to-cdn/index.js @@ -35,9 +35,9 @@ export class DeployCertToTencentCDN extends AbstractTencentPlugin { accessProvider: { label: 'Access提供者', type: [String, Object], - desc: 'AccessProviders的key 或 一个包含accessKeyId与accessKeySecret的对象', + desc: 'access 授权', component: { - name: 'provider-selector', + name: 'access-provider-selector', filter: 'tencent' }, required: true diff --git a/packages/plugins/src/tencent/deploy-to-clb/index.js b/packages/plugins/src/tencent/deploy-to-clb/index.js index fd967e01..fce1cf27 100644 --- a/packages/plugins/src/tencent/deploy-to-clb/index.js +++ b/packages/plugins/src/tencent/deploy-to-clb/index.js @@ -15,16 +15,19 @@ export class DeployCertToTencentCLB extends AbstractTencentPlugin { input: { region: { label: '大区', - default: 'ap-guangzhou' + default: 'ap-guangzhou', + required: true }, domain: { label: '域名', type: [String, Array], + required: true, desc: '要更新的支持https的负载均衡的域名' }, loadBalancerId: { label: '负载均衡ID', - desc: '如果没有配置,则根据域名匹配负载均衡下的监听器(根据域名匹配时暂时只支持前100个)' + desc: '如果没有配置,则根据域名匹配负载均衡下的监听器(根据域名匹配时暂时只支持前100个)', + required: true }, listenerId: { label: '监听器ID', @@ -37,8 +40,11 @@ export class DeployCertToTencentCLB extends AbstractTencentPlugin { accessProvider: { label: 'Access提供者', type: [String, Object], - desc: 'AccessProviders的key 或 一个包含accessKeyId与accessKeySecret的对象', - options: 'accessProviders[type=tencent]', + desc: 'access授权', + component: { + name: 'access-provider-selector', + filter: 'tencent' + }, required: true } }, diff --git a/packages/plugins/src/tencent/deploy-to-tke-ingress/index.js b/packages/plugins/src/tencent/deploy-to-tke-ingress/index.js index a968602f..f2f5f9c9 100644 --- a/packages/plugins/src/tencent/deploy-to-tke-ingress/index.js +++ b/packages/plugins/src/tencent/deploy-to-tke-ingress/index.js @@ -16,21 +16,25 @@ export class DeployCertToTencentTKEIngress extends AbstractTencentPlugin { input: { region: { label: '大区', - default: 'ap-guangzhou' + default: 'ap-guangzhou', + required: true }, clusterId: { label: '集群ID', required: true, - desc: '例如:cls-6lbj1vee' + desc: '例如:cls-6lbj1vee', + request: true }, namespace: { - label: '集群的namespace', - default: 'default' + label: '集群namespace', + default: 'default', + required: true }, secreteName: { type: [String, Array], label: '证书的secret名称', - desc: '支持多个(传入数组)' + desc: '支持多个(传入数组)', + required: true }, ingressName: { type: [String, Array], @@ -44,20 +48,19 @@ export class DeployCertToTencentTKEIngress extends AbstractTencentPlugin { }, clusterDomain: { type: String, - label: '集群域名,可不填,默认为:[clusterId].ccs.tencent-cloud.com' + label: '集群域名', + desc: '可不填,默认为:[clusterId].ccs.tencent-cloud.com' }, /** * AccessProvider的key,或者一个包含access的具体的对象 */ accessProvider: { - label: 'Access提供者', + label: 'Access授权', type: [String, Object], - desc: '请选择access提供者', + desc: 'access授权', component: { - name: 'accessProviderSelect', - props: { - filterType: 'tencent' - } + name: 'access-provider-selector', + filter: 'tencent' }, required: true } diff --git a/packages/plugins/src/tencent/upload-to-tencent/index.js b/packages/plugins/src/tencent/upload-to-tencent/index.js index a97ca9c1..83b4d881 100644 --- a/packages/plugins/src/tencent/upload-to-tencent/index.js +++ b/packages/plugins/src/tencent/upload-to-tencent/index.js @@ -18,10 +18,14 @@ export class UploadCertToTencent extends AbstractTencentPlugin { label: '证书名称' }, accessProvider: { - label: 'Access提供者', + label: 'Access授权', type: [String, Object], - desc: 'AccessProviders的key 或 一个包含accessKeyId与accessKeySecret的对象', - options: 'accessProviders[type=tencent]' + desc: 'access授权', + component: { + name: 'access-provider-selector', + filter: 'tencent' + }, + required: true } }, output: { diff --git a/ui/certd-ui/src/api/util.input.handler.js b/ui/certd-ui/src/api/util.input.handler.js index d14cfe3a..d029778f 100644 --- a/ui/certd-ui/src/api/util.input.handler.js +++ b/ui/certd-ui/src/api/util.input.handler.js @@ -5,7 +5,10 @@ function handleInputs (inputs) { return } _.forEach(inputs, (item, key) => { - if (item.component?.required === true) { + if (item.required === true) { + if (item.component == null) { + item.component = {} + } if (item.component.rules == null) { item.component.rules = [] } @@ -18,7 +21,7 @@ function handleInputs (inputs) { } } item.component.rules.push({ required: true, message: '该项必填' }) - delete item.component.required + delete item.required } }) } diff --git a/ui/certd-ui/src/components/access-provider-selector/access-provider-selector.vue b/ui/certd-ui/src/components/access-provider-selector/access-provider-selector.vue index 627c9d39..c65d9fc1 100644 --- a/ui/certd-ui/src/components/access-provider-selector/access-provider-selector.vue +++ b/ui/certd-ui/src/components/access-provider-selector/access-provider-selector.vue @@ -24,7 +24,7 @@ import { ref, inject } from 'vue' import AccessProviderManager from './access-provider-manager' export default { - name: 'provider-selector', + name: 'access-provider-selector', components: { AccessProviderManager }, emits: ['update:providers', 'update:value'], // 属性定义