UNPKG

@knockout-js/org

Version:
257 lines (256 loc) 12.9 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, jsxs as _jsxs, Fragment as _Fragment } from "@ice/jsx-runtime/jsx-runtime"; import { AutoComplete, Input } from 'antd'; import { useCallback, useEffect, useState } from 'react'; import UserModal from '../user-modal'; import { UserUserType as UcenterUserUserType } from '@knockout-js/api/ucenter'; import { gid, instanceName } from '@knockout-js/api'; import { useLocale } from '../locale'; import { gql, paging, query } from '@knockout-js/ice-urql/request'; import styles from '../assets/autoComplete.module.css'; var // fix publish error: Property 'userType' of exported interface has or is using private name 'UserUserType' UserUserType; (function(UserUserType) { UserUserType[UserUserType["Account"] = UcenterUserUserType.Account] = "Account"; UserUserType[UserUserType["Member"] = UcenterUserUserType.Member] = "Member"; })(UserUserType || (UserUserType = {})); const userInfoQuery = gql(/* GraphQL */ `query orgPkgUserInfo($gid: GID!){ node(id:$gid){ ... on User{ id,displayName,contact{email,mobile} } } }`); const userListQuery = gql(/* GraphQL */ `query userList($first: Int,$orderBy:UserOrder,$where:UserWhereInput){ users(first:$first,orderBy: $orderBy,where: $where){ totalCount,pageInfo{ hasNextPage,hasPreviousPage,startCursor,endCursor } edges{ cursor,node{ id,createdBy,createdAt,updatedBy,updatedAt,principalName,displayName, userType,creationType,registerIP,status,comments,contact{email,mobile} } } } }`); const orgUserListQuery = gql(/* GraphQL */ `query orgUserList($gid: GID!,$first: Int,$orderBy:UserOrder,$where:UserWhereInput){ node(id:$gid){ ... on Org{ id, users(first:$first,orderBy: $orderBy,where: $where){ totalCount,pageInfo{ hasNextPage,hasPreviousPage,startCursor,endCursor } edges{ cursor,node{ id,createdBy,createdAt,updatedBy,updatedAt,principalName,displayName, userType,creationType,registerIP,status,comments,contact{email,mobile} } } } } } }`); const orgRoleUserListQuery = gql(/* GraphQL */ `query orgRoleUserList($roleId: ID!,$first: Int,$orderBy:UserOrder,$where:UserWhereInput){ orgRoleUsers(roleID:$roleId,first:$first,orderBy: $orderBy,where: $where){ totalCount,pageInfo{ hasNextPage,hasPreviousPage,startCursor,endCursor } edges{ cursor,node{ id,createdBy,createdAt,updatedBy,updatedAt,principalName,displayName, userType,creationType,registerIP,status,comments,contact{email,mobile} } } } }`); let searchTimeoutFn = undefined; const OrgSelect = (props)=>{ const locale = useLocale('UserSelect'), [info, setInfo] = useState(), [keyword, setKeyword] = useState(), [options, setOptions] = useState([]), [open, setOpen] = useState(false); const setValue = useCallback((original)=>{ if (original) { var _props_onChange, _props; const value = props.changeValue ? original[props.changeValue] : original; setInfo(original); setKeyword(original.displayName); (_props_onChange = (_props = props).onChange) === null || _props_onChange === void 0 ? void 0 : _props_onChange.call(_props, value, original); } else { var _props_onChange1, _props1; setKeyword(undefined); setInfo(undefined); (_props_onChange1 = (_props1 = props).onChange) === null || _props_onChange1 === void 0 ? void 0 : _props_onChange1.call(_props1); } }, []); useEffect(()=>{ if (typeof props.value === 'string') { if (props.dataSource) { var _data; const data = props.dataSource.find((item)=>item.id === props.value); setInfo(data); setKeyword((_data = data) === null || _data === void 0 ? void 0 : _data.displayName); } else { query(userInfoQuery, { gid: gid('User', props.value) }, { instanceName: instanceName.UCENTER }).then((result)=>{ var _result_data_node, _result_data; 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) === 'User') { setInfo(result.data.node); setKeyword(result.data.node.displayName); } }); } } else { var _props_value; setInfo(props.value); setKeyword((_props_value = props.value) === null || _props_value === void 0 ? void 0 : _props_value.displayName); } }, [ props.value, props.dataSource ]); return /*#__PURE__*/ _jsxs(_Fragment, { children: [ /*#__PURE__*/ _jsx(AutoComplete, { className: styles.autoComplete, value: keyword, options: options, allowClear: !props.disabled, disabled: props.disabled, onClear: ()=>{ setValue(); setOptions([]); }, onBlur: ()=>{ var _info; setKeyword((_info = info) === null || _info === void 0 ? void 0 : _info.displayName); }, onSelect: (v, option)=>{ setValue(option.info); }, onSearch: async (keywordStr)=>{ setKeyword(keywordStr); clearTimeout(searchTimeoutFn); searchTimeoutFn = setTimeout(async ()=>{ const os = [], first = 15, where = { or: [ { displayNameContains: keywordStr }, { principalNameContains: keywordStr }, { hasAddressesWith: [ { emailContains: keywordStr } ] }, { hasAddressesWith: [ { mobileContains: keywordStr } ] } ] }; where.userType = props.userType; if (keywordStr) { if (props.orgRoleId) { var _result_data; const result = await paging(orgRoleUserListQuery, { roleId: props.orgRoleId, first, where }, 1, { instanceName: instanceName.UCENTER }); if ((_result_data = result.data) === null || _result_data === void 0 ? void 0 : _result_data.orgRoleUsers.totalCount) { var _result_data_orgRoleUsers_edges; (_result_data_orgRoleUsers_edges = result.data.orgRoleUsers.edges) === null || _result_data_orgRoleUsers_edges === void 0 ? void 0 : _result_data_orgRoleUsers_edges.forEach((item)=>{ var _item; if ((_item = item) === null || _item === void 0 ? void 0 : _item.node) { os.push({ label: item.node.displayName, value: item.node.id, info: item.node }); } }); } } else if (props.orgId) { var _result_data_node, _result_data1; const result = await paging(orgUserListQuery, { gid: gid('Org', props.orgId), first, where }, 1, { instanceName: instanceName.UCENTER }); if (((_result_data1 = result.data) === null || _result_data1 === void 0 ? void 0 : (_result_data_node = _result_data1.node) === null || _result_data_node === void 0 ? void 0 : _result_data_node.__typename) === 'Org') { var _result_data_node_users_edges; (_result_data_node_users_edges = result.data.node.users.edges) === null || _result_data_node_users_edges === void 0 ? void 0 : _result_data_node_users_edges.forEach((item)=>{ var _item; if ((_item = item) === null || _item === void 0 ? void 0 : _item.node) { os.push({ label: item.node.displayName, value: item.node.id, info: item.node }); } }); } } else { var _result_data2; const result = await paging(userListQuery, { first, where }, 1, { instanceName: instanceName.UCENTER }); if ((_result_data2 = result.data) === null || _result_data2 === void 0 ? void 0 : _result_data2.users.totalCount) { var _result_data_users_edges; (_result_data_users_edges = result.data.users.edges) === null || _result_data_users_edges === void 0 ? void 0 : _result_data_users_edges.forEach((item)=>{ var _item; if ((_item = item) === null || _item === void 0 ? void 0 : _item.node) { os.push({ label: item.node.displayName, value: item.node.id, info: item.node }); } }); } } } setOptions(os); }, 500); }, children: /*#__PURE__*/ _jsx(Input.Search, _object_spread_props(_object_spread({ placeholder: locale.placeholder }, props.searchProps), { onSearch: ()=>{ setOpen(true); } })) }), /*#__PURE__*/ _jsx(UserModal, { open: open, orgId: props.orgId, orgRoleId: props.orgRoleId, userType: props.userType, title: locale.title, modalProps: props.modalProps, proTableProps: props.proTableProps, onClose: (selectData)=>{ var _selectData; if ((_selectData = selectData) === null || _selectData === void 0 ? void 0 : _selectData.length) { setValue(selectData[0]); } setOpen(false); } }) ] }); }; export default OrgSelect; //# sourceMappingURL=index.js.map