From 2457dfb6f3d561b3344e7586ec6850c55ab18f63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E6=99=AF=E5=AD=A6?= <5412262+sun_jing_xue@user.noreply.gitee.com> Date: Fri, 11 Jul 2025 08:33:29 +0800 Subject: [PATCH] =?UTF-8?q?=E7=99=BB=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/login/login.tsx | 39 ++++++++++----- src/pages/register/expert.tsx | 4 +- src/pages/register/supplier.tsx | 4 +- .../components/CategoryAddModal.tsx | 48 ++++++++++--------- .../category/CategoryLibraryReview/index.tsx | 4 +- src/servers/api/login.ts | 21 +++++++- 6 files changed, 78 insertions(+), 42 deletions(-) diff --git a/src/pages/login/login.tsx b/src/pages/login/login.tsx index 735fe8b..3007518 100644 --- a/src/pages/login/login.tsx +++ b/src/pages/login/login.tsx @@ -3,7 +3,7 @@ import { Form, Input, Button, Checkbox, Tabs, message } from 'antd'; import { UserOutlined, LockOutlined, EyeInvisibleOutlined, EyeTwoTone, HomeOutlined } from '@ant-design/icons'; import { history, useIntl } from 'umi'; import './login.less'; -import { getCaptcha, supplierLogin } from '@/servers/api/login'; +import { getCaptcha, supplierLogin, expertLogin, accountLogin } from '@/servers/api/login'; import { encryptWithRsa } from '@/utils/encryptWithRsa' import Password from 'antd/lib/input/Password'; @@ -11,11 +11,17 @@ import Password from 'antd/lib/input/Password'; const { TabPane } = Tabs; const LoginPage: React.FC = () => { - const [activeKey, setActiveKey] = useState('supplier'); + const [activeKey, setActiveKey] = useState('supplierLogin'); const [form] = Form.useForm(); const [loading, setLoading] = useState(false); const [captchaImg, setCaptchaImg] = useState(''); const [captchaKey, setCaptchaKey] = useState(''); + //切换后 走不同接口 + const loginApiMap: { [key: string]: (params: any) => Promise } = { + supplierLogin, + expertLogin, + accountLogin + }; const intl = useIntl(); @@ -31,11 +37,20 @@ const LoginPage: React.FC = () => { password: encryptWithRsa(values.password, false), encryptValue: encryptWithRsa(values.identifying) }; - const loginRes = await supplierLogin(params); + const loginRes = await loginApiMap[activeKey](params); if (loginRes.code === 200) { sessionStorage.setItem('token', loginRes.data.token); + //存入供应商用户id + if(activeKey === 'supplierLogin') { + sessionStorage.setItem('userId', loginRes.data.supplierUser.userId); + } else if(activeKey === 'expertLogin') { + //存入专家用户id + // sessionStorage.setItem('userId', loginRes.data.expertUser.userId); + } else if(activeKey === 'accountLogin') { + //存入招标代理用户id + // sessionStorage.setItem('userId', loginRes.data.supplierUser.userId); + } sessionStorage.setItem('currentUser', JSON.stringify(loginRes.data)); - sessionStorage.setItem('userId', loginRes.data.supplierUser.userId); message.success('登录成功'); history.push('/index'); } else { @@ -63,10 +78,10 @@ const LoginPage: React.FC = () => { // 根据当前选中的Tab决定跳转到哪个注册页面 const handleRegister = () => { switch(activeKey) { - case 'supplier': + case 'supplierLogin': history.push('/register/supplier'); break; - case 'expert': + case 'expertLogin': history.push('/register/expert'); break; default: @@ -102,13 +117,13 @@ const LoginPage: React.FC = () => {
{intl.formatMessage({ id: 'login.title' })}
- {/*
+
- - - + + + -
*/} +
{ - {renderRegisterLink()} + {activeKey !== 'accountLogin' && renderRegisterLink()}
diff --git a/src/pages/register/expert.tsx b/src/pages/register/expert.tsx index f581335..59941f5 100644 --- a/src/pages/register/expert.tsx +++ b/src/pages/register/expert.tsx @@ -56,8 +56,8 @@ const ExpertRegister: React.FC = () => {
diff --git a/src/pages/register/supplier.tsx b/src/pages/register/supplier.tsx index 243a985..38a25c4 100644 --- a/src/pages/register/supplier.tsx +++ b/src/pages/register/supplier.tsx @@ -128,8 +128,8 @@ const SupplierRegister: React.FC = (props) => { {!supplierWithInput && ( <> diff --git a/src/pages/supplier/category/CategoryLibraryManage/components/CategoryAddModal.tsx b/src/pages/supplier/category/CategoryLibraryManage/components/CategoryAddModal.tsx index d71bf34..0afe9f8 100644 --- a/src/pages/supplier/category/CategoryLibraryManage/components/CategoryAddModal.tsx +++ b/src/pages/supplier/category/CategoryLibraryManage/components/CategoryAddModal.tsx @@ -136,27 +136,27 @@ const CategoryAddModal: React.FC = ({ visible, onCancel, onSuccess }) => const handleTreeCheck = (checkedKeysValue: any) => { const onlyOneEachLevel = checkedKeysValue; - console.log(onlyOneEachLevel,'onlyOneEachLevel'); - + console.log(onlyOneEachLevel, 'onlyOneEachLevel'); + setCheckedKeys(onlyOneEachLevel); form.setFieldsValue({ categoryKeys: onlyOneEachLevel }); }; // 从树中获取所有选中节点及其父级节点 -const collectCheckedWithParents = (nodes: TreeNodeType[], checked: string[]): string[] => { - const result = new Set(); + const collectCheckedWithParents = (nodes: TreeNodeType[], checked: string[]): string[] => { + const result = new Set(); - const dfs = (node: TreeNodeType, parents: string[]) => { - if (checked.includes(node.key)) { - result.add(node.key); - parents.forEach(pid => result.add(pid)); // 加入所有父级 - } - node.children?.forEach(child => dfs(child, [...parents, node.key])); + const dfs = (node: TreeNodeType, parents: string[]) => { + if (checked.includes(node.key)) { + result.add(node.key); + parents.forEach(pid => result.add(pid)); // 加入所有父级 + } + node.children?.forEach(child => dfs(child, [...parents, node.key])); + }; + + nodes.forEach(root => dfs(root, [])); + return Array.from(result); }; - nodes.forEach(root => dfs(root, [])); - return Array.from(result); -}; - // 提交校验 const handleOk = async () => { try { @@ -248,15 +248,17 @@ const collectCheckedWithParents = (nodes: TreeNodeType[], checked: string[]): st required rules={[{ required: true, message: '请选择品类' }]} > - +
+ +
(注:同一级品类不可多选) diff --git a/src/pages/supplier/category/CategoryLibraryReview/index.tsx b/src/pages/supplier/category/CategoryLibraryReview/index.tsx index a2c316a..1135571 100644 --- a/src/pages/supplier/category/CategoryLibraryReview/index.tsx +++ b/src/pages/supplier/category/CategoryLibraryReview/index.tsx @@ -229,11 +229,11 @@ const CategoryLibraryManage: React.FC = () => { - + {/* - + */}
diff --git a/src/servers/api/login.ts b/src/servers/api/login.ts index eb620f4..fdff6d4 100644 --- a/src/servers/api/login.ts +++ b/src/servers/api/login.ts @@ -10,7 +10,26 @@ export async function getCaptcha() { } /** - * 登录 + * 招标代理 + */ +export async function accountLogin (data: API.LoginSupplier) { + return request('/v1/login/accountLogin', { + method: 'POST', + data + }); +} +/** + * 专家 + */ +export async function expertLogin (data: API.LoginSupplier) { + return request('/v1/login/expertLogin', { + method: 'POST', + data + }); +} + +/** + * 供应商 */ export async function supplierLogin (data: API.LoginSupplier) { return request('/v1/login/accountLogin/supplier', {