From a8f41d3c48b33086e5e5da8f5a3f7578567f57f8 Mon Sep 17 00:00:00 2001 From: xiaojunnuo Date: Thu, 4 Feb 2021 20:31:04 +0800 Subject: [PATCH] refactor: form input --- other/certd-ui/src/api/api.plugins.js | 11 +++++-- other/certd-ui/src/api/api.providers.js | 9 +++-- other/certd-ui/src/api/service.js | 7 +--- other/certd-ui/src/api/util.input.handler.js | 33 +++++++++++++++++++ .../plugins/src/aliyun/deploy-to-cdn/index.js | 2 +- 5 files changed, 50 insertions(+), 12 deletions(-) create mode 100644 other/certd-ui/src/api/util.input.handler.js diff --git a/other/certd-ui/src/api/api.plugins.js b/other/certd-ui/src/api/api.plugins.js index a1e7f98bf..331d98c45 100644 --- a/other/certd-ui/src/api/api.plugins.js +++ b/other/certd-ui/src/api/api.plugins.js @@ -1,9 +1,14 @@ import { request } from './service' - +import inputHandler from './util.input.handler' export default { - list () { - return request({ + async list () { + const ret = await request({ url: '/plugins/list' }) + + inputHandler.handle(ret) + + console.log('plugins', ret) + return ret } } diff --git a/other/certd-ui/src/api/api.providers.js b/other/certd-ui/src/api/api.providers.js index ed3b2f3d1..77346971c 100644 --- a/other/certd-ui/src/api/api.providers.js +++ b/other/certd-ui/src/api/api.providers.js @@ -1,9 +1,14 @@ import { request } from './service' +import inputHandler from '@/api/util.input.handler' export default { - list () { - return request({ + async list () { + const ret = await request({ url: '/providers/list' }) + + inputHandler.handle(ret) + + return ret } } diff --git a/other/certd-ui/src/api/service.js b/other/certd-ui/src/api/service.js index d0d1d1ded..5372a678e 100644 --- a/other/certd-ui/src/api/service.js +++ b/other/certd-ui/src/api/service.js @@ -36,16 +36,11 @@ function createService () { switch (code) { case 0: // [ 示例 ] code === 0 代表没有错误 - // TODO 可能结果还需要code和msg进行后续处理,所以返回全部结果 return dataAxios.data - case 'xxx': - // [ 示例 ] 其它和后台约定的 code - errorCreate(`[ code: xxx ] ${dataAxios.msg}: ${response.config.url}`) - break default: // 不是正确的 code errorCreate(`${dataAxios.msg}: ${response.config.url}`) - break + return dataAxios } } }, diff --git a/other/certd-ui/src/api/util.input.handler.js b/other/certd-ui/src/api/util.input.handler.js new file mode 100644 index 000000000..d14cfe3ad --- /dev/null +++ b/other/certd-ui/src/api/util.input.handler.js @@ -0,0 +1,33 @@ +import _ from 'lodash-es' + +function handleInputs (inputs) { + if (inputs == null) { + return + } + _.forEach(inputs, (item, key) => { + if (item.component?.required === true) { + if (item.component.rules == null) { + item.component.rules = [] + } + if (item.component.rules.length > 0) { + const hasRequired = item.rules.filter(rule => { + return rule.required === true + }) + if (hasRequired.length > 0) { + return + } + } + item.component.rules.push({ required: true, message: '该项必填' }) + delete item.component.required + } + }) +} +export default { + + handle (list) { + _.forEach(list, item => { + handleInputs(item.input) + }) + } + +} diff --git a/packages/plugins/src/aliyun/deploy-to-cdn/index.js b/packages/plugins/src/aliyun/deploy-to-cdn/index.js index 9332a21b0..042a469ed 100644 --- a/packages/plugins/src/aliyun/deploy-to-cdn/index.js +++ b/packages/plugins/src/aliyun/deploy-to-cdn/index.js @@ -23,8 +23,8 @@ const define = { value: 'upload', label: '证书来源', component: { - placeholder: '证书来源', required: true, + placeholder: '证书来源', name: 'a-select', options: [ { value: 'upload', label: '直接上传' },