feat: add Jinshuju student sync
All checks were successful
CI / check (pull_request) Successful in 2m14s
All checks were successful
CI / check (pull_request) Successful in 2m14s
This commit is contained in:
@@ -21,6 +21,7 @@ import {
|
||||
} from 'antd';
|
||||
import type { UploadProps } from 'antd';
|
||||
import {
|
||||
CloudUploadOutlined,
|
||||
DownloadOutlined,
|
||||
ExportOutlined,
|
||||
EyeOutlined,
|
||||
@@ -34,6 +35,7 @@ import api from '../../api';
|
||||
import PermissionButton from '../../components/PermissionButton';
|
||||
import StudentProfileContent from '../../components/StudentProfileContent';
|
||||
import EditableCell from '../../components/EditableCell';
|
||||
import JinshujuMatchModal from '../../components/JinshujuMatchModal';
|
||||
import { maskIdNumber, maskPhone } from '../../utils/sensitive';
|
||||
import { message } from '../../ui/app-message';
|
||||
|
||||
@@ -109,6 +111,8 @@ const StudentsPage: React.FC = () => {
|
||||
setDrawerOpen(true);
|
||||
};
|
||||
|
||||
const [jinshujuOpen, setJinshujuOpen] = useState(false);
|
||||
|
||||
const handleViewSensitive = (studentId: number, field: string, value: string) => {
|
||||
modal.confirm({
|
||||
title: '查看敏感信息',
|
||||
@@ -775,6 +779,13 @@ const StudentsPage: React.FC = () => {
|
||||
>
|
||||
<Button icon={<SwapOutlined />}>更新已有学生资料</Button>
|
||||
</Upload>
|
||||
<PermissionButton
|
||||
permission="student:edit"
|
||||
icon={<CloudUploadOutlined />}
|
||||
onClick={() => setJinshujuOpen(true)}
|
||||
>
|
||||
同步金数据
|
||||
</PermissionButton>
|
||||
<PermissionButton
|
||||
permission="student:view"
|
||||
icon={<DownloadOutlined />}
|
||||
@@ -955,6 +966,11 @@ const StudentsPage: React.FC = () => {
|
||||
</Form>
|
||||
</Modal>
|
||||
|
||||
<JinshujuMatchModal
|
||||
open={jinshujuOpen}
|
||||
onClose={() => setJinshujuOpen(false)}
|
||||
onApplied={() => { setJinshujuOpen(false); fetchData(); }}
|
||||
/>
|
||||
<Drawer
|
||||
title={null}
|
||||
open={drawerOpen}
|
||||
|
||||
Reference in New Issue
Block a user