import { Icon } from "@nice/iconer"; import {
DeleteOutlined,
EditFilled,
EllipsisOutlined,
} from "@ant-design/icons";
import { ICellRendererParams } from "@ag-grid-community/core";
import {
ColDef,
ValueGetterParams,
} from "@ag-grid-community/core";
import { ObjectType, StaffRowModel } from "@nice/common";
import { Menu, MenuItem } from "../../presentation/dropdown-menu";
import AgServerTable from "../../presentation/ag-server-table";
import IdCard from "../../presentation/id-card";
import { useContext, useEffect, useState } from "react";
import { StaffEditorContext } from "./staff-editor";
import PhoneBook from "../../presentation/phone-book";
import { SortDirection } from "ag-grid-community";
import { CrudOperation, emitDataChange, useStaff } from "@nice/client";
import { message, Tag } from "antd";
import { CustomCellRendererProps } from "@ag-grid-community/react";
const OpreationRenderer = ({ props }: { props: ICellRendererParams }) => {
const { setEditId, setModalOpen } = useContext(StaffEditorContext);
const { softDeleteByIds } = useStaff()
if (props?.data?.id)
return (
}>
);
};
const StaffList = ({
domainId,
height = "calc(100vh - 48px - 49px)",
}: {
domainId?: string;
height?: string | number;
}) => {
const { canManageAnyStaff } = useContext(StaffEditorContext);
const [params, setParams] = useState({ domainId: null });
useEffect(() => {
if (domainId) {
setParams((prev) => ({ ...prev, domainId }))
} else {
setParams((prev) => ({ ...prev, domainId: null }))
}
}, [domainId])
const columnDefs: ColDef[] = [
canManageAnyStaff && {
headerName: "所属域",
field: "domain.name",
sortable: true,
valueGetter: (params) => {
return params.data?.domain_name;
},
filter: "agTextColumnFilter",
},
{
headerName: "所属单位",
field: "dept.name",
valueGetter: (params: ValueGetterParams) => {
return params.data?.dept_name;
},
cellRenderer: (params) => {
return (
params.value || (
未录入所属单位
)
);
},
sortable: true,
filter: "agTextColumnFilter",
enableRowGroup: true,
maxWidth: 200,
},
{
field: "order",
hide: true,
sort: "asc" as SortDirection
},
{
headerName: "帐号",
field: "username",
cellRenderer: (params) => {
if (params?.data?.id)
return (
params.value || (
未录入帐号
)
);
},
sortable: true,
rowDrag: true,
filter: "agTextColumnFilter",
maxWidth: 300,
},
{
headerName: "姓名",
field: "showname",
cellRenderer: (params) => {
if (params?.data?.id)
return (
params.value || (
未录入姓名
)
);
},
sortable: true,
filter: "agTextColumnFilter",
maxWidth: 300,
},
{
headerName: "证件号",
field: "officer_id",
sortable: true,
filter: "agTextColumnFilter",
cellRenderer: (params) => {
const { data }: { data: StaffRowModel } = params;
if (params?.data?.id)
return ;
},
},
{
headerName: "手机号",
field: "phone_number",
sortable: true,
filter: "agTextColumnFilter",
cellRenderer: (params) => {
const { data }: { data: StaffRowModel } = params;
if (params?.data?.id)
return ;
},
},
{
headerName: "是否启用",
field: "enabled",
sortable: true,
enableRowGroup: true,
cellRenderer: (props: CustomCellRendererProps) => {
return {props?.data?.enabled ? "已启用" : "已禁用"}
},
},
{
headerName: "操作",
sortable: true,
cellRenderer: (props) => (
), // 指定 cellRenderer
maxWidth: 80,
},
].filter(Boolean);
return (
);
};
export default StaffList;