修改 企业用户中台

dev
853931625@qq.com 2026-06-22 17:25:57 +08:00
parent 306e8193f9
commit 04beb13b51
6 changed files with 244 additions and 160 deletions

View File

@ -40,6 +40,11 @@ export const corpUserMiddlePage = declareRequest(
"enterpriseLoading",
"Post > @/basicInfo/corpInfo/corpUserMiddlePage",
);
export const userChangeRecordList = declareRequest(
"enterpriseLoading",
"Post > @/basicInfo/userChangeRecord/userCorpInfoList",
);
// 获取当前登录人信息
export const userGetInfo = declareRequest(

View File

@ -90,3 +90,19 @@ export const getChangerRecordInfoById = declareRequest(
"userLoading",
"Post > @/basicInfo/userCorpRecord/getUserCorpRecordById",
);
export const pageByNopermission = declareRequest(
"enterpriseLoading",
"Post > @/basicInfo/user/pageByNopermission",
);
export const userChangeRecordList = declareRequest(
"enterpriseLoading",
"Post > @/basicInfo/userChangeRecord/list",
);
export const userChangeRecordgGtRecordInfoById = declareRequest(
"enterpriseLoading",
"Post > @/basicInfo/userChangeRecord/getChangerRecordInfoById",
);
export const workChangeHandle = declareRequest(
"enterpriseLoading",
"Post > @/basicInfo/userChangeRecord/workChangeHandle",
);

View File

@ -2,88 +2,60 @@ import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Form, Space } from "antd";
import Page from "zy-react-library/components/Page";
import Search from "zy-react-library/components/Search";
import Table from "zy-react-library/components/Table";
import { FORM_ITEM_RENDER_ENUM } from "zy-react-library/enum/formItemRender";
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
import useTable from "zy-react-library/hooks/useTable";
import { NS_USER } from "~/enumerate/namespace";
const ENTERPRISE_TYPE = [
{
bianma: 0,
name: "普通企业",
},
{
bianma: 1,
name: "集团单位",
},
{
bianma: 6,
name: "物资中心",
},
];
function List(props) {
const [form] = Form.useForm();
const { tableProps, getData } = useTable(props["userEmploymentLogAll"], {
const queryParams = useGetUrlQuery();
const { tableProps } = useTable(props["userChangeRecordList"], {
form,
usePermission: false,
transform: (formData) => {
return {
...formData,
params: { eqUserId: queryParams.id },
};
},
});
return (
<div>
<Page
headerTitle="变更记录列表"
headerTitle="变更列表"
isShowFooter={false}
>
<Search
form={form}
options={[
{
name: "name",
label: "公司名称",
},
{
name: "eqtype",
label: "企业类型",
render: FORM_ITEM_RENDER_ENUM.SELECT,
items: ENTERPRISE_TYPE,
},
]}
onFinish={getData}
/>
<Table
options={false}
columns={[
{
title: "姓名",
dataIndex: "userName",
},
{
title: "变更时间",
dataIndex: "updateTime",
dataIndex: "changeTime",
},
{
title: "企业名称",
dataIndex: "corpinfoName",
dataIndex: "corpinfoNameAfter",
},
{
title: "部门名称",
dataIndex: "departmentName",
dataIndex: "departmentNameAfter",
},
{
title: "岗位名称",
dataIndex: "postName",
dataIndex: "postIdAfter",
},
{
title: "员工",
dataIndex: "name",
title: "员工状态",
dataIndex: "status",
render: (_, record) => (
<div>
{record.employmentFlag === 1
? "在职"
: record.employmentFlag === 1
? "离职"
{record.status === 1
? "待审批"
: record.status === 2
? "通过"
: ""}
</div>
),
@ -97,7 +69,7 @@ function List(props) {
<Button
type="link"
onClick={() =>
props.history.push(`./ChangeView?id=${record.id}&type=record`)}
props.history.push(`./ChangeView?id=${record.userChangeRecordId}&userId=${record.userId}`)}
>
查看
</Button>

View File

@ -1,7 +1,9 @@
import { Connect } from "@cqsjjb/jjb-dva-runtime";
import { Button, Descriptions, Divider, message, Modal } from "antd";
import { Button, Descriptions, Divider, Form, message, Modal, Space } from "antd";
import { useEffect, useState } from "react";
import Page from "zy-react-library/components/Page";
import PersonnelSelect from "zy-react-library/components/Select/Personnel/Gwj";
import DepartmentSelectTree from "zy-react-library/components/SelectTree/Department/Gwj";
import Table from "zy-react-library/components/Table";
import useGetUrlQuery from "zy-react-library/hooks/useGetUrlQuery";
@ -9,57 +11,61 @@ import { NS_ENTERPRISE, NS_USER } from "~/enumerate/namespace";
function ChangeView(props) {
const queryParams = useGetUrlQuery();
const [form] = Form.useForm();
const [info, setInfo] = useState({});
const [handoverModalOpen, setHandoverModalOpen] = useState(false);
const [departmentId, setDepartmentId] = useState();
const [currentHandoverRecord, setCurrentHandoverRecord] = useState({});
const [handoverUserInfo, setHandoverUserInfo] = useState({});
useEffect(() => {
props["getChangerRecordInfoById"]({ corpinfoId: queryParams["corpinfoId"], userId: queryParams["id"] }).then((res) => {
const getRecordInfo = () => {
props["userChangeRecordgGtRecordInfoById"]({ userChangeRecordId: queryParams["id"], userId: queryParams["userId"] }).then((res) => {
if (res.data) {
setInfo(res.data);
}
});
};
useEffect(() => {
getRecordInfo();
}, []);
const onSubmit = async () => {
Modal.confirm({
title: "提示",
content: "确认后,该名员工的信息将处于离职状态,涉及的待完成相关工作,可能会受到异常。",
onOk: () => {
props["reviewStatus"]({
corpinfoId: queryParams["corpinfoId"],
employmentFlag: queryParams["employmentFlag"],
reviewStatus: 2,
userId: queryParams["id"],
}).then((res) => {
if (res.success) {
message.success("审核成功");
window.history.back();
}
});
},
});
};
const handleReject = () => {
Modal.confirm({
title: "提示",
content: "确定驳回吗?",
onOk: () => {
props["reviewStatus"]({
corpinfoId: queryParams["corpinfoId"],
employmentFlag: queryParams["employmentFlag"],
reviewStatus: 3,
userId: queryParams["id"],
}).then((res) => {
if (res.success) {
message.success("驳回成功");
window.history.back();
}
});
},
});
const onOpenHandoverModal = (record) => {
form.resetFields();
setDepartmentId();
setCurrentHandoverRecord(record || {});
setHandoverUserInfo({});
setHandoverModalOpen(true);
};
const onGoBack = () => {
window.history.back();
const onCloseHandoverModal = () => {
form.resetFields();
setDepartmentId();
setCurrentHandoverRecord({});
setHandoverUserInfo({});
setHandoverModalOpen(false);
};
const onSubmitHandover = (values) => {
const params = {
handoverCompanyId: handoverUserInfo.corpinfoId || handoverUserInfo.corpInfoId,
handoverCompanyName: handoverUserInfo.corpinfoName || handoverUserInfo.corpInfoName,
handoverDepartmentId: handoverUserInfo.departmentId,
handoverDepartmentName: handoverUserInfo.departmentName,
handoverPostId: handoverUserInfo.postId,
handoverPostName: handoverUserInfo.postName,
handoverUserId: handoverUserInfo.id || values.userId,
handoverUserName: handoverUserInfo.name,
id: currentHandoverRecord.id,
};
props["workChangeHandle"](params).then((res) => {
if (res.success) {
message.success("交接成功");
onCloseHandoverModal();
getRecordInfo();
}
});
};
return (
@ -90,7 +96,15 @@ function ChangeView(props) {
},
{
label: "员工状态",
children: info.userStatusBefore,
children: (
<div>
{info.userStatusBefore === 1
? "待审批"
: info.userStatusBefore === 2
? "通过"
: ""}
</div>
),
},
]}
@ -98,6 +112,7 @@ function ChangeView(props) {
labelStyle={{
width: 200,
}}
contentStyle={{ width: 500 }}
/>
<Divider orientation="left">变更后信息</Divider>
<Descriptions
@ -121,67 +136,123 @@ function ChangeView(props) {
},
{
label: "员工状态",
children: info.userStatusAfter,
children: (
<div>
{info.userStatusAfter === 1
? "待审批"
: info.userStatusAfter === 2
? "通过"
: ""}
</div>
),
},
{
label: "变更时间",
children: info.changeTime,
contentStyle: { display: queryParams["type"] === "disposal" ? "none" : "" },
labelStyle: { display: queryParams["type"] === "disposal" ? "none" : "" },
},
]}
column={2}
labelStyle={{
width: 200,
}}
contentStyle={{ width: 500 }}
/>
<Divider orientation="left">{queryParams["type"] === "disposal" ? "未完成工作" : "工作交接"}</Divider>
<Divider orientation="left">{queryParams["type"] === "disposal" ? "工作交接情况" : "交接信息"}</Divider>
<Table
pagination={false}
options={false}
columns={[
{
title: "工作项目",
dataIndex: "corpName",
title: "工作类别",
dataIndex: "workProject",
},
{
title: "工作内容",
dataIndex: "type",
title: "待办事项",
dataIndex: "workContent",
},
{
title: "处理人",
dataIndex: "departMentCount",
hidden: queryParams["type"] === "disposal",
dataIndex: "handoverUserName",
},
{
title: "操作",
width: 200,
hidden: queryParams["type"] !== "disposal",
render: (_, record) => (
<Space>
<Button
type="link"
disabled={record.handoverStatus === 1}
onClick={() => onOpenHandoverModal(record)}
>
交接
</Button>
</Space>
),
},
]}
dataSource={info.userJobHandoverCOList}
/>
</Page>
{
queryParams["type"] === "disposal"
&& (
<div style={{ textAlign: "center", height: 50, marginTop: 20 }} className="no-print">
<Button style={{ marginRight: 20 }} onClick={onGoBack}>
取消
</Button>
<Button key="reject" onClick={handleReject} style={{ marginRight: 20 }}>
驳回
</Button>
<Button
type="primary"
onClick={onSubmit}
<Modal
maskClosable={false}
open={handoverModalOpen}
title="交接"
width={900}
confirmLoading={props.user?.enterpriseLoading}
onOk={() => form.submit()}
onCancel={onCloseHandoverModal}
>
通过
</Button>
</div>
)
}
<Form
form={form}
labelCol={{ span: 4 }}
wrapperCol={{ span: 18 }}
onFinish={onSubmitHandover}
>
<Form.Item
name="departmentId"
label="选择部门"
rules={[{ required: true, message: "请选择部门" }]}
>
<DepartmentSelectTree
placeholder="当前登录账号公司组织机构"
onChange={(value) => {
setDepartmentId(value);
setHandoverUserInfo({});
form.setFieldValue("userId", undefined);
}}
/>
</Form.Item>
<Form.Item
name="userId"
label="选择人员"
rules={[{ required: true, message: "请选择人员" }]}
>
<PersonnelSelect
onGetOption={(value) => {
// 在这里 公司 部门 岗位 人员 取value里的这些字段
// {
// "id":"2008787570160480256"
// "name": "股份_王雯仲",
// "corpinfoId": "1976974388809424896",
// "corpinfoName": "秦皇岛港股份有限公司",
// "departmentId": "2008786394509651968",
// "departmentName": "总经办",
// "postId": "2008786566382211074",
// "postName": "董事长助理",
// }
setHandoverUserInfo(value || {});
}}
params={{ departmentId }}
placeholder="选择部门下人员、单选"
/>
</Form.Item>
</Form>
</Modal>
</div>

View File

@ -19,6 +19,22 @@ const ENTERPRISE_TYPE = [
bianma: 1,
name: "集团单位",
},
{
bianma: 2,
name: "股份单位",
},
{
bianma: 3,
name: "普通企业",
},
{
bianma: 4,
name: "货主单位",
},
{
bianma: 5,
name: "驻港单位",
},
{
bianma: 6,
name: "物资中心",
@ -26,12 +42,11 @@ const ENTERPRISE_TYPE = [
];
function List(props) {
const [form] = Form.useForm();
const { tableProps, getData } = useTable(props["corpUserMiddlePage"], {
const { tableProps, getData } = useTable(props["userChangeRecordList"], {
form,
transform: (formData) => {
return {
...formData,
enterpriseType: 2,
};
},
});
@ -45,12 +60,7 @@ function List(props) {
name: "name",
label: "公司名称",
},
{
name: "eqType",
label: "企业类型",
render: FORM_ITEM_RENDER_ENUM.SELECT,
items: ENTERPRISE_TYPE,
},
]}
onFinish={getData}
/>
@ -74,27 +84,27 @@ function List(props) {
},
{
title: "部门数",
dataIndex: "departMentCount",
dataIndex: "departmentCount",
},
{
title: "岗位数",
dataIndex: "postCount",
},
{
title: "用户数",
title: "人员总数",
dataIndex: "userCount",
},
{
title: "中台人员存在数",
dataIndex: "middleUserCount",
title: "人资存在数",
dataIndex: "rzUserCount",
render: (_, record) => (
<div>{record.middleUserCount ?? 0}</div>
<div>{record.rzUserCount ?? 0}</div>
),
},
{
title: "操作",
width: 200,
// hidden: !(props.permission("qyyhzt-info")),
hidden: !(props.permission("qyyhzt-info")),
render: (_, record) => (
<Space>

View File

@ -18,13 +18,17 @@ import { UseDecodeIdCard } from "~/utils";
const USER_TYPE = [
{
bianma: 1,
bianma: "1",
name: "在职",
},
{
bianma: 2,
bianma: "0",
name: "离职",
},
{
bianma: "2",
name: "信息变更中",
},
];
function List(props) {
const [selectedNodeId, setSelectedNodeId] = useState();
@ -32,14 +36,14 @@ function List(props) {
const [currentId, setCurrentId] = useState("");
const queryParams = useGetUrlQuery();
const [form] = Form.useForm();
const { tableProps, getData } = useTable(props["userList"], {
const { tableProps, getData } = useTable(props["pageByNopermission"], {
form,
usePermission: false,
transform: (formData) => {
return {
...formData,
eqDepartmentId: selectedNodeId,
corpinfoId: queryParams["id"],
eqCorpinfoId: queryParams["id"],
noMain: 1,
};
@ -68,7 +72,7 @@ function List(props) {
return (
<div>
<Page
headerTitle="列表"
headerTitle="人员列表"
isShowFooter={false}
>
<div
@ -91,7 +95,7 @@ function List(props) {
label: "姓名",
},
{
name: "eqtype",
name: "eqEmploymentFlag",
label: "人员状态",
render: FORM_ITEM_RENDER_ENUM.SELECT,
items: USER_TYPE,
@ -125,22 +129,29 @@ function List(props) {
dataIndex: "phone",
},
{
title: "中台是否存在",
dataIndex: "name",
},
{
title: "状态",
dataIndex: "name",
title: "人资系统是否存在",
dataIndex: "rzFlag",
render: (_, record) => (
<div>
{record.employmentFlag === 1
? "在职"
: record.employmentFlag === 1
? "离职"
{record.rzFlag === 1
? "是"
: record.rzFlag === 0
? ""
: ""}
</div>
),
},
{
title: "人员状态",
dataIndex: "employmentFlag",
render: (_, record) => (
<div>
{
getLabelName({ list: USER_TYPE, status: record.employmentFlag })
}
</div>
),
},
{
title: "操作",
width: 180,
@ -169,13 +180,12 @@ function List(props) {
)
}
{
props.permission("qyyuzt-info-disposal")
&& (
props.permission("qyyuzt-info-disposal") && record.employmentFlag === 2 && (
<Button
type="link"
danger
onClick={() =>
props.history.push(`./ChangeView?id=${record.id}&type=disposal`)}
props.history.push(`./ChangeView?userId=${record.id}&type=disposal`)}
>
变更处置
</Button>