diff --git a/packages/plugins/plugin-lib/package.json b/packages/plugins/plugin-lib/package.json index a51a7788..bee5ec39 100644 --- a/packages/plugins/plugin-lib/package.json +++ b/packages/plugins/plugin-lib/package.json @@ -16,6 +16,7 @@ "pub": "npm publish" }, "dependencies": { + "@alicloud/credentials": "^2.4.3", "@alicloud/openapi-client": "^0.4.14", "@alicloud/pop-core": "^1.7.10", "@alicloud/tea-util": "^1.4.10", diff --git a/packages/plugins/plugin-lib/src/aliyun/access/aliyun-access.ts b/packages/plugins/plugin-lib/src/aliyun/access/aliyun-access.ts index 6a20ab92..231118af 100644 --- a/packages/plugins/plugin-lib/src/aliyun/access/aliyun-access.ts +++ b/packages/plugins/plugin-lib/src/aliyun/access/aliyun-access.ts @@ -32,9 +32,15 @@ export class AliyunClientV2 { return this.client; } const $OpenApi = await import("@alicloud/openapi-client"); - const config = new $OpenApi.Config({ + const Credential = await import("@alicloud/credentials"); + //@ts-ignore + const credential = new Credential.default.default({ accessKeyId: this.access.accessKeyId, accessKeySecret: this.access.accessKeySecret, + type: "access_key", + }); + const config = new $OpenApi.Config({ + credential, }); // Endpoint 请参考 https://api.aliyun.com/product/FC // config.endpoint = `esa.${this.regionId}.aliyuncs.com`; diff --git a/packages/ui/certd-client/src/views/certd/monitor/site/api.ts b/packages/ui/certd-client/src/views/certd/monitor/site/api.ts index f1fb6065..8121be30 100644 --- a/packages/ui/certd-client/src/views/certd/monitor/site/api.ts +++ b/packages/ui/certd-client/src/views/certd/monitor/site/api.ts @@ -56,6 +56,16 @@ export const siteInfoApi = { }); }, + async DisabledChange(id: number, disabled: boolean) { + return await request({ + url: apiPrefix + "/disabledChange", + method: "post", + data: { + id, + disabled, + }, + }); + }, async IpCheckChange(id: number, ipCheck: boolean) { return await request({ url: apiPrefix + "/ipCheckChange", diff --git a/packages/ui/certd-client/src/views/certd/monitor/site/crud.tsx b/packages/ui/certd-client/src/views/certd/monitor/site/crud.tsx index d2534a91..c3b3e5b1 100644 --- a/packages/ui/certd-client/src/views/certd/monitor/site/crud.tsx +++ b/packages/ui/certd-client/src/views/certd/monitor/site/crud.tsx @@ -360,6 +360,16 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat width: 100, sorter: true, align: "center", + component: { + name: "fs-dict-switch", + vModel: "checked", + on: { + async change({ row, $event }) { + await api.DisabledChange(row.id, $event); + await crudExpose.doRefresh(); + }, + }, + }, }, }, ipCheck: { @@ -367,8 +377,8 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat type: "dict-switch", dict: dict({ data: [ - { label: "启用", value: false, color: "green" }, - { label: "禁用", value: true, color: "gray" }, + { label: "启用", value: true, color: "green" }, + { label: "禁用", value: false, color: "gray" }, ], }), form: { @@ -380,7 +390,7 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat width: 100, conditionalRender: false, component: { - name: "a-switch", + name: "fs-dict-switch", vModel: "checked", on: { change({ row, $event }) { diff --git a/packages/ui/certd-client/src/views/certd/monitor/site/ip/index.vue b/packages/ui/certd-client/src/views/certd/monitor/site/ip/index.vue index 27925b7c..3f07bf92 100644 --- a/packages/ui/certd-client/src/views/certd/monitor/site/ip/index.vue +++ b/packages/ui/certd-client/src/views/certd/monitor/site/ip/index.vue @@ -9,7 +9,7 @@ import { onActivated, onMounted, ref, Ref } from "vue"; import { useFs } from "@fast-crud/fast-crud"; import createCrudOptions from "./crud"; import { siteIpApi } from "./api"; -import { Modal, notification } from "ant-design-vue"; + defineOptions({ name: "SiteIpCertMonitor", }); diff --git a/packages/ui/certd-server/src/controller/user/monitor/site-info-controller.ts b/packages/ui/certd-server/src/controller/user/monitor/site-info-controller.ts index 892ba0bb..ae56f156 100644 --- a/packages/ui/certd-server/src/controller/user/monitor/site-info-controller.ts +++ b/packages/ui/certd-server/src/controller/user/monitor/site-info-controller.ts @@ -62,7 +62,10 @@ export class SiteInfoController extends CrudController { async add(@Body(ALL) bean: any) { bean.userId = this.getUserId(); const res = await this.service.add(bean); - this.service.check(res.id, true, 0); + const entity = await this.service.info(res.id); + if (entity.disabled) { + this.service.check(entity.id, true, 0); + } return this.ok(res); } @@ -71,7 +74,10 @@ export class SiteInfoController extends CrudController { await this.service.checkUserId(bean.id, this.getUserId()); delete bean.userId; await this.service.update(bean); - this.service.check(bean.id, true, 0); + const entity = await this.service.info(bean.id); + if (entity.disabled) { + this.service.check(entity.id, true, 0); + } return this.ok(); } @Post('/info', { summary: Constants.per.authOnly }) @@ -110,6 +116,16 @@ export class SiteInfoController extends CrudController { return this.ok(); } + @Post('/disabledChange', { summary: Constants.per.authOnly }) + async disabledChange(@Body(ALL) bean: any) { + const userId = this.getUserId(); + await this.service.checkUserId(bean.id, userId) + await this.service.disabledChange({ + id: bean.id, + disabled: bean.disabled + }); + return this.ok(); + } @Post("/setting/get", { summary: Constants.per.authOnly }) async get() { diff --git a/packages/ui/certd-server/src/controller/user/monitor/site-ip-controller.ts b/packages/ui/certd-server/src/controller/user/monitor/site-ip-controller.ts index dc376037..0bd175c8 100644 --- a/packages/ui/certd-server/src/controller/user/monitor/site-ip-controller.ts +++ b/packages/ui/certd-server/src/controller/user/monitor/site-ip-controller.ts @@ -45,8 +45,10 @@ export class SiteInfoController extends CrudController { bean.from = "manual" const res = await this.service.add(bean); const siteEntity = await this.siteInfoService.info(bean.siteId); - const {domain, httpsPort} = siteEntity; - this.service.check(res.id,domain, httpsPort); + if(!siteEntity.disabled){ + const {domain, httpsPort} = siteEntity; + this.service.check(res.id,domain, httpsPort); + } return this.ok(res); } @@ -56,8 +58,10 @@ export class SiteInfoController extends CrudController { delete bean.userId; await this.service.update(bean); const siteEntity = await this.siteInfoService.info(bean.siteId); - const {domain, httpsPort} = siteEntity; - this.service.check(bean.id,domain, httpsPort); + if(!siteEntity.disabled){ + const {domain, httpsPort} = siteEntity; + this.service.check(siteEntity.id,domain, httpsPort); + } return this.ok(); } @Post('/info', { summary: Constants.per.authOnly }) diff --git a/packages/ui/certd-server/src/modules/monitor/service/site-info-service.ts b/packages/ui/certd-server/src/modules/monitor/service/site-info-service.ts index 5d237847..baf6b94a 100644 --- a/packages/ui/certd-server/src/modules/monitor/service/site-info-service.ts +++ b/packages/ui/certd-server/src/modules/monitor/service/site-info-service.ts @@ -311,4 +311,14 @@ export class SiteInfoService extends BaseService { } } + async disabledChange(req: { disabled: any; id: any }) { + await this.update({ + id: req.id, + disabled: req.disabled, + }); + if(!req.disabled){ + const site = await this.info(req.id); + await this.doCheck(site) + } + } } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 59ea8628..48b0646e 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -682,6 +682,9 @@ importers: packages/plugins/plugin-lib: dependencies: + '@alicloud/credentials': + specifier: ^2.4.3 + version: 2.4.3 '@alicloud/openapi-client': specifier: ^0.4.14 version: 0.4.14