@knockout-js/org
Version:
Knockout组织相关组件
283 lines (282 loc) • 19.6 kB
JavaScript
import { _ as _async_to_generator } from "@swc/helpers/_/_async_to_generator";
import { _ as _object_spread } from "@swc/helpers/_/_object_spread";
import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props";
import { _ as _sliced_to_array } from "@swc/helpers/_/_sliced_to_array";
import { _ as _ts_generator } from "@swc/helpers/_/_ts_generator";
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "@ice/jsx-runtime/jsx-runtime";
import { AutoComplete, Button, Input, Space } from "antd";
import { useCallback, useEffect, useRef, 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";
import { SearchOutlined } from "@ant-design/icons";
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 = {}));
var userInfoQuery = gql("query orgPkgUserInfo($gid: GID!){\n node(id:$gid){\n ... on User{\n id,displayName,contact{email,mobile}\n }\n }\n}");
var userListQuery = gql("query userList($first: Int,$orderBy:UserOrder,$where:UserWhereInput){\n users(first:$first,orderBy: $orderBy,where: $where){\n totalCount,pageInfo{ hasNextPage,hasPreviousPage,startCursor,endCursor }\n edges{\n cursor,node{\n id,createdBy,createdAt,updatedBy,updatedAt,principalName,displayName,\n userType,creationType,registerIP,status,comments,contact{email,mobile}\n }\n }\n }\n}");
var orgUserListQuery = gql("query orgUserList($gid: GID!,$first: Int,$orderBy:UserOrder,$where:UserWhereInput){\n node(id:$gid){\n ... on Org{\n id,\n users(first:$first,orderBy: $orderBy,where: $where){\n totalCount,pageInfo{ hasNextPage,hasPreviousPage,startCursor,endCursor }\n edges{\n cursor,node{\n id,createdBy,createdAt,updatedBy,updatedAt,principalName,displayName,\n userType,creationType,registerIP,status,comments,contact{email,mobile}\n }\n }\n }\n }\n }\n}");
var orgRoleUserListQuery = gql("query orgRoleUserList($roleId: ID!,$first: Int,$orderBy:UserOrder,$where:UserWhereInput){\n orgRoleUsers(roleID:$roleId,first:$first,orderBy: $orderBy,where: $where){\n totalCount,pageInfo{ hasNextPage,hasPreviousPage,startCursor,endCursor }\n edges{\n cursor,node{\n id,createdBy,createdAt,updatedBy,updatedAt,principalName,displayName,\n userType,creationType,registerIP,status,comments,contact{email,mobile}\n }\n }\n }\n}");
var OrgSelect = function(props) {
var locale = useLocale("UserSelect"), searchTimeoutFn = useRef(undefined), _useState = _sliced_to_array(useState(), 2), info = _useState[0], setInfo = _useState[1], _useState1 = _sliced_to_array(useState(false), 2), loading = _useState1[0], setLoading = _useState1[1], _useState2 = _sliced_to_array(useState(), 2), keyword = _useState2[0], setKeyword = _useState2[1], _useState3 = _sliced_to_array(useState([]), 2), options = _useState3[0], setOptions = _useState3[1], _useState4 = _sliced_to_array(useState(false), 2), open = _useState4[0], setOpen = _useState4[1];
var setValue = useCallback(function(original) {
if (original) {
var _props_onChange, _props;
var 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(function() {
if (typeof props.value === "string") {
if (props.dataSource) {
var _data;
var data = props.dataSource.find(function(item) {
return 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(function(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__*/ _jsxs(Space.Compact, {
style: {
width: "100%"
},
children: [
/*#__PURE__*/ _jsx(AutoComplete, {
className: styles.autoComplete,
value: keyword,
options: options,
allowClear: !props.disabled,
disabled: props.disabled,
onClear: function() {
setValue();
setOptions([]);
},
onBlur: function() {
var _info;
setKeyword((_info = info) === null || _info === void 0 ? void 0 : _info.displayName);
},
onSelect: function(v, option) {
setValue(option.info);
},
onSearch: function() {
var _ref = _async_to_generator(function(keywordStr) {
return _ts_generator(this, function(_state) {
setKeyword(keywordStr);
clearTimeout(searchTimeoutFn.current);
searchTimeoutFn.current = setTimeout(/*#__PURE__*/ _async_to_generator(function() {
var os, first, where, _result_data, result, _result_data_orgRoleUsers_edges, _result_data_node, _result_data1, result1, _result_data_node_users_edges, _result_data2, result2, _result_data_users_edges;
return _ts_generator(this, function(_state) {
switch(_state.label){
case 0:
os = [], first = 15, where = _object_spread_props(_object_spread({}, props.where), {
or: [
{
displayNameContains: keywordStr
},
{
principalNameContains: keywordStr
},
{
hasAddressesWith: [
{
emailContains: keywordStr
}
]
},
{
hasAddressesWith: [
{
mobileContains: keywordStr
}
]
}
]
});
where.userType = props.userType;
if (!keywordStr) return [
3,
6
];
setLoading(true);
if (!props.orgRoleId) return [
3,
2
];
return [
4,
paging(orgRoleUserListQuery, {
roleId: props.orgRoleId,
first: first,
where: where
}, 1, {
instanceName: instanceName.UCENTER
})
];
case 1:
result = _state.sent();
if ((_result_data = result.data) === null || _result_data === void 0 ? void 0 : _result_data.orgRoleUsers.totalCount) {
;
(_result_data_orgRoleUsers_edges = result.data.orgRoleUsers.edges) === null || _result_data_orgRoleUsers_edges === void 0 ? void 0 : _result_data_orgRoleUsers_edges.forEach(function(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
});
}
});
}
return [
3,
6
];
case 2:
if (!props.orgId) return [
3,
4
];
return [
4,
paging(orgUserListQuery, {
gid: gid("Org", props.orgId),
first: first,
where: where
}, 1, {
instanceName: instanceName.UCENTER
})
];
case 3:
result1 = _state.sent();
if (((_result_data1 = result1.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") {
;
(_result_data_node_users_edges = result1.data.node.users.edges) === null || _result_data_node_users_edges === void 0 ? void 0 : _result_data_node_users_edges.forEach(function(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
});
}
});
}
return [
3,
6
];
case 4:
return [
4,
paging(userListQuery, {
first: first,
where: where
}, 1, {
instanceName: instanceName.UCENTER
})
];
case 5:
result2 = _state.sent();
if ((_result_data2 = result2.data) === null || _result_data2 === void 0 ? void 0 : _result_data2.users.totalCount) {
;
(_result_data_users_edges = result2.data.users.edges) === null || _result_data_users_edges === void 0 ? void 0 : _result_data_users_edges.forEach(function(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
});
}
});
}
_state.label = 6;
case 6:
setLoading(false);
setOptions(os);
return [
2
];
}
});
}), 500);
return [
2
];
});
});
return function(keywordStr) {
return _ref.apply(this, arguments);
};
}(),
children: /*#__PURE__*/ _jsx(Input, _object_spread({
placeholder: locale.placeholder
}, props.inputProps))
}),
props.disabled ? props.suffix : /*#__PURE__*/ _jsx(Button, {
loading: loading,
icon: /*#__PURE__*/ _jsx(SearchOutlined, {}),
onClick: function() {
setOpen(true);
}
})
]
}),
/*#__PURE__*/ _jsx(UserModal, {
open: open,
orgId: props.orgId,
orgRoleId: props.orgRoleId,
userType: props.userType,
title: locale.title,
where: props.where,
modalProps: props.modalProps,
proTableProps: props.proTableProps,
onClose: function(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