pull/199/head
xiaojunnuo 2024-09-29 14:57:20 +08:00
parent 7ee9d915fb
commit 51f29d6093
9 changed files with 45 additions and 12 deletions

View File

@ -5,6 +5,7 @@ export type Registrable = {
title: string; title: string;
desc?: string; desc?: string;
group?: string; group?: string;
deprecated?: string;
}; };
export type RegistryItem<T> = { export type RegistryItem<T> = {
@ -67,6 +68,9 @@ export class Registry<T> {
for (const key in this.storage) { for (const key in this.storage) {
const define = this.getDefine(key); const define = this.getDefine(key);
if (define) { if (define) {
if (define?.deprecated) {
continue;
}
list.push({ ...define, key }); list.push({ ...define, key });
} }
} }

View File

@ -174,6 +174,9 @@ export class CertApplyPlugin extends CertApplyBasePlugin {
const dnsProviderPlugin = dnsProviderRegistry.get(dnsProviderType); const dnsProviderPlugin = dnsProviderRegistry.get(dnsProviderType);
const DnsProviderClass = dnsProviderPlugin.target; const DnsProviderClass = dnsProviderPlugin.target;
const dnsProviderDefine = dnsProviderPlugin.define as DnsProviderDefine; const dnsProviderDefine = dnsProviderPlugin.define as DnsProviderDefine;
if (dnsProviderDefine.deprecated) {
throw new Error(dnsProviderDefine.deprecated);
}
const access = await this.accessService.getById(dnsProviderAccessId); const access = await this.accessService.getById(dnsProviderAccessId);
// @ts-ignore // @ts-ignore

View File

@ -30,8 +30,9 @@ function next() {
<style lang="less"> <style lang="less">
.tutorial-modal { .tutorial-modal {
top: 50px;
.ant-modal-body { .ant-modal-body {
height: 70vh; height: 80vh;
} }
} }
</style> </style>

View File

@ -11,7 +11,7 @@
</div> </div>
<div class="image-box"> <div class="image-box">
<a-image :src="currentStepItem.image" /> <a-image :src="currentStepItem.image" :preview-mask="previewMask" />
</div> </div>
</div> </div>
@ -22,7 +22,7 @@
</div> </div>
</template> </template>
<script setup lang="ts"> <script setup lang="tsx">
type Step = { type Step = {
title: string; title: string;
subTitle?: string; subTitle?: string;
@ -256,19 +256,26 @@ function stepChanged(index: number) {
current.value = index; current.value = index;
currentItem.value = 0; currentItem.value = 0;
} }
function previewMask() {
return (
<div title="点击放大" class="h-100 w-100">
{" "}
</div>
);
}
</script> </script>
<style lang="less"> <style lang="less">
.tutorial-steps { .tutorial-steps {
.step-item { .step-item {
display: flex !important; display: flex !important;
flex-direction: column; flex-direction: row;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
flex: 1; flex: 1;
padding: 20px; padding: 20px;
.text { .text {
width: 100%; width: 350px;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
@ -285,10 +292,20 @@ function stepChanged(index: number) {
background: #eee; background: #eee;
width: 100%; width: 100%;
height: 100%; height: 100%;
img { .ant-image-mask {
height: 100%; background: rgba(255, 255, 255, 0);
}
.ant-image {
width: 100%; width: 100%;
object-fit: contain; height: 100%;
display: flex;
justify-content: center;
align-items: center;
img {
width: 100%;
height: 100%;
object-fit: contain;
}
} }
} }
.desc { .desc {

View File

@ -53,7 +53,7 @@ export class AccessController extends CrudController<AccessService> {
} }
@Post('/define', { summary: Constants.per.authOnly }) @Post('/define', { summary: Constants.per.authOnly })
async define(@Query('type') type:string) { async define(@Query('type') type: string) {
const access = this.service.getDefineByType(type); const access = this.service.getDefineByType(type);
return this.ok(access); return this.ok(access);
} }
@ -63,6 +63,9 @@ export class AccessController extends CrudController<AccessService> {
const list = this.service.getDefineList(); const list = this.service.getDefineList();
const dict = []; const dict = [];
for (const item of list) { for (const item of list) {
if (item?.deprecated) {
continue;
}
dict.push({ dict.push({
value: item.name, value: item.name,
label: item.title, label: item.title,

View File

@ -13,7 +13,7 @@ export class DnsProviderController extends BaseController {
service: DnsProviderService; service: DnsProviderService;
@Post('/list', { summary: Constants.per.authOnly }) @Post('/list', { summary: Constants.per.authOnly })
async list(@Query(ALL) query:any) { async list(@Query(ALL) query: any) {
query.userId = this.ctx.user.id; query.userId = this.ctx.user.id;
const list = this.service.getList(); const list = this.service.getList();
return this.ok(list); return this.ok(list);

View File

@ -8,6 +8,9 @@ export class PluginService {
const list = []; const list = [];
for (const key in collection) { for (const key in collection) {
const Plugin = collection[key]; const Plugin = collection[key];
if (Plugin?.define.deprecated) {
continue;
}
list.push({ ...Plugin.define, key }); list.push({ ...Plugin.define, key });
} }
return list; return list;

View File

@ -2,8 +2,9 @@ import { IsAccess, AccessInput } from '@certd/pipeline';
@IsAccess({ @IsAccess({
name: 'dnspod', name: 'dnspod',
title: 'dnspod', title: 'dnspod(已废弃)',
desc: '腾讯云的域名解析接口已迁移到dnspod', desc: '腾讯云的域名解析接口已迁移到dnspod',
deprecated: 'dnspod已废弃请换成腾讯云',
}) })
export class DnspodAccess { export class DnspodAccess {
@AccessInput({ @AccessInput({

View File

@ -6,8 +6,9 @@ import { DnspodAccess } from '../access/index.js';
@IsDnsProvider({ @IsDnsProvider({
name: 'dnspod', name: 'dnspod',
title: 'dnspod(已过时,请尽快换成腾讯云)', title: 'dnspod(已过时,请尽快换成腾讯云)',
desc: '请尽快换成腾讯云类型', desc: '已废弃,请尽快换成腾讯云类型',
accessType: 'dnspod', accessType: 'dnspod',
deprecated: 'dnspod已废弃请换成腾讯云',
}) })
export class DnspodDnsProvider extends AbstractDnsProvider { export class DnspodDnsProvider extends AbstractDnsProvider {
@Autowire() @Autowire()