perf: 商业版支持配置证书申请插件参数

This commit is contained in:
xiaojunnuo
2026-04-25 04:12:26 +08:00
parent 24dff05f64
commit 7ac789c9c7
5 changed files with 41 additions and 9 deletions
@@ -135,3 +135,11 @@ export async function DoTest(req: { id: number; input: any }): Promise<void> {
data: req, data: req,
}); });
} }
export async function GetPluginByName(name: string): Promise<PluginConfigBean> {
return await request({
url: apiPrefix + "/getPluginByName",
method: "post",
data: { name },
});
}
@@ -36,6 +36,13 @@
</div> </div>
</a-form-item> </a-form-item>
<a-form-item label="其他配置">
<a-button type="primary" @click="doPluginConfig">证书申请插件默认值设置</a-button>
<div class="helper">
<div>自定义证书申请插件参数</div>
</div>
</a-form-item>
<a-form-item :wrapper-col="{ offset: 8, span: 16 }"> <a-form-item :wrapper-col="{ offset: 8, span: 16 }">
<a-button :loading="saveLoading" type="primary" html-type="submit">保存</a-button> <a-button :loading="saveLoading" type="primary" html-type="submit">保存</a-button>
</a-form-item> </a-form-item>
@@ -47,10 +54,10 @@
<script lang="ts" setup> <script lang="ts" setup>
import AccessSelector from "/@/views/certd/access/access-selector/index.vue"; import AccessSelector from "/@/views/certd/access/access-selector/index.vue";
import { reactive, ref } from "vue"; import { reactive, ref } from "vue";
import { CommPluginConfig, GetCommPluginConfigs, SaveCommPluginConfigs } from "/@/views/sys/plugin/api"; import { CommPluginConfig, GetCommPluginConfigs, SaveCommPluginConfigs, GetPluginByName } from "/@/views/sys/plugin/api";
import { merge } from "lodash-es"; import { merge } from "lodash-es";
import { notification } from "ant-design-vue"; import { notification } from "ant-design-vue";
import { usePluginConfig } from "./use-config";
defineOptions({ defineOptions({
name: "SysPluginConfig", name: "SysPluginConfig",
}); });
@@ -87,5 +94,12 @@ const onFinish = async (form: any) => {
const onFinishFailed = (errorInfo: any) => { const onFinishFailed = (errorInfo: any) => {
console.log("Failed:", errorInfo); console.log("Failed:", errorInfo);
}; };
const { openConfigDialog } = usePluginConfig();
async function doPluginConfig() {
const certApplyInfo = await GetPluginByName("CertApply");
await openConfigDialog({ row: certApplyInfo, crudExpose: null });
}
</script> </script>
<style lang="less"></style> <style lang="less"></style>
@@ -43,13 +43,12 @@
</template> </template>
<script setup lang="tsx"> <script setup lang="tsx">
import { computed, nextTick, onMounted, reactive, ref, Ref, unref } from "vue";
import { useRoute, useRouter } from "vue-router";
import * as api from "./api";
import { usePluginStore } from "/@/store/plugin";
import { cloneDeep, get, merge, set, unset } from "lodash-es";
import Rollbackable from "./rollbackable.vue";
import { FsRender } from "@fast-crud/fast-crud"; import { FsRender } from "@fast-crud/fast-crud";
import { cloneDeep, merge, unset } from "lodash-es";
import { computed, onMounted, reactive, ref } from "vue";
import { useRoute, useRouter } from "vue-router";
import Rollbackable from "./rollbackable.vue";
import { usePluginStore } from "/@/store/plugin";
const route = useRoute(); const route = useRoute();
const router = useRouter(); const router = useRouter();
const pluginStore = usePluginStore(); const pluginStore = usePluginStore();
@@ -35,7 +35,9 @@ export function usePluginConfig() {
}, },
afterSubmit() { afterSubmit() {
notification.success({ message: t("certd.operationSuccess") }); notification.success({ message: t("certd.operationSuccess") });
if (crudExpose) {
crudExpose.doRefresh(); crudExpose.doRefresh();
}
}, },
async doSubmit({}: any) { async doSubmit({}: any) {
const form = configEditorRef.value.getForm(); const form = configEditorRef.value.getForm();
@@ -84,6 +84,15 @@ export class PluginController extends CrudController<PluginService> {
const res = await this.pluginConfigService.saveCommPluginConfig(body); const res = await this.pluginConfigService.saveCommPluginConfig(body);
return this.ok(res); return this.ok(res);
} }
@Post('/getPluginByName', { description: 'sys:settings:view' })
async getPluginByName(@Body('name') name: string) {
const res = await this.pluginConfigService.getPluginConfig({
name: name,
type: 'builtIn'
});
return this.ok(res);
}
@Post('/saveSetting', { description: 'sys:settings:edit' }) @Post('/saveSetting', { description: 'sys:settings:edit' })
async saveSetting(@Body(ALL) body: PluginConfig) { async saveSetting(@Body(ALL) body: PluginConfig) {
const res = await this.pluginConfigService.savePluginConfig(body); const res = await this.pluginConfigService.savePluginConfig(body);