feat: 通知模板接口联调

This commit is contained in:
JiangQiming 2023-01-28 17:12:58 +08:00
parent b45f6f087a
commit 6b5bd5ee25
4 changed files with 69 additions and 27 deletions

View File

@ -1,8 +1,11 @@
import { patch, post, get } from '@/utils/request' import { patch, post, get } from '@/utils/request'
import { BindConfig } from '@/views/notice/Template/types'
export default { export default {
// 列表 // 列表
list: (data: any) => post(`/notifier/config/_query`, data), list: (data: any) => post(`/notifier/config/_query`, data),
// 不分页列表
listNoPage: (data: any) => post<BindConfig>(`/notifier/config/_query/no-paging?paging=false`, data),
// 详情 // 详情
detail: (id: string): any => get(`/notifier/config/${id}`), detail: (id: string): any => get(`/notifier/config/${id}`),
// 新增 // 新增

View File

@ -25,6 +25,7 @@ interface IOption {
type Emits = { type Emits = {
(e: 'update:modelValue', data: string): void; (e: 'update:modelValue', data: string): void;
(e: 'change') :void
}; };
const emit = defineEmits<Emits>(); const emit = defineEmits<Emits>();
@ -41,7 +42,10 @@ const props = defineProps({
const myValue = computed({ const myValue = computed({
get: () => props.modelValue, get: () => props.modelValue,
set: (val) => emit('update:modelValue', val), set: (val) => {
emit('update:modelValue', val)
emit('change')
},
}); });
</script> </script>

View File

@ -39,6 +39,7 @@
<RadioCard <RadioCard
:options="msgType" :options="msgType"
v-model="formData.provider" v-model="formData.provider"
@change="getConfigList"
/> />
</a-form-item> </a-form-item>
<a-form-item <a-form-item
@ -51,11 +52,11 @@
placeholder="请选择绑定配置" placeholder="请选择绑定配置"
> >
<a-select-option <a-select-option
v-for="(item, index) in ROBOT_MSG_TYPE" v-for="(item, index) in configList"
:key="index" :key="index"
:value="item.value" :value="item.id"
> >
{{ item.label }} {{ item.name }}
</a-select-option> </a-select-option>
</a-select> </a-select>
</a-form-item> </a-form-item>
@ -246,17 +247,11 @@
</a-form-item> </a-form-item>
<a-form-item label="收件人"> <a-form-item label="收件人">
<a-select <a-select
mode="tags"
:options="[]"
v-model:value="formData.template.sendTo" v-model:value="formData.template.sendTo"
placeholder="请选择收件人" placeholder="请选择收件人"
> />
<a-select-option
v-for="(item, index) in ROBOT_MSG_TYPE"
:key="index"
:value="item.value"
>
{{ item.label }}
</a-select-option>
</a-select>
</a-form-item> </a-form-item>
<a-form-item label="附件信息"> <a-form-item label="附件信息">
<Attachments <Attachments
@ -488,6 +483,7 @@ import {
VOICE_TYPE, VOICE_TYPE,
} from '@/views/notice/const'; } from '@/views/notice/const';
import templateApi from '@/api/notice/template'; import templateApi from '@/api/notice/template';
import configApi from '@/api/notice/config';
import Doc from './doc/index'; import Doc from './doc/index';
import MonacoEditor from '@/components/MonacoEditor/index.vue'; import MonacoEditor from '@/components/MonacoEditor/index.vue';
import Attachments from './components/Attachments.vue'; import Attachments from './components/Attachments.vue';
@ -529,7 +525,9 @@ watch(
msgType.value = MSG_TYPE[val]; msgType.value = MSG_TYPE[val];
formData.value.provider = msgType.value[0].value; formData.value.provider = msgType.value[0].value;
console.log('formData.value.template: ', formData.value.template); // console.log('formData.value.template: ', formData.value.template);
getConfigList();
}, },
); );
@ -576,7 +574,7 @@ const { resetFields, validate, validateInfos, clearValidate } = useForm(
watch( watch(
() => formData.value.type, () => formData.value.type,
() => { () => {
formData.value.variableDefinitions = [] formData.value.variableDefinitions = [];
clearValidate(); clearValidate();
}, },
{ deep: true }, { deep: true },
@ -609,6 +607,9 @@ watch(
{ deep: true }, { deep: true },
); );
/**
* 获取详情
*/
const getDetail = async () => { const getDetail = async () => {
const res = await templateApi.detail(route.params.id as string); const res = await templateApi.detail(route.params.id as string);
// console.log('res: ', res); // console.log('res: ', res);
@ -617,6 +618,20 @@ const getDetail = async () => {
}; };
// getDetail(); // 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 () => { .then(async () => {
console.log('formData.value: ', formData.value); console.log('formData.value: ', formData.value);
btnLoading.value = true; btnLoading.value = true;
// let res; let res;
// if (!formData.value.id) { if (!formData.value.id) {
// res = await templateApi.save(formData.value); res = await templateApi.save(formData.value);
// } else { } else {
// res = await templateApi.update(formData.value); res = await templateApi.update(formData.value);
// } }
// // console.log('res: ', res); // console.log('res: ', res);
// if (res?.success) { if (res?.success) {
// message.success(''); message.success('保存成功');
// router.back(); router.back();
// } }
btnLoading.value = false; btnLoading.value = false;
}) })
.catch((err) => { .catch((err) => {

View File

@ -71,4 +71,24 @@ export type TemplateFormData = {
creatorId?: string; creatorId?: string;
createTime?: number; createTime?: number;
configId?: string; configId?: string;
}; };
// 绑定配置类型
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
}