消息配置

This commit is contained in:
Teo
2025-08-14 10:50:56 +08:00
parent f6c21bf195
commit 062fa5b080
6 changed files with 108 additions and 221 deletions

View File

@ -10,9 +10,6 @@
<el-form-item label="消息标识" prop="msgKey">
<el-input v-model="queryParams.msgKey" placeholder="请输入消息标识" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="跳转路由" prop="route">
<el-input v-model="queryParams.route" placeholder="请输入跳转路由" clearable @keyup.enter="handleQuery" />
</el-form-item>
<el-form-item label="通知人" prop="userId">
<el-input v-model="queryParams.userId" placeholder="请输入通知人" clearable @keyup.enter="handleQuery" />
</el-form-item>
@ -41,7 +38,7 @@
<el-table-column label="消息名称" align="center" prop="msgName" />
<el-table-column label="消息模板" align="center" prop="msgContent" />
<el-table-column label="消息标识" align="center" prop="msgKey" />
<el-table-column label="跳转路由" align="center" prop="route" />
<!-- <el-table-column label="跳转路由" align="center" prop="route" /> -->
<el-table-column label="通知人" align="center" prop="userId" />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template #default="scope">
@ -73,9 +70,15 @@
<el-input v-model="form.route" placeholder="请输入跳转路由" />
</el-form-item>
<el-form-item label="通知部门" prop="deptId">
<el-select v-model="form.deptId" placeholder="请选择通知部门" filterable @change="getUser">
<el-option v-for="item in deptList" :key="item.deptId" :label="item.deptName" :value="item.deptId" />
</el-select>
<el-tree-select
v-model="form.deptId"
:data="deptList"
:props="{ value: 'id', label: 'label', children: 'children' }"
value-key="id"
placeholder="请选择归属部门"
check-strictly
@change="handleDeptChange"
/>
</el-form-item>
<el-form-item label="通知人" prop="userId">
<el-select v-model="form.userId" placeholder="请选择通知人" multiple filterable :disabled="!form.deptId">
@ -96,7 +99,8 @@
<script setup name="Config" lang="ts">
import { listConfig, getConfig, delConfig, addConfig, updateConfig, listUsers } from '@/api/message/config';
import { ConfigVO, ConfigQuery, ConfigForm } from '@/api/message/config/types';
import { listUser } from '@/api/system/user';
import { DeptTreeVO } from '@/api/system/dept/types';
import { deptTreeSelect, listUser } from '@/api/system/user';
import { useUserStoreHook } from '@/store/modules/user';
const { proxy } = getCurrentInstance() as ComponentInternalInstance;
@ -225,6 +229,7 @@ const submitForm = () => {
if (form.value.id) {
await updateConfig(form.value).finally(() => (buttonLoading.value = false));
} else {
form.value.userId = form.value.userId.join(',');
await addConfig(form.value).finally(() => (buttonLoading.value = false));
}
proxy?.$modal.msgSuccess('操作成功');
@ -254,24 +259,42 @@ const handleExport = () => {
);
};
/** 获取用户列表 */
const getDept = async () => {
const res = await listUsers({
pageNum: 1,
pageSize: 1000,
projectId: currentProject.value?.id
});
deptId.value = res.data.deptId;
getListDept();
// /** 获取用户列表 */
// const getDept = async () => {
// const res = await listUsers({
// pageNum: 1,
// pageSize: 1000,
// projectId: currentProject.value?.id
// });
// deptId.value = res.data.deptId;
// getListDept();
// };
/** 查询部门下拉树结构 */
const getDeptTree = async () => {
const res = await deptTreeSelect({ isShow: '1' });
deptList.value = filterDisabledDept(res.data);
};
const getListDept = async () => {
/** 过滤禁用的部门 */
const filterDisabledDept = (deptList: DeptTreeVO[]) => {
return deptList.filter((dept) => {
if (dept.disabled) {
return false;
}
if (dept.children && dept.children.length) {
dept.children = filterDisabledDept(dept.children);
}
return true;
});
};
const handleDeptChange = async (value) => {
const res = await listUser({
pageNum: 1,
pageSize: 1000,
deptId: deptId.value
deptId: value
});
deptList.value = res.rows;
userList.value = res.rows;
};
const getUser = async () => {
const res = await listUser({
@ -284,7 +307,7 @@ const getUser = async () => {
onMounted(() => {
getList();
getDept();
getDeptTree();
});
//监听项目id刷新数据