feat: 更新配置 API
This commit is contained in:
parent
a461e0d1dd
commit
cc209888f6
|
@ -2,11 +2,11 @@ import { http } from '@/api/service/request';
|
||||||
import type { BaseResult } from '@/api/service/types';
|
import type { BaseResult } from '@/api/service/types';
|
||||||
|
|
||||||
/** 获取修改前端配置文件 */
|
/** 获取修改前端配置文件 */
|
||||||
export const fetchGetWebConfig = () => {
|
export const getWebConfig = () => {
|
||||||
return http.request<BaseResult<any>>('get', '/config/getWebConfig');
|
return http.request<BaseResult<any>>('get', '/config');
|
||||||
};
|
};
|
||||||
|
|
||||||
/** 更新web配置文件 */
|
/** 更新web配置文件 */
|
||||||
export const fetchUpdateWebConfiguration = (data: any) => {
|
export const updateWebConfiguration = (data: any) => {
|
||||||
return http.request<BaseResult<any>>('put', '/config/updateWebConfiguration', { data });
|
return http.request<BaseResult<any>>('put', '/config', { data });
|
||||||
};
|
};
|
||||||
|
|
|
@ -2,22 +2,20 @@ import { http } from '@/api/service/request';
|
||||||
import type { BaseResult, ResultTable } from '@/api/service/types';
|
import type { BaseResult, ResultTable } from '@/api/service/types';
|
||||||
|
|
||||||
/** 邮件模板表---获取邮件模板表列表 */
|
/** 邮件模板表---获取邮件模板表列表 */
|
||||||
export const fetchGetEmailTemplateList = (data: any) => {
|
export const getEmailTemplatePage = (data: any) => {
|
||||||
return http.request<BaseResult<ResultTable>>(
|
return http.request<BaseResult<ResultTable>>('get', `emailTemplate/query/page/${data.currentPage}/${data.pageSize}`, {
|
||||||
'get',
|
params: data,
|
||||||
`emailTemplate/getEmailTemplateList/${data.currentPage}/${data.pageSize}`,
|
});
|
||||||
{ params: data }
|
|
||||||
);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/** 邮件模板表---获取模板类型字段 */
|
/** 邮件模板表---获取模板类型字段 */
|
||||||
export const fetchGetEmailTypes = () => {
|
export const getEmailTypeList = () => {
|
||||||
return http.request<BaseResult<any>>('get', 'emailTemplate/getEmailTypes');
|
return http.request<BaseResult<any>>('get', 'emailTemplate/query/emailTypes');
|
||||||
};
|
};
|
||||||
|
|
||||||
/** 邮件模板表---添加邮件模板表 */
|
/** 邮件模板表---添加邮件模板表 */
|
||||||
export const fetchAddEmailTemplate = (data: any) => {
|
export const addEmailTemplate = (data: any) => {
|
||||||
return http.request<BaseResult<object>>('post', 'emailTemplate/addEmailTemplate', { data });
|
return http.request<BaseResult<object>>('post', 'emailTemplate/add/emailTemplate', { data });
|
||||||
};
|
};
|
||||||
|
|
||||||
/** 邮件模板表---更新邮件模板表 */
|
/** 邮件模板表---更新邮件模板表 */
|
||||||
|
|
|
@ -50,3 +50,5 @@ export const tableSelectButtonClass = computed(() => [
|
||||||
|
|
||||||
export const UserAvatar =
|
export const UserAvatar =
|
||||||
'https://thirdwx.qlogo.cn/mmopen/vi_32/DYAIOgq83eoj0hHXhgJNOTSOFsS4uZs8x1ConecaVOB8eIl115xmJZcT4oCicvia7wMEufibKtTLqiaJeanU2Lpg3w/132';
|
'https://thirdwx.qlogo.cn/mmopen/vi_32/DYAIOgq83eoj0hHXhgJNOTSOFsS4uZs8x1ConecaVOB8eIl115xmJZcT4oCicvia7wMEufibKtTLqiaJeanU2Lpg3w/132';
|
||||||
|
|
||||||
|
export const RequestMethod = ['GET', 'PUT', 'POST', 'DELETE', 'HEAD', 'CONNECT', 'OPTIONS', 'TRACE', 'PATCH'];
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
import { defineStore } from 'pinia';
|
import { defineStore } from 'pinia';
|
||||||
import {
|
import {
|
||||||
fetchAddEmailTemplate,
|
addEmailTemplate,
|
||||||
fetchDeleteEmailTemplate,
|
fetchDeleteEmailTemplate,
|
||||||
fetchGetEmailTemplateList,
|
|
||||||
fetchGetEmailTypes,
|
|
||||||
fetchUpdateEmailTemplate,
|
fetchUpdateEmailTemplate,
|
||||||
|
getEmailTemplatePage,
|
||||||
|
getEmailTypeList,
|
||||||
} from '@/api/v1/email/emailTemplate';
|
} from '@/api/v1/email/emailTemplate';
|
||||||
import { pageSizes } from '@/enums/baseConstant';
|
import { pageSizes } from '@/enums/baseConstant';
|
||||||
import { storeMessage } from '@/utils/message';
|
import { storeMessage } from '@/utils/message';
|
||||||
|
@ -54,7 +54,7 @@ export const useEmailTemplateStore = defineStore('emailTemplateStore', {
|
||||||
},
|
},
|
||||||
actions: {
|
actions: {
|
||||||
/** 获取邮件模板表 */
|
/** 获取邮件模板表 */
|
||||||
async getEmailTemplateList() {
|
async fetchEmailTemplatePage() {
|
||||||
// 整理请求参数
|
// 整理请求参数
|
||||||
const data = { ...this.pagination, ...this.form };
|
const data = { ...this.pagination, ...this.form };
|
||||||
delete data.pageSizes;
|
delete data.pageSizes;
|
||||||
|
@ -62,7 +62,7 @@ export const useEmailTemplateStore = defineStore('emailTemplateStore', {
|
||||||
delete data.background;
|
delete data.background;
|
||||||
|
|
||||||
// 获取邮件模板表列表
|
// 获取邮件模板表列表
|
||||||
const result = await fetchGetEmailTemplateList(data);
|
const result = await getEmailTemplatePage(data);
|
||||||
|
|
||||||
// 公共页面函数hook
|
// 公共页面函数hook
|
||||||
const pagination = storePagination.bind(this);
|
const pagination = storePagination.bind(this);
|
||||||
|
@ -78,15 +78,15 @@ export const useEmailTemplateStore = defineStore('emailTemplateStore', {
|
||||||
},
|
},
|
||||||
|
|
||||||
/** 获取模板类型字段 */
|
/** 获取模板类型字段 */
|
||||||
async getEmailTypes() {
|
async loadEmailTypeList() {
|
||||||
const result = await fetchGetEmailTypes();
|
const result = await getEmailTypeList();
|
||||||
if (result.code !== 200) return;
|
if (result.code !== 200) return;
|
||||||
this.allEmailTypes = result.data;
|
this.allEmailTypes = result.data;
|
||||||
},
|
},
|
||||||
|
|
||||||
/** 添加邮件模板表 */
|
/** 添加邮件模板表 */
|
||||||
async addEmailTemplate(data: any) {
|
async addEmailTemplate(data: any) {
|
||||||
const result = await fetchAddEmailTemplate(data);
|
const result = await addEmailTemplate(data);
|
||||||
return storeMessage(result);
|
return storeMessage(result);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
@ -29,6 +29,8 @@ export const usePowerStore = defineStore('powerStore', {
|
||||||
powerName: undefined,
|
powerName: undefined,
|
||||||
// 请求路径
|
// 请求路径
|
||||||
requestUrl: undefined,
|
requestUrl: undefined,
|
||||||
|
// 请求方法
|
||||||
|
requestMethod: undefined,
|
||||||
},
|
},
|
||||||
// 分页查询结果
|
// 分页查询结果
|
||||||
pagination: {
|
pagination: {
|
||||||
|
|
|
@ -31,7 +31,7 @@ const formRef = ref<FormInstance>();
|
||||||
const form = ref(props.formInline);
|
const form = ref(props.formInline);
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
emailTemplateStore.getEmailTypes();
|
emailTemplateStore.loadEmailTypeList();
|
||||||
});
|
});
|
||||||
|
|
||||||
defineExpose({ formRef });
|
defineExpose({ formRef });
|
||||||
|
|
|
@ -15,7 +15,7 @@ export const selectRows = ref([]);
|
||||||
/** 搜索初始化邮件模板表 */
|
/** 搜索初始化邮件模板表 */
|
||||||
export async function onSearch() {
|
export async function onSearch() {
|
||||||
emailTemplateStore.loading = true;
|
emailTemplateStore.loading = true;
|
||||||
await emailTemplateStore.getEmailTemplateList();
|
await emailTemplateStore.fetchEmailTemplatePage();
|
||||||
emailTemplateStore.loading = false;
|
emailTemplateStore.loading = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import { ref } from 'vue';
|
import { ref } from 'vue';
|
||||||
import type { FormInstance } from 'element-plus';
|
import type { FormInstance } from 'element-plus';
|
||||||
import { fetchGetWebConfig, fetchUpdateWebConfiguration } from '@/api/v1/configuration';
|
import { getWebConfig, updateWebConfiguration } from '@/api/v1/configuration';
|
||||||
import { message, messageBox } from '@/utils/message';
|
import { message, messageBox } from '@/utils/message';
|
||||||
import { $t } from '@/plugins/i18n';
|
import { $t } from '@/plugins/i18n';
|
||||||
|
|
||||||
|
@ -35,7 +35,7 @@ export const form = ref({
|
||||||
|
|
||||||
/** 获取前端配置文件 */
|
/** 获取前端配置文件 */
|
||||||
export const onSearch = async () => {
|
export const onSearch = async () => {
|
||||||
const result = await fetchGetWebConfig();
|
const result = await getWebConfig();
|
||||||
if (result.code !== 200) return;
|
if (result.code !== 200) return;
|
||||||
const data = result.data;
|
const data = result.data;
|
||||||
|
|
||||||
|
@ -82,7 +82,7 @@ export const submitForm = async (formEl: FormInstance | undefined) => {
|
||||||
if (!confirm) return;
|
if (!confirm) return;
|
||||||
|
|
||||||
// 修改内容
|
// 修改内容
|
||||||
const result = await fetchUpdateWebConfiguration(form.value);
|
const result = await updateWebConfiguration(form.value);
|
||||||
if (result.code !== 200) return;
|
if (result.code !== 200) return;
|
||||||
|
|
||||||
// 提交成功后刷新
|
// 提交成功后刷新
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
import editForm from '@/views/system/menu/components/menu-dialog.vue';
|
import EditForm from '@/views/system/menu/components/menu-dialog.vue';
|
||||||
import { $t } from '@/plugins/i18n';
|
import { $t } from '@/plugins/i18n';
|
||||||
import { addDialog, closeAllDialog } from '@/components/ReDialog/index';
|
import { addDialog, closeAllDialog } from '@/components/ReDialog/index';
|
||||||
import { h, ref } from 'vue';
|
import { h, ref } from 'vue';
|
||||||
|
@ -40,8 +40,8 @@ function onAdd(parentId: any = 0) {
|
||||||
icon: '',
|
icon: '',
|
||||||
id: '',
|
id: '',
|
||||||
extraIcon: '',
|
extraIcon: '',
|
||||||
enterTransition: 'fade',
|
enterTransition: 'fade-transform',
|
||||||
leaveTransition: 'fade',
|
leaveTransition: 'fade-transform',
|
||||||
activePath: '',
|
activePath: '',
|
||||||
redirect: '',
|
redirect: '',
|
||||||
roles: [],
|
roles: [],
|
||||||
|
@ -58,7 +58,7 @@ function onAdd(parentId: any = 0) {
|
||||||
draggable: true,
|
draggable: true,
|
||||||
closeOnClickModal: false,
|
closeOnClickModal: false,
|
||||||
fullscreenIcon: true,
|
fullscreenIcon: true,
|
||||||
contentRenderer: () => h(editForm, { ref: dialogFormRef }),
|
contentRenderer: () => h(EditForm, { ref: dialogFormRef }),
|
||||||
beforeSure: (done, { options }) => {
|
beforeSure: (done, { options }) => {
|
||||||
const menuFormRef = dialogFormRef.value.menuFormRef;
|
const menuFormRef = dialogFormRef.value.menuFormRef;
|
||||||
const curData = options.props.formInline as FormItemProps;
|
const curData = options.props.formInline as FormItemProps;
|
||||||
|
@ -115,7 +115,7 @@ function onUpdate(row?: FormItemProps) {
|
||||||
fullscreen: deviceDetection(),
|
fullscreen: deviceDetection(),
|
||||||
fullscreenIcon: true,
|
fullscreenIcon: true,
|
||||||
closeOnClickModal: false,
|
closeOnClickModal: false,
|
||||||
contentRenderer: () => h(editForm, { ref: dialogFormRef }),
|
contentRenderer: () => h(EditForm, { ref: dialogFormRef }),
|
||||||
beforeSure: (done, { options }) => {
|
beforeSure: (done, { options }) => {
|
||||||
const menuFormRef = dialogFormRef.value.menuFormRef;
|
const menuFormRef = dialogFormRef.value.menuFormRef;
|
||||||
const curData = options.props.formInline as FormItemProps;
|
const curData = options.props.formInline as FormItemProps;
|
||||||
|
@ -193,12 +193,13 @@ export const clearAllRolesSelect = async () => {
|
||||||
/* 更新是整理后端参数 */
|
/* 更新是整理后端参数 */
|
||||||
export const mergeArgs = (curData: any) => {
|
export const mergeArgs = (curData: any) => {
|
||||||
// 判断 入场 和 离场动画是否添加
|
// 判断 入场 和 离场动画是否添加
|
||||||
let transition = { enterTransition: 'fade', leaveTransition: 'fade' };
|
|
||||||
const enterTransition = curData.enterTransition;
|
const enterTransition = curData.enterTransition;
|
||||||
const leaveTransition = curData.leaveTransition;
|
const leaveTransition = curData.leaveTransition;
|
||||||
|
|
||||||
transition.enterTransition = enterTransition ? `animate__${enterTransition}` : 'fade';
|
let transition = { enterTransition: '', leaveTransition: '' };
|
||||||
transition.leaveTransition = leaveTransition ? `animate__${leaveTransition}` : 'fade';
|
|
||||||
|
transition.enterTransition = enterTransition ? `animate__${enterTransition}` : '';
|
||||||
|
transition.leaveTransition = leaveTransition ? `animate__${leaveTransition}` : '';
|
||||||
|
|
||||||
// 整理参数返回后端
|
// 整理参数返回后端
|
||||||
return {
|
return {
|
||||||
|
|
|
@ -5,6 +5,7 @@ import { FormProps, powerCascadeProps, rules } from '@/views/system/permission/u
|
||||||
import { $t } from '@/plugins/i18n';
|
import { $t } from '@/plugins/i18n';
|
||||||
import { handleTree } from '@pureadmin/utils';
|
import { handleTree } from '@pureadmin/utils';
|
||||||
import { usePowerStore } from '@/store/system/power';
|
import { usePowerStore } from '@/store/system/power';
|
||||||
|
import { RequestMethod } from '@/enums/baseConstant';
|
||||||
|
|
||||||
const props = withDefaults(defineProps<FormProps>(), {
|
const props = withDefaults(defineProps<FormProps>(), {
|
||||||
formInline: () => ({
|
formInline: () => ({
|
||||||
|
@ -16,6 +17,8 @@ const props = withDefaults(defineProps<FormProps>(), {
|
||||||
powerName: undefined,
|
powerName: undefined,
|
||||||
// 请求路径
|
// 请求路径
|
||||||
requestUrl: undefined,
|
requestUrl: undefined,
|
||||||
|
// 请求方法
|
||||||
|
requestMethod: undefined,
|
||||||
}),
|
}),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -52,5 +55,16 @@ defineExpose({ formRef });
|
||||||
<el-form-item :label="$t('power_requestUrl')" prop="requestUrl">
|
<el-form-item :label="$t('power_requestUrl')" prop="requestUrl">
|
||||||
<el-input v-model="form.requestUrl" :placeholder="$t('inputRequestUrlTip')" autocomplete="off" type="text" />
|
<el-input v-model="form.requestUrl" :placeholder="$t('inputRequestUrlTip')" autocomplete="off" type="text" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item :label="$t('requestMethod')" prop="requestMethod">
|
||||||
|
<el-select
|
||||||
|
v-model="form.requestMethod"
|
||||||
|
:placeholder="$t('requestMethod')"
|
||||||
|
autocomplete="off"
|
||||||
|
clearable
|
||||||
|
filterable
|
||||||
|
>
|
||||||
|
<el-option v-for="item in RequestMethod" :key="item" :label="item" :value="item" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
</el-form>
|
</el-form>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
@ -25,6 +25,7 @@ import { handleTree } from '@pureadmin/utils';
|
||||||
import { FormInstance } from 'element-plus';
|
import { FormInstance } from 'element-plus';
|
||||||
import { hasAuth } from '@/router/utils';
|
import { hasAuth } from '@/router/utils';
|
||||||
import ReAuth from '@/components/ReAuth/src/auth';
|
import ReAuth from '@/components/ReAuth/src/auth';
|
||||||
|
import { RequestMethod } from '@/enums/baseConstant';
|
||||||
|
|
||||||
defineOptions({ name: 'PermissionManger' });
|
defineOptions({ name: 'PermissionManger' });
|
||||||
|
|
||||||
|
@ -33,35 +34,24 @@ const formRef = ref();
|
||||||
const powerStore = usePowerStore();
|
const powerStore = usePowerStore();
|
||||||
const datalist = computed(() => handleTree(powerStore.datalist));
|
const datalist = computed(() => handleTree(powerStore.datalist));
|
||||||
|
|
||||||
/**
|
/* 当前页改变时 */
|
||||||
* * 当前页改变时
|
|
||||||
*/
|
|
||||||
const onCurrentPageChange = async (value: number) => {
|
const onCurrentPageChange = async (value: number) => {
|
||||||
powerStore.pagination.currentPage = value;
|
powerStore.pagination.currentPage = value;
|
||||||
await onSearch();
|
await onSearch();
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/* 当分页发生变化 */
|
||||||
* * 当分页发生变化
|
|
||||||
* @param value
|
|
||||||
*/
|
|
||||||
const onPageSizeChange = async (value: number) => {
|
const onPageSizeChange = async (value: number) => {
|
||||||
powerStore.pagination.pageSize = value;
|
powerStore.pagination.pageSize = value;
|
||||||
await onSearch();
|
await onSearch();
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/* 选择多行 */
|
||||||
* * 选择多行
|
|
||||||
* @param rows
|
|
||||||
*/
|
|
||||||
const onSelectionChange = (rows: Array<any>) => {
|
const onSelectionChange = (rows: Array<any>) => {
|
||||||
powerIds.value = rows.map((row: any) => row.id);
|
powerIds.value = rows.map((row: any) => row.id);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/* 重置表单 */
|
||||||
* 重置表单
|
|
||||||
* @param formEl
|
|
||||||
*/
|
|
||||||
const resetForm = async (formEl: FormInstance) => {
|
const resetForm = async (formEl: FormInstance) => {
|
||||||
if (!formEl) return;
|
if (!formEl) return;
|
||||||
formEl.resetFields();
|
formEl.resetFields();
|
||||||
|
@ -106,6 +96,18 @@ onMounted(() => {
|
||||||
clearable
|
clearable
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
<el-form-item :label="$t('requestMethod')" prop="requestMethod">
|
||||||
|
<el-select
|
||||||
|
v-model="powerStore.form.requestMethod"
|
||||||
|
:placeholder="$t('requestMethod')"
|
||||||
|
autocomplete="off"
|
||||||
|
class="!w-[180px]"
|
||||||
|
clearable
|
||||||
|
filterable
|
||||||
|
>
|
||||||
|
<el-option v-for="item in RequestMethod" :key="item" :label="item" :value="item" />
|
||||||
|
</el-select>
|
||||||
|
</el-form-item>
|
||||||
<el-form-item>
|
<el-form-item>
|
||||||
<el-button
|
<el-button
|
||||||
:icon="useRenderIcon('ri:search-line')"
|
:icon="useRenderIcon('ri:search-line')"
|
||||||
|
|
|
@ -12,6 +12,7 @@ export const columns: TableColumnList = [
|
||||||
{ label: $t('power_powerName'), prop: 'powerName', minWidth: 320 },
|
{ label: $t('power_powerName'), prop: 'powerName', minWidth: 320 },
|
||||||
// 请求路径
|
// 请求路径
|
||||||
{ label: $t('power_requestUrl'), prop: 'requestUrl', minWidth: 360 },
|
{ label: $t('power_requestUrl'), prop: 'requestUrl', minWidth: 360 },
|
||||||
|
{ label: $t('requestMethod'), prop: 'requestMethod', minWidth: 360 },
|
||||||
{ label: $t('table.updateTime'), prop: 'updateTime', sortable: true, minWidth: 160 },
|
{ label: $t('table.updateTime'), prop: 'updateTime', sortable: true, minWidth: 160 },
|
||||||
{ label: $t('table.createTime'), prop: 'createTime', sortable: true, minWidth: 160 },
|
{ label: $t('table.createTime'), prop: 'createTime', sortable: true, minWidth: 160 },
|
||||||
{ label: $t('table.createUser'), prop: 'createUser', slot: 'createUser', minWidth: 130 },
|
{ label: $t('table.createUser'), prop: 'createUser', slot: 'createUser', minWidth: 130 },
|
||||||
|
|
|
@ -33,6 +33,7 @@ export function onAdd(parentId = 0) {
|
||||||
powerCode: undefined,
|
powerCode: undefined,
|
||||||
powerName: undefined,
|
powerName: undefined,
|
||||||
requestUrl: undefined,
|
requestUrl: undefined,
|
||||||
|
requestMethod: undefined,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
draggable: true,
|
draggable: true,
|
||||||
|
@ -67,6 +68,7 @@ export function onUpdate(row: any) {
|
||||||
powerCode: row.powerCode,
|
powerCode: row.powerCode,
|
||||||
powerName: row.powerName,
|
powerName: row.powerName,
|
||||||
requestUrl: row.requestUrl,
|
requestUrl: row.requestUrl,
|
||||||
|
requestMethod: row.requestMethod,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
draggable: true,
|
draggable: true,
|
||||||
|
|
|
@ -8,6 +8,8 @@ export interface FormItemProps {
|
||||||
powerName: string;
|
powerName: string;
|
||||||
// 请求路径
|
// 请求路径
|
||||||
requestUrl: string;
|
requestUrl: string;
|
||||||
|
// 请求方法
|
||||||
|
requestMethod: string;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 添加或修改表单Props
|
// 添加或修改表单Props
|
||||||
|
|
Loading…
Reference in New Issue