UNPKG

@knockout-js/org

Version:
185 lines (184 loc) 7.12 kB
import { _ as _object_spread } from "@swc/helpers/_/_object_spread"; import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props"; import { jsx as _jsx } from "@ice/jsx-runtime/jsx-runtime"; import { useState } from 'react'; import { ProTable } from '@ant-design/pro-components'; import { gid, instanceName } from '@knockout-js/api'; import { useLocale } from '../locale'; import { gql, paging } from '@knockout-js/ice-urql/request'; import { Modal } from '@knockout-js/layout'; export const EnumAppKind = { web: { text: 'web' }, native: { text: 'native' }, server: { text: 'server' } }; const orgAppListQuery = gql(/* GraphQL */ `query orgAppList($gid: GID!,$first: Int,$orderBy:AppOrder,$where:AppWhereInput){ node(id:$gid){ ... on Org{ id apps(first:$first,orderBy: $orderBy,where: $where){ totalCount,pageInfo{ hasNextPage,hasPreviousPage,startCursor,endCursor } edges{ cursor,node{ id,name,code,kind,comments,status } } } } } }`); const appListQuery = gql(/* GraphQL */ `query appList($first: Int,$orderBy:AppOrder,$where:AppWhereInput){ apps(first:$first,orderBy: $orderBy,where: $where){ totalCount,pageInfo{ hasNextPage,hasPreviousPage,startCursor,endCursor } edges{ cursor,node{ id,name,code,kind,comments,status } } } }`); export default ((props)=>{ const locale = useLocale('AppModal'), glocale = useLocale('global'), columns = [ // 有需要排序配置 sorter: true { title: locale.name, dataIndex: 'name', width: 120 }, { title: locale.code, dataIndex: 'code', width: 120 }, { title: locale.type, dataIndex: 'kind', filters: true, search: false, width: 100, valueEnum: EnumAppKind }, { title: locale.desc, dataIndex: 'comments', width: 160, search: false } ], [dataSource, setDataSource] = useState([]), // 选中处理 [selectedRowKeys, setSelectedRowKeys] = useState([]); return /*#__PURE__*/ _jsx(Modal, _object_spread_props(_object_spread({ width: 900, title: props.title }, props.modalProps), { open: props.open, onOk: ()=>{ props.onClose(dataSource.filter((item)=>selectedRowKeys.includes(item.id))); }, onCancel: ()=>{ props.onClose(); }, children: /*#__PURE__*/ _jsx(ProTable, _object_spread_props(_object_spread({ size: "small", scroll: { x: 'max-content', y: 300 } }, props.proTableProps), { rowKey: 'id', search: { searchText: glocale.query, resetText: glocale.reset, labelWidth: 'auto' }, options: false, columns: columns, request: async (params, sort, filter)=>{ const table = { data: [], success: true, total: 0 }, where = {}; where.nameContains = params.name; where.codeContains = params.code; where.kindIn = filter.kind; if (props.orgId) { var _result_data_node, _result_data; const result = await paging(orgAppListQuery, { gid: gid('Org', props.orgId), first: params.pageSize, where }, params.current || 1, { instanceName: instanceName.UCENTER }); if (((_result_data = result.data) === null || _result_data === void 0 ? void 0 : (_result_data_node = _result_data.node) === null || _result_data_node === void 0 ? void 0 : _result_data_node.__typename) === 'Org') { var _result_data_node_apps_edges; (_result_data_node_apps_edges = result.data.node.apps.edges) === null || _result_data_node_apps_edges === void 0 ? void 0 : _result_data_node_apps_edges.forEach((item)=>{ var _item; if ((_item = item) === null || _item === void 0 ? void 0 : _item.node) { table.data.push(item.node); } }); table.total = result.data.node.apps.totalCount; } } else { var _result_data1; const result = await paging(appListQuery, { first: params.pageSize, where }, params.current || 1, { instanceName: instanceName.UCENTER }); if ((_result_data1 = result.data) === null || _result_data1 === void 0 ? void 0 : _result_data1.apps.totalCount) { var _result_data_apps_edges; (_result_data_apps_edges = result.data.apps.edges) === null || _result_data_apps_edges === void 0 ? void 0 : _result_data_apps_edges.forEach((item)=>{ var _item; if ((_item = item) === null || _item === void 0 ? void 0 : _item.node) { table.data.push(item.node); } }); table.total = result.data.apps.totalCount; } } setDataSource(table.data); return table; }, pagination: { showSizeChanger: true }, rowSelection: { selectedRowKeys: selectedRowKeys, onChange: (selectedRowKeys)=>{ setSelectedRowKeys(selectedRowKeys); }, type: props.isMultiple ? 'checkbox' : 'radio' }, onRow: (record)=>{ return { onClick: ()=>{ if (props.isMultiple) { if (selectedRowKeys.includes(record.id)) { setSelectedRowKeys(selectedRowKeys.filter((id)=>id != record.id)); } else { selectedRowKeys.push(record.id); setSelectedRowKeys([ ...selectedRowKeys ]); } } else { setSelectedRowKeys([ record.id ]); } } }; } })) })); }); //# sourceMappingURL=index.js.map