feat: 🚀 邮件模板可选择枚举内容

This commit is contained in:
Bunny 2024-10-14 20:14:55 +08:00
parent ded5239925
commit 7ffbb3bc08
3 changed files with 23 additions and 4 deletions

View File

@ -6,6 +6,11 @@ export const fetchGetEmailTemplateList = (data: any) => {
return http.request<BaseResult<ResultTable>>('get', `emailTemplate/getEmailTemplateList/${data.currentPage}/${data.pageSize}`, { params: data }); return http.request<BaseResult<ResultTable>>('get', `emailTemplate/getEmailTemplateList/${data.currentPage}/${data.pageSize}`, { params: data });
}; };
/** 邮件模板表---获取模板类型字段 */
export const fetchGetEmailTypes = () => {
return http.request<BaseResult<any>>('get', 'emailTemplate/getEmailTypes');
};
/** 邮件模板表---添加邮件模板表 */ /** 邮件模板表---添加邮件模板表 */
export const fetchAddEmailTemplate = (data: any) => { export const fetchAddEmailTemplate = (data: any) => {
return http.request<BaseResult<object>>('post', 'emailTemplate/addEmailTemplate', { data }); return http.request<BaseResult<object>>('post', 'emailTemplate/addEmailTemplate', { data });

View File

@ -1,5 +1,5 @@
import { defineStore } from 'pinia'; import { defineStore } from 'pinia';
import { fetchAddEmailTemplate, fetchDeleteEmailTemplate, fetchGetEmailTemplateList, fetchUpdateEmailTemplate } from '@/api/v1/emailTemplate'; import { fetchAddEmailTemplate, fetchDeleteEmailTemplate, fetchGetEmailTemplateList, fetchGetEmailTypes, fetchUpdateEmailTemplate } from '@/api/v1/emailTemplate';
import { pageSizes } from '@/enums/baseConstant'; import { pageSizes } from '@/enums/baseConstant';
import { storeMessage } from '@/utils/message'; import { storeMessage } from '@/utils/message';
import { storePagination } from '@/store/useStorePagination'; import { storePagination } from '@/store/useStorePagination';
@ -15,6 +15,8 @@ export const useEmailTemplateStore = defineStore('emailTemplateStore', {
datalist: [], datalist: [],
// 邮件模板用户列表 // 邮件模板用户列表
emailUserList: [], emailUserList: [],
// 邮件类型枚举
allEmailTypes: [],
// 查询表单 // 查询表单
form: { form: {
// 模板名称 // 模板名称
@ -69,6 +71,13 @@ export const useEmailTemplateStore = defineStore('emailTemplateStore', {
this.emailUserList = result.data; this.emailUserList = result.data;
}, },
/** 获取模板类型字段 */
async getEmailTypes() {
const result = await fetchGetEmailTypes();
if (result.code !== 200) return;
this.allEmailTypes = result.data;
},
/** 添加邮件模板表 */ /** 添加邮件模板表 */
async addEmailTemplate(data: any) { async addEmailTemplate(data: any) {
const result = await fetchAddEmailTemplate(data); const result = await fetchAddEmailTemplate(data);

View File

@ -1,5 +1,5 @@
<script lang="ts" setup> <script lang="ts" setup>
import { ref } from 'vue'; import { onMounted, ref } from 'vue';
import { FormInstance } from 'element-plus'; import { FormInstance } from 'element-plus';
import { rules } from '@/views/configuration/emailTemplate/utils/columns'; import { rules } from '@/views/configuration/emailTemplate/utils/columns';
import { FormProps } from '@/views/configuration/emailTemplate/utils/types'; import { FormProps } from '@/views/configuration/emailTemplate/utils/types';
@ -23,9 +23,12 @@ const props = withDefaults(defineProps<FormProps>(), {
const formRef = ref<FormInstance>(); const formRef = ref<FormInstance>();
const form = ref(props.formInline); const form = ref(props.formInline);
const emailUserList = ref();
const emailTemplateStore = useEmailTemplateStore(); const emailTemplateStore = useEmailTemplateStore();
onMounted(() => {
emailTemplateStore.getEmailTypes();
});
defineExpose({ formRef }); defineExpose({ formRef });
</script> </script>
@ -55,7 +58,9 @@ defineExpose({ formRef });
<!--配置邮件类型--> <!--配置邮件类型-->
<el-form-item :label="$t('emailTemplate_type')" prop="type"> <el-form-item :label="$t('emailTemplate_type')" prop="type">
<el-input v-model="form.type" autocomplete="off" type="text" /> <el-select v-model="form.type" :placeholder="$t('emailTemplate_type')" clearable filterable>
<el-option v-for="(item, index) in emailTemplateStore.allEmailTypes" :key="index" :label="item.key" :navigationBar="false" :value="item.value" />
</el-select>
</el-form-item> </el-form-item>
</el-form> </el-form>
</template> </template>