refactor: 重构优化

master
xiaojunnuo 2021-02-05 14:30:31 +08:00
parent 305824ff1a
commit 5cde165f0b
9 changed files with 26 additions and 17 deletions

View File

@ -9,11 +9,11 @@ export class AliyunDnsProvider extends AbstractDnsProvider {
desc: '', desc: '',
input: { input: {
accessProvider: { accessProvider: {
label: 'Access提供者', label: '授权',
type: [String, Object], type: [String, Object],
desc: 'AccessProviders的key 或 一个包含accessKeyId与accessKeySecret的对象', desc: '需要aliyun类型的授权',
component: { component: {
name: 'provider-selector', name: 'access-provider-selector',
filter: 'aliyun' filter: 'aliyun'
}, },
required: true required: true

View File

@ -9,11 +9,11 @@ export class DnspodDnsProvider extends AbstractDnsProvider {
desc: '腾讯云的域名解析接口已迁移到dnspod', desc: '腾讯云的域名解析接口已迁移到dnspod',
input: { input: {
accessProvider: { accessProvider: {
label: 'Access提供者', label: '授权',
type: [String, Object], type: [String, Object],
desc: 'AccessProviders的key', desc: '需要dnspod类型的授权',
component: { component: {
name: 'provider-selector', name: 'access-provider-selector',
filter: 'dnspod' filter: 'dnspod'
}, },
required: true required: true

View File

@ -1,7 +1,12 @@
import os from 'os'
export default { export default {
join (...dirs) { join (...dirs) {
const url = new URL('../' + dirs.join('/'), import.meta.url) const url = new URL('../' + dirs.join('/'), import.meta.url)
console.log('url', url) console.log('url', url)
return url.pathname let path = url.pathname
if (os.type() === 'Windows_NT') {
path = path.substring(1)
}
return path
} }
} }

View File

@ -16,7 +16,8 @@
"vue-i18n": "^9.0.0-rc.2", "vue-i18n": "^9.0.0-rc.2",
"core-js": "^3.8.1", "core-js": "^3.8.1",
"vue": "^3.0.4", "vue": "^3.0.4",
"vue-router": "^4.0.1" "vue-router": "^4.0.1",
"vue-json-editor": "^1.4.2"
}, },
"devDependencies": { "devDependencies": {
"@babel/core": "^7.12.10", "@babel/core": "^7.12.10",

View File

@ -9,18 +9,19 @@ function handleInputs (inputs) {
if (item.component == null) { if (item.component == null) {
item.component = {} item.component = {}
} }
if (item.component.rules == null) { let rules = item.component.rules
item.component.rules = [] if (rules == null) {
item.component.rules = rules = []
} }
if (item.component.rules.length > 0) { if (rules.length > 0) {
const hasRequired = item.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
} }
} }
item.component.rules.push({ required: true, message: '该项必填' }) rules.push({ required: true, message: '该项必填' })
delete item.required delete item.required
} }
}) })

View File

@ -3,13 +3,14 @@
<a-select <a-select
:value="value" :value="value"
@update:value="valueUpdate" @update:value="valueUpdate"
placeholder="没有可选时请点右边按钮添加"
> >
<a-select-option v-for="item of getProviders()" :key="item.key" :value="item.key" :disabled="isDisabled(item)"> <a-select-option v-for="item of getProviders()" :key="item.key" :value="item.key" :disabled="isDisabled(item)">
{{ item.name }} {{ item.name }}
</a-select-option> </a-select-option>
</a-select> </a-select>
<a-button class="suffix" @click="providerManagerOpen"> <a-button class="suffix" @click="providerManagerOpen">
管理授权 添加授权
</a-button> </a-button>
</div> </div>
<access-provider-manager ref="providerManagerRef" <access-provider-manager ref="providerManagerRef"

View File

@ -26,7 +26,8 @@ export default {
attrs[key] = eval(value) attrs[key] = eval(value)
} }
}) })
return () => h(resolveComponent(props.name), context.$attrs, props.children) const comp = resolveComponent(props.name)
return () => h(comp, context.$attrs, props.children)
} }
} }
</script> </script>

View File

@ -3,7 +3,7 @@
title="证书申请配置" title="证书申请配置"
placement="right" placement="right"
:closable="true" :closable="true"
width="500px" width="600px"
v-model:visible="visible" v-model:visible="visible"
:after-visible-change="afterVisibleChange" :after-visible-change="afterVisibleChange"
> >

View File

@ -155,7 +155,7 @@
<div><a-button @click="exportsToZip"></a-button></div> <div><a-button @click="exportsToZip"></a-button></div>
<br/> <br/>
<div> <a-button>仅导出配置</a-button></div> <div> <a-button @click="exportsToJson"></a-button></div>
</div> </div>
</div> </div>
</div> </div>