This commit is contained in:
Rao 2025-03-02 22:25:40 +08:00
commit d69ce4db3f
4 changed files with 41 additions and 28 deletions

View File

@ -76,7 +76,7 @@ export default function DepartmentList() {
}, },
{ {
headerName: "操作", headerName: "操作",
sortable: true, // sortable: true,
cellRenderer: (props: CustomCellRendererProps) => ( cellRenderer: (props: CustomCellRendererProps) => (
<OpreationRenderer props={props} /> <OpreationRenderer props={props} />
), ),

View File

@ -83,7 +83,7 @@ export default function AssignList() {
{ {
headerName: "操作", headerName: "操作",
sortable: true, // sortable: true,
cellRenderer: (props) => <OpreationRenderer props={props}></OpreationRenderer>, // 指定 cellRenderer cellRenderer: (props) => <OpreationRenderer props={props}></OpreationRenderer>, // 指定 cellRenderer
maxWidth: 100, maxWidth: 100,

View File

@ -171,7 +171,7 @@ const StaffList = ({
}, },
{ {
headerName: "操作", headerName: "操作",
sortable: true, // sortable: true,
cellRenderer: (props) => ( cellRenderer: (props) => (
<OpreationRenderer props={props}></OpreationRenderer> <OpreationRenderer props={props}></OpreationRenderer>

View File

@ -13,7 +13,7 @@ import { ObjectType, Term, TreeDataNode } from "@nice/common";
import DepartmentSelect from "../department/department-select"; import DepartmentSelect from "../department/department-select";
import { TermEditorContext } from "./term-editor"; import { TermEditorContext } from "./term-editor";
import { useAuth } from "@web/src/providers/auth-provider"; import { useAuth } from "@web/src/providers/auth-provider";
import { api } from "@nice/client" import { api } from "@nice/client";
import { Menu, MenuItem } from "../../presentation/dropdown-menu"; import { Menu, MenuItem } from "../../presentation/dropdown-menu";
import AgServerTable from "../../presentation/ag-server-table"; import AgServerTable from "../../presentation/ag-server-table";
@ -42,7 +42,7 @@ const OpreationRenderer = ({ props }: { props: CustomCellRendererProps }) => {
label="添加子节点" label="添加子节点"
icon={<PlusOutlined></PlusOutlined>} icon={<PlusOutlined></PlusOutlined>}
onClick={() => { onClick={() => {
setParentId(props?.data?.id) setParentId(props?.data?.id);
// setEditId(data?.id) // setEditId(data?.id)
setTermModalOpen(true); setTermModalOpen(true);
}}></MenuItem> }}></MenuItem>
@ -57,14 +57,21 @@ const OpreationRenderer = ({ props }: { props: CustomCellRendererProps }) => {
<MenuItem <MenuItem
label="移除" label="移除"
onClick={() => { onClick={() => {
softDeleteByIds.mutateAsync({ softDeleteByIds.mutateAsync(
ids: [props?.data?.id], {
}, { ids: [props?.data?.id],
onSettled: () => {
message.success("删除成功");
emitDataChange(ObjectType.TERM, props.data as any, CrudOperation.DELETED)
}, },
}); {
onSettled: () => {
message.success("删除成功");
emitDataChange(
ObjectType.TERM,
props.data as any,
CrudOperation.DELETED
);
},
}
);
}} }}
icon={<DeleteOutlined></DeleteOutlined>}></MenuItem> icon={<DeleteOutlined></DeleteOutlined>}></MenuItem>
</Menu> </Menu>
@ -86,27 +93,31 @@ export default function TermList() {
setDomainId(user.domainId); setDomainId(user.domainId);
} }
}, [user]); }, [user]);
const [params, setParams] = useState({ parentId: null, domainId: null, taxonomyId: null }); const [params, setParams] = useState({
parentId: null,
domainId: null,
taxonomyId: null,
});
useEffect(() => { useEffect(() => {
if (taxonomyId) { if (taxonomyId) {
setParams((prev) => ({ ...prev, taxonomyId })) setParams((prev) => ({ ...prev, taxonomyId }));
} }
if (domainId) { if (domainId) {
setParams((prev) => ({ ...prev, domainId })) setParams((prev) => ({ ...prev, domainId }));
} else { } else {
setParams((prev) => ({ ...prev, domainId: null })) setParams((prev) => ({ ...prev, domainId: null }));
} }
}, [taxonomyId, domainId]) }, [taxonomyId, domainId]);
const columnDefs = useMemo<ColDef[]>(() => { const columnDefs = useMemo<ColDef[]>(() => {
return [ return [
{ {
field: "order", field: "order",
hide: true, hide: true,
sort: "asc" as SortDirection sort: "asc" as SortDirection,
}, },
{ {
headerName: "操作", headerName: "操作",
sortable: true, // sortable: true,
cellRenderer: (props: CustomCellRendererProps) => ( cellRenderer: (props: CustomCellRendererProps) => (
<OpreationRenderer props={props} /> <OpreationRenderer props={props} />
), ),
@ -115,12 +126,15 @@ export default function TermList() {
].filter(Boolean); ].filter(Boolean);
}, []); }, []);
const autoGroupColumnDef = useMemo(() => ({ const autoGroupColumnDef = useMemo(
rowDrag: true, () => ({
headerName: "术语名", rowDrag: true,
field: "name", headerName: "术语名",
filter: "agTextColumnFilter", field: "name",
}), []); filter: "agTextColumnFilter",
}),
[]
);
const getServerSideGroupKey = useCallback((item) => item.id, []); const getServerSideGroupKey = useCallback((item) => item.id, []);
const isServerSideGroup = useCallback((item) => item.has_children, []); const isServerSideGroup = useCallback((item) => item.has_children, []);
@ -163,11 +177,10 @@ export default function TermList() {
columnDefs={columnDefs} columnDefs={columnDefs}
objectType={ObjectType.TERM} objectType={ObjectType.TERM}
treeData={true} treeData={true}
params={params} // 使用 state 中的 params params={params} // 使用 state 中的 params
getServerSideGroupKey={getServerSideGroupKey} getServerSideGroupKey={getServerSideGroupKey}
isServerSideGroup={isServerSideGroup} isServerSideGroup={isServerSideGroup}
autoGroupColumnDef={autoGroupColumnDef} autoGroupColumnDef={autoGroupColumnDef}></AgServerTable>
></AgServerTable>
{/* <div {/* <div
className="p-2" className="p-2"
style={{ height: "calc(100vh - 49px - 48px - 49px)" }}> style={{ height: "calc(100vh - 49px - 48px - 49px)" }}>