mirror of
https://github.com/certd/certd.git
synced 2026-05-16 21:27:34 +08:00
perf: 输入证书域名时,支持点击导入域名
This commit is contained in:
@@ -3,11 +3,10 @@ import { Modal, notification } from "ant-design-vue";
|
||||
import { Ref, ref } from "vue";
|
||||
import { useRouter } from "vue-router";
|
||||
import * as api from "./api";
|
||||
import DomainImportTaskStatus from "./import.vue";
|
||||
import { useDomainImportManage } from "./use";
|
||||
import { Dicts } from "/@/components/plugins/lib/dicts";
|
||||
import { useSettingStore } from "/@/store/settings";
|
||||
import { useUserStore } from "/@/store/user";
|
||||
import { useFormDialog } from "/@/use/use-dialog";
|
||||
import { createAccessApi } from "/@/views/certd/access/api";
|
||||
import { useI18n } from "/src/locales";
|
||||
export default function ({ crudExpose, context }: CreateCrudOptionsProps): CreateCrudOptionsRet {
|
||||
@@ -51,7 +50,7 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat
|
||||
url: "pi/dnsProvider/dnsProviderTypeDict",
|
||||
});
|
||||
|
||||
const { openFormDialog } = useFormDialog();
|
||||
const openDomainImportManageDialog = useDomainImportManage();
|
||||
return {
|
||||
crudOptions: {
|
||||
settings: {
|
||||
@@ -104,13 +103,8 @@ export default function ({ crudExpose, context }: CreateCrudOptionsProps): Creat
|
||||
color: "gold",
|
||||
icon: "mingcute:vip-1-line",
|
||||
click: async () => {
|
||||
settingStore.checkPlus();
|
||||
await openFormDialog({
|
||||
title: "从域名提供商导入域名",
|
||||
body: () => {
|
||||
return <DomainImportTaskStatus />;
|
||||
},
|
||||
onSubmit: async (form: any) => {
|
||||
await openDomainImportManageDialog({
|
||||
afterSubmit: res => {
|
||||
crudExpose.doRefresh();
|
||||
},
|
||||
});
|
||||
|
||||
@@ -42,7 +42,7 @@
|
||||
<div v-else>未执行</div>
|
||||
</td>
|
||||
<td>
|
||||
<fs-button type="primary" icon="ion:play-outline" @click="startTask(item)">执行</fs-button>
|
||||
<fs-button type="primary" icon="ion:play-outline" :disabled="item.task?.status === 'running'" @click="startTask(item)">执行</fs-button>
|
||||
<fs-button type="primary" class="ml-2" danger icon="ion:trash-outline" @click="deleteTask(item)">删除</fs-button>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -53,7 +53,7 @@
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import { onMounted, ref } from "vue";
|
||||
import { onMounted, onUnmounted, ref } from "vue";
|
||||
import * as api from "./api";
|
||||
import { Modal } from "ant-design-vue";
|
||||
import { useDomainImport } from "./use";
|
||||
@@ -90,7 +90,10 @@ const openDomainImportDialog = useDomainImport();
|
||||
|
||||
async function addTask() {
|
||||
await openDomainImportDialog({
|
||||
afterSubmit: async () => {
|
||||
afterSubmit: async (res?: any) => {
|
||||
if (res) {
|
||||
await api.ImportTaskStart(res.key);
|
||||
}
|
||||
await loadImportTaskStatus();
|
||||
},
|
||||
});
|
||||
@@ -105,8 +108,16 @@ async function editTask(item: any) {
|
||||
});
|
||||
}
|
||||
|
||||
const checkIntervalRef = ref();
|
||||
onMounted(async () => {
|
||||
await loadImportTaskStatus();
|
||||
checkIntervalRef.value = setInterval(async () => {
|
||||
await loadImportTaskStatus();
|
||||
}, 3000);
|
||||
});
|
||||
|
||||
onUnmounted(() => {
|
||||
clearInterval(checkIntervalRef.value);
|
||||
});
|
||||
</script>
|
||||
|
||||
|
||||
@@ -3,7 +3,8 @@ import * as api from "./api";
|
||||
import { useFormDialog } from "/@/use/use-dialog";
|
||||
import { compute } from "@fast-crud/fast-crud";
|
||||
import { Dicts } from "/@/components/plugins/lib/dicts";
|
||||
|
||||
import { useSettingStore } from "/@/store/settings";
|
||||
import DomainImportTaskStatus from "./import.vue";
|
||||
export function useDomainImport() {
|
||||
const { openFormDialog } = useFormDialog();
|
||||
|
||||
@@ -49,7 +50,7 @@ export function useDomainImport() {
|
||||
},
|
||||
};
|
||||
|
||||
return function openDomainImportDialog(req: { afterSubmit?: () => void; form?: any }) {
|
||||
return function openDomainImportDialog(req: { afterSubmit?: (res?: any) => void; form?: any }) {
|
||||
openFormDialog({
|
||||
title: "从域名提供商导入域名",
|
||||
columns: columns,
|
||||
@@ -57,13 +58,33 @@ export function useDomainImport() {
|
||||
...req.form,
|
||||
},
|
||||
onSubmit: async (form: any) => {
|
||||
await api.ImportTaskSave({
|
||||
const res = await api.ImportTaskSave({
|
||||
key: form.key,
|
||||
dnsProviderType: form.dnsProviderType,
|
||||
dnsProviderAccessId: form.dnsProviderAccessId,
|
||||
});
|
||||
if (req.afterSubmit) {
|
||||
req.afterSubmit();
|
||||
req.afterSubmit(res);
|
||||
}
|
||||
},
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
export function useDomainImportManage() {
|
||||
const { openFormDialog } = useFormDialog();
|
||||
const settingStore = useSettingStore();
|
||||
return async function openDomainImportManageDialog(req: { afterSubmit?: (res?: any) => void; form?: any; zIndex?: number }) {
|
||||
settingStore.checkPlus();
|
||||
await openFormDialog({
|
||||
title: "从域名提供商导入域名",
|
||||
body: () => {
|
||||
return <DomainImportTaskStatus />;
|
||||
},
|
||||
zIndex: req.zIndex,
|
||||
onSubmit: async (form: any) => {
|
||||
if (req.afterSubmit) {
|
||||
req.afterSubmit(form);
|
||||
}
|
||||
},
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user