diff --git a/src/api/notice/config.ts b/src/api/notice/config.ts index 9ed55cf8..ff653f67 100644 --- a/src/api/notice/config.ts +++ b/src/api/notice/config.ts @@ -1,8 +1,11 @@ import { patch, post, get } from '@/utils/request' +import { BindConfig } from '@/views/notice/Template/types' export default { // 列表 list: (data: any) => post(`/notifier/config/_query`, data), + // 不分页列表 + listNoPage: (data: any) => post(`/notifier/config/_query/no-paging?paging=false`, data), // 详情 detail: (id: string): any => get(`/notifier/config/${id}`), // 新增 diff --git a/src/components/RadioCard/index.vue b/src/components/RadioCard/index.vue index 2d27ba0b..152ae840 100644 --- a/src/components/RadioCard/index.vue +++ b/src/components/RadioCard/index.vue @@ -25,6 +25,7 @@ interface IOption { type Emits = { (e: 'update:modelValue', data: string): void; + (e: 'change') :void }; const emit = defineEmits(); @@ -41,7 +42,10 @@ const props = defineProps({ const myValue = computed({ get: () => props.modelValue, - set: (val) => emit('update:modelValue', val), + set: (val) => { + emit('update:modelValue', val) + emit('change') + }, }); diff --git a/src/views/notice/Template/Detail/index.vue b/src/views/notice/Template/Detail/index.vue index 74c9f554..507b3b54 100644 --- a/src/views/notice/Template/Detail/index.vue +++ b/src/views/notice/Template/Detail/index.vue @@ -39,6 +39,7 @@ - {{ item.label }} + {{ item.name }} @@ -246,17 +247,11 @@ - - {{ item.label }} - - + /> formData.value.type, () => { - formData.value.variableDefinitions = [] + formData.value.variableDefinitions = []; clearValidate(); }, { deep: true }, @@ -609,6 +607,9 @@ watch( { deep: true }, ); +/** + * 获取详情 + */ const getDetail = async () => { const res = await templateApi.detail(route.params.id as string); // console.log('res: ', res); @@ -617,6 +618,20 @@ const getDetail = async () => { }; // getDetail(); +/** + * 获取绑定配置 + */ +const configList = ref(); +const getConfigList = async () => { + const terms = [ + { column: 'type$IN', value: formData.value.type }, + { column: 'provider', value: formData.value.provider }, + ]; + const { result } = await configApi.listNoPage({ terms }); + configList.value = result; +}; +getConfigList(); + /** * 表单提交 */ @@ -626,17 +641,17 @@ const handleSubmit = () => { .then(async () => { console.log('formData.value: ', formData.value); btnLoading.value = true; - // let res; - // if (!formData.value.id) { - // res = await templateApi.save(formData.value); - // } else { - // res = await templateApi.update(formData.value); - // } - // // console.log('res: ', res); - // if (res?.success) { - // message.success('保存成功'); - // router.back(); - // } + let res; + if (!formData.value.id) { + res = await templateApi.save(formData.value); + } else { + res = await templateApi.update(formData.value); + } + // console.log('res: ', res); + if (res?.success) { + message.success('保存成功'); + router.back(); + } btnLoading.value = false; }) .catch((err) => { diff --git a/src/views/notice/Template/types.d.ts b/src/views/notice/Template/types.d.ts index 7eaa8850..b48cd773 100644 --- a/src/views/notice/Template/types.d.ts +++ b/src/views/notice/Template/types.d.ts @@ -71,4 +71,24 @@ export type TemplateFormData = { creatorId?: string; createTime?: number; configId?: string; -}; \ No newline at end of file +}; + +// 绑定配置类型 +export type config = { + host: string; + password: string; + port: number; + sender: string; + ssl: boolean; + username: string; +} +export type BindConfig = { + configuration: config; + createTime: number + creatorId: string; + id: string; + maxRetryTimes: number; + name: string; + provider: string; + type: string +} \ No newline at end of file