消息通知

This commit is contained in:
孙景学
2025-08-11 16:17:27 +08:00
parent c0006963db
commit 391303809e
5 changed files with 65 additions and 16 deletions

View File

@ -4,12 +4,14 @@ import LogoImg from '@/assets/img/logo.png';
//导入菜单组件
import Language from './Language';
import User from './User';
import MessageNotice from './MessageNotice';
import './layout.less';
const HeaderComponent: React.FC = () => {
return (
<div className="headerComponent">
<img className="logo" src={LogoImg} alt="logo" />
<div className="flex">
<MessageNotice/>
<Language />
<User />
</div>

View File

@ -0,0 +1,45 @@
import React, { useEffect, useState } from 'react';
import { Badge, Tooltip } from 'antd';
import { BellOutlined } from '@ant-design/icons';
import { getCountMessage } from '@/servers/api/user';
import { history } from 'umi';
const MessageNotice: React.FC = () => {
const [count, setCount] = useState<number>(0);
useEffect(() => {
let alive = true;
// 拉未读数量
(async () => {
try {
const res = await getCountMessage();
// 兼容不同后端返回res?.data 或 res?.count
const c = res?.data ?? 0;
if (alive) setCount(Number(c) || 0);
} catch {
if (alive) setCount(0);
}
})();
return () => { alive = false; };
}, []);
return count !== 0 ? (
<Tooltip title="消息通知">
<Badge count={count} overflowCount={99}>
<BellOutlined
style={{ fontSize: 18, cursor: 'pointer' }}
onClick={() => {
const activeKey = sessionStorage.getItem('activeKey') || '';
if (activeKey === 'accountLogin') {
history.push('/supplierMessage')
} else {
history.push('/backend/supplierNews')
}
}}
/>
</Badge>
</Tooltip>
) : null
};
export default MessageNotice;

View File

@ -44,19 +44,6 @@ const LoginPage: React.FC = () => {
}, [activeKey]);
// 组件挂载时,检查是否有记住的用户名
useEffect(() => {
// const savedUser = localStorage.getItem('remember_user');
// if (savedUser) {
// const user = JSON.parse(savedUser);
// form.setFieldsValue({
// username: user.username,
// password: user.password,
// remember: true,
// });
// }
}, [form]);
// 修改密码确认回调
const handleChangePwd = async (values: { userId: string; newPassword: string; confirmPassword: string; }) => {
try {
@ -95,7 +82,7 @@ const LoginPage: React.FC = () => {
} else {
localStorage.removeItem('remember_user');
}
sessionStorage.setItem('activeKey', activeKey)
sessionStorage.setItem('token', loginRes.data.token);
//存入供应商用户id
if (activeKey === 'supplierLogin') {

View File

@ -133,6 +133,13 @@ const SupplierEntryReview: React.FC = () => {
ellipsis: true,
width: 120,
},
{
title: '准入单位',
dataIndex: 'orgName',
align: 'center',
ellipsis: true,
width: 120,
},
{
title: '准入部门',
dataIndex: 'deptName',
@ -223,8 +230,8 @@ const SupplierEntryReview: React.FC = () => {
<Form.Item name="accessType" label="准入方式">
<AdmissionTypeSelect />
</Form.Item>
<Form.Item name="deptId" label="准入部门">
<AccessDepartmentSelect orgCategory='' />
<Form.Item name="orgId" label="准入单位">
<AccessDepartmentSelect />
</Form.Item>
<Form.Item name="approveStatus" label="审批状态">

View File

@ -11,6 +11,14 @@ export async function getUserList(params: API.UserListRequest) {
params,
});
}
/**
* 获取用户信息
*/
export async function getCountMessage() {
return request('/supplierMessage/getCountMessage', {
method: 'GET',
});
}
/**
* 获取全国列表
* @param params 查询参数