liyu-pc-base 1.0.921 → 1.0.925
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{FieldRender-BOg7nm5z.js → FieldRender-DnOLSXTl.js} +1 -1
- package/dist/{FieldRender2-_MtcDkI5.js → FieldRender2-CvxGe238.js} +2 -2
- package/dist/{FormRender3-BtY9d91e.js → FormRender3-CAxOQgue.js} +1 -1
- package/dist/{RemoteSelectPro-CcWTS4f6.js → RemoteSelectPro-CcL_vU1K.js} +1 -1
- package/dist/{SearchRender-ByarFel1.js → SearchRender-Dr_qnvZM.js} +1 -1
- package/dist/components/index.js +7 -7
- package/dist/{dbViewConfig-RGSyUx3F.js → dbViewConfig-BF0QZ_mT.js} +1 -1
- package/dist/{detailTablePro-CqcVbn8O.js → detailTablePro-DxgfGYN3.js} +1 -1
- package/dist/index.js +1 -1
- package/dist/liyu-pc-base.css +1 -1
- package/dist/{tableModal-DSKuV-hn.js → tableModal-DZE5wntG.js} +1 -1
- package/dist/{tablePageHost-B_BOlBNA.js → tablePageHost-hE_1hQv4.js} +82 -44
- package/dist/{tablePro-IAcxxAGI.js → tablePro-t2yDX9oW.js} +16 -11
- package/package.json +1 -1
- package/dist/AttributeNomTable-DHED22ju.js.map +0 -1
- package/dist/AttributeTable-muxdKpWW.js.map +0 -1
- package/dist/FieldRender-BOg7nm5z.js.map +0 -1
- package/dist/FieldRender2-_MtcDkI5.js.map +0 -1
- package/dist/FormRender3-BtY9d91e.js.map +0 -1
- package/dist/ImportExcelModal-Dds857L2.js.map +0 -1
- package/dist/JsonObj-CmylW4Or.js.map +0 -1
- package/dist/JsonStr-JwOPdAYW.js.map +0 -1
- package/dist/RemoteCascader-B2ytkZp7.js.map +0 -1
- package/dist/RemoteFilterSelect-BthY6Fyt.js.map +0 -1
- package/dist/RemoteModal-Dqy32RFN.js.map +0 -1
- package/dist/RemoteSelect-27xLYvyg.js.map +0 -1
- package/dist/RemoteSelectPro-CcWTS4f6.js.map +0 -1
- package/dist/RemoteTable-D_12PvNS.js.map +0 -1
- package/dist/RemoteTable2-DF7gWHYf.js.map +0 -1
- package/dist/RemoteText-DwRLI0xq.js.map +0 -1
- package/dist/RemoteTreeSelectPro-CXMOariR.js.map +0 -1
- package/dist/SearchRender-ByarFel1.js.map +0 -1
- package/dist/TinymceEditor-waI-dlC5.js.map +0 -1
- package/dist/aiGenModel-C9E1ahu8.js.map +0 -1
- package/dist/api/api-model.js.map +0 -1
- package/dist/api/typing.js.map +0 -1
- package/dist/batchCreateUser-B4zAXSR6.js.map +0 -1
- package/dist/boldenText-Bv8Zo7Vh.js.map +0 -1
- package/dist/components/FormRender/utils.js.map +0 -1
- package/dist/components/gridPage/utils.js.map +0 -1
- package/dist/components/index.js.map +0 -1
- package/dist/components/remotePages/utils.js.map +0 -1
- package/dist/dbDataSourceConfig-Hj90tvTR.js.map +0 -1
- package/dist/dbViewConfig-RGSyUx3F.js.map +0 -1
- package/dist/default-DmCqrYQi.js.map +0 -1
- package/dist/detailTablePro-CqcVbn8O.js.map +0 -1
- package/dist/exceljs.min-BPhBd8yF.js.map +0 -1
- package/dist/function-BhYSb8ls.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/init-plugin-CvgtEpwY.js.map +0 -1
- package/dist/lodash-CMVwnWxD.js.map +0 -1
- package/dist/md5-WIoeWMjT.js.map +0 -1
- package/dist/modal-tools-CrXdI5sg.js.map +0 -1
- package/dist/props-util-D7nkeN4W.js.map +0 -1
- package/dist/remotePages-CvjMLjTh.js.map +0 -1
- package/dist/role-manage-C7O8b2SF.js.map +0 -1
- package/dist/syncDataSourceConfig-OZ2mJCJs.js.map +0 -1
- package/dist/syncExportRawData-Dpi-VJuu.js.map +0 -1
- package/dist/syncModelTypeConfig-B2vV_kKb.js.map +0 -1
- package/dist/tableModal-DSKuV-hn.js.map +0 -1
- package/dist/tablePageHost-B_BOlBNA.js.map +0 -1
- package/dist/tablePro-IAcxxAGI.js.map +0 -1
- package/dist/utils/excel.js.map +0 -1
- package/dist/utils/hooks/useFetchData.js.map +0 -1
- package/dist/utils/hooks/useTableColumn.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RemoteSelect-27xLYvyg.js","names":[],"sources":["../src/api/sys/index.ts","../src/components/FormRender/RemoteSelect/configs/liyu_organization/liyu_organization-organization.ts","../src/components/FormRender/RemoteSelect/configs/liyu_organization/liyu_organization-person.ts","../src/api/org-model.ts","../src/components/FormRender/RemoteSelect/configs/liyu_organization/liyu_organization-shift.ts","../src/api/oa_integration-model.ts","../src/components/FormRender/RemoteSelect/configs/oa_integration/oa_integration-approval_group.ts","../src/components/FormRender/RemoteSelect/configs/oa_integration/oa_integration-ding_approval.ts","../src/components/FormRender/RemoteSelect/configs/oa_integration/oa_integration-ding_form_component.ts","../src/components/FormRender/RemoteSelect/configs/oa_integration/oa_integration-ding_form_component_org.ts","../src/components/FormRender/RemoteSelect/configs/oa_integration/oa_integration-remote_select_info.ts","../src/components/FormRender/RemoteSelect/configs/org/liyu_organization-arrange_shift.ts","../src/components/FormRender/RemoteSelect/configs/org/liyu_organization-arrange_shift1.ts","../src/components/FormRender/RemoteSelect/configs/org/liyu_organization-attendgroup.ts","../src/components/FormRender/RemoteSelect/configs/org/liyu_organization-query_attendgroup_shift_list.ts","../src/components/FormRender/RemoteSelect/configs/org/liyu_organization-query_group_by_org_list.ts","../src/components/FormRender/RemoteSelect/configs/org/liyu_organization-query_member_by_group_list.ts","../src/components/FormRender/RemoteSelect/configs/org/liyu_organization-query_my_rel_org_list.ts","../src/components/FormRender/RemoteSelect/configs/org/liyu_organization-query_org_for_login_list.ts","../src/components/FormRender/RemoteSelect/configs/org/liyu_organization-shift_name.ts","../src/components/FormRender/RemoteSelect/configs/org/liyu_organization-shift_time.ts","../src/components/FormRender/RemoteSelect/configs/org/org-query_work_org_by_zhagun_list.ts","../src/components/FormRender/RemoteSelect/configs/org/org-query_work_org_by_zhaxian_list.ts","../src/components/FormRender/RemoteSelect/configs/permission/liyu_permission-role.ts","../src/api/permission/menu-manage.ts","../src/components/FormRender/RemoteSelect/configs/permission/permission-query_menu_list.ts","../src/components/FormRender/RemoteSelect/configs/permission/permission-query_role_list.ts","../src/api/sys-model.ts","../src/components/FormRender/RemoteSelect/configs/sys/liyu_organization-person.ts","../src/components/FormRender/RemoteSelect/configs/sys/select-org-id.ts","../src/components/FormRender/RemoteSelect/configs/sys/sys-get_plan_excel_import_setting_by_flag.ts","../src/components/FormRender/RemoteSelect/configs/sys/sys-org_by_flag.ts","../src/api/org/group.ts","../src/components/FormRender/RemoteSelect/configs/sys/sys-query_group_by_org_list.ts","../src/components/FormRender/RemoteSelect/configs/sys/sys-query_no_work_select_data.ts","../src/components/FormRender/RemoteSelect/configs/sys/sys-query_org_for_login_list.ts","../src/components/FormRender/RemoteSelect/configs/sys/sys-query_person_list.ts","../src/components/FormRender/RemoteSelect/configs/sys/sys-query_problem_list.ts","../src/components/FormRender/RemoteSelect/configs/sys/sys-query_role_list.ts","../src/components/FormRender/RemoteSelect/index.ts","../src/components/FormRender/RemoteSelect/RemoteSelect.vue","../src/components/FormRender/RemoteSelect/RemoteSelect.vue"],"sourcesContent":["import { useRequest } from 'liyu-pc-base/init-plugin';\n// 搜索栏 组织数据\nexport async function queryOrgList(params?: { [key: string]: any }): Promise<RoleResponse> {\n return useRequest().post('/org/query_org_for_login_list', params);\n}\nexport async function query_person_by_org_list(params?: {\n [key: string]: any;\n}): Promise<RoleResponse> {\n return useRequest().post('/org/query_person_by_org_list', params);\n}\n// 搜索栏 组织数据\nexport async function simpleLoginMaintain(params?: { [key: string]: any }): Promise<RoleResponse> {\n return useRequest().post('/user/simple_login', params);\n}\nexport async function querySwitchUserList(params?: { [key: string]: any }): Promise<RoleResponse> {\n return useRequest().post('/sys/query_switch_user_list', params);\n}\nexport async function switchUser(params?: { [key: string]: any }): Promise<any> {\n return useRequest().post('/sys/switch_user', params);\n}\n\nexport async function change_password(params?: { [key: string]: any }): Promise<any> {\n return useRequest().post('/sys/change_password', params);\n}\n\nexport async function create_organization_by_user(params?: { [key: string]: any }): Promise<any> {\n return useRequest().post('/org/create_organization_by_user', params);\n}\n\nexport async function my_orginfo(params?: { [key: string]: any }): Promise<any> {\n return useRequest().post('/sys/my_orginfo', params);\n}\n\n// 修改角色人员模态框 人员信息\nexport async function queryGroupList(params?: { [key: string]: any }): Promise<any> {\n const res: any = await useRequest().post('/org/query_group_and_no_group_member', params);\n const group_list: Array<any> = [];\n let num = 0;\n res.group_list.forEach((item: any) => {\n const children: Array<any> = [];\n const obj = {\n key: num + 1,\n name: item.name,\n user_id: 0,\n person_id: 0,\n children: children,\n };\n num = num + 1;\n if (item && item.person_list && item.person_list.length > 0) {\n item.person_list.forEach((item1: any) => {\n const obj1: any = {\n key: num + 1,\n name: item1.user_id + '#' + item1.realname,\n user_id: item1.user_id,\n person_id: item1.id,\n };\n num = num + 1;\n obj.children.push(obj1);\n });\n }\n group_list.push(obj);\n });\n group_list.forEach((item: any) => {\n if (item.children && item.children.length > 0) {\n item.name = item.name + '(' + item.children.length + '人)';\n } else {\n item.name = item.name + '(0人)';\n }\n });\n res.person_list.forEach((item: any) => {\n const obj = {\n key: num + 1,\n name: item.user_id + '#' + item.realname,\n user_id: item.user_id,\n person_id: item.id,\n };\n num = num + 1;\n group_list.push(obj);\n });\n res.data = group_list;\n return res;\n}\n\ninterface RuleItem {\n key: string | number;\n callNo: number;\n avatar: string;\n desc: string;\n disabled: false;\n href: string;\n name: string;\n owner: string;\n progress: number;\n status: number;\n updatedAt: string;\n createdAt: string;\n}\n\ninterface RoleResponse {\n current: number;\n data: RuleItem[];\n pageSize: string;\n success: boolean;\n total: number;\n}\n","import { queryOrgList } from 'liyu-pc-base/api/sys/index';\n\nexport default () => {\n const search_config: any = {\n model: {\n is_active: true,\n page_index: 1,\n page_size: 2000,\n },\n watch: [],\n };\n\n return {\n getData: queryOrgList,\n searchConfig: search_config,\n };\n};\n","import { query_person_by_org_list } from 'liyu-pc-base/api/sys/index';\n\nexport default () => {\n const search_config: any = {\n model: {\n is_active: true,\n page_index: 1,\n page_size: 2000,\n },\n watch: [],\n };\n return {\n getData: query_person_by_org_list,\n searchConfig: search_config,\n };\n};\n","import { useRequest } from 'liyu-pc-base/init-plugin';\nimport type { PageResult } from 'liyu-pc-base/api/typing';\n\nexport async function up_arrange_shift(params: Record<string, any>, config?: any) {\n return useRequest().post('/shift/up_arrange_shift', params, config);\n}\n\nexport async function query_roller_relation_org_list(params: Record<string, any>): Promise<any> {\n return useRequest().post('/org/query_roller_relation_org_list', params);\n}\n\nexport async function permission_export(params: Record<string, any>) {\n return useRequest().post('/org/permission_export', params);\n}\n\nexport async function permission_inport(params: Record<string, any>) {\n return useRequest().post('/org/permission_inport', params);\n}\n\nexport async function get_shift_and_user_by_person_id(params: Record<string, any>) {\n return useRequest().post('/shift/get_shift_and_user_by_person_id', params);\n}\n\nexport async function query_org_for_login_list(params: Record<string, any>): Promise<any> {\n return useRequest().post('/org/query_org_for_login_list', params);\n}\n\nexport async function query_my_rel_org_list(params: Record<string, any>): Promise<any> {\n return useRequest().post('/org/query_my_rel_org_list', params);\n}\n\nexport async function create_attend_group(params: Record<string, any>) {\n return useRequest().post('/shift/create_attend_group', params);\n}\n\nexport async function create_role_and_person(params: Record<string, any>) {\n return useRequest().post('/org/create_role_and_person', params);\n}\n\nexport async function query_line_arrange_shift_list(params: Record<string, any>): Promise<any> {\n return useRequest().post('/shift/query_line_arrange_shift_list', params);\n}\n\nexport async function create_arrange_shift_job_log(params: Record<string, any>) {\n return useRequest().post('/org/create_arrange_shift_job_log', params);\n}\n\nexport async function remove_person_group(params: Record<string, any>) {\n return useRequest().post('/org/remove_person_group', params);\n}\n\nexport async function query_all_member_list(params: Record<string, any>): Promise<any> {\n return useRequest().post('/org/query_all_member_list', params);\n}\n\nexport async function get_shift_by_now(params: Record<string, any>) {\n return useRequest().post('/shift/get_shift_by_now', params);\n}\n\nexport async function create_arrange_shift_plan(params: Record<string, any>) {\n return useRequest().post('/org/create_arrange_shift_plan', params);\n}\n\nexport async function get_attend_group(params: Record<string, any>) {\n return useRequest().post('/shift/get_attend_group', params);\n}\n\nexport async function query_work_org_by_zhagun_list(params: Record<string, any>): Promise<any> {\n return useRequest().post('/org/query_work_org_by_zhagun_list', params);\n}\n\nexport async function add_charge_group(params: Record<string, any>) {\n return useRequest().post('/org/add_charge_group', params);\n}\n\nexport async function update_organization(params: Record<string, any>) {\n return useRequest().post('/org/update_organization', params);\n}\n\nexport async function create_role_list_and_person(params: Record<string, any>) {\n return useRequest().post('/org/create_role_list_and_person', params);\n}\n\nexport async function add_appinfo(params: Record<string, any>) {\n return useRequest().post('/org/add_appinfo', params);\n}\n\nexport async function create_periodic_attendgroup_plan(params: Record<string, any>) {\n return useRequest().post('/org/create_periodic_attendgroup_plan', params);\n}\n\nexport async function query_work_org_by_zhaxian_list(params: Record<string, any>): Promise<any> {\n return useRequest().post('/org/query_work_org_by_zhaxian_list', params);\n}\n\nexport async function remove_charge_group(params: Record<string, any>) {\n return useRequest().post('/org/remove_charge_group', params);\n}\n\nexport async function query_my_relate_org_list(params: Record<string, any>): Promise<any> {\n return useRequest().post('/org/query_my_relate_org_list', params);\n}\n\nexport async function make_appinfo_permission(params: Record<string, any>) {\n return useRequest().post('/org/make_appinfo_permission', params);\n}\n\nexport async function query_shift_time_list(params: Record<string, any>): Promise<PageResult> {\n return useRequest().post('/shift/query_shift_time_list', params);\n}\n\nexport async function delete_attend_group(params: Record<string, any>) {\n return useRequest().post('/shift/delete_attend_group', params);\n}\n\nexport async function create_roleapply_by_new_user(params: Record<string, any>) {\n return useRequest().post('/org/create_roleapply_by_new_user', params);\n}\n\nexport async function delete_company(params: Record<string, any>) {\n return useRequest().post('/org/delete_company', params);\n}\n\nexport async function create_shift(params: Record<string, any>) {\n return useRequest().post('/shift/create_shift', params);\n}\n\nexport async function create_org_headicon(params: Record<string, any>) {\n return useRequest().post('/org/create_org_headicon', params);\n}\n\nexport async function get_org_or_group_contacts(params: Record<string, any>) {\n return useRequest().post('/org/get_org_or_group_contacts', params);\n}\n\nexport async function check_shift_and_user(params: Record<string, any>) {\n return useRequest().post('/shift/check_shift_and_user', params);\n}\n\nexport async function get_person_info(params: Record<string, any>) {\n return useRequest().post('/org/get_person_info', params);\n}\n\nexport async function automatic_change_shift_line(params: Record<string, any>) {\n return useRequest().post('/shift/automatic_change_shift_line', params);\n}\n\nexport async function query_not_used_appinfo_by_org_list(\n params: Record<string, any>,\n): Promise<PageResult> {\n return useRequest().post('/org/query_not_used_appinfo_by_org_list', params);\n}\n\nexport async function query_page_api(params: Record<string, any>) {\n return useRequest().post('/org/query_page_api', params);\n}\n\nexport async function cancel_role_apply(params: Record<string, any>) {\n return useRequest().post('/org/cancel_role_apply', params);\n}\n\nexport async function query_all_member_name_list(params: Record<string, any>): Promise<PageResult> {\n return useRequest().post('/org/query_all_member_name_list', params);\n}\n\nexport async function remove_manager_org(params: Record<string, any>) {\n return useRequest().post('/org/remove_manager_org', params);\n}\n\nexport async function qrcode_join_org_string(params: Record<string, any>) {\n return useRequest().post('/org/qrcode_join_org_string', params);\n}\n\nexport async function modefy_contact_nickname(params: Record<string, any>) {\n return useRequest().post('/org/modefy_contact_nickname', params);\n}\n\nexport async function query_company_list(params: Record<string, any>): Promise<PageResult> {\n return useRequest().post('/org/query_company_list', params);\n}\n\nexport async function make_user_appflag_role(params: Record<string, any>) {\n return useRequest().post('/org/make_user_appflag_role', params);\n}\n\nexport async function get_arrange_shift_job_log(params: Record<string, any>) {\n return useRequest().post('/org/get_arrange_shift_job_log', params);\n}\n\nexport async function query_arrange_shift_plan_list(\n params: Record<string, any>,\n): Promise<PageResult> {\n return useRequest().post('/org/query_arrange_shift_plan_list', params);\n}\n\nexport async function delete_arrange_shift_plan(params: Record<string, any>) {\n return useRequest().post('/org/delete_arrange_shift_plan', params);\n}\n\nexport async function query_job_log_by_person(params: Record<string, any>) {\n return useRequest().post('/org/query_job_log_by_person', params);\n}\n\nexport async function refuse_role_apply(params: Record<string, any>) {\n return useRequest().post('/org/refuse_role_apply', params);\n}\n\nexport async function make_user_appid_role(params: Record<string, any>) {\n return useRequest().post('/org/make_user_appid_role', params);\n}\n\nexport async function update_shift_time(params: Record<string, any>) {\n return useRequest().post('/shift/update_shift_time', params);\n}\n\nexport async function query_attend_group_list(params: Record<string, any>): Promise<PageResult> {\n return useRequest().post('/shift/query_attend_group_list', params);\n}\n\nexport async function create_role_and_page_api(params: Record<string, any>) {\n return useRequest().post('/org/create_role_and_page_api', params);\n}\n\nexport async function get_arrange_shift_by_time(params: Record<string, any>) {\n return useRequest().post('/shift/get_arrange_shift_by_time', params);\n}\n\nexport async function query_role_and_person(params: Record<string, any>) {\n return useRequest().post('/org/query_role_and_person', params);\n}\n\nexport async function update_shift(params: Record<string, any>) {\n return useRequest().post('/shift/update_shift', params);\n}\n\nexport async function query_journal_seconds_list(params: Record<string, any>): Promise<PageResult> {\n return useRequest().post('/org/query_journal_seconds_list', params);\n}\n\nexport async function query_attend_group_list_no_login(params: Record<string, any>) {\n return useRequest().post('/shift/query_attend_group_list_no_login', params);\n}\n\nexport async function query_attendgroup_shift_list(\n params: Record<string, any>,\n): Promise<PageResult> {\n return useRequest().post('/shift/query_attendgroup_shift_list', params);\n}\n\nexport async function query_shift_task_list(params: Record<string, any>): Promise<PageResult> {\n return useRequest().post('/org/query_shift_task_list', params);\n}\n\nexport async function get_organization(params: Record<string, any>) {\n return useRequest().post('/org/get_organization', params);\n}\n\nexport async function update_arrange_shift_plan(params: Record<string, any>) {\n return useRequest().post('/org/update_arrange_shift_plan', params);\n}\n\nexport async function query_my_org_by_flag_list(params: Record<string, any>): Promise<PageResult> {\n return useRequest().post('/org/query_my_org_by_flag_list', params);\n}\n\nexport async function query_zha_gun_company_by_line_org_list(\n params: Record<string, any>,\n): Promise<PageResult> {\n return useRequest().post('/org/query_zha_gun_company_by_line_org_list', params);\n}\n\nexport async function get_journal_by_id(params: Record<string, any>) {\n return useRequest().post('/org/get_journal_by_id', params);\n}\n\nexport async function query_role_by_apps_list(params: Record<string, any>): Promise<PageResult> {\n return useRequest().post('/org/query_role_by_apps_list', params);\n}\n\nexport async function transfer_manager_org(params: Record<string, any>) {\n return useRequest().post('/org/transfer_manager_org', params);\n}\n\nexport async function update_person_role_pos_shift(params: Record<string, any>) {\n return useRequest().post('/org/update_person_role_pos_shift', params);\n}\n\nexport async function recover_shift_time(params: Record<string, any>) {\n return useRequest().post('/shift/recover_shift_time', params);\n}\n\nexport async function remove_group(params: Record<string, any>) {\n return useRequest().post('/org/remove_group', params);\n}\n\nexport async function recover_group(params: Record<string, any>) {\n return useRequest().post('/org/recover_group', params);\n}\n\nexport async function update_member(params: Record<string, any>) {\n return useRequest().post('/org/update_member', params);\n}\n\nexport async function confirm_jiaoban(params: Record<string, any>) {\n return useRequest().post('/org/confirm_jiaoban', params);\n}\n\nexport async function get_erp_shift_sql(params: Record<string, any>) {\n return useRequest().post('/shift/get_erp_shift_sql', params);\n}\n\nexport async function update_group(params: Record<string, any>) {\n return useRequest().post('/org/update_group', params);\n}\n\nexport async function create_company(params: Record<string, any>) {\n return useRequest().post('/org/create_company', params);\n}\n\nexport async function add_aide_group(params: Record<string, any>) {\n return useRequest().post('/org/add_aide_group', params);\n}\n\nexport async function query_person_by_org_no_login_list(\n params: Record<string, any>,\n): Promise<PageResult> {\n return useRequest().post('/org/query_person_by_org_no_login_list', params);\n}\n\nexport async function delete_role(params: Record<string, any>) {\n return useRequest().post('/org/delete_role', params);\n}\n\nexport async function query_company_name_list(params: Record<string, any>): Promise<PageResult> {\n return useRequest().post('/org/query_company_name_list', params);\n}\n\nexport async function update_role(params: Record<string, any>) {\n return useRequest().post('/org/update_role', params);\n}\n\nexport async function query_person_by_role_list(params: Record<string, any>): Promise<PageResult> {\n return useRequest().post('/org/query_person_by_role_list', params);\n}\n\nexport async function query_group_by_group_list(params: Record<string, any>): Promise<PageResult> {\n return useRequest().post('/org/query_group_by_group_list', params);\n}\n\nexport async function set_erp_shift_sql_result(params: Record<string, any>) {\n return useRequest().post('/shift/set_erp_shift_sql_result', params);\n}\n\nexport async function recover_company(params: Record<string, any>) {\n return useRequest().post('/org/recover_company', params);\n}\n\nexport async function query_journal_new_data_list(\n params: Record<string, any>,\n): Promise<PageResult> {\n return useRequest().post('/org/query_journal_new_data_list', params);\n}\n\nexport async function down_arrange_shift(params: Record<string, any>, config?: any) {\n return useRequest().post('/shift/down_arrange_shift', params, config);\n}\n\nexport async function apply_organization(params: Record<string, any>) {\n return useRequest().post('/org/apply_organization', params);\n}\n\nexport async function agree_role_apply(params: Record<string, any>) {\n return useRequest().post('/org/agree_role_apply', params);\n}\n\nexport async function query_journal_data_count_list(\n params: Record<string, any>,\n): Promise<PageResult> {\n return useRequest().post('/org/query_journal_data_count_list', params);\n}\n\nexport async function get_company(params: Record<string, any>) {\n return useRequest().post('/org/get_company', params);\n}\n\nexport async function reject_organization(params: Record<string, any>) {\n return useRequest().post('/org/reject_organization', params);\n}\n\nexport async function recover_shift_and_user(params: Record<string, any>) {\n return useRequest().post('/shift/recover_shift_and_user', params);\n}\n\nexport async function create_member(params: Record<string, any>) {\n return useRequest().post('/org/create_member', params);\n}\n\nexport async function get_now_arrange_by_org(params: Record<string, any>) {\n return useRequest().post('/shift/get_now_arrange_by_org', params);\n}\n\nexport async function delete_user_appid_role(params: Record<string, any>) {\n return useRequest().post('/org/delete_user_appid_role', params);\n}\n\nexport async function query_role_and_page_api(params: Record<string, any>) {\n return useRequest().post('/org/query_role_and_page_api', params);\n}\n\nexport async function query_shift_list(params: Record<string, any>): Promise<PageResult> {\n return useRequest().post('/shift/query_shift_list', params);\n}\n\nexport async function query_user_by_message_select_list(\n params: Record<string, any>,\n): Promise<PageResult> {\n return useRequest().post('/org/query_user_by_message_select_list', params);\n}\n\nexport async function update_shift_flag(params: Record<string, any>) {\n return useRequest().post('/shift/update_shift_flag', params);\n}\n\nexport async function query_role_apply_list(params: Record<string, any>): Promise<PageResult> {\n return useRequest().post('/org/query_role_apply_list', params);\n}\n\nexport async function query_person_list(params: Record<string, any>): Promise<PageResult> {\n return useRequest().post('/org/query_person_list', params);\n}\n\nexport async function query_arrange_shift_job_log_list(\n params: Record<string, any>,\n): Promise<PageResult> {\n return useRequest().post('/org/query_arrange_shift_job_log_list', params);\n}\n\nexport async function query_shift_name_list(params: Record<string, any>): Promise<PageResult> {\n return useRequest().post('/shift/query_shift_name_list', params);\n}\n\nexport async function confirm_jieban(params: Record<string, any>) {\n return useRequest().post('/org/confirm_jieban', params);\n}\n\nexport async function update_company(params: Record<string, any>) {\n return useRequest().post('/org/update_company', params);\n}\n\nexport async function create_shift_and_user(params: Record<string, any>) {\n return useRequest().post('/shift/create_shift_and_user', params);\n}\n\nexport async function query_attendgroup_shift_list_no_login(params: Record<string, any>) {\n return useRequest().post('/shift/query_attendgroup_shift_list_no_login', params);\n}\n\nexport async function query_appinfo_by_org_list(params: Record<string, any>): Promise<PageResult> {\n return useRequest().post('/org/query_appinfo_by_org_list', params);\n}\n\nexport async function query_apply_organization_list(\n params: Record<string, any>,\n): Promise<PageResult> {\n return useRequest().post('/org/query_apply_organization_list', params);\n}\n\nexport async function create_group(params: Record<string, any>) {\n return useRequest().post('/org/create_group', params);\n}\n\nexport async function add_person_org(params: Record<string, any>) {\n return useRequest().post('/org/add_person_org', params);\n}\n\nexport async function query_work_org_zhaxian_by_my_rel_org_list(\n params: Record<string, any>,\n): Promise<PageResult> {\n return useRequest().post('/org/query_work_org_zhaxian_by_my_rel_org_list', params);\n}\n\nexport async function query_user_permissions_list(\n params: Record<string, any>,\n): Promise<PageResult> {\n return useRequest().post('/org/query_user_permissions_list', params);\n}\n\nexport async function close_initstep(params: Record<string, any>) {\n return useRequest().post('/org/close_initstep', params);\n}\n\nexport async function add_person_group(params: Record<string, any>) {\n return useRequest().post('/org/add_person_group', params);\n}\n\nexport async function create_shift_time(params: Record<string, any>) {\n return useRequest().post('/shift/create_shift_time', params);\n}\n\nexport async function query_group_by_org_list(params: Record<string, any>): Promise<PageResult> {\n return useRequest().post('/org/query_group_by_org_list', params);\n}\n\nexport async function remove_person_org(params: Record<string, any>) {\n return useRequest().post('/org/remove_person_org', params);\n}\n\nexport async function add_manager_org(params: Record<string, any>) {\n return useRequest().post('/org/add_manager_org', params);\n}\n\nexport async function update_attend_group(params: Record<string, any>) {\n return useRequest().post('/shift/update_attend_group', params);\n}\n\nexport async function query_my_contact_list(params: Record<string, any>): Promise<PageResult> {\n return useRequest().post('/org/query_my_contact_list', params);\n}\n\nexport async function query_group_and_no_group_member(params: Record<string, any>) {\n return useRequest().post('/org/query_group_and_no_group_member', params);\n}\n\nexport async function delete_shift_and_user(params: Record<string, any>) {\n return useRequest().post('/shift/delete_shift_and_user', params);\n}\n\nexport async function create_contact(params: Record<string, any>) {\n return useRequest().post('/org/create_contact', params);\n}\n\nexport async function query_person_by_org_list(params: Record<string, any>): Promise<PageResult> {\n return useRequest().post('/org/query_person_by_org_list', params);\n}\n\nexport async function query_user_permissions_by_appflag_list(\n params: Record<string, any>,\n): Promise<PageResult> {\n return useRequest().post('/org/query_user_permissions_by_appflag_list', params);\n}\n\nexport async function query_role_id_list(params: Record<string, any>): Promise<PageResult> {\n return useRequest().post('/org/query_role_id_list', params);\n}\n\nexport async function update_shifttask(params: Record<string, any>) {\n return useRequest().post('/org/update_shifttask', params);\n}\n\nexport async function get_initstep(params: Record<string, any>) {\n return useRequest().post('/org/get_initstep', params);\n}\n\nexport async function query_my_org_list(params: Record<string, any>): Promise<PageResult> {\n return useRequest().post('/org/query_my_org_list', params);\n}\n\nexport async function query_member_by_group_list(params: Record<string, any>): Promise<PageResult> {\n return useRequest().post('/org/query_member_by_group_list', params);\n}\n\nexport async function delete_contact(params: Record<string, any>) {\n return useRequest().post('/org/delete_contact', params);\n}\n\nexport async function query_journal_list(params: Record<string, any>): Promise<PageResult> {\n return useRequest().post('/org/query_journal_list', params);\n}\n\nexport async function revert_role(params: Record<string, any>) {\n return useRequest().post('/org/revert_role', params);\n}\n\nexport async function create_organization(params: Record<string, any>) {\n return useRequest().post('/org/create_organization', params);\n}\n\nexport async function delete_user_appflag_role(params: Record<string, any>) {\n return useRequest().post('/org/delete_user_appflag_role', params);\n}\n\nexport async function query_work_org_zhagangchang_by_my_rel_org_list(\n params: Record<string, any>,\n): Promise<PageResult> {\n return useRequest().post('/org/query_work_org_zhagangchang_by_my_rel_org_list', params);\n}\n\nexport async function query_work_by_my_rel_org_list(\n params: Record<string, any>,\n): Promise<PageResult> {\n return useRequest().post('/org/query_work_by_my_rel_org_list', params);\n}\n\nexport async function get_arrange_shift_by_new(params: Record<string, any>) {\n return useRequest().post('/shift/get_arrange_shift_by_new', params);\n}\n\nexport async function recover_shift(params: Record<string, any>) {\n return useRequest().post('/shift/recover_shift', params);\n}\n\nexport async function get_other_org_person_info(params: Record<string, any>) {\n return useRequest().post('/org/get_other_org_person_info', params);\n}\n\nexport async function create_arrange_shift(params: Record<string, any>) {\n return useRequest().post('/shift/create_arrange_shift', params);\n}\n\nexport async function query_arrange_shift_list(params: Record<string, any>): Promise<PageResult> {\n return useRequest().post('/shift/query_arrange_shift_list', params);\n}\n\nexport async function query_arrange_shift_list1(params: Record<string, any>): Promise<PageResult> {\n return new Promise(resolve => {\n useRequest()\n .post('/shift/query_line_arrange_shift_list', params)\n .then((res: any) => {\n const list: any = [];\n res.data.map((item: any) => {\n list.push({\n name: item.work_time + '-' + item.flag + '-' + item.shift__name,\n id: item.id,\n });\n });\n res.data = list;\n resolve(res);\n });\n });\n}\n\nexport async function remove_appinfo(params: Record<string, any>) {\n return useRequest().post('/org/remove_appinfo', params);\n}\n\nexport async function get_role_and_shift_info_by_person(params: Record<string, any>) {\n return useRequest().post('/org/get_role_and_shift_info_by_person', params);\n}\n\nexport async function query_arrange_shift_all_by_attend_group(params: Record<string, any>) {\n return useRequest().post('/org/query_arrange_shift_all_by_attend_group', params);\n}\n\nexport async function update_arrangeshift(params: Record<string, any>) {\n return useRequest().post('/shift/update_arrangeshift', params);\n}\n\nexport async function create_role_apply(params: Record<string, any>) {\n return useRequest().post('/org/create_role_apply', params);\n}\n\nexport async function query_group_by_my_list(params: Record<string, any>): Promise<PageResult> {\n return useRequest().post('/org/query_group_by_my_list', params);\n}\n\nexport async function change_error_arrange_shift(params: Record<string, any>) {\n return useRequest().post('/shift/change_error_arrange_shift', params);\n}\n\nexport async function query_role_by_appflag_list(params: Record<string, any>): Promise<PageResult> {\n return useRequest().post('/org/query_role_by_appflag_list', params);\n}\n\nexport async function delete_shift_time(params: Record<string, any>) {\n return useRequest().post('/shift/delete_shift_time', params);\n}\n\nexport async function create_role(params: Record<string, any>) {\n return useRequest().post('/org/create_role', params);\n}\n\nexport async function create_role_and_page(params: Record<string, any>) {\n return useRequest().post('/org/create_role_and_page', params);\n}\n\nexport async function query_org_by_id_flag_list(params: Record<string, any>): Promise<PageResult> {\n return useRequest().post('/org/query_org_by_id_flag_list', params);\n}\n\nexport async function query_now_shift_line(params: Record<string, any>) {\n return useRequest().post('/shift/query_now_shift_line', params);\n}\n\nexport async function agree_organization(params: Record<string, any>) {\n return useRequest().post('/org/agree_organization', params);\n}\n\nexport async function query_shift_and_user_list(params: Record<string, any>): Promise<PageResult> {\n return useRequest().post('/shift/query_shift_and_user_list', params);\n}\n\nexport async function recover_arrangeshift(params: Record<string, any>) {\n return useRequest().post('/shift/recover_arrangeshift', params);\n}\n\nexport async function remove_aide_group(params: Record<string, any>) {\n return useRequest().post('/org/remove_aide_group', params);\n}\n\nexport async function set_member_active(params: Record<string, any>) {\n return useRequest().post('/org/set_member_active', params);\n}\n\nexport async function update_person_group(params: Record<string, any>) {\n return useRequest().post('/org/update_person_group', params);\n}\n\nexport async function set_org_status(params: Record<string, any>) {\n return useRequest().post('/org/set_org_status', params);\n}\n\nexport async function update_attendgroup_periodic_day(params: Record<string, any>) {\n return useRequest().post('/org/update_attendgroup_periodic_day', params);\n}\n\nexport async function delete_arrangeshift(params: Record<string, any>) {\n return useRequest().post('/shift/delete_arrangeshift', params);\n}\n\nexport async function query_org_by_flag_list(params: Record<string, any>): Promise<PageResult> {\n return useRequest().post('/org/query_org_by_flag_list', params);\n}\n\nexport async function delete_shift(params: Record<string, any>) {\n return useRequest().post('/shift/delete_shift', params);\n}\n\nexport async function query_my_zhun_bei_org_list(params: Record<string, any>) {\n return useRequest().post('/org/query_my_zhun_bei_org_list', params);\n}\n","import { query_shift_list } from 'liyu-pc-base/api/org-model';\n\nexport default () => {\n const search_config: any = {\n model: {\n is_active: true,\n is_me: false,\n page_index: 1,\n page_size: 2000,\n },\n watch: ['aim_org_id'],\n };\n return {\n getData: query_shift_list,\n searchConfig: search_config,\n };\n};\n","import { useRequest } from 'liyu-pc-base/init-plugin';\n\nexport async function create_approval_group(params: Record<string, any>) {\n return useRequest().post('/oa_integration/create_approval_group', params);\n}\n\nexport async function update_approval_group(params: Record<string, any>) {\n return useRequest().post('/oa_integration/update_approval_group', params);\n}\n\nexport async function delete_approval_group(params: Record<string, any>) {\n return useRequest().post('/oa_integration/delete_approval_group', params);\n}\n\nexport async function recover_approval_group(params: Record<string, any>) {\n return useRequest().post('/oa_integration/recover_approval_group', params);\n}\n\nexport async function query_approval_group_list(params?: { [key: string]: any }): Promise<any> {\n return useRequest().post('/oa_integration/query_approval_group_list', params);\n}\n\nexport async function query_approval_group_group(params: Record<string, any>) {\n return useRequest().post('/oa_integration/query_approval_group_group', params);\n}\n\nexport async function query_approval_group_count(params: Record<string, any>) {\n return useRequest().post('/oa_integration/query_approval_group_count', params);\n}\n\nexport async function get_approval_group(params: Record<string, any>) {\n return useRequest().post('/oa_integration/get_approval_group', params);\n}\n\nexport async function create_ding_approval(params: Record<string, any>) {\n return useRequest().post('/oa_integration/create_ding_approval', params);\n}\n\nexport async function update_ding_approval(params: Record<string, any>) {\n return useRequest().post('/oa_integration/update_ding_approval', params);\n}\n\nexport async function delete_ding_approval(params: Record<string, any>) {\n return useRequest().post('/oa_integration/delete_ding_approval', params);\n}\n\nexport async function recover_ding_approval(params: Record<string, any>) {\n return useRequest().post('/oa_integration/recover_ding_approval', params);\n}\n\nexport async function query_ding_approval_list(params?: { [key: string]: any }): Promise<any> {\n return useRequest().post('/oa_integration/query_ding_approval_list', params);\n}\n\nexport async function query_ding_approval_group(params: Record<string, any>) {\n return useRequest().post('/oa_integration/query_ding_approval_group', params);\n}\n\nexport async function query_ding_approval_count(params: Record<string, any>) {\n return useRequest().post('/oa_integration/query_ding_approval_count', params);\n}\n\nexport async function get_ding_approval(params: Record<string, any>) {\n return useRequest().post('/oa_integration/get_ding_approval', params);\n}\n\nexport async function create_ding_approval_org(params: Record<string, any>) {\n return useRequest().post('/oa_integration/create_ding_approval_org', params);\n}\n\nexport async function update_ding_approval_org(params: Record<string, any>) {\n return useRequest().post('/oa_integration/update_ding_approval_org', params);\n}\n\nexport async function delete_ding_approval_org(params: Record<string, any>) {\n return useRequest().post('/oa_integration/delete_ding_approval_org', params);\n}\n\nexport async function recover_ding_approval_org(params: Record<string, any>) {\n return useRequest().post('/oa_integration/recover_ding_approval_org', params);\n}\n\nexport async function query_ding_approval_org_list(params?: { [key: string]: any }): Promise<any> {\n return useRequest().post('/oa_integration/query_ding_approval_org_list', params);\n}\n\nexport async function query_ding_approval_org_group(params: Record<string, any>) {\n return useRequest().post('/oa_integration/query_ding_approval_org_group', params);\n}\n\nexport async function query_ding_approval_org_count(params: Record<string, any>) {\n return useRequest().post('/oa_integration/query_ding_approval_org_count', params);\n}\n\nexport async function get_ding_approval_org(params: Record<string, any>) {\n return useRequest().post('/oa_integration/get_ding_approval_org', params);\n}\n\nexport async function create_ding_approval_record(params: Record<string, any>) {\n return useRequest().post('/oa_integration/create_ding_approval_record', params);\n}\n\nexport async function update_ding_approval_record(params: Record<string, any>) {\n return useRequest().post('/oa_integration/update_ding_approval_record', params);\n}\n\nexport async function delete_ding_approval_record(params: Record<string, any>) {\n return useRequest().post('/oa_integration/delete_ding_approval_record', params);\n}\n\nexport async function recover_ding_approval_record(params: Record<string, any>) {\n return useRequest().post('/oa_integration/recover_ding_approval_record', params);\n}\n\nexport async function query_ding_approval_record_list(params?: {\n [key: string]: any;\n}): Promise<any> {\n return useRequest().post('/oa_integration/query_ding_approval_record_list', params);\n}\n\nexport async function query_ding_approval_record_group(params: Record<string, any>) {\n return useRequest().post('/oa_integration/query_ding_approval_record_group', params);\n}\n\nexport async function query_ding_approval_record_count(params: Record<string, any>) {\n return useRequest().post('/oa_integration/query_ding_approval_record_count', params);\n}\n\nexport async function get_ding_approval_record(params: Record<string, any>) {\n return useRequest().post('/oa_integration/get_ding_approval_record', params);\n}\n\nexport async function create_ding_form_component(params: Record<string, any>) {\n return useRequest().post('/oa_integration/create_ding_form_component', params);\n}\n\nexport async function update_ding_form_component(params: Record<string, any>) {\n return useRequest().post('/oa_integration/update_ding_form_component', params);\n}\n\nexport async function delete_ding_form_component(params: Record<string, any>) {\n return useRequest().post('/oa_integration/delete_ding_form_component', params);\n}\n\nexport async function recover_ding_form_component(params: Record<string, any>) {\n return useRequest().post('/oa_integration/recover_ding_form_component', params);\n}\n\nexport async function query_ding_form_component_list(params?: {\n [key: string]: any;\n}): Promise<any> {\n return useRequest().post('/oa_integration/query_ding_form_component_list', params);\n}\n\nexport async function query_ding_form_component_group(params: Record<string, any>) {\n return useRequest().post('/oa_integration/query_ding_form_component_group', params);\n}\n\nexport async function query_ding_form_component_count(params: Record<string, any>) {\n return useRequest().post('/oa_integration/query_ding_form_component_count', params);\n}\n\nexport async function get_ding_form_component(params: Record<string, any>) {\n return useRequest().post('/oa_integration/get_ding_form_component', params);\n}\n\nexport async function create_ding_form_component_org(params: Record<string, any>) {\n return useRequest().post('/oa_integration/create_ding_form_component_org', params);\n}\n\nexport async function update_ding_form_component_org(params: Record<string, any>) {\n return useRequest().post('/oa_integration/update_ding_form_component_org', params);\n}\n\nexport async function delete_ding_form_component_org(params: Record<string, any>) {\n return useRequest().post('/oa_integration/delete_ding_form_component_org', params);\n}\n\nexport async function recover_ding_form_component_org(params: Record<string, any>) {\n return useRequest().post('/oa_integration/recover_ding_form_component_org', params);\n}\n\nexport async function query_ding_form_component_org_list(params?: {\n [key: string]: any;\n}): Promise<any> {\n return useRequest().post('/oa_integration/query_ding_form_component_org_list', params);\n}\n\nexport async function query_ding_form_component_org_group(params: Record<string, any>) {\n return useRequest().post('/oa_integration/query_ding_form_component_org_group', params);\n}\n\nexport async function query_ding_form_component_org_count(params: Record<string, any>) {\n return useRequest().post('/oa_integration/query_ding_form_component_org_count', params);\n}\n\nexport async function get_ding_form_component_org(params: Record<string, any>) {\n return useRequest().post('/oa_integration/get_ding_form_component_org', params);\n}\n\nexport async function create_remote_select_info(params: Record<string, any>) {\n return useRequest().post('/oa_integration/create_remote_select_info', params);\n}\n\nexport async function update_remote_select_info(params: Record<string, any>) {\n return useRequest().post('/oa_integration/update_remote_select_info', params);\n}\n\nexport async function delete_remote_select_info(params: Record<string, any>) {\n return useRequest().post('/oa_integration/delete_remote_select_info', params);\n}\n\nexport async function recover_remote_select_info(params: Record<string, any>) {\n return useRequest().post('/oa_integration/recover_remote_select_info', params);\n}\n\nexport async function query_remote_select_info_list(params?: { [key: string]: any }): Promise<any> {\n return useRequest().post('/oa_integration/query_remote_select_info_list', params);\n}\n\nexport async function query_remote_select_info_group(params: Record<string, any>) {\n return useRequest().post('/oa_integration/query_remote_select_info_group', params);\n}\n\nexport async function query_remote_select_info_count(params: Record<string, any>) {\n return useRequest().post('/oa_integration/query_remote_select_info_count', params);\n}\n\nexport async function get_remote_select_info(params: Record<string, any>) {\n return useRequest().post('/oa_integration/get_remote_select_info', params);\n}\n","import { query_approval_group_list } from 'liyu-pc-base/api/oa_integration-model';\n\nexport default () => {\n const search_config: any = {\n model: {\n is_active: true,\n pageSize: 100000,\n column_fields: ['name', 'id'],\n request_source: 'strict',\n },\n watch: [],\n };\n return {\n getData: query_approval_group_list,\n searchConfig: search_config,\n };\n};\n","import { query_ding_approval_list } from 'liyu-pc-base/api/oa_integration-model';\n\nexport default () => {\n const search_config: any = {\n model: {\n is_active: true,\n pageSize: 100000,\n column_fields: ['name', 'id'],\n request_source: 'strict',\n },\n watch: [],\n };\n return {\n getData: query_ding_approval_list,\n searchConfig: search_config,\n };\n};\n","import { query_ding_form_component_list } from 'liyu-pc-base/api/oa_integration-model';\n\nexport default () => {\n const search_config: any = {\n model: {\n is_active: true,\n pageSize: 100000,\n column_fields: ['name', 'id'],\n request_source: 'strict',\n },\n watch: [],\n };\n return {\n getData: query_ding_form_component_list,\n searchConfig: search_config,\n };\n};\n","import { query_ding_form_component_org_list } from 'liyu-pc-base/api/oa_integration-model';\n\nexport default () => {\n const search_config: any = {\n model: {\n is_active: true,\n pageSize: 100000,\n column_fields: ['name', 'id'],\n request_source: 'strict',\n },\n watch: [],\n };\n return {\n getData: query_ding_form_component_org_list,\n searchConfig: search_config,\n };\n};\n","import { query_remote_select_info_list } from 'liyu-pc-base/api/oa_integration-model';\n\nexport default () => {\n const search_config: any = {\n model: {\n is_active: true,\n pageSize: 100000,\n column_fields: ['name', 'id'],\n request_source: 'strict',\n },\n watch: [],\n };\n return {\n getData: query_remote_select_info_list,\n searchConfig: search_config,\n };\n};\n","import { query_arrange_shift_list } from 'liyu-pc-base/api/org-model';\n\nexport default () => {\n const search_config: any = {\n model: {\n is_active: true,\n is_type: 10,\n is_me: false,\n pageSize: 100,\n },\n watch: [],\n };\n return {\n getData: query_arrange_shift_list,\n searchConfig: search_config,\n };\n};\n","import { query_arrange_shift_list1 } from 'liyu-pc-base/api/org-model';\n\nexport default () => {\n const search_config: any = {\n model: {\n aim_org_id: 12,\n is_active: true,\n pageSize: 50,\n },\n watch: ['aim_org_id'],\n };\n return {\n getData: query_arrange_shift_list1,\n searchConfig: search_config,\n };\n};\n","import { query_attend_group_list } from 'liyu-pc-base/api/org-model';\nimport { useUserStore } from 'liyu-pc-base/init-plugin';\n\nexport default () => {\n const userStore = useUserStore();\n const org = userStore.currentOrg;\n const search_config: any = {\n model: {\n aim_org_id: org?.id,\n is_active: true,\n page_index: 1,\n page_size: 2000,\n },\n };\n return {\n getData: query_attend_group_list,\n searchConfig: search_config,\n };\n};\n","import { query_attendgroup_shift_list } from 'liyu-pc-base/api/org-model';\nimport { useUserStore } from 'liyu-pc-base/init-plugin';\n\nexport default () => {\n const userStore = useUserStore();\n const org = userStore.currentOrg;\n const search_config: any = {\n model: {\n org_id: org?.id,\n aim_org_id: org?.id,\n is_active: true,\n page_index: 1,\n page_size: 2000,\n },\n };\n return {\n getData: query_attendgroup_shift_list,\n searchConfig: search_config,\n };\n};\n","import { query_group_by_org_list } from 'liyu-pc-base/api/org-model';\nimport { useUserStore } from 'liyu-pc-base/init-plugin';\n\nexport default () => {\n const userStore = useUserStore();\n const org = userStore.currentOrg;\n const search_config: any = {\n model: {\n org_id: org?.id,\n aim_org_id: org?.id,\n is_active: true,\n page_index: 1,\n page_size: 2000,\n },\n };\n return {\n getData: query_group_by_org_list,\n searchConfig: search_config,\n };\n};\n","import { query_member_by_group_list } from 'liyu-pc-base/api/org-model';\nimport { useUserStore } from 'liyu-pc-base/init-plugin';\n\nexport default () => {\n const userStore = useUserStore();\n const org = userStore.currentOrg;\n const search_config: any = {\n model: {\n org_id: org?.id,\n aim_org_id: org?.id,\n is_active: true,\n page_index: 1,\n page_size: 2000,\n },\n watch: ['group_id'],\n };\n return {\n getData: query_member_by_group_list,\n searchConfig: search_config,\n };\n};\n","import { query_my_rel_org_list } from 'liyu-pc-base/api/org-model';\n\nexport default () => {\n const search_config: any = {\n model: {},\n watch: [],\n };\n\n return {\n getData: query_my_rel_org_list,\n searchConfig: search_config,\n };\n};\n","import { query_org_for_login_list } from 'liyu-pc-base/api/org-model';\n\nexport default () => {\n const search_config: any = {\n model: {},\n watch: [],\n };\n\n return {\n getData: query_org_for_login_list,\n searchConfig: search_config,\n };\n};\n","import { query_shift_name_list } from 'liyu-pc-base/api/org-model';\n\nexport default () => {\n const search_config: any = {\n model: {\n is_active: true,\n is_type: 10,\n is_me: true,\n },\n watch: [],\n };\n return {\n getData: query_shift_name_list,\n searchConfig: search_config,\n };\n};\n","import { query_shift_time_list } from 'liyu-pc-base/api/org-model';\n\nexport default () => {\n const search_config: any = {\n model: {\n is_active: true,\n is_type: 10,\n is_me: true,\n },\n watch: [],\n };\n\n return {\n getData: query_shift_time_list,\n searchConfig: search_config,\n };\n};\n","import { query_my_zhun_bei_org_list } from 'liyu-pc-base/api/org-model';\n\nexport default () => {\n const search_config: any = {\n model: {\n is_active: true,\n },\n watch: [],\n };\n\n return {\n getData: query_my_zhun_bei_org_list,\n searchConfig: search_config,\n };\n};\n","import { query_work_org_by_zhaxian_list } from 'liyu-pc-base/api/org-model';\n\nexport default () => {\n const search_config: any = {\n model: {\n is_active: true,\n },\n watch: [],\n };\n\n return {\n getData: query_work_org_by_zhaxian_list,\n searchConfig: search_config,\n };\n};\n","import { queryRole } from 'liyu-pc-base/api/permission/role-manage';\nimport { useUserStore } from 'liyu-pc-base/init-plugin';\n\nexport default () => {\n const userStore = useUserStore();\n const org = userStore.currentOrg;\n const search_config: any = {\n model: {\n org_id: org?.id,\n aim_org_id: org?.id,\n is_active: true,\n page_index: 1,\n page_size: 2000,\n },\n watch: ['aim_org_id'],\n };\n return {\n getData: queryRole,\n searchConfig: search_config,\n };\n};\n","import { useRequest } from 'liyu-pc-base/init-plugin';\nimport type { PageResult } from 'liyu-pc-base/api/typing';\n\nexport async function queryMenu(params?: { [key: string]: any }): Promise<PageResult> {\n const res: PageResult = await useRequest().post('/permission/query_menu_list', params);\n const parent_menu_list: Array<any> = [];\n const sub_menu_list: Array<any> = [];\n res.data.forEach((item: any) => {\n if (!item.parent) {\n item.key = item.id;\n item.value = item.id;\n item.title = item.name;\n parent_menu_list.push(item);\n } else {\n item.key = item.id;\n item.value = item.id;\n item.title = item.name;\n sub_menu_list.push(item);\n }\n });\n\n parent_menu_list.forEach(item => {\n if (!item.children) {\n item.children = [];\n }\n sub_menu_list.forEach(obj => {\n if (obj.parent?.id == item.id) {\n item.children.push(obj);\n }\n });\n });\n res.data = parent_menu_list;\n res.total = parent_menu_list.length;\n return res;\n}\n\nexport async function queryMenu2(params?: { [key: string]: any }): Promise<PageResult> {\n const res: PageResult = await useRequest().post('/permission/query_menu_list', params);\n const return_menu: any[] = [];\n const parent_menu_dict: any = {};\n res.data.forEach((item: any) => {\n item.key = item.id;\n item.value = item.id;\n item.title = item.name;\n parent_menu_dict[item.id] = item;\n const children: any[] = [];\n item.children = children;\n if (!item.parent) {\n return_menu.push(item);\n }\n });\n res.data.forEach((item: any) => {\n if (item.parent) {\n if (parent_menu_dict[item.parent.id] && parent_menu_dict[item.parent.id].children) {\n parent_menu_dict[item.parent.id].children.push(item);\n parent_menu_dict[item.parent.id].children.sort((a: any, b: any) => a.index - b.index);\n } else {\n console.error(item);\n }\n }\n });\n res.data.forEach((item: any) => {\n if (item.children.length == 0) {\n delete item.children;\n }\n });\n if (return_menu.length != 0) {\n res.data = return_menu;\n res.total = return_menu.length;\n } else {\n res.total = res.data.length;\n }\n return res;\n}\n\nexport async function removeMenu(params: Record<string, any>) {\n return useRequest().post('/permission/delete_menu', params);\n}\n\nexport async function addMenu(params: Record<string, any>) {\n return useRequest().post('/permission/create_menu', params);\n}\n\nexport async function updateMenu(params: Record<string, any>) {\n return useRequest().post('/permission/update_menu', params);\n}\n\nexport async function recoverMenu(params: Record<string, any>) {\n return useRequest().post('/permission/recover_menu', params);\n}\n\nexport async function query_menu_list(params: Record<string, any>) {\n return useRequest().post('/permission/query_menu_list', params);\n}\n\nexport async function query_my_menu(params: Record<string, any>) {\n return useRequest().post('/permission/query_my_menu', params);\n}\n\nexport async function get_my_menu(params: Record<string, any>) {\n return useRequest().post('/permission/get_my_menu', params);\n}\n\nexport async function get_my_menu_and_api_url_info(params: Record<string, any>) {\n return useRequest().post('/permission/get_my_menu_and_api_url_info', params);\n}\n\nexport async function import_menu(params: Record<string, any>) {\n return useRequest().post('/permission/import_menu', params);\n}\n\nexport async function update_multi_menus_by_json(params: Record<string, any>) {\n return useRequest().post('/permission/update_multi_menus_by_json', params);\n}\n\nexport async function query_login_person_all_menu_list(params: Record<string, any>) {\n return useRequest().post('/permission/query_login_person_all_menu_list', params);\n}\n\nexport async function query_login_person_all_menu_project_list(params: Record<string, any>) {\n return useRequest().post('/permission/query_login_person_all_menu_project_list', params);\n}\n","import { query_menu_list } from 'liyu-pc-base/api/permission/menu-manage';\nimport { useUserStore } from 'liyu-pc-base/init-plugin';\n\nexport default () => {\n const userStore = useUserStore();\n const org = userStore.currentOrg;\n const search_config: any = {\n model: {\n org_id: org?.id,\n aim_org_id: org?.id,\n is_active: true,\n pageSize: 1000,\n },\n watch: [],\n };\n return {\n getData: query_menu_list,\n searchConfig: search_config,\n };\n};\n","import { queryRole } from 'liyu-pc-base/api/permission/role-manage';\nimport { useUserStore } from 'liyu-pc-base/init-plugin';\n\nexport default () => {\n const userStore = useUserStore();\n const org = userStore.currentOrg;\n const search_config: any = {\n model: {\n org_id: org?.id,\n aim_org_id: org?.id,\n is_active: true,\n pageSize: 1000,\n },\n watch: [],\n };\n return {\n getData: queryRole,\n searchConfig: search_config,\n };\n};\n","import { useRequest } from 'liyu-pc-base/init-plugin';\nimport type { PageResult } from 'liyu-pc-base/api/typing';\n\nexport async function set_column_setting_for_person(params: Record<string, any>) {\n return useRequest().post('/sys/set_column_setting_for_person', params);\n}\n\nexport async function set_column_setting_for_org(params: Record<string, any>) {\n return useRequest().post('/sys/set_column_setting_for_org', params);\n}\n\nexport async function set_custom_data_by_flag(params: Record<string, any>) {\n return useRequest().post('/sys/set_custom_data_by_flag', params);\n}\n\nexport async function get_custom_data_by_flag(params: Record<string, any>) {\n return useRequest().post('/sys/get_custom_data_by_flag', params);\n}\n\nexport async function query_my_column_setting_list(params?: {\n [key: string]: any;\n}): Promise<PageResult> {\n return useRequest().post('/sys/query_my_column_setting_list', params);\n}\n\nexport async function bind_user_and_devie_token(params: Record<string, any>) {\n return useRequest().post('/sys/bind_user_and_devie_token', params);\n}\n\nexport async function refresh_client_version(params: Record<string, any>) {\n return useRequest().post('/sys/refresh_client_version', params);\n}\n\nexport async function create_security_code(params: Record<string, any>) {\n return useRequest().post('/sys/create_security_code', params);\n}\n\nexport async function query_run_time_script_list_for_index(params: Record<string, any>) {\n return useRequest().post('/sys/query_run_time_script_list_for_index', params);\n}\n\nexport async function html_json(params: Record<string, any>) {\n return useRequest().post('/sys/html_json', params);\n}\n\nexport async function wechat_login_page(params: Record<string, any>) {\n return useRequest().post('/sys/wechat_login_page', params);\n}\n\nexport async function query_celery_runing_list(params: Record<string, any>): Promise<PageResult> {\n return useRequest().post('/oa/query_celery_runing_list', params);\n}\n\nexport async function delete_user(params: Record<string, any>) {\n return useRequest().post('/sys/delete_user', params);\n}\n\nexport async function get_last_data(params: Record<string, any>) {\n return useRequest().post('/sys/get_last_data', params);\n}\n\nexport async function send_sms_code_login(params: Record<string, any>) {\n return useRequest().post('/sys/send_sms_code_login', params);\n}\n\nexport async function get_log_detail(params: Record<string, any>) {\n return useRequest().post('/sys/get_log_detail', params);\n}\n\nexport async function relieve_user_and_code(params: Record<string, any>) {\n return useRequest().post('/sys/relieve_user_and_code', params);\n}\n\nexport async function get_wechat_setting_by_group_id(params: Record<string, any>) {\n return useRequest().post('/sys/get_wechat_setting_by_group_id', params);\n}\n\nexport async function auto_recover_database_copy_status(params: Record<string, any>) {\n return useRequest().post('/sys/auto_recover_database_copy_status', params);\n}\n\nexport async function get_user_info(params: Record<string, any>) {\n return useRequest().post('/sys/get_user_info', params);\n}\n\nexport async function recover_security_code(params: Record<string, any>) {\n return useRequest().post('/sys/recover_security_code', params);\n}\n\nexport async function get_html_content_by_flag(params: Record<string, any>) {\n return useRequest().post('/production_manage/get_html_content_by_flag', params);\n}\n\nexport async function my_userinfo(params: Record<string, any>) {\n return useRequest().post('/sys/my_userinfo', params);\n}\n\nexport async function simple_http_login(params: Record<string, any>) {\n return useRequest().post('/sys/simple_http_login', params);\n}\n\nexport async function user_icon(params: Record<string, any>) {\n return useRequest().post('/sys/user_icon', params);\n}\n\nexport async function update_problem_reason(params: Record<string, any>) {\n return useRequest().post('/sys/update_problem_reason', params);\n}\n\nexport async function check_external_info(params: Record<string, any>) {\n return useRequest().post('/sys/check_external_info', params);\n}\n\nexport async function create_html_pdf(params: Record<string, any>) {\n return useRequest().post('/sys/create_html_pdf', params);\n}\n\nexport async function send_sms_code(params: Record<string, any>) {\n return useRequest().post('/sys/send_sms_code', params);\n}\n\nexport async function delete_security_code(params: Record<string, any>) {\n return useRequest().post('/sys/delete_security_code', params);\n}\n\nexport async function delete_sys_cache(params: Record<string, any>) {\n return useRequest().post('/oa/delete_sys_cache', params);\n}\n\nexport async function get_database_copy_mode(params: Record<string, any>) {\n return useRequest().post('/sys/get_database_copy_mode', params);\n}\n\nexport async function logout(params: Record<string, any>) {\n return useRequest().post('/sys/logout', params);\n}\n\nexport async function sync_cookie(params: Record<string, any>) {\n return useRequest().post('/sys/sync_cookie', params);\n}\n\nexport async function query_org_by_flag_list(params: Record<string, any>): Promise<PageResult> {\n return useRequest().post('/sys/query_org_by_flag_list', params);\n}\n\nexport async function set_script_flag_show(params: Record<string, any>) {\n return useRequest().post('/sys/set_script_flag_show', params);\n}\n\nexport async function get_userinfo(params: Record<string, any>) {\n return useRequest().post('/sys/get_userinfo', params);\n}\n\nexport async function compair_pageandapi(params: Record<string, any>) {\n return useRequest().post('/sys/compair_pageandapi', params);\n}\n\nexport async function get_user_weixin_token(params: Record<string, any>) {\n return useRequest().post('/sys/get_user_weixin_token', params);\n}\n\nexport async function simple_login(params: Record<string, any>) {\n return useRequest().post('/sys/simple_login', params);\n}\n\nexport async function query_user_code_list(params: Record<string, any>): Promise<PageResult> {\n return useRequest().post('/sys/query_user_code_list', params);\n}\n\nexport async function query_database_copy_info_list(\n params: Record<string, any>,\n): Promise<PageResult> {\n return useRequest().post('/sys/query_database_copy_info_list', params);\n}\n\nexport async function query_script_signal_value_list(\n params: Record<string, any>,\n): Promise<PageResult> {\n return useRequest().post('/sys/query_script_signal_value_list', params);\n}\n\nexport async function import_xls_first(params: Record<string, any>) {\n return useRequest().post('/sys/import_xls_first', params);\n}\n\nexport async function jyx_login(params: Record<string, any>) {\n return useRequest().post('/sys/jyx_login', params);\n}\n\nexport async function update_my_user_icon(params: Record<string, any>) {\n return useRequest().post('/sys/update_my_user_icon', params);\n}\n\nexport async function u(params: Record<string, any>) {\n return useRequest().post('/sys/u', params);\n}\n\nexport async function query_run_time_script_list(params: Record<string, any>): Promise<PageResult> {\n return useRequest().post('/sys/query_run_time_script_list', params);\n}\n\nexport async function set_wechat_setting_by_group_id(params: Record<string, any>) {\n return useRequest().post('/sys/set_wechat_setting_by_group_id', params);\n}\n\nexport async function update_user_email(params: Record<string, any>) {\n return useRequest().post('/sys/update_user_email', params);\n}\n\nexport async function query_monitor_name_list(params: Record<string, any>): Promise<PageResult> {\n return useRequest().post('/sys/query_monitor_name_list', params);\n}\n\nexport async function jyx_sync_login(params: Record<string, any>) {\n return useRequest().post('/sys/jyx_sync_login', params);\n}\n\nexport async function get_data_by_id(params: Record<string, any>) {\n return useRequest().post('/sys/get_data_by_id', params);\n}\n\nexport async function update_security_code(params: Record<string, any>) {\n return useRequest().post('/sys/update_security_code', params);\n}\n\nexport async function query_sys_ap_status_list(params: Record<string, any>): Promise<PageResult> {\n return useRequest().post('/sys/query_sys_ap_status_list', params);\n}\n\nexport async function update_user_erp_username(params: Record<string, any>) {\n return useRequest().post('/sys/update_user_erp_username', params);\n}\n\nexport async function query_user_list(params: Record<string, any>): Promise<PageResult> {\n return useRequest().post('/sys/query_user_list', params);\n}\n\nexport async function get_celery_task_info(params: Record<string, any>) {\n return useRequest().post('/sys/get_celery_task_info', params);\n}\n\nexport async function get_plan_excel_import_setting_by_flag(params: Record<string, any>) {\n return useRequest().post('/production_manage/get_plan_excel_import_setting_by_flag', params);\n}\n\nexport async function get_user_wechat_org_list(params: Record<string, any>): Promise<PageResult> {\n return useRequest().post('/sys/get_user_wechat_org_list', params);\n}\n\nexport async function erp_login(params: Record<string, any>) {\n return useRequest().post('/sys/erp_login', params);\n}\n\nexport async function query_celery_beat_interval_list(\n params: Record<string, any>,\n): Promise<PageResult> {\n return useRequest().post('/oa/query_celery_beat_interval_list', params);\n}\n\nexport async function create_user(params: Record<string, any>) {\n return useRequest().post('/sys/create_user', params);\n}\n\nexport async function qrcode2(params: Record<string, any>) {\n return useRequest().post('/sys/qrcode2', params);\n}\n\nexport async function wechat_login(params: Record<string, any>) {\n return useRequest().post('/sys/wechat_login', params);\n}\n\nexport async function recover_problem_reason(params: Record<string, any>) {\n return useRequest().post('/sys/recover_problem_reason', params);\n}\n\nexport async function text_icon(params: Record<string, any>) {\n return useRequest().post('/sys/text_icon', params);\n}\n\nexport async function query_log_list(params: Record<string, any>): Promise<PageResult> {\n return useRequest().post('/sys/query_log_list', params);\n}\n\nexport async function create_problem_reason(params: Record<string, any>) {\n return useRequest().post('/sys/create_problem_reason', params);\n}\n\nexport async function html_pdf(params: Record<string, any>) {\n return useRequest().post('/sys/html_pdf', params);\n}\n\nexport async function simple_super_login(params: Record<string, any>) {\n return useRequest().post('/sys/simple_super_login', params);\n}\n\nexport async function query_problem_reason_list(params: Record<string, any>): Promise<PageResult> {\n return useRequest().post('/sys/query_problem_reason_list', params);\n}\n\nexport async function update_user(params: Record<string, any>) {\n return useRequest().post('/sys/update_user', params);\n}\n\nexport async function check_init_data_all(params: Record<string, any>) {\n return useRequest().post('/sys/check_init_data_all', params);\n}\n\nexport async function set_database_copy_mode(params: Record<string, any>) {\n return useRequest().post('/sys/set_database_copy_mode', params);\n}\n\nexport async function change_password(params: Record<string, any>) {\n return useRequest().post('/sys/change_password', params);\n}\n\nexport async function upload_device_store_excel(params: Record<string, any>) {\n return useRequest().post('/sys/upload_device_store_excel', params);\n}\n\nexport async function wechat_robot_bind(params: Record<string, any>) {\n return useRequest().post('/sys/wechat_robot_bind', params);\n}\n\nexport async function change_password_by_code(params: Record<string, any>) {\n return useRequest().post('/sys/change_password_by_code', params);\n}\n\nexport async function sentry_webhook(params: Record<string, any>) {\n return useRequest().post('/sys/sentry_webhook', params);\n}\n\nexport async function query_pdi_unread_info_list(params: Record<string, any>): Promise<PageResult> {\n return useRequest().post('/sys/query_pdi_unread_info_list', params);\n}\n\nexport async function str_to_pinyin(params: Record<string, any>) {\n return useRequest().post('/sys/str_to_pinyin', params);\n}\n\nexport async function create_value(params: Record<string, any>) {\n return useRequest().post('/oa/create_value', params);\n}\n\nexport async function query_person_name_list(params: Record<string, any>): Promise<PageResult> {\n return useRequest().post('/sys/query_person_name_list', params);\n}\n\nexport async function set_plan_excel_import_setting_by_flag(params: Record<string, any>) {\n return useRequest().post('/production_manage/set_plan_excel_import_setting_by_flag', params);\n}\n\nexport async function query_security_code_list(params: Record<string, any>): Promise<PageResult> {\n return useRequest().post('/sys/query_security_code_list', params);\n}\n\nexport async function relieve_user_and_devie_token(params: Record<string, any>) {\n return useRequest().post('/sys/relieve_user_and_devie_token', params);\n}\n\nexport async function reg_user(params: Record<string, any>) {\n return useRequest().post('/sys/reg_user', params);\n}\n\nexport async function qrcode_login_scan(params: Record<string, any>) {\n return useRequest().post('/sys/qrcode_login_scan', params);\n}\n\nexport async function delete_problem_reason(params: Record<string, any>) {\n return useRequest().post('/sys/delete_problem_reason', params);\n}\n\nexport async function get_user_device_token(params: Record<string, any>) {\n return useRequest().post('/sys/get_user_device_token', params);\n}\n\nexport async function query_problem_list(params: Record<string, any>): Promise<PageResult> {\n return useRequest().post('/sys/query_problem_list', params);\n}\n\nexport async function qrcode_login_check(params: Record<string, any>) {\n return useRequest().post('/sys/qrcode_login_check', params);\n}\n\nexport async function check_login(params: Record<string, any>) {\n return useRequest().post('/sys/check_login', params);\n}\n\nexport async function oauth2(params: Record<string, any>) {\n return useRequest().post('/sys/oauth2', params);\n}\n\nexport async function get_client_version(params: Record<string, any>) {\n return useRequest().post('/sys/get_client_version', params);\n}\n\nexport async function qrcode_login_string(params: Record<string, any>) {\n return useRequest().post('/sys/qrcode_login_string', params);\n}\n\nexport async function get_user_by_code(params: Record<string, any>) {\n return useRequest().post('/sys/get_user_by_code', params);\n}\n\nexport async function query_wechat_commands_list(params: Record<string, any>): Promise<PageResult> {\n return useRequest().post('/sys/query_wechat_commands_list', params);\n}\n\nexport async function recover_user(params: Record<string, any>) {\n return useRequest().post('/sys/recover_user', params);\n}\n\nexport async function get_cache_wechat_content_by_group(params: Record<string, any>) {\n return useRequest().post('/sys/get_cache_wechat_content_by_group', params);\n}\n\nexport async function text_icon_group(params: Record<string, any>) {\n return useRequest().post('/sys/text_icon_group', params);\n}\n\nexport async function query_person_list(params: Record<string, any>): Promise<PageResult> {\n return useRequest().post('/sys/query_person_list', params);\n}\n\nexport async function query_datajson_by_flag_list(\n params: Record<string, any>,\n): Promise<PageResult> {\n return useRequest().post('/sys/query_datajson_by_flag_list', params);\n}\n\nexport async function simple_hand_login(params: Record<string, any>) {\n return useRequest().post('/sys/simple_hand_login', params);\n}\n\nexport async function bind_user_and_code(params: Record<string, any>) {\n return useRequest().post('/sys/bind_user_and_code', params);\n}\n\nexport async function send_sms_code_reg(params: Record<string, any>) {\n return useRequest().post('/sys/send_sms_code_reg', params);\n}\n\nexport async function query_log_tag_values_list(params: Record<string, any>): Promise<PageResult> {\n return useRequest().post('/sys/query_log_tag_values_list', params);\n}\n\nexport async function share_pc_login(params: Record<string, any>) {\n return useRequest().post('/sys/share_pc_login', params);\n}\n\nexport async function code_login(params: Record<string, any>) {\n return useRequest().post('/sys/code_login', params);\n}\n\nexport async function get_user_code(params: Record<string, any>) {\n return useRequest().post('/sys/get_user_code', params);\n}\n\nexport async function inport_user_temp(params: Record<string, any>) {\n return useRequest().post('/sys/inport_user_temp', params);\n}\n\nexport async function set_html_content_by_flag(params: Record<string, any>) {\n return useRequest().post('/production_manage/set_html_content_by_flag', params);\n}\n\nexport async function query_celery_beat_crontab_list(\n params: Record<string, any>,\n): Promise<PageResult> {\n return useRequest().post('/oa/query_celery_beat_crontab_list', params);\n}\n","import { query_person_name_list } from 'liyu-pc-base/api/sys-model';\n\nexport default () => {\n const search_config: any = {\n model: {\n is_active: true,\n page_index: 1,\n page_size: 2000,\n },\n watch: [],\n };\n return {\n getData: query_person_name_list,\n searchConfig: search_config,\n };\n};\n","import { queryOrgList } from 'liyu-pc-base/api/sys';\nimport { useUserStore } from 'liyu-pc-base/init-plugin';\n\nexport default () => {\n const userStore = useUserStore();\n const current_org = userStore.currentOrg;\n const search_config: any = {\n model: {\n org_id: current_org?.id,\n aim_org_id: current_org?.id,\n is_active: true,\n },\n };\n return {\n getData: queryOrgList,\n searchConfig: search_config,\n };\n};\n","import { get_plan_excel_import_setting_by_flag } from 'liyu-pc-base/api/sys-model';\n\nexport default () => {\n const search_config: any = {\n model: {\n is_active: true,\n page_index: 1,\n pageSize: 2000,\n },\n watch: [],\n };\n return {\n getData: get_plan_excel_import_setting_by_flag,\n searchConfig: search_config,\n };\n};\n","import { query_org_by_flag_list } from 'liyu-pc-base/api/sys-model';\n\nexport default () => {\n const search_config: any = {\n model: {\n org_flag: 'zhaxian',\n },\n watch: [],\n };\n return {\n getData: query_org_by_flag_list,\n searchConfig: search_config,\n };\n};\n","import { useRequest } from 'liyu-pc-base/init-plugin';\nimport type { PageResult } from 'liyu-pc-base/api/typing';\n\nexport type RequestParams =\n | {\n pageSize: number;\n current: number;\n [key: string]: any;\n }\n | undefined;\n\nexport async function queryGroup(params?: RequestParams): Promise<PageResult<GroupItem>> {\n return useRequest().post('/org/query_group_by_org_list', params);\n}\n\nexport async function removeGroup(params: Record<string, any>): Promise<PageResult<GroupItem>> {\n return useRequest().post('/org/remove_group', params);\n}\n\nexport async function recoverGroup(params: Record<string, any>): Promise<PageResult<GroupItem>> {\n return useRequest().post('/org/recover_group', params);\n}\n\nexport async function addGroup(params: Record<string, any>): Promise<PageResult<GroupItem>> {\n return useRequest().post('/org/create_group', params);\n}\n\nexport async function updateGroup(params: Record<string, any>): Promise<PageResult<GroupItem>> {\n return useRequest().post('/org/update_group', params);\n}\nexport async function queryMemberByGroup(params: RequestParams): Promise<PageResult<GroupItem>> {\n return useRequest().post('/org/query_member_by_group_list', params);\n}\n\nexport interface GroupItem {\n key: string | number;\n callNo: number;\n avatar: string;\n desc: string;\n disabled: false;\n href: string;\n name: string;\n owner: string;\n progress: number;\n status: number;\n updatedAt: string;\n createdAt: string;\n id: number;\n}\n","import { queryGroup } from 'liyu-pc-base/api/org/group';\nimport { useUserStore } from 'liyu-pc-base/init-plugin';\n\nexport default () => {\n const userStore = useUserStore();\n const org = userStore.currentOrg;\n\n const search_config: any = {\n model: {\n org_id: org?.id,\n aim_org_id: org?.id,\n is_active: true,\n pageSize: 1000,\n },\n watch: [],\n };\n return {\n getData: queryGroup,\n searchConfig: search_config,\n };\n};\n","import { get_plan_excel_import_setting_by_flag } from 'liyu-pc-base/api/sys-model';\nimport { useUserStore } from 'liyu-pc-base/init-plugin';\n\nexport default () => {\n const userStore = useUserStore();\n const org = userStore.currentOrg;\n const search_config: any = {\n model: {\n flag: org?.id,\n is_active: true,\n page_index: 1,\n page_size: 2000,\n },\n watch: [],\n };\n\n return {\n getData: get_plan_excel_import_setting_by_flag,\n searchConfig: search_config,\n };\n};\n","import { queryOrgList } from 'liyu-pc-base/api/sys';\n\nexport default () => {\n const search_config: any = {\n model: {},\n watch: [],\n };\n return {\n getData: queryOrgList,\n searchConfig: search_config,\n };\n};\n","import { query_person_list } from 'liyu-pc-base/api/sys-model';\n\nexport default () => {\n const search_config: any = {\n model: {\n is_active: true,\n page_index: 1,\n pageSize: 2000,\n },\n watch: [],\n };\n return {\n getData: query_person_list,\n searchConfig: search_config,\n };\n};\n","import { query_problem_list } from 'liyu-pc-base/api/sys-model';\n\nexport default () => {\n const search_config: any = {\n model: {\n is_active: true,\n page_index: 1,\n page_size: 2000,\n },\n watch: [],\n };\n return {\n getData: query_problem_list,\n searchConfig: search_config,\n };\n};\n","import { queryRole } from 'liyu-pc-base/api/permission/role-manage';\nimport { useUserStore } from 'liyu-pc-base/init-plugin';\n\nexport default () => {\n const userStore = useUserStore();\n const org = userStore.currentOrg;\n const search_config: any = {\n model: {\n org_id: org?.id,\n aim_org_id: org?.id,\n is_active: true,\n pageSize: 1000,\n },\n watch: [],\n };\n return {\n getData: queryRole,\n searchConfig: search_config,\n };\n};\n","import type { RemoteSelect } from 'liyu-pc-base/components/FormRender/RemoteSelect/typing';\nimport { useGlobMap } from 'liyu-pc-base/init-plugin';\n\nconst res_components: { [key: string]: any } = {};\nconst init = () => {\n if (Object.keys(res_components).length > 0) {\n return;\n }\n const allComponents: any = import.meta.glob(\n 'liyu-pc-base/components/FormRender/RemoteSelect/configs/*/*.ts',\n {\n eager: true,\n },\n );\n const customComponents = useGlobMap('remoteSelect');\n Object.assign(allComponents, customComponents);\n Object.keys(allComponents).forEach(full_file_name => {\n const file_name_list = full_file_name.split('/');\n const file_name = file_name_list[file_name_list.length - 1].replace('.ts', '');\n res_components[file_name] = allComponents[full_file_name].default;\n });\n};\n\nexport default (modalType: string): RemoteSelect => {\n init();\n if (res_components[modalType] == undefined) {\n console.error('remoteselect没有组件:' + modalType);\n return {\n getData: undefined,\n searchConfig: undefined,\n };\n }\n return {\n ...res_components[modalType](`remoteselect_${modalType}`),\n };\n};\n","<template>\n <a-layout\n style=\"min-width: 190px\"\n width=\"100%\"\n >\n <!-- <a-layout-content>-->\n <a-select\n v-model:value=\"modalRef.selectedRows\"\n :allow-clear=\"field.allowClear\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n :dropdownMatchSelectWidth=\"false\"\n :dropdownMenuStyle=\"{ color: 'red' }\"\n :dropdownStyle=\"{ color: 'red' }\"\n :filter-option=\"filterOption\"\n :maxTagCount=\"field.maxTagCount ? field.maxTagCount : 'responsive'\"\n :mode=\"field.mode == 'default' ? null : field.mode\"\n :placeholder=\"field.placeholder\"\n :show-search=\"field.show_search == undefined ? true : field.show_search\"\n size=\"small\"\n :autoClearSearchValue=\"false\"\n @change=\"handleChange\"\n @search=\"handleSearch\"\n @blur=\"handleBlur\"\n >\n <a-select-option\n v-for=\"option in datasource\"\n :key=\"option.value\"\n :value=\"option.value\"\n >\n <bold-matcher\n :text=\"option.label\"\n :pattern=\"searchText\"\n :color=\"field.searchColor\"\n />\n </a-select-option>\n </a-select>\n <!-- </a-layout-content>-->\n <!-- <a-layout-sider width=\"30px\" style=\"background: rgba(0, 0, 0, 0)\">-->\n <!-- <a-button size=\"small\" style=\"width: 30px\" @click=\"btnClick\" type=\"text\">-->\n <!-- <template #icon>-->\n <!-- <reload-outlined/>-->\n <!-- </template>-->\n <!-- </a-button>-->\n <!-- </a-layout-sider>-->\n </a-layout>\n</template>\n\n<script lang=\"ts\">\nimport type { PropType } from 'vue';\nimport { computed, defineComponent, onMounted, reactive, ref, watch } from 'vue';\nimport type { ReponseData } from 'liyu-pc-base/utils/hooks/useFetchData';\nimport getFormConfig from 'liyu-pc-base/components/FormRender/RemoteSelect/index';\nimport { message } from 'ant-design-vue';\nimport { debounce } from 'lodash-es';\nimport BoldMatcher from 'liyu-pc-base/components/FormRender/RemoteSelect/boldenText.vue';\n\ntype Field = {\n mode: 'multiple' | 'tags' | 'combobox' | 'default';\n modalType: string;\n cb?: any;\n select_style: any;\n default: string;\n name: string;\n};\n\nexport default defineComponent({\n name: 'RemoteSelect',\n props: {\n field: {\n type: Object as PropType<Field>,\n required: true,\n },\n valueKey: {\n type: String,\n },\n labelKey: {\n type: String,\n },\n labelSpace: {\n type: String,\n default: '-',\n },\n labelKeyList: {\n type: Array,\n },\n value: {\n type: [Array, Number, String],\n required: false,\n default: () => null,\n },\n label: {\n type: [Array, String],\n required: false,\n default: () => [],\n },\n formModel: {\n type: Object,\n required: true,\n },\n init_model: {\n type: Object,\n default: () => {},\n },\n },\n emits: ['update:value', 'update:label'],\n setup(props, { emit }) {\n const modalRef = reactive({\n selectedRows: new Array<number | any>(),\n datasource: new Array<any>(),\n });\n const searchText = ref('');\n let init_datasource = []; // 初始化datasource\n const { searchConfig, getData } = getFormConfig(props.field.modalType);\n const search_modelRef = reactive({\n ...searchConfig.model,\n ...props.init_model,\n });\n if (searchConfig.model.pageSize == undefined) {\n search_modelRef.pageSize = 2000;\n }\n const old_obj: { [key: string]: any } = {};\n let is_filter = false; // 是否调用接口过滤\n let selectData = []; // 已选择数据列表\n // const button_style = computed(() => {\n // return props.field.cb ? 'width: 14%;min-width:30px;' : 'width: 100%;min-width:30px;';\n // });\n // const select_style = computed(() => {\n // return 'width:80%; min-width: calc(100%-35px);';\n // });\n\n const get_value_key = () => {\n return props.valueKey ? (props.valueKey as string) : 'id';\n };\n const get_label_key = () => {\n return props.labelKey ? (props.labelKey as string) : 'name';\n };\n const datasource = computed(() => {\n return modalRef.datasource.map(item => {\n // 已经选择的数据不处理labelKeyList\n if (props.labelKeyList && !selectData.some(item1 => item.id === item1.id)) {\n const label = [];\n for (const key of props.labelKeyList) {\n label.push(item[key as string]);\n }\n return {\n value: item[get_value_key()],\n label: label.join(props.labelSpace),\n };\n } else {\n return {\n value: item[get_value_key()],\n label: item[get_label_key()],\n };\n }\n });\n });\n const getDefaultValue = (list: any) => {\n if (\n props.field.default &&\n !props.formModel[props.field.name] &&\n props.field.mode == 'default' &&\n list.length > 0\n ) {\n props.formModel[props.field.name] = list[0][get_value_key()];\n emit('update:label', list[0][get_label_key()]);\n // modalRef.selectedRows.length = 0;\n // modalRef.selectedRows.push(list[0][get_value_key()]);\n }\n if (props.field.mode == 'default') {\n const selectItems: any = datasource.value\n .filter((item: any) => modalRef.selectedRows == item.value)\n .map((item: any) => item.label);\n emit('update:label', selectItems.length > 0 ? selectItems[0] : '');\n } else {\n emit(\n 'update:label',\n datasource.value\n .filter((item: any) => modalRef.selectedRows.includes(item.value))\n .map((item: any) => item.label),\n );\n }\n };\n\n const check_params_need_request = () => {\n let is_ok = true;\n if (searchConfig.watch) {\n for (const k of searchConfig.watch) {\n if (props.formModel) {\n if (\n (props.formModel[k] === null || props.formModel[k] === undefined) &&\n props.init_model &&\n (props.init_model[k] === null || props.init_model[k] === undefined)\n ) {\n is_ok = false;\n }\n }\n }\n }\n return is_ok;\n };\n watch(\n () => props.formModel[props.field.name],\n () => {\n if (props.field.mode === 'default') {\n if (props.formModel[props.field.name] || props.formModel[props.field.name] === 0) {\n modalRef.selectedRows = [props.formModel[props.field.name]];\n } else {\n modalRef.selectedRows = [];\n }\n const selectItems: any = datasource.value\n .filter((item: any) => modalRef.selectedRows == item.value)\n .map((item: any) => item.label);\n emit('update:label', selectItems.length > 0 ? selectItems[0] : '');\n } else {\n // modalRef.selectedRows.length = 0;\n if (props.formModel[props.field.name] && props.formModel[props.field.name].length > 0) {\n modalRef.selectedRows = props.formModel[props.field.name];\n } else {\n modalRef.selectedRows = [];\n }\n emit(\n 'update:label',\n datasource.value\n .filter((item: any) => modalRef.selectedRows.includes(item.value))\n .map((item: any) => item.label),\n );\n }\n },\n );\n\n onMounted(() => {\n let is_use = false;\n if (searchConfig.watch) {\n for (const k of searchConfig.watch) {\n if (props.formModel) {\n old_obj[k] = props.formModel[k];\n }\n }\n }\n if (searchConfig.watch && props.formModel) {\n for (const k of searchConfig.watch) {\n search_modelRef[k] = props.formModel[k];\n watch(\n () => props.formModel[k],\n () => {\n let change = false;\n if (searchConfig.watch && props.formModel) {\n for (const k of searchConfig.watch) {\n if (old_obj[k] != props.formModel[k] && props.formModel[k]) {\n change = true;\n search_modelRef[k] = props.formModel[k];\n }\n }\n }\n if (change && check_params_need_request()) {\n getData({ ...search_modelRef }).then(function (res: ReponseData<any>) {\n is_filter = res.total > searchConfig.model.pageSize;\n modalRef.datasource = res.data;\n init_datasource = res.data;\n getDefaultValue(res.data);\n });\n }\n },\n { immediate: true },\n );\n }\n }\n if (searchConfig.attr_use && searchConfig.attr_use.length > 0) {\n for (const k of searchConfig.attr_use) {\n if (props.formModel && props.formModel[k]) {\n is_use = true;\n } else {\n is_use = false;\n break;\n }\n }\n } else {\n if (check_params_need_request()) {\n getData({ ...search_modelRef }).then(function (res: ReponseData<any>) {\n is_filter = res.total > searchConfig.model.pageSize;\n modalRef.datasource = res.data;\n init_datasource = res.data;\n getDefaultValue(res.data);\n });\n }\n }\n if (is_use && check_params_need_request()) {\n getData({ ...search_modelRef }).then(function (res: ReponseData<any>) {\n is_filter = res.total > searchConfig.model.pageSize;\n modalRef.datasource = res.data;\n init_datasource = res.data;\n getDefaultValue(res.data);\n });\n }\n });\n\n if (props.field.mode === 'default') {\n if (props.value || props.value === 0) {\n if (isNaN(Number(props.value))) {\n modalRef.selectedRows.push(props.value);\n } else {\n modalRef.selectedRows.push(Number(props.value));\n }\n }\n } else {\n if (typeof props.value == 'string') {\n (props.value as string).split(',').map((item: any) => {\n modalRef.selectedRows.push(Number(item));\n });\n } else if (props.value instanceof Array) {\n props.value.map((item: any) => {\n if (isNaN(Number(item))) {\n modalRef.selectedRows.push(item);\n } else {\n modalRef.selectedRows.push(Number(item));\n }\n });\n } else if (props.value != null) {\n modalRef.selectedRows.push(props.value);\n }\n }\n const btnClick = () => {\n message.loading({ content: '刷新数据……', key: props.field.modalType });\n getData({ ...search_modelRef }, true)\n .then(function (res: ReponseData<any>) {\n modalRef.datasource = res.data;\n getDefaultValue(res.data);\n message.success({ content: '刷新数据成功', key: props.field.modalType, duration: 2 });\n })\n .catch(() => {\n message.destroy();\n message.error('接口调用失败', 10);\n });\n };\n\n const handleChange = () => {\n if (props.field.mode == 'default') {\n emit('update:value', modalRef.selectedRows);\n const selectItems: any = datasource.value\n .filter((item: any) => {\n return modalRef.selectedRows == item.value;\n })\n .map((item: any) => item.label);\n emit('update:label', selectItems.length > 0 ? selectItems[0] : '');\n } else {\n if (modalRef.selectedRows.length > 1) {\n emit('update:value', modalRef.selectedRows);\n } else {\n emit('update:value', modalRef.selectedRows);\n }\n selectData = datasource.value\n .filter((item: any) => {\n return modalRef.selectedRows.includes(item.value);\n })\n .map((item: any) => {\n return {\n id: item.value,\n name: item.label,\n };\n });\n emit(\n 'update:label',\n datasource.value\n .filter((item: any) => modalRef.selectedRows.includes(item.value))\n .map((item: any) => item.label),\n );\n }\n };\n const debounce1: any = debounce(() => {\n getData({ ...search_modelRef }, true)\n .then(function (res: ReponseData<any>) {\n const filteredArray = res.data.filter(\n item1 => !selectData.some(item2 => item1.id === item2.id),\n );\n modalRef.datasource = selectData.concat(filteredArray);\n getDefaultValue(selectData.concat(filteredArray));\n })\n .catch(() => {\n message.error('接口调用失败', 10);\n });\n }, 300);\n const handleSearch = (str: any) => {\n searchText.value = str;\n if (is_filter) {\n if (str) {\n search_modelRef.pageSize = 50;\n search_modelRef.conditions = [];\n if (props?.labelKeyList && props?.labelKeyList?.length > 0) {\n props.labelKeyList.forEach((key: any, index: any) => {\n search_modelRef.conditions[index] = [\n {\n field_name: key,\n operator: 'icontains',\n format: 'input',\n value: [str],\n class_name: 'str',\n },\n ];\n });\n } else {\n search_modelRef.conditions = [\n [\n {\n field_name: get_label_key(),\n operator: 'icontains',\n format: 'input',\n value: [str],\n class_name: 'str',\n },\n ],\n ];\n }\n debounce1();\n } else {\n const filteredArray = init_datasource.filter(\n item1 => !selectData.some(item2 => item1.id === item2.id),\n );\n modalRef.datasource = selectData.concat(filteredArray);\n getDefaultValue(selectData.concat(filteredArray));\n }\n }\n };\n const handleBlur = () => {\n if (is_filter) {\n const filteredArray = init_datasource.filter(\n item1 => !selectData.some(item2 => item1.id === item2.id),\n );\n modalRef.datasource = selectData.concat(filteredArray);\n getDefaultValue(selectData.concat(filteredArray));\n }\n };\n const filterOption = (val: string, option: any) => {\n if (datasource.value instanceof Array) {\n const f: any = datasource.value.find(item => {\n return item['value'] == option.key;\n });\n if (f) {\n return String(f['label']).toLowerCase().indexOf(val.toLowerCase()) >= 0;\n } else {\n return false;\n }\n }\n };\n\n return {\n props,\n modalRef,\n search_modelRef,\n searchConfig,\n datasource,\n searchText,\n handleChange,\n handleSearch,\n handleBlur,\n filterOption,\n btnClick,\n };\n },\n\n data() {\n return {\n model: this.value,\n };\n },\n components: { BoldMatcher },\n});\n</script>\n","<template>\n <a-layout\n style=\"min-width: 190px\"\n width=\"100%\"\n >\n <!-- <a-layout-content>-->\n <a-select\n v-model:value=\"modalRef.selectedRows\"\n :allow-clear=\"field.allowClear\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n :dropdownMatchSelectWidth=\"false\"\n :dropdownMenuStyle=\"{ color: 'red' }\"\n :dropdownStyle=\"{ color: 'red' }\"\n :filter-option=\"filterOption\"\n :maxTagCount=\"field.maxTagCount ? field.maxTagCount : 'responsive'\"\n :mode=\"field.mode == 'default' ? null : field.mode\"\n :placeholder=\"field.placeholder\"\n :show-search=\"field.show_search == undefined ? true : field.show_search\"\n size=\"small\"\n :autoClearSearchValue=\"false\"\n @change=\"handleChange\"\n @search=\"handleSearch\"\n @blur=\"handleBlur\"\n >\n <a-select-option\n v-for=\"option in datasource\"\n :key=\"option.value\"\n :value=\"option.value\"\n >\n <bold-matcher\n :text=\"option.label\"\n :pattern=\"searchText\"\n :color=\"field.searchColor\"\n />\n </a-select-option>\n </a-select>\n <!-- </a-layout-content>-->\n <!-- <a-layout-sider width=\"30px\" style=\"background: rgba(0, 0, 0, 0)\">-->\n <!-- <a-button size=\"small\" style=\"width: 30px\" @click=\"btnClick\" type=\"text\">-->\n <!-- <template #icon>-->\n <!-- <reload-outlined/>-->\n <!-- </template>-->\n <!-- </a-button>-->\n <!-- </a-layout-sider>-->\n </a-layout>\n</template>\n\n<script lang=\"ts\">\nimport type { PropType } from 'vue';\nimport { computed, defineComponent, onMounted, reactive, ref, watch } from 'vue';\nimport type { ReponseData } from 'liyu-pc-base/utils/hooks/useFetchData';\nimport getFormConfig from 'liyu-pc-base/components/FormRender/RemoteSelect/index';\nimport { message } from 'ant-design-vue';\nimport { debounce } from 'lodash-es';\nimport BoldMatcher from 'liyu-pc-base/components/FormRender/RemoteSelect/boldenText.vue';\n\ntype Field = {\n mode: 'multiple' | 'tags' | 'combobox' | 'default';\n modalType: string;\n cb?: any;\n select_style: any;\n default: string;\n name: string;\n};\n\nexport default defineComponent({\n name: 'RemoteSelect',\n props: {\n field: {\n type: Object as PropType<Field>,\n required: true,\n },\n valueKey: {\n type: String,\n },\n labelKey: {\n type: String,\n },\n labelSpace: {\n type: String,\n default: '-',\n },\n labelKeyList: {\n type: Array,\n },\n value: {\n type: [Array, Number, String],\n required: false,\n default: () => null,\n },\n label: {\n type: [Array, String],\n required: false,\n default: () => [],\n },\n formModel: {\n type: Object,\n required: true,\n },\n init_model: {\n type: Object,\n default: () => {},\n },\n },\n emits: ['update:value', 'update:label'],\n setup(props, { emit }) {\n const modalRef = reactive({\n selectedRows: new Array<number | any>(),\n datasource: new Array<any>(),\n });\n const searchText = ref('');\n let init_datasource = []; // 初始化datasource\n const { searchConfig, getData } = getFormConfig(props.field.modalType);\n const search_modelRef = reactive({\n ...searchConfig.model,\n ...props.init_model,\n });\n if (searchConfig.model.pageSize == undefined) {\n search_modelRef.pageSize = 2000;\n }\n const old_obj: { [key: string]: any } = {};\n let is_filter = false; // 是否调用接口过滤\n let selectData = []; // 已选择数据列表\n // const button_style = computed(() => {\n // return props.field.cb ? 'width: 14%;min-width:30px;' : 'width: 100%;min-width:30px;';\n // });\n // const select_style = computed(() => {\n // return 'width:80%; min-width: calc(100%-35px);';\n // });\n\n const get_value_key = () => {\n return props.valueKey ? (props.valueKey as string) : 'id';\n };\n const get_label_key = () => {\n return props.labelKey ? (props.labelKey as string) : 'name';\n };\n const datasource = computed(() => {\n return modalRef.datasource.map(item => {\n // 已经选择的数据不处理labelKeyList\n if (props.labelKeyList && !selectData.some(item1 => item.id === item1.id)) {\n const label = [];\n for (const key of props.labelKeyList) {\n label.push(item[key as string]);\n }\n return {\n value: item[get_value_key()],\n label: label.join(props.labelSpace),\n };\n } else {\n return {\n value: item[get_value_key()],\n label: item[get_label_key()],\n };\n }\n });\n });\n const getDefaultValue = (list: any) => {\n if (\n props.field.default &&\n !props.formModel[props.field.name] &&\n props.field.mode == 'default' &&\n list.length > 0\n ) {\n props.formModel[props.field.name] = list[0][get_value_key()];\n emit('update:label', list[0][get_label_key()]);\n // modalRef.selectedRows.length = 0;\n // modalRef.selectedRows.push(list[0][get_value_key()]);\n }\n if (props.field.mode == 'default') {\n const selectItems: any = datasource.value\n .filter((item: any) => modalRef.selectedRows == item.value)\n .map((item: any) => item.label);\n emit('update:label', selectItems.length > 0 ? selectItems[0] : '');\n } else {\n emit(\n 'update:label',\n datasource.value\n .filter((item: any) => modalRef.selectedRows.includes(item.value))\n .map((item: any) => item.label),\n );\n }\n };\n\n const check_params_need_request = () => {\n let is_ok = true;\n if (searchConfig.watch) {\n for (const k of searchConfig.watch) {\n if (props.formModel) {\n if (\n (props.formModel[k] === null || props.formModel[k] === undefined) &&\n props.init_model &&\n (props.init_model[k] === null || props.init_model[k] === undefined)\n ) {\n is_ok = false;\n }\n }\n }\n }\n return is_ok;\n };\n watch(\n () => props.formModel[props.field.name],\n () => {\n if (props.field.mode === 'default') {\n if (props.formModel[props.field.name] || props.formModel[props.field.name] === 0) {\n modalRef.selectedRows = [props.formModel[props.field.name]];\n } else {\n modalRef.selectedRows = [];\n }\n const selectItems: any = datasource.value\n .filter((item: any) => modalRef.selectedRows == item.value)\n .map((item: any) => item.label);\n emit('update:label', selectItems.length > 0 ? selectItems[0] : '');\n } else {\n // modalRef.selectedRows.length = 0;\n if (props.formModel[props.field.name] && props.formModel[props.field.name].length > 0) {\n modalRef.selectedRows = props.formModel[props.field.name];\n } else {\n modalRef.selectedRows = [];\n }\n emit(\n 'update:label',\n datasource.value\n .filter((item: any) => modalRef.selectedRows.includes(item.value))\n .map((item: any) => item.label),\n );\n }\n },\n );\n\n onMounted(() => {\n let is_use = false;\n if (searchConfig.watch) {\n for (const k of searchConfig.watch) {\n if (props.formModel) {\n old_obj[k] = props.formModel[k];\n }\n }\n }\n if (searchConfig.watch && props.formModel) {\n for (const k of searchConfig.watch) {\n search_modelRef[k] = props.formModel[k];\n watch(\n () => props.formModel[k],\n () => {\n let change = false;\n if (searchConfig.watch && props.formModel) {\n for (const k of searchConfig.watch) {\n if (old_obj[k] != props.formModel[k] && props.formModel[k]) {\n change = true;\n search_modelRef[k] = props.formModel[k];\n }\n }\n }\n if (change && check_params_need_request()) {\n getData({ ...search_modelRef }).then(function (res: ReponseData<any>) {\n is_filter = res.total > searchConfig.model.pageSize;\n modalRef.datasource = res.data;\n init_datasource = res.data;\n getDefaultValue(res.data);\n });\n }\n },\n { immediate: true },\n );\n }\n }\n if (searchConfig.attr_use && searchConfig.attr_use.length > 0) {\n for (const k of searchConfig.attr_use) {\n if (props.formModel && props.formModel[k]) {\n is_use = true;\n } else {\n is_use = false;\n break;\n }\n }\n } else {\n if (check_params_need_request()) {\n getData({ ...search_modelRef }).then(function (res: ReponseData<any>) {\n is_filter = res.total > searchConfig.model.pageSize;\n modalRef.datasource = res.data;\n init_datasource = res.data;\n getDefaultValue(res.data);\n });\n }\n }\n if (is_use && check_params_need_request()) {\n getData({ ...search_modelRef }).then(function (res: ReponseData<any>) {\n is_filter = res.total > searchConfig.model.pageSize;\n modalRef.datasource = res.data;\n init_datasource = res.data;\n getDefaultValue(res.data);\n });\n }\n });\n\n if (props.field.mode === 'default') {\n if (props.value || props.value === 0) {\n if (isNaN(Number(props.value))) {\n modalRef.selectedRows.push(props.value);\n } else {\n modalRef.selectedRows.push(Number(props.value));\n }\n }\n } else {\n if (typeof props.value == 'string') {\n (props.value as string).split(',').map((item: any) => {\n modalRef.selectedRows.push(Number(item));\n });\n } else if (props.value instanceof Array) {\n props.value.map((item: any) => {\n if (isNaN(Number(item))) {\n modalRef.selectedRows.push(item);\n } else {\n modalRef.selectedRows.push(Number(item));\n }\n });\n } else if (props.value != null) {\n modalRef.selectedRows.push(props.value);\n }\n }\n const btnClick = () => {\n message.loading({ content: '刷新数据……', key: props.field.modalType });\n getData({ ...search_modelRef }, true)\n .then(function (res: ReponseData<any>) {\n modalRef.datasource = res.data;\n getDefaultValue(res.data);\n message.success({ content: '刷新数据成功', key: props.field.modalType, duration: 2 });\n })\n .catch(() => {\n message.destroy();\n message.error('接口调用失败', 10);\n });\n };\n\n const handleChange = () => {\n if (props.field.mode == 'default') {\n emit('update:value', modalRef.selectedRows);\n const selectItems: any = datasource.value\n .filter((item: any) => {\n return modalRef.selectedRows == item.value;\n })\n .map((item: any) => item.label);\n emit('update:label', selectItems.length > 0 ? selectItems[0] : '');\n } else {\n if (modalRef.selectedRows.length > 1) {\n emit('update:value', modalRef.selectedRows);\n } else {\n emit('update:value', modalRef.selectedRows);\n }\n selectData = datasource.value\n .filter((item: any) => {\n return modalRef.selectedRows.includes(item.value);\n })\n .map((item: any) => {\n return {\n id: item.value,\n name: item.label,\n };\n });\n emit(\n 'update:label',\n datasource.value\n .filter((item: any) => modalRef.selectedRows.includes(item.value))\n .map((item: any) => item.label),\n );\n }\n };\n const debounce1: any = debounce(() => {\n getData({ ...search_modelRef }, true)\n .then(function (res: ReponseData<any>) {\n const filteredArray = res.data.filter(\n item1 => !selectData.some(item2 => item1.id === item2.id),\n );\n modalRef.datasource = selectData.concat(filteredArray);\n getDefaultValue(selectData.concat(filteredArray));\n })\n .catch(() => {\n message.error('接口调用失败', 10);\n });\n }, 300);\n const handleSearch = (str: any) => {\n searchText.value = str;\n if (is_filter) {\n if (str) {\n search_modelRef.pageSize = 50;\n search_modelRef.conditions = [];\n if (props?.labelKeyList && props?.labelKeyList?.length > 0) {\n props.labelKeyList.forEach((key: any, index: any) => {\n search_modelRef.conditions[index] = [\n {\n field_name: key,\n operator: 'icontains',\n format: 'input',\n value: [str],\n class_name: 'str',\n },\n ];\n });\n } else {\n search_modelRef.conditions = [\n [\n {\n field_name: get_label_key(),\n operator: 'icontains',\n format: 'input',\n value: [str],\n class_name: 'str',\n },\n ],\n ];\n }\n debounce1();\n } else {\n const filteredArray = init_datasource.filter(\n item1 => !selectData.some(item2 => item1.id === item2.id),\n );\n modalRef.datasource = selectData.concat(filteredArray);\n getDefaultValue(selectData.concat(filteredArray));\n }\n }\n };\n const handleBlur = () => {\n if (is_filter) {\n const filteredArray = init_datasource.filter(\n item1 => !selectData.some(item2 => item1.id === item2.id),\n );\n modalRef.datasource = selectData.concat(filteredArray);\n getDefaultValue(selectData.concat(filteredArray));\n }\n };\n const filterOption = (val: string, option: any) => {\n if (datasource.value instanceof Array) {\n const f: any = datasource.value.find(item => {\n return item['value'] == option.key;\n });\n if (f) {\n return String(f['label']).toLowerCase().indexOf(val.toLowerCase()) >= 0;\n } else {\n return false;\n }\n }\n };\n\n return {\n props,\n modalRef,\n search_modelRef,\n searchConfig,\n datasource,\n searchText,\n handleChange,\n handleSearch,\n handleBlur,\n filterOption,\n btnClick,\n };\n },\n\n data() {\n return {\n model: this.value,\n };\n },\n components: { BoldMatcher },\n});\n</script>\n"],"mappings":";;;;;;;;;AAEA,eAAsB,EAAa,GAAwD;CACzF,OAAO,EAAW,CAAC,CAAC,KAAK,iCAAiC,CAAM;AAClE;AACA,eAAsB,EAAyB,GAErB;CACxB,OAAO,EAAW,CAAC,CAAC,KAAK,iCAAiC,CAAM;AAClE;;;kDCPA,YAUS;CACL,SAAS;CACT,cAAc;EAVd,OAAO;GACL,WAAW;GACX,YAAY;GACZ,WAAW;EACb;EACA,OAAO,CAAC;CAKM;AAChB,mDCbF,YASS;CACL,SAAS;CACT,cAAc;EATd,OAAO;GACL,WAAW;GACX,YAAY;GACZ,WAAW;EACb;EACA,OAAO,CAAC;CAIM;AAChB;;;ACSF,eAAsB,GAAyB,GAA2C;CACxF,OAAO,EAAW,CAAC,CAAC,KAAK,iCAAiC,CAAM;AAClE;AAEA,eAAsB,EAAsB,GAA2C;CACrF,OAAO,EAAW,CAAC,CAAC,KAAK,8BAA8B,CAAM;AAC/D;AA8DA,eAAsB,EAA+B,GAA2C;CAC9F,OAAO,EAAW,CAAC,CAAC,KAAK,uCAAuC,CAAM;AACxE;AAcA,eAAsB,EAAsB,GAAkD;CAC5F,OAAO,EAAW,CAAC,CAAC,KAAK,gCAAgC,CAAM;AACjE;AA0GA,eAAsB,EAAwB,GAAkD;CAC9F,OAAO,EAAW,CAAC,CAAC,KAAK,kCAAkC,CAAM;AACnE;AA0BA,eAAsB,EACpB,GACqB;CACrB,OAAO,EAAW,CAAC,CAAC,KAAK,uCAAuC,CAAM;AACxE;AAkKA,eAAsB,EAAiB,GAAkD;CACvF,OAAO,EAAW,CAAC,CAAC,KAAK,2BAA2B,CAAM;AAC5D;AA0BA,eAAsB,EAAsB,GAAkD;CAC5F,OAAO,EAAW,CAAC,CAAC,KAAK,gCAAgC,CAAM;AACjE;AA4DA,eAAsB,EAAwB,GAAkD;CAC9F,OAAO,EAAW,CAAC,CAAC,KAAK,gCAAgC,CAAM;AACjE;AAwDA,eAAsB,EAA2B,GAAkD;CACjG,OAAO,EAAW,CAAC,CAAC,KAAK,mCAAmC,CAAM;AACpE;AAkDA,eAAsB,EAAyB,GAAkD;CAC/F,OAAO,EAAW,CAAC,CAAC,KAAK,mCAAmC,CAAM;AACpE;AAEA,eAAsB,EAA0B,GAAkD;CAChG,OAAO,IAAI,SAAQ,MAAW;EAC5B,EAAW,CAAC,CACT,KAAK,wCAAwC,CAAM,CAAC,CACpD,MAAM,MAAa;GAClB,IAAM,IAAY,CAAC;GAQnB,AAPA,EAAI,KAAK,KAAK,MAAc;IAC1B,EAAK,KAAK;KACR,MAAM,EAAK,YAAY,MAAM,EAAK,OAAO,MAAM,EAAK;KACpD,IAAI,EAAK;IACX,CAAC;GACH,CAAC,GACD,EAAI,OAAO,GACX,EAAQ,CAAG;EACb,CAAC;CACL,CAAC;AACH;AAkGA,eAAsB,EAA2B,GAA6B;CAC5E,OAAO,EAAW,CAAC,CAAC,KAAK,mCAAmC,CAAM;AACpE;;;iDCvtBA,WAUS;CACL,SAAS;CACT,cAAc;EAVd,OAAO;GACL,WAAW;GACX,OAAO;GACP,YAAY;GACZ,WAAW;EACb;EACA,OAAO,CAAC,YAAY;CAIN;AAChB;;;ACGF,eAAsB,EAA0B,GAA+C;CAC7F,OAAO,EAAW,CAAC,CAAC,KAAK,6CAA6C,CAAM;AAC9E;AA8BA,eAAsB,EAAyB,GAA+C;CAC5F,OAAO,EAAW,CAAC,CAAC,KAAK,4CAA4C,CAAM;AAC7E;AAgGA,eAAsB,EAA+B,GAEpC;CACf,OAAO,EAAW,CAAC,CAAC,KAAK,kDAAkD,CAAM;AACnF;AA8BA,eAAsB,EAAmC,GAExC;CACf,OAAO,EAAW,CAAC,CAAC,KAAK,sDAAsD,CAAM;AACvF;AA8BA,eAAsB,EAA8B,GAA+C;CACjG,OAAO,EAAW,CAAC,CAAC,KAAK,iDAAiD,CAAM;AAClF;;;iDCxNA,WAUS;CACL,SAAS;CACT,cAAc;EAVd,OAAO;GACL,WAAW;GACX,UAAU;GACV,eAAe,CAAC,QAAQ,IAAI;GAC5B,gBAAgB;EAClB;EACA,OAAO,CAAC;CAIM;AAChB,iDCbF,WAUS;CACL,SAAS;CACT,cAAc;EAVd,OAAO;GACL,WAAW;GACX,UAAU;GACV,eAAe,CAAC,QAAQ,IAAI;GAC5B,gBAAgB;EAClB;EACA,OAAO,CAAC;CAIM;AAChB,iDCbF,WAUS;CACL,SAAS;CACT,cAAc;EAVd,OAAO;GACL,WAAW;GACX,UAAU;GACV,eAAe,CAAC,QAAQ,IAAI;GAC5B,gBAAgB;EAClB;EACA,OAAO,CAAC;CAIM;AAChB,mDCbF,YAUS;CACL,SAAS;CACT,cAAc;EAVd,OAAO;GACL,WAAW;GACX,UAAU;GACV,eAAe,CAAC,QAAQ,IAAI;GAC5B,gBAAgB;EAClB;EACA,OAAO,CAAC;CAIM;AAChB,mDCbF,YAUS;CACL,SAAS;CACT,cAAc;EAVd,OAAO;GACL,WAAW;GACX,UAAU;GACV,eAAe,CAAC,QAAQ,IAAI;GAC5B,gBAAgB;EAClB;EACA,OAAO,CAAC;CAIM;AAChB,mDCbF,YAUS;CACL,SAAS;CACT,cAAc;EAVd,OAAO;GACL,WAAW;GACX,SAAS;GACT,OAAO;GACP,UAAU;EACZ;EACA,OAAO,CAAC;CAIM;AAChB,mDCbF,YASS;CACL,SAAS;CACT,cAAc;EATd,OAAO;GACL,YAAY;GACZ,WAAW;GACX,UAAU;EACZ;EACA,OAAO,CAAC,YAAY;CAIN;AAChB,mDCXF,YAWS;CACL,SAAS;CACT,cAAc,EATd,OAAO;EACL,YAJc,EACN,CAAA,CAAU,YAGD;EACjB,WAAW;EACX,YAAY;EACZ,WAAW;CACb,EAIc;AAChB,mDCdF,WAAqB;CAEnB,IAAM,IADY,EACN,CAAA,CAAU;CAUtB,OAAO;EACL,SAAS;EACT,cAAc,EAVd,OAAO;GACL,QAAQ,GAAK;GACb,YAAY,GAAK;GACjB,WAAW;GACX,YAAY;GACZ,WAAW;EACb,EAIc;CAChB;AACF,kDChBA,WAAqB;CAEnB,IAAM,IADY,EACN,CAAA,CAAU;CAUtB,OAAO;EACL,SAAS;EACT,cAAc,EAVd,OAAO;GACL,QAAQ,GAAK;GACb,YAAY,GAAK;GACjB,WAAW;GACX,YAAY;GACZ,WAAW;EACb,EAIc;CAChB;AACF,kDChBA,WAAqB;CAEnB,IAAM,IADY,EACN,CAAA,CAAU;CAWtB,OAAO;EACL,SAAS;EACT,cAAc;GAXd,OAAO;IACL,QAAQ,GAAK;IACb,YAAY,GAAK;IACjB,WAAW;IACX,YAAY;IACZ,WAAW;GACb;GACA,OAAO,CAAC,UAAU;EAIJ;CAChB;AACF,kDClBA,YAMS;CACL,SAAS;CACT,cAAc;EANd,OAAO,CAAC;EACR,OAAO,CAAC;CAKM;AAChB,mDCTF,YAMS;CACL,SAAS;CACT,cAAc;EANd,OAAO,CAAC;EACR,OAAO,CAAC;CAKM;AAChB,mDCTF,YASS;CACL,SAAS;CACT,cAAc;EATd,OAAO;GACL,WAAW;GACX,SAAS;GACT,OAAO;EACT;EACA,OAAO,CAAC;CAIM;AAChB,mDCZF,YAUS;CACL,SAAS;CACT,cAAc;EAVd,OAAO;GACL,WAAW;GACX,SAAS;GACT,OAAO;EACT;EACA,OAAO,CAAC;CAKM;AAChB,mDCbF,YAQS;CACL,SAAS;CACT,cAAc;EARd,OAAO,EACL,WAAW,GACb;EACA,OAAO,CAAC;CAKM;AAChB,mDCXF,YAQS;CACL,SAAS;CACT,cAAc;EARd,OAAO,EACL,WAAW,GACb;EACA,OAAO,CAAC;CAKM;AAChB,mDCVF,WAAqB;CAEnB,IAAM,IADY,EACN,CAAA,CAAU;CAWtB,OAAO;EACL,SAAS;EACT,cAAc;GAXd,OAAO;IACL,QAAQ,GAAK;IACb,YAAY,GAAK;IACjB,WAAW;IACX,YAAY;IACZ,WAAW;GACb;GACA,OAAO,CAAC,YAAY;EAIN;CAChB;AACF;;;ACuEA,eAAsB,GAAgB,GAA6B;CACjE,OAAO,EAAW,CAAC,CAAC,KAAK,+BAA+B,CAAM;AAChE;;;mDC1FA,WAAqB;CAEnB,IAAM,IADY,EACN,CAAA,CAAU;CAUtB,OAAO;EACL,SAAS;EACT,cAAc;GAVd,OAAO;IACL,QAAQ,GAAK;IACb,YAAY,GAAK;IACjB,WAAW;IACX,UAAU;GACZ;GACA,OAAO,CAAC;EAIM;CAChB;AACF,kDChBA,WAAqB;CAEnB,IAAM,IADY,EACN,CAAA,CAAU;CAUtB,OAAO;EACL,SAAS;EACT,cAAc;GAVd,OAAO;IACL,QAAQ,GAAK;IACb,YAAY,GAAK;IACjB,WAAW;IACX,UAAU;GACZ;GACA,OAAO,CAAC;EAIM;CAChB;AACF;;;AC0HA,eAAsB,GAAuB,GAAkD;CAC7F,OAAO,EAAW,CAAC,CAAC,KAAK,+BAA+B,CAAM;AAChE;AAkGA,eAAsB,EAAsC,GAA6B;CACvF,OAAO,EAAW,CAAC,CAAC,KAAK,4DAA4D,CAAM;AAC7F;AAoGA,eAAsB,GAAuB,GAAkD;CAC7F,OAAO,EAAW,CAAC,CAAC,KAAK,+BAA+B,CAAM;AAChE;AA8BA,eAAsB,GAAmB,GAAkD;CACzF,OAAO,EAAW,CAAC,CAAC,KAAK,2BAA2B,CAAM;AAC5D;AA0CA,eAAsB,GAAkB,GAAkD;CACxF,OAAO,EAAW,CAAC,CAAC,KAAK,0BAA0B,CAAM;AAC3D;;;mDCnaA,YASS;CACL,SAAS;CACT,cAAc;EATd,OAAO;GACL,WAAW;GACX,YAAY;GACZ,WAAW;EACb;EACA,OAAO,CAAC;CAIM;AAChB,mDCXF,WAAqB;CAEnB,IAAM,IADY,EACE,CAAA,CAAU;CAQ9B,OAAO;EACL,SAAS;EACT,cAAc,EARd,OAAO;GACL,QAAQ,GAAa;GACrB,YAAY,GAAa;GACzB,WAAW;EACb,EAIc;CAChB;AACF,kDCfA,YASS;CACL,SAAS;CACT,cAAc;EATd,OAAO;GACL,WAAW;GACX,YAAY;GACZ,UAAU;EACZ;EACA,OAAO,CAAC;CAIM;AAChB,mDCZF,YAOS;CACL,SAAS;CACT,cAAc;EAPd,OAAO,EACL,UAAU,UACZ;EACA,OAAO,CAAC;CAIM;AAChB;;;ACDF,eAAsB,GAAW,GAAwD;CACvF,OAAO,EAAW,CAAC,CAAC,KAAK,gCAAgC,CAAM;AACjE;;;mDCVA,WAAqB;CAEnB,IAAM,IADY,EACN,CAAA,CAAU;CAWtB,OAAO;EACL,SAAS;EACT,cAAc;GAVd,OAAO;IACL,QAAQ,GAAK;IACb,YAAY,GAAK;IACjB,WAAW;IACX,UAAU;GACZ;GACA,OAAO,CAAC;EAIM;CAChB;AACF,kDCjBA,YAaS;CACL,SAAS;CACT,cAAc;EAXd,OAAO;GACL,MAJc,EACN,CAAA,CAAU,YAGP;GACX,WAAW;GACX,YAAY;GACZ,WAAW;EACb;EACA,OAAO,CAAC;CAKM;AAChB,kDCjBF,WAKS;CACL,SAAS;CACT,cAAc;EALd,OAAO,CAAC;EACR,OAAO,CAAC;CAIM;AAChB,mDCRF,YASS;CACL,SAAS;CACT,cAAc;EATd,OAAO;GACL,WAAW;GACX,YAAY;GACZ,UAAU;EACZ;EACA,OAAO,CAAC;CAIM;AAChB,mDCZF,YASS;CACL,SAAS;CACT,cAAc;EATd,OAAO;GACL,WAAW;GACX,YAAY;GACZ,WAAW;EACb;EACA,OAAO,CAAC;CAIM;AAChB,mDCXF,WAAqB;CAEnB,IAAM,IADY,EACN,CAAA,CAAU;CAUtB,OAAO;EACL,SAAS;EACT,cAAc;GAVd,OAAO;IACL,QAAQ,GAAK;IACb,YAAY,GAAK;IACjB,WAAW;IACX,UAAU;GACZ;GACA,OAAO,CAAC;EAIM;CAChB;AACF,GChBM,IAAyC,CAAC,GAC1C,WAAa;CACjB,IAAI,OAAO,KAAK,CAAc,CAAC,CAAC,SAAS,GACvC;CAEF,IAAM,IAAqB,uBAAA,OAAA;EAAA,uGAAA;EAAA,iGAAA;EAAA,gGAAA;EAAA,mGAAA;EAAA,kGAAA;EAAA,wGAAA;EAAA,4GAAA;EAAA,uGAAA;EAAA,0FAAA;EAAA,2FAAA;EAAA,wFAAA;EAAA,yGAAA;EAAA,oGAAA;EAAA,uGAAA;EAAA,kGAAA;EAAA,qGAAA;EAAA,uFAAA;EAAA,uFAAA;EAAA,4FAAA;EAAA,6FAAA;EAAA,sFAAA;EAAA,4FAAA;EAAA,4FAAA;EAAA,mFAAA;EAAA,wEAAA;EAAA,oGAAA;EAAA,0EAAA;EAAA,sFAAA;EAAA,wFAAA;EAAA,uFAAA;EAAA,gFAAA;EAAA,iFAAA;EAAA,8EAAA;CAAA,CAAA,GAMrB,IAAmB,EAAW,cAAc;CAElD,AADA,OAAO,OAAO,GAAe,CAAgB,GAC7C,OAAO,KAAK,CAAa,CAAC,CAAC,SAAQ,MAAkB;EACnD,IAAM,IAAiB,EAAe,MAAM,GAAG,GACzC,IAAY,EAAe,EAAe,SAAS,EAAE,CAAC,QAAQ,OAAO,EAAE;EAC7E,EAAe,KAAa,EAAc,EAAe,CAAC;CAC5D,CAAC;AACH,GAEA,KAAgB,OACd,GAAK,GACD,EAAe,MAAc,QAC/B,QAAQ,MAAM,sBAAsB,CAAS,GACtC;CACL,SAAS,KAAA;CACT,cAAc,KAAA;AAChB,KAEK,EACL,GAAG,EAAe,EAAU,CAAC,gBAAgB,GAAW,EAC1D,ICgCF,KAAe,EAAgB;CAC7B,MAAM;CACN,OAAO;EACL,OAAO;GACL,MAAM;GACN,UAAU;EACZ;EACA,UAAU,EACR,MAAM,OACR;EACA,UAAU,EACR,MAAM,OACR;EACA,YAAY;GACV,MAAM;GACN,SAAS;EACX;EACA,cAAc,EACZ,MAAM,MACR;EACA,OAAO;GACL,MAAM;IAAC;IAAO;IAAQ;GAAM;GAC5B,UAAU;GACV,eAAe;EACjB;EACA,OAAO;GACL,MAAM,CAAC,OAAO,MAAM;GACpB,UAAU;GACV,eAAe,CAAC;EAClB;EACA,WAAW;GACT,MAAM;GACN,UAAU;EACZ;EACA,YAAY;GACV,MAAM;GACN,eAAe,CAAC;EAClB;CACF;CACA,OAAO,CAAC,gBAAgB,cAAc;CACtC,MAAM,GAAO,EAAE,WAAQ;EACrB,IAAM,IAAW,EAAS;GACxB,cAAc,CAAwB;GACtC,YAAY,CAAe;EAC7B,CAAC,GACK,IAAa,GAAI,EAAE,GACrB,IAAkB,CAAC,GACjB,EAAE,iBAAc,eAAY,EAAc,EAAM,MAAM,SAAS,GAC/D,IAAkB,EAAS;GAC/B,GAAG,EAAa;GAChB,GAAG,EAAM;EACX,CAAC;EACD,AAAI,EAAa,MAAM,aACrB,EAAgB,WAAW;EAE7B,IAAM,IAAkC,CAAC,GACrC,IAAY,IACZ,IAAa,CAAC,GAQZ,UACG,EAAM,WAAY,EAAM,WAAsB,MAEjD,UACG,EAAM,WAAY,EAAM,WAAsB,QAEjD,IAAa,QACV,EAAS,WAAW,KAAI,MAAQ;GAErC,IAAI,EAAM,gBAAgB,CAAC,EAAW,MAAK,MAAS,EAAK,OAAO,EAAM,EAAE,GAAG;IACzE,IAAM,IAAQ,CAAC;IACf,KAAK,IAAM,KAAO,EAAM,cACtB,EAAM,KAAK,EAAK,EAAc;IAEhC,OAAO;KACL,OAAO,EAAK,EAAc;KAC1B,OAAO,EAAM,KAAK,EAAM,UAAU;IACpC;GACF,OACE,OAAO;IACL,OAAO,EAAK,EAAc;IAC1B,OAAO,EAAK,EAAc;GAC5B;EAEJ,CAAC,CACF,GACK,KAAmB,MAAc;GAYrC,IAVE,EAAM,MAAM,WACZ,CAAC,EAAM,UAAU,EAAM,MAAM,SAC7B,EAAM,MAAM,QAAQ,aACpB,EAAK,SAAS,MAEd,EAAM,UAAU,EAAM,MAAM,QAAQ,EAAK,EAAE,CAAC,EAAc,IAC1D,EAAK,gBAAgB,EAAK,EAAE,CAAC,EAAc,EAAE,IAI3C,EAAM,MAAM,QAAQ,WAAW;IACjC,IAAM,IAAmB,EAAW,MACjC,QAAQ,MAAc,EAAS,gBAAgB,EAAK,KAAK,CAAA,CACzD,KAAK,MAAc,EAAK,KAAK;IAChC,EAAK,gBAAgB,EAAY,SAAS,IAAI,EAAY,KAAK,EAAE;GACnE,OACE,EACE,gBACA,EAAW,MACR,QAAQ,MAAc,EAAS,aAAa,SAAS,EAAK,KAAK,CAAC,CAAA,CAChE,KAAK,MAAc,EAAK,KAAK,CAClC;EAEJ,GAEM,UAAkC;GACtC,IAAI,IAAQ;GACZ,IAAI,EAAa,YACV,IAAM,KAAK,EAAa,OAC3B,AAAI,EAAM,cAEL,EAAM,UAAU,OAAO,QAAQ,EAAM,UAAU,OAAO,KAAA,MACvD,EAAM,eACL,EAAM,WAAW,OAAO,QAAQ,EAAM,WAAW,OAAO,KAAA,OAEzD,IAAQ;GAKhB,OAAO;EACT;EAiGA,AAhGA,QACQ,EAAM,UAAU,EAAM,MAAM,aAC5B;GACJ,IAAI,EAAM,MAAM,SAAS,WAAW;IAClC,AAAI,EAAM,UAAU,EAAM,MAAM,SAAS,EAAM,UAAU,EAAM,MAAM,UAAU,IAC7E,EAAS,eAAe,CAAC,EAAM,UAAU,EAAM,MAAM,KAAK,IAE1D,EAAS,eAAe,CAAC;IAE3B,IAAM,IAAmB,EAAW,MACjC,QAAQ,MAAc,EAAS,gBAAgB,EAAK,KAAK,CAAA,CACzD,KAAK,MAAc,EAAK,KAAK;IAChC,EAAK,gBAAgB,EAAY,SAAS,IAAI,EAAY,KAAK,EAAE;GACnE,OAOE,AALI,EAAM,UAAU,EAAM,MAAM,SAAS,EAAM,UAAU,EAAM,MAAM,KAAK,CAAC,SAAS,IAClF,EAAS,eAAe,EAAM,UAAU,EAAM,MAAM,QAEpD,EAAS,eAAe,CAAC,GAE3B,EACE,gBACA,EAAW,MACR,QAAQ,MAAc,EAAS,aAAa,SAAS,EAAK,KAAK,CAAC,CAAA,CAChE,KAAK,MAAc,EAAK,KAAK,CAClC;EAEJ,CACF,GAEA,QAAgB;GACd,IAAI,IAAS;GACb,IAAI,EAAa,YACV,IAAM,KAAK,EAAa,OAC3B,AAAI,EAAM,cACR,EAAQ,KAAK,EAAM,UAAU;GAInC,IAAI,EAAa,SAAS,EAAM,WAC9B,KAAK,IAAM,KAAK,EAAa,OAE3B,AADA,EAAgB,KAAK,EAAM,UAAU,IACrC,QACQ,EAAM,UAAU,UAChB;IACJ,IAAI,IAAS;IACb,IAAI,EAAa,SAAS,EAAM,gBACzB,IAAM,KAAK,EAAa,OAC3B,AAAI,EAAQ,MAAM,EAAM,UAAU,MAAM,EAAM,UAAU,OACtD,IAAS,IACT,EAAgB,KAAK,EAAM,UAAU;IAI3C,AAAI,KAAU,EAA0B,KACtC,EAAQ,EAAE,GAAG,EAAgB,CAAC,CAAC,CAAC,KAAK,SAAU,GAAuB;KAIpE,AAHA,IAAY,EAAI,QAAQ,EAAa,MAAM,UAC3C,EAAS,aAAa,EAAI,MAC1B,IAAkB,EAAI,MACtB,EAAgB,EAAI,IAAI;IAC1B,CAAC;GAEL,GACA,EAAE,WAAW,GAAK,CACpB;GAGJ,IAAI,EAAa,YAAY,EAAa,SAAS,SAAS,GAC1D,KAAK,IAAM,KAAK,EAAa,UAC3B,IAAI,EAAM,aAAa,EAAM,UAAU,IACrC,IAAS;QACJ;IACL,IAAS;IACT;GACF;QAGF,AAAI,EAA0B,KAC5B,EAAQ,EAAE,GAAG,EAAgB,CAAC,CAAC,CAAC,KAAK,SAAU,GAAuB;IAIpE,AAHA,IAAY,EAAI,QAAQ,EAAa,MAAM,UAC3C,EAAS,aAAa,EAAI,MAC1B,IAAkB,EAAI,MACtB,EAAgB,EAAI,IAAI;GAC1B,CAAC;GAGL,AAAI,KAAU,EAA0B,KACtC,EAAQ,EAAE,GAAG,EAAgB,CAAC,CAAC,CAAC,KAAK,SAAU,GAAuB;IAIpE,AAHA,IAAY,EAAI,QAAQ,EAAa,MAAM,UAC3C,EAAS,aAAa,EAAI,MAC1B,IAAkB,EAAI,MACtB,EAAgB,EAAI,IAAI;GAC1B,CAAC;EAEL,CAAC,GAEG,EAAM,MAAM,SAAS,aACnB,EAAM,SAAS,EAAM,UAAU,OAC7B,MAAM,OAAO,EAAM,KAAK,CAAC,IAC3B,EAAS,aAAa,KAAK,EAAM,KAAK,IAEtC,EAAS,aAAa,KAAK,OAAO,EAAM,KAAK,CAAC,KAI9C,OAAO,EAAM,SAAS,WACxB,EAAO,MAAiB,MAAM,GAAG,CAAC,CAAC,KAAK,MAAc;GACpD,EAAS,aAAa,KAAK,OAAO,CAAI,CAAC;EACzC,CAAC,IACQ,EAAM,iBAAiB,QAChC,EAAM,MAAM,KAAK,MAAc;GAC7B,AAAI,MAAM,OAAO,CAAI,CAAC,IACpB,EAAS,aAAa,KAAK,CAAI,IAE/B,EAAS,aAAa,KAAK,OAAO,CAAI,CAAC;EAE3C,CAAC,IACQ,EAAM,SAAS,QACxB,EAAS,aAAa,KAAK,EAAM,KAAK;EAG1C,IAAM,UAAiB;GAErB,AADA,EAAQ,QAAQ;IAAE,SAAS;IAAU,KAAK,EAAM,MAAM;GAAU,CAAC,GACjE,EAAQ,EAAE,GAAG,EAAgB,GAAG,EAAI,CAAA,CACjC,KAAK,SAAU,GAAuB;IAGrC,AAFA,EAAS,aAAa,EAAI,MAC1B,EAAgB,EAAI,IAAI,GACxB,EAAQ,QAAQ;KAAE,SAAS;KAAU,KAAK,EAAM,MAAM;KAAW,UAAU;IAAE,CAAC;GAChF,CAAC,CAAA,CACA,YAAY;IAEX,AADA,EAAQ,QAAQ,GAChB,EAAQ,MAAM,UAAU,EAAE;GAC5B,CAAC;EACL,GAEM,UAAqB;GACzB,IAAI,EAAM,MAAM,QAAQ,WAAW;IACjC,EAAK,gBAAgB,EAAS,YAAY;IAC1C,IAAM,IAAmB,EAAW,MACjC,QAAQ,MACA,EAAS,gBAAgB,EAAK,KACtC,CAAA,CACA,KAAK,MAAc,EAAK,KAAK;IAChC,EAAK,gBAAgB,EAAY,SAAS,IAAI,EAAY,KAAK,EAAE;GACnE,OAgBE,AAfI,EAAS,aAAa,QACxB,EAAK,gBAAgB,EAAS,YAAY,GAI5C,IAAa,EAAW,MACrB,QAAQ,MACA,EAAS,aAAa,SAAS,EAAK,KAAK,CACjD,CAAA,CACA,KAAK,OACG;IACL,IAAI,EAAK;IACT,MAAM,EAAK;GACb,EACD,GACH,EACE,gBACA,EAAW,MACR,QAAQ,MAAc,EAAS,aAAa,SAAS,EAAK,KAAK,CAAC,CAAA,CAChE,KAAK,MAAc,EAAK,KAAK,CAClC;EAEJ,GACM,IAAiB,SAAe;GACpC,EAAQ,EAAE,GAAG,EAAgB,GAAG,EAAI,CAAA,CACjC,KAAK,SAAU,GAAuB;IACrC,IAAM,IAAgB,EAAI,KAAK,QAC7B,MAAS,CAAC,EAAW,MAAK,MAAS,EAAM,OAAO,EAAM,EAAE,CAC1D;IAEA,AADA,EAAS,aAAa,EAAW,OAAO,CAAa,GACrD,EAAgB,EAAW,OAAO,CAAa,CAAC;GAClD,CAAC,CAAA,CACA,YAAY;IACX,EAAQ,MAAM,UAAU,EAAE;GAC5B,CAAC;EACL,GAAG,GAAG;EAgEN,OAAO;GACL;GACA;GACA;GACA;GACA;GACA;GACA;GACA,eAvEoB,MAAa;IAEjC,IADA,EAAW,QAAQ,GACf,GACF,IAAI,GA4BF,AA3BA,EAAgB,WAAW,IAC3B,EAAgB,aAAa,CAAC,GAC1B,GAAO,gBAAgB,GAAO,cAAc,SAAS,IACvD,EAAM,aAAa,SAAS,GAAU,MAAe;KACnD,EAAgB,WAAW,KAAS,CAClC;MACE,YAAY;MACZ,UAAU;MACV,QAAQ;MACR,OAAO,CAAC,CAAG;MACX,YAAY;KACd,CACF;IACF,CAAC,IAED,EAAgB,aAAa,CAC3B,CACE;KACE,YAAY,EAAc;KAC1B,UAAU;KACV,QAAQ;KACR,OAAO,CAAC,CAAG;KACX,YAAY;IACd,CACF,CACF,GAEF,EAAU;SACL;KACL,IAAM,IAAgB,EAAgB,QACpC,MAAS,CAAC,EAAW,MAAK,MAAS,EAAM,OAAO,EAAM,EAAE,CAC1D;KAEA,AADA,EAAS,aAAa,EAAW,OAAO,CAAa,GACrD,EAAgB,EAAW,OAAO,CAAa,CAAC;IAClD;GAEJ;GAgCE,kBA/BuB;IACvB,IAAI,GAAW;KACb,IAAM,IAAgB,EAAgB,QACpC,MAAS,CAAC,EAAW,MAAK,MAAS,EAAM,OAAO,EAAM,EAAE,CAC1D;KAEA,AADA,EAAS,aAAa,EAAW,OAAO,CAAa,GACrD,EAAgB,EAAW,OAAO,CAAa,CAAC;IAClD;GACF;GAwBE,eAvBoB,GAAa,MAAgB;IACjD,IAAI,EAAW,iBAAiB,OAAO;KACrC,IAAM,IAAS,EAAW,MAAM,MAAK,MAC5B,EAAK,SAAY,EAAO,GAChC;KAIC,OAHE,IACK,OAAO,EAAE,KAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAI,YAAY,CAAC,KAAK,IAE/D;IAEX;GACF;GAaE;EACF;CACF;CAEA,OAAO;EACL,OAAO,EACL,OAAO,KAAK,MACd;CACF;CACA,YAAY,EAAE,aAAA,EAAY;AAC5B,CAAC;;;aCjdC,EA4CW,GAAA;EA3CT,OAAA,EAAA,aAAA,QAAA;EACA,OAAM;;EAHV,SAAA,QAoCe,CA9BX,EA8BW,GAAA;GA7BD,OAAO,EAAA,SAAS;GAP9B,kBAAA,AAAA,EAAA,QAAA,MAAA,EAOqB,SAAS,eAAY;GACnC,eAAa,EAAA,MAAM;GACnB,iBAAe,EAAA,MAAM;GACrB,UAAU,EAAA,MAAM;GAChB,0BAA0B;GAC1B,mBAAmB,EAAA,OAAA,MAAA;GACnB,eAAe,EAAA,OAAA,MAAA;GACf,iBAAe,EAAA;GACf,aAAa,EAAA,MAAM,cAAc,EAAA,MAAM,cAAW;GAClD,MAAM,EAAA,MAAM,QAAI,YAAA,OAAuB,EAAA,MAAM;GAC7C,aAAa,EAAA,MAAM;GACnB,eAAa,EAAA,MAAM,eAAe,OAAS,KAAU,EAAA,MAAM;GAC5D,MAAK;GACJ,sBAAsB;GACtB,UAAQ,EAAA;GACR,UAAQ,EAAA;GACR,QAAM,EAAA;;GAvBb,SAAA,QA0BoC,EAAA,EAAA,EAAA,GAD9B,EAUkB,GAAA,MAnCxB,EA0ByB,EAAA,aAAV,YADT,EAUkB,GAAA;IARf,KAAK,EAAO;IACZ,OAAO,EAAO;;IA5BvB,SAAA,QAkCU,CAJF,EAIE,GAAA;KAHC,MAAM,EAAO;KACb,SAAS,EAAA;KACT,OAAO,EAAA,MAAM;;;;;;IAjCxB,GAAA;;GAAA,GAAA;;;;;;;;;;;;;;;EAAA,GAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RemoteSelectPro-CcWTS4f6.js","names":[],"sources":["../src/components/FormRender/RemoteSelectPro/RemoteSelectPro.vue","../src/components/FormRender/RemoteSelectPro/RemoteSelectPro.vue"],"sourcesContent":["<template>\n <div class=\"remote-select-pro\">\n <a-select\n v-model:value=\"modalRef.selectedRows\"\n :allow-clear=\"field.allowClear !== false\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n :filter-option=\"filterOption\"\n :maxTagCount=\"field.maxTagCount ? field.maxTagCount : 'responsive'\"\n :mode=\"field.mode == 'default' ? null : field.mode\"\n :placeholder=\"placeholder\"\n :show-search=\"field.show_search !== false\"\n size=\"small\"\n :autoClearSearchValue=\"false\"\n @change=\"handleChange\"\n @search=\"handleSearch\"\n style=\"min-width: 120px\"\n >\n <a-select-option\n v-for=\"option in datasource\"\n :key=\"option.value\"\n :value=\"option.value\"\n >\n <bold-matcher\n :text=\"option.label\"\n :pattern=\"searchText\"\n :color=\"field.searchColor\"\n />\n </a-select-option>\n </a-select>\n\n <div\n v-if=\"field.table?.enable\"\n class=\"table-search-icon\"\n style=\"margin-right: 5px\"\n >\n <FileSearchOutlined @click=\"handleOpenTable\" />\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, defineAsyncComponent, onMounted, onUnmounted, reactive, ref, watch } from 'vue';\nimport { debounce, isEqual } from 'lodash-es';\nimport { convertValueByClassName, isNotEmpty } from 'liyu-pc-base/utils/function';\nimport BoldMatcher from 'liyu-pc-base/components/FormRender/RemoteSelect/boldenText.vue';\nimport { getApiData } from 'liyu-pc-base/api/api-model';\nimport { useRequiredConditionStore, required_condition_event_obj } from 'liyu-pc-base/init-plugin';\nimport modalBox from 'liyu-pc-base/components/form-modal/modal-tools';\nimport md5 from 'blueimp-md5';\nimport { useRoute } from 'vue-router';\nimport { resolveContextValue } from 'liyu-pc-base/components/FormRender/utils';\n\ndefineOptions({\n name: 'RemoteSelectPro',\n});\n\ntype Field = {\n label: string;\n mode: 'multiple' | 'tags' | 'combobox' | 'default';\n cb?: any;\n select_style: any;\n default: string;\n name: string;\n postUrl: string;\n searchConditions: any;\n queryType: string;\n simpleSearchConditions: any;\n maxTagCount: number;\n allowClear: boolean;\n defaultValue: any;\n disabled: boolean;\n show_search: boolean;\n searchColor: string;\n required_condition: any;\n defaultValueType: string;\n globalDefaultKey: string;\n globalDefaultField: string;\n extendedFields: string[];\n table: any;\n};\ninterface Props {\n field: Field;\n valueKey?: string;\n labelKeyType?: number;\n labelKey?: string;\n labelSpace?: string;\n labelKeyList?: any[];\n value?: Array<any> | number | string | null;\n label?: Array<any> | string;\n formModel: Record<string, any>;\n outModel?: Record<string, any>;\n placeholder?: string;\n init_model?: Record<string, any>;\n is_input?: boolean;\n init_watch?: Record<string, any>;\n is_form_design?: boolean;\n innerModel?: any;\n globalInnerModel?: any;\n context?: Record<string, any> | null;\n baseKeyPath?: any;\n}\nconst props = withDefaults(defineProps<Props>(), {\n labelKeyType: 0,\n labelSpace: '-',\n labelKeyList: () => [],\n value: null,\n label: () => [],\n outModel: () => ({}),\n init_model: () => ({}),\n is_input: false,\n init_watch: () => ({}),\n is_form_design: false,\n innerModel: null,\n globalInnerModel: null,\n context: null,\n baseKeyPath: () => [],\n});\n\nconst emit = defineEmits<{\n 'update:value': [value: any];\n 'update:label': [value: any];\n}>();\nconst modalRef = reactive({\n selectedRows: new Array<number | any>(),\n datasource: new Array<any>(),\n});\nconst route = useRoute();\nconst tableKey = ref('remoteSelectPro');\nconst tableConfig = ref(null);\nconst searchText = ref('');\nconst requiredConditionStore = useRequiredConditionStore();\nconst getConditionsItem = (value: any, list: any, item: any) => {\n if (item.operator === 'not_blank_not_null') {\n list.push({\n field_name: item.field_name,\n operator: item.operator,\n value: [],\n format: item.format,\n class_name: item.class_name,\n });\n } else if (value instanceof Array) {\n const [first] = value;\n if (isNotEmpty(first)) {\n list.push({\n field_name: item.field_name,\n operator: item.operator,\n value: convertValueByClassName(value, item.class_name),\n format: item.format,\n class_name: item.class_name,\n });\n }\n } else if (isNotEmpty(value)) {\n let val = value;\n if (item.operator === 'in' || item.operator === 'notin') {\n if (value.includes('[')) {\n val = JSON.parse(value);\n } else if (value.includes(',')) {\n val = value.split(',');\n }\n if (item.class_name === 'int') {\n val = val.map(Number);\n }\n }\n list.push({\n field_name: item.field_name,\n operator: item.operator,\n value: convertValueByClassName(val instanceof Array ? val : [val], item.class_name),\n format: item.format,\n class_name: item.class_name,\n });\n }\n};\n\n/**\n * 解析相对于 baseKeyPath 的表达式,从 props.context 中获取值。\n * 核心算法已移至 utils.ts 的 resolveContextValue,这里仅做 props 绑定。\n */\nconst resolveContextValueWrapper = (selectName: string): any => {\n const value = resolveContextValue(selectName, props.context, [\n 'formModel',\n ...(props.baseKeyPath || []),\n ]);\n return value;\n};\n\n/**\n * searchType === 1 时按 key 同时处理 outModel 与 formModel:\n * 1. outModel 中存在该字段且有值(非 undefined / null)时,优先取 outModel 的值;\n * 2. 否则回退到 formModel 中的同名字段。\n * 注意:不能用 `outModel ? outModel : formModel` 做「对象级」二选一 ——\n * outModel 有默认值 `{}`(恒为真值),且它可能只包含部分字段,\n * 对象级判断会导致 formModel 兜底永远不生效。这里必须做「字段级」查找。\n */\nconst resolveModelValue = (selectName: any): { found: boolean; value: any } => {\n if (\n props.outModel &&\n Object.prototype.hasOwnProperty.call(props.outModel, selectName) &&\n props.outModel[selectName] !== undefined &&\n props.outModel[selectName] !== null\n ) {\n return { found: true, value: props.outModel[selectName] };\n }\n if (props.formModel && Object.prototype.hasOwnProperty.call(props.formModel, selectName)) {\n return { found: true, value: props.formModel[selectName] };\n }\n return { found: false, value: undefined };\n};\n\nconst getConditions = (has_search = true) => {\n const conditions = [];\n let search_conditions = [\n [\n {\n searchType: 3,\n field_name: 'is_active',\n operator: 'eq',\n value: [true],\n format: 'choices',\n class_name: 'bool',\n },\n ],\n ];\n if (props.field.searchConditions) {\n search_conditions = props.field.searchConditions;\n }\n search_conditions.forEach((item: any) => {\n const list = [];\n item.forEach((item1: any) => {\n if (item1.searchType === 1) {\n // outModel 优先、formModel 兜底,两者同时参与查找\n const resolved = resolveModelValue(item1.select_name);\n if (resolved.found) {\n getConditionsItem(resolved.value, list, item1);\n }\n } else if (item1.searchType === 2) {\n Object.keys(props.formModel).forEach((key: any) => {\n if (item1.select_name == key) {\n getConditionsItem(props.formModel[key], list, item1);\n }\n });\n } else if (item1.searchType === 3) {\n getConditionsItem(item1.value, list, item1);\n } else if (item1.searchType === 4) {\n getConditionsItem(resolveContextValueWrapper(item1.select_name), list, item1);\n } else {\n getConditionsItem(item1.value, list, item1);\n }\n });\n conditions.push(list);\n });\n if (searchText.value && has_search) {\n searchConfig.pageSize = 50;\n if (props?.labelKeyList && props?.labelKeyList?.length > 0) {\n props.labelKeyList.forEach((key: any, index: any) => {\n let subSearch = conditions[index];\n if (!subSearch) {\n subSearch = [];\n conditions[index] = subSearch;\n }\n subSearch.push({\n field_name: key,\n operator: 'icontains',\n format: 'input',\n value: [searchText.value],\n class_name: 'str',\n });\n });\n } else {\n if (conditions.length === 0) {\n conditions.push([\n {\n field_name: get_label_key(),\n operator: 'icontains',\n format: 'input',\n value: [searchText.value],\n class_name: 'str',\n },\n ]);\n } else {\n for (const item of conditions) {\n item.push({\n field_name: get_label_key(),\n operator: 'icontains',\n format: 'input',\n value: [searchText.value],\n class_name: 'str',\n });\n }\n }\n }\n }\n return conditions;\n};\nconst getSimpleSearchParams = (has_search = true) => {\n const params = {};\n if (props.field.simpleSearchConditions) {\n props.field.simpleSearchConditions.forEach((item: any) => {\n if (item.searchType === 1) {\n // outModel 优先、formModel 兜底,两者同时参与查找\n const resolved = resolveModelValue(item.select_name);\n if (resolved.found) {\n params[item.field_name] = resolved.value;\n }\n } else if (item.searchType === 2) {\n Object.keys(props.formModel).forEach((key: any) => {\n if (item.select_name == key) {\n const value = props.formModel[key];\n params[item.field_name] = value;\n }\n });\n } else if (item.searchType === 3) {\n params[item.field_name] = item.value;\n } else if (item.searchType === 4) {\n params[item.field_name] = resolveContextValueWrapper(item.select_name);\n }\n });\n }\n if (searchText.value && has_search) {\n if (props?.labelKeyList && props?.labelKeyList?.length > 0) {\n props.labelKeyList.forEach((key: any) => {\n params[key] = searchText.value;\n });\n } else {\n params[get_label_key()] = searchText.value;\n }\n }\n return params;\n};\n\nconst searchConfig: any = {\n current: 1,\n pageSize: 200,\n is_pagination: true,\n request_source: 'strict',\n is_active: true,\n ...props.init_model, // 普通查询条件\n column_fields: [],\n sort_fields: [],\n conditions: [],\n simpleSearchParams: {},\n};\n\nconst get_value_key = () => {\n return props.valueKey || 'id';\n};\n\nconst get_label_key = () => {\n return props.labelKey || 'name';\n};\n\nconst get_sort_fields = () => {\n const list = [];\n if (props?.labelKeyList && props?.labelKeyList?.length > 0 && props.labelKeyType !== 1) {\n list.push(...props.labelKeyList);\n } else {\n list.push(get_label_key());\n }\n return list;\n};\n\nconst getColumnFields = () => {\n const list = [];\n if (props?.labelKeyList && props?.labelKeyList?.length > 0 && props.labelKeyType !== 1) {\n list.push(get_value_key(), ...props.labelKeyList);\n } else {\n list.push(get_value_key(), get_label_key());\n }\n if (props.field?.extendedFields && props.field?.extendedFields.length > 0) {\n list.push(...props.field.extendedFields);\n }\n // 去重\n const uniqueList = [...new Set(list)];\n searchConfig.column_fields = [].concat(uniqueList);\n};\n\ngetColumnFields();\nsearchConfig.sort_fields = get_sort_fields();\nif (props.init_model?.sort_fields) {\n searchConfig.sort_fields = props.init_model?.sort_fields;\n}\n\nconst checkEqualSelected = (value: any) => {\n if (Array.isArray(modalRef.selectedRows)) {\n if (modalRef.selectedRows.includes(value)) {\n return true;\n }\n } else {\n if (modalRef.selectedRows === value) {\n return true;\n }\n }\n return false;\n};\n\n/**\n * 对已选值数组去重。\n * 多选模式下,搜索区多次「展开/隐藏」会导致组件反复挂载初始化,\n * 若沿用 push 方式累积,值会重复(如 [1,2] -> [1,2,1,2]),\n * 这里统一在「初始化赋值 / 外部模型同步 / 值上抛」三处出口做去重。\n * 以 String(item) 作为去重键,兼容 id 字段下 1 与 '1' 混用的情况。\n */\nconst dedupeSelected = (list: any[] | null | undefined): any[] => {\n if (!Array.isArray(list)) {\n return [];\n }\n const seen = new Set<string>();\n const result: any[] = [];\n list.forEach(item => {\n const key = String(item);\n if (!seen.has(key)) {\n seen.add(key);\n result.push(item);\n }\n });\n return result;\n};\n\nconst datasource = computed(() => {\n return modalRef.datasource.map(item => {\n // 已经选择的数据不处理labelKeyList\n if (props.labelKeyList && props.labelKeyList.length > 0 && props?.labelKeyType !== 1) {\n const label = [];\n for (const key of props.labelKeyList) {\n label.push(item[key as string]);\n }\n return {\n value: item[get_value_key()],\n label: label.join(props.labelSpace),\n };\n } else {\n return {\n value: item[get_value_key()],\n label: item[get_label_key()],\n };\n }\n });\n});\nconst getDefaultValue = (dataList: any) => {\n if (dataList && !Array.isArray(dataList)) {\n dataList = [dataList];\n }\n if (\n props.field.default &&\n !props.formModel[props.field.name] &&\n props.field.mode == 'default' &&\n dataList.length > 0\n ) {\n props.formModel[props.field.name] = dataList[0];\n const foundItem = modalRef.datasource.find(item => {\n if (item[get_value_key()] == dataList[0]) {\n return true;\n }\n });\n if (foundItem) {\n emit('update:label', foundItem[get_label_key()]);\n }\n }\n if (props.field.mode == 'default') {\n const selectItems: any = datasource.value\n .filter((item: any) => checkEqualSelected(item.value))\n .map((item: any) => item.label);\n emit('update:label', selectItems.length > 0 ? selectItems[0] : '');\n } else {\n emit(\n 'update:label',\n datasource.value\n .filter((item: any) => checkEqualSelected(item.value))\n .map((item: any) => item.label),\n );\n }\n};\nconst setInnerModel = () => {\n if (props.field.mode === 'default') {\n const rawItems = modalRef.datasource.filter((item: any) =>\n checkEqualSelected(item[get_value_key()]),\n );\n if (props.innerModel) {\n props.innerModel[props.field.name] = rawItems[0];\n }\n } else {\n const rawItems = modalRef.datasource.filter((item: any) =>\n checkEqualSelected(item[get_value_key()]),\n );\n if (props.innerModel) {\n props.innerModel[props.field.name] = rawItems;\n }\n }\n};\n\nlet oldParams = {};\nwatch(\n // outModel 参与 searchType===1 的取值(见 resolveModelValue),必须一并监听:\n // 否则外部模型变化时查询条件不会重建。下方 isEqual(oldParams, newParams) 会比对新旧参数,\n // 参数没变就不会真的刷新,不会多打请求。\n () => [props.formModel, props.context, props.outModel],\n () => {\n const newParams = getQueryParams(false);\n if (!isEqual(oldParams, newParams)) {\n oldParams = newParams;\n delayRefresh(true);\n }\n },\n { deep: true },\n);\n\nwatch(\n () => props.formModel[props.field.name],\n () => {\n if (props.field.mode === 'default') {\n if (props.formModel[props.field.name] || props.formModel[props.field.name] === 0) {\n modalRef.selectedRows = [props.formModel[props.field.name]];\n } else {\n modalRef.selectedRows = [];\n }\n const selectItems: any = datasource.value\n .filter((item: any) => checkEqualSelected(item.value))\n .map((item: any) => item.label);\n emit('update:label', selectItems.length > 0 ? selectItems[0] : '');\n } else {\n // 注意:赋值时必须用「去重后的拷贝」,不能直接引用 formModel 里的原数组,\n // 否则组件内部数组会与外部 searchConditions 的值数组共享同一引用,\n // 一旦后续再对 selectedRows 做任何原地修改(如 push),会反向污染外部模型造成值重复\n if (props.formModel[props.field.name] && props.formModel[props.field.name].length > 0) {\n modalRef.selectedRows = dedupeSelected([...props.formModel[props.field.name]]);\n } else {\n modalRef.selectedRows = [];\n }\n emit(\n 'update:label',\n datasource.value\n .filter((item: any) => checkEqualSelected(item.value))\n .map((item: any) => item.label),\n );\n }\n },\n);\n\nwatch(\n () => props.value,\n () => {\n setInnerModel();\n },\n { deep: true },\n);\n\nconst handleRequiredConditionChange = (key: string) => {\n if (props.field.required_condition) {\n const item = props.field.required_condition.find((item: any) => item.key === key);\n if (item) {\n delayRefresh(true);\n }\n }\n};\n\nonMounted(() => {\n let tmpKey = `${route.path}_${props.field.name}_${props.field.postUrl}`;\n tableKey.value = 'remoteselectpro:' + md5(tmpKey);\n initDataSource();\n required_condition_event_obj().on('required_condition_change', handleRequiredConditionChange);\n refresh();\n});\n\nonUnmounted(() => {\n required_condition_event_obj().off('required_condition_change', handleRequiredConditionChange);\n});\nconst initDataSource = () => {\n // 统一的值转换:valueKey 为 id 时,尽量转成 Number,与历史逻辑保持一致\n const convertValue = (item: any) => {\n if (get_value_key() === 'id') {\n if (isNaN(Number(item))) {\n return item;\n } else {\n return Number(item);\n }\n } else {\n return item;\n }\n };\n let list: any[] = [];\n if (props.field.mode === 'default') {\n if (props.value || props.value === 0) {\n list.push(convertValue(props.value));\n }\n } else {\n if (typeof props.value === 'string') {\n list = (props.value as string).split(',').map(convertValue);\n } else if (props.value instanceof Array) {\n list = props.value.map(convertValue);\n } else if (props.value != null) {\n list.push(convertValue(props.value));\n }\n }\n // 必须用「去重后赋值」替代原 push 逻辑:\n // 该组件在搜索区反复显示/隐藏时会多次挂载,每次挂载都会执行到这里,\n // 若 push 到已存在值的数组上(或与外部模型共享引用的数组上),多选值会重复累积\n modalRef.selectedRows = dedupeSelected(list);\n};\nconst handleChange = () => {\n if (props.field.mode == 'default') {\n emit('update:value', modalRef.selectedRows);\n const selectItems: any = datasource.value\n .filter((item: any) => {\n return modalRef.selectedRows == item.value;\n })\n .map((item: any) => item.label);\n emit('update:label', selectItems.length > 0 ? selectItems[0] : '');\n } else {\n // 出口兜底去重:antd 多选对已有重复值时仍会按 [...mergedValues, val] 追加,\n // 这里先对值去重再上抛,保证外部 searchConditions/formModel 中不会出现重复\n modalRef.selectedRows = dedupeSelected(modalRef.selectedRows);\n emit('update:value', modalRef.selectedRows);\n emit(\n 'update:label',\n datasource.value\n .filter((item: any) => checkEqualSelected(item.value))\n .map((item: any) => item.label),\n );\n }\n};\nconst getRequiredConditionObj = () => {\n const required_condition = props.field.required_condition;\n const required_condition_obj = {};\n if (required_condition) {\n required_condition.forEach((item: any) => {\n const value = requiredConditionStore.value_map[item.key];\n if (value !== undefined && value !== null) {\n required_condition_obj[item.field_name] = value;\n }\n });\n }\n return required_condition_obj;\n};\n\n/**\n * 补充之前选择的项对应的数据\n */\nconst externDataSource = async (params: any, selectedRows: any) => {\n if (selectedRows && !Array.isArray(selectedRows)) {\n selectedRows = [selectedRows];\n }\n if (selectedRows && selectedRows.length > 0) {\n const notFoundValues = [];\n selectedRows.forEach((item1: any) => {\n if (!modalRef.datasource.some(item => item[get_value_key()] === item1)) {\n notFoundValues.push(item1);\n }\n });\n if (notFoundValues.length > 0) {\n const obj = { ...params };\n if (props.field.queryType === 'simple') {\n let value = notFoundValues as any;\n if (value instanceof Array && value.length > 0) {\n value = value.join(',');\n }\n obj[get_value_key()] = value;\n } else {\n if (obj.conditions && obj.conditions.length > 0) {\n obj.conditions[0].push({\n class_name: 'int',\n operator: 'in',\n value: notFoundValues,\n format: 'remote',\n field_name: get_value_key(),\n });\n } else {\n obj.conditions = [[]];\n obj.conditions[0].push({\n class_name: 'int',\n operator: 'in',\n value: notFoundValues,\n format: 'remote',\n field_name: get_value_key(),\n });\n }\n }\n const res1 = await getApiData({ ...obj }, props.field.postUrl, false, {\n skip_error: true,\n });\n modalRef.datasource = modalRef.datasource.concat(res1?.data || []);\n }\n }\n};\nconst getQueryParams = (has_search = true) => {\n let params: any = {};\n if (props.field.queryType === 'simple') {\n searchConfig.simpleSearchParams = getSimpleSearchParams(has_search);\n params = {\n ...searchConfig,\n ...searchConfig.simpleSearchParams,\n required_condition: getRequiredConditionObj(),\n };\n delete params.conditions;\n delete params.simpleSearchParams;\n } else {\n searchConfig.conditions = getConditions(has_search);\n params = { ...searchConfig, required_condition: getRequiredConditionObj() };\n delete params.simpleSearchParams;\n }\n return params;\n};\n\nconst refresh = async (clear = false) => {\n // modalRef.datasource.length = 0;\n // 不清空modalRef.datasource,保留原始数据,如果是输入过滤条件筛选的数据,需要去重后,追加到datasource里\n if (props.field.postUrl) {\n if (clear) {\n modalRef.datasource.length = 0;\n }\n const is_first = modalRef.datasource.length === 0;\n const params = getQueryParams();\n const res = await getApiData(params, props.field.postUrl, false, { skip_error: true });\n if (res?.data?.length > 0) {\n const rowKey = get_value_key();\n const new_list = res?.data.filter(i => {\n const f = modalRef.datasource.find(j => {\n return i[rowKey] == j[rowKey];\n });\n return !f;\n });\n modalRef.datasource = modalRef.datasource.concat(new_list);\n if (is_first) {\n await externDataSource(params, modalRef.selectedRows);\n }\n setInnerModel();\n }\n\n if (props.field.defaultValueType === 'first' && !props.is_form_design) {\n if (!props.formModel[props.field.name]) {\n if (props.field.mode === 'default' || !props.field.mode) {\n emit('update:label', modalRef.datasource[0][get_label_key()]);\n emit('update:value', modalRef.datasource[0][get_value_key()]);\n } else {\n emit('update:label', [modalRef.datasource[0][get_label_key()]]);\n emit('update:value', [modalRef.datasource[0][get_value_key()]]);\n }\n }\n } else if (props.field.defaultValueType === 'global' && !props.is_form_design) {\n if (!props.formModel[props.field.name]) {\n const globalDefaultKey = props.field.globalDefaultKey;\n const globalDefaultField = props.field.globalDefaultField;\n const globalDefaultValue = requiredConditionStore.value_map[globalDefaultKey];\n if (globalDefaultValue) {\n const globalDefaultItem = modalRef.datasource.find(\n item1 => item1[globalDefaultField] === globalDefaultValue,\n );\n if (globalDefaultItem) {\n if (props.field.mode === 'default' || !props.field.mode) {\n emit('update:label', globalDefaultItem[get_label_key()]);\n emit('update:value', globalDefaultItem[get_value_key()]);\n } else {\n emit('update:label', [globalDefaultItem[get_label_key()]]);\n emit('update:value', [globalDefaultItem[get_value_key()]]);\n }\n }\n }\n }\n } else {\n getDefaultValue(modalRef.selectedRows);\n }\n }\n};\nconst delayRefresh: any = debounce((clear = false) => {\n refresh(clear);\n}, 500);\n\nwatch(\n () => [\n props.labelKeyList,\n props.labelKey,\n props.labelKeyType,\n props.valueKey,\n props.labelSpace,\n props.field.postUrl,\n ],\n (newValue, oldValue) => {\n if (!isEqual(newValue, oldValue)) {\n getColumnFields();\n searchConfig.sort_fields = get_sort_fields();\n delayRefresh(true);\n }\n },\n { deep: true },\n);\n\nwatch(\n () => [props.field.searchConditions, props.field.queryType, props.field.simpleSearchConditions],\n (newValue, oldValue) => {\n if (!isEqual(newValue, oldValue)) {\n delayRefresh(true);\n }\n },\n { deep: true },\n);\n\nconst handleSearch = (str: any) => {\n searchText.value = str;\n delayRefresh();\n};\n\nconst tableModal = defineAsyncComponent(() => import('./tableModal.vue'));\n\nconst handleOpenTable = () => {\n let currentValue = [];\n searchText.value = '';\n let rowSelectionType = 'checkbox';\n if (props.field.mode === 'default') {\n rowSelectionType = 'radio';\n }\n if (!datasource.value) {\n currentValue = [];\n } else {\n currentValue = datasource.value.filter((item: any) => checkEqualSelected(item.value));\n }\n tableConfig.value = {\n key: tableKey.value,\n title: props.field.label || props.field.name,\n rowSelectionType,\n columns: props.field.table?.columns || [],\n search_config: props.field.table?.search_config || [],\n list_url: props.field.postUrl,\n is_selection: true,\n is_pagination: true,\n hide_header: true,\n };\n const init_model = props.init_model || {};\n if (props.field.queryType === 'simple') {\n tableConfig.value['query_params'] = { ...init_model, ...getSimpleSearchParams() };\n } else {\n const conditions = getConditions();\n tableConfig.value['query_params'] = init_model;\n if (conditions.length > 0 && conditions[0].length > 0) {\n tableConfig.value['base_conditions'] = conditions[0];\n }\n }\n const required_condition = getRequiredConditionObj();\n if (required_condition) {\n tableConfig.value['query_params'] = {\n ...tableConfig.value['query_params'],\n required_condition,\n };\n }\n const tempModal = reactive({\n open: true,\n loading: false,\n component: tableModal,\n isMultiple: props.field.mode !== 'default',\n tableConfig: tableConfig.value,\n labelKey: props.labelKey || 'name',\n value: currentValue,\n labelKeyList: props.labelKeyList || [],\n labelKeyType: props.labelKeyType || 1,\n labelSpace: props.labelSpace || '-',\n valueKey: props.valueKey || 'id',\n ok: async (data: any) => {\n const selectedValues = data.map((item: any) => item.value) || [];\n const selectedLabels = data.map((item: any) => item.label) || [];\n const params = getQueryParams();\n if (props.field.mode == 'default') {\n if (selectedValues.length == 0) {\n modalRef.selectedRows = undefined;\n emit('update:value', modalRef.selectedRows);\n emit('update:label', undefined);\n } else {\n modalRef.selectedRows = selectedValues[0];\n await externDataSource(params, selectedValues[0]);\n emit('update:value', modalRef.selectedRows);\n emit('update:label', selectedLabels[0]);\n }\n } else {\n modalRef.selectedRows = selectedValues;\n await externDataSource(params, selectedValues);\n emit('update:value', modalRef.selectedRows);\n emit('update:label', selectedLabels);\n }\n },\n cancel: () => {\n console.log('cancel');\n },\n });\n modalBox(tempModal);\n};\n\nconst filterOption = (val: string, option: any) => {\n if (datasource.value instanceof Array) {\n const f: any = datasource.value.find(item => {\n return item['value'] == option.key;\n });\n if (f) {\n return String(f['label']).toLowerCase().indexOf(val.toLowerCase()) >= 0;\n } else {\n return false;\n }\n }\n};\n</script>\n<style scoped lang=\"less\">\n.remote-select-pro {\n display: flex;\n align-items: flex-start;\n gap: 4px;\n flex-wrap: nowrap;\n // 禁用状态下文字保持黑色,不显示为灰色\n :deep(.ant-select-disabled.ant-select:not(.ant-select-customize-input) .ant-select-selector) {\n color: #000;\n }\n :deep(.ant-select-disabled .ant-select-selection-item) {\n color: #000;\n }\n}\n.ant-input-group.ant-input-group-compact {\n .remote-select-pro {\n display: flex;\n }\n}\n.ant-form-inline {\n .ant-input-group.ant-input-group-compact {\n .remote-select-pro {\n display: inline-flex;\n }\n }\n}\n.table-search-icon {\n color: black;\n font-size: 17px;\n}\n</style>\n","<template>\n <div class=\"remote-select-pro\">\n <a-select\n v-model:value=\"modalRef.selectedRows\"\n :allow-clear=\"field.allowClear !== false\"\n :default-value=\"field.defaultValue\"\n :disabled=\"field.disabled\"\n :filter-option=\"filterOption\"\n :maxTagCount=\"field.maxTagCount ? field.maxTagCount : 'responsive'\"\n :mode=\"field.mode == 'default' ? null : field.mode\"\n :placeholder=\"placeholder\"\n :show-search=\"field.show_search !== false\"\n size=\"small\"\n :autoClearSearchValue=\"false\"\n @change=\"handleChange\"\n @search=\"handleSearch\"\n style=\"min-width: 120px\"\n >\n <a-select-option\n v-for=\"option in datasource\"\n :key=\"option.value\"\n :value=\"option.value\"\n >\n <bold-matcher\n :text=\"option.label\"\n :pattern=\"searchText\"\n :color=\"field.searchColor\"\n />\n </a-select-option>\n </a-select>\n\n <div\n v-if=\"field.table?.enable\"\n class=\"table-search-icon\"\n style=\"margin-right: 5px\"\n >\n <FileSearchOutlined @click=\"handleOpenTable\" />\n </div>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, defineAsyncComponent, onMounted, onUnmounted, reactive, ref, watch } from 'vue';\nimport { debounce, isEqual } from 'lodash-es';\nimport { convertValueByClassName, isNotEmpty } from 'liyu-pc-base/utils/function';\nimport BoldMatcher from 'liyu-pc-base/components/FormRender/RemoteSelect/boldenText.vue';\nimport { getApiData } from 'liyu-pc-base/api/api-model';\nimport { useRequiredConditionStore, required_condition_event_obj } from 'liyu-pc-base/init-plugin';\nimport modalBox from 'liyu-pc-base/components/form-modal/modal-tools';\nimport md5 from 'blueimp-md5';\nimport { useRoute } from 'vue-router';\nimport { resolveContextValue } from 'liyu-pc-base/components/FormRender/utils';\n\ndefineOptions({\n name: 'RemoteSelectPro',\n});\n\ntype Field = {\n label: string;\n mode: 'multiple' | 'tags' | 'combobox' | 'default';\n cb?: any;\n select_style: any;\n default: string;\n name: string;\n postUrl: string;\n searchConditions: any;\n queryType: string;\n simpleSearchConditions: any;\n maxTagCount: number;\n allowClear: boolean;\n defaultValue: any;\n disabled: boolean;\n show_search: boolean;\n searchColor: string;\n required_condition: any;\n defaultValueType: string;\n globalDefaultKey: string;\n globalDefaultField: string;\n extendedFields: string[];\n table: any;\n};\ninterface Props {\n field: Field;\n valueKey?: string;\n labelKeyType?: number;\n labelKey?: string;\n labelSpace?: string;\n labelKeyList?: any[];\n value?: Array<any> | number | string | null;\n label?: Array<any> | string;\n formModel: Record<string, any>;\n outModel?: Record<string, any>;\n placeholder?: string;\n init_model?: Record<string, any>;\n is_input?: boolean;\n init_watch?: Record<string, any>;\n is_form_design?: boolean;\n innerModel?: any;\n globalInnerModel?: any;\n context?: Record<string, any> | null;\n baseKeyPath?: any;\n}\nconst props = withDefaults(defineProps<Props>(), {\n labelKeyType: 0,\n labelSpace: '-',\n labelKeyList: () => [],\n value: null,\n label: () => [],\n outModel: () => ({}),\n init_model: () => ({}),\n is_input: false,\n init_watch: () => ({}),\n is_form_design: false,\n innerModel: null,\n globalInnerModel: null,\n context: null,\n baseKeyPath: () => [],\n});\n\nconst emit = defineEmits<{\n 'update:value': [value: any];\n 'update:label': [value: any];\n}>();\nconst modalRef = reactive({\n selectedRows: new Array<number | any>(),\n datasource: new Array<any>(),\n});\nconst route = useRoute();\nconst tableKey = ref('remoteSelectPro');\nconst tableConfig = ref(null);\nconst searchText = ref('');\nconst requiredConditionStore = useRequiredConditionStore();\nconst getConditionsItem = (value: any, list: any, item: any) => {\n if (item.operator === 'not_blank_not_null') {\n list.push({\n field_name: item.field_name,\n operator: item.operator,\n value: [],\n format: item.format,\n class_name: item.class_name,\n });\n } else if (value instanceof Array) {\n const [first] = value;\n if (isNotEmpty(first)) {\n list.push({\n field_name: item.field_name,\n operator: item.operator,\n value: convertValueByClassName(value, item.class_name),\n format: item.format,\n class_name: item.class_name,\n });\n }\n } else if (isNotEmpty(value)) {\n let val = value;\n if (item.operator === 'in' || item.operator === 'notin') {\n if (value.includes('[')) {\n val = JSON.parse(value);\n } else if (value.includes(',')) {\n val = value.split(',');\n }\n if (item.class_name === 'int') {\n val = val.map(Number);\n }\n }\n list.push({\n field_name: item.field_name,\n operator: item.operator,\n value: convertValueByClassName(val instanceof Array ? val : [val], item.class_name),\n format: item.format,\n class_name: item.class_name,\n });\n }\n};\n\n/**\n * 解析相对于 baseKeyPath 的表达式,从 props.context 中获取值。\n * 核心算法已移至 utils.ts 的 resolveContextValue,这里仅做 props 绑定。\n */\nconst resolveContextValueWrapper = (selectName: string): any => {\n const value = resolveContextValue(selectName, props.context, [\n 'formModel',\n ...(props.baseKeyPath || []),\n ]);\n return value;\n};\n\n/**\n * searchType === 1 时按 key 同时处理 outModel 与 formModel:\n * 1. outModel 中存在该字段且有值(非 undefined / null)时,优先取 outModel 的值;\n * 2. 否则回退到 formModel 中的同名字段。\n * 注意:不能用 `outModel ? outModel : formModel` 做「对象级」二选一 ——\n * outModel 有默认值 `{}`(恒为真值),且它可能只包含部分字段,\n * 对象级判断会导致 formModel 兜底永远不生效。这里必须做「字段级」查找。\n */\nconst resolveModelValue = (selectName: any): { found: boolean; value: any } => {\n if (\n props.outModel &&\n Object.prototype.hasOwnProperty.call(props.outModel, selectName) &&\n props.outModel[selectName] !== undefined &&\n props.outModel[selectName] !== null\n ) {\n return { found: true, value: props.outModel[selectName] };\n }\n if (props.formModel && Object.prototype.hasOwnProperty.call(props.formModel, selectName)) {\n return { found: true, value: props.formModel[selectName] };\n }\n return { found: false, value: undefined };\n};\n\nconst getConditions = (has_search = true) => {\n const conditions = [];\n let search_conditions = [\n [\n {\n searchType: 3,\n field_name: 'is_active',\n operator: 'eq',\n value: [true],\n format: 'choices',\n class_name: 'bool',\n },\n ],\n ];\n if (props.field.searchConditions) {\n search_conditions = props.field.searchConditions;\n }\n search_conditions.forEach((item: any) => {\n const list = [];\n item.forEach((item1: any) => {\n if (item1.searchType === 1) {\n // outModel 优先、formModel 兜底,两者同时参与查找\n const resolved = resolveModelValue(item1.select_name);\n if (resolved.found) {\n getConditionsItem(resolved.value, list, item1);\n }\n } else if (item1.searchType === 2) {\n Object.keys(props.formModel).forEach((key: any) => {\n if (item1.select_name == key) {\n getConditionsItem(props.formModel[key], list, item1);\n }\n });\n } else if (item1.searchType === 3) {\n getConditionsItem(item1.value, list, item1);\n } else if (item1.searchType === 4) {\n getConditionsItem(resolveContextValueWrapper(item1.select_name), list, item1);\n } else {\n getConditionsItem(item1.value, list, item1);\n }\n });\n conditions.push(list);\n });\n if (searchText.value && has_search) {\n searchConfig.pageSize = 50;\n if (props?.labelKeyList && props?.labelKeyList?.length > 0) {\n props.labelKeyList.forEach((key: any, index: any) => {\n let subSearch = conditions[index];\n if (!subSearch) {\n subSearch = [];\n conditions[index] = subSearch;\n }\n subSearch.push({\n field_name: key,\n operator: 'icontains',\n format: 'input',\n value: [searchText.value],\n class_name: 'str',\n });\n });\n } else {\n if (conditions.length === 0) {\n conditions.push([\n {\n field_name: get_label_key(),\n operator: 'icontains',\n format: 'input',\n value: [searchText.value],\n class_name: 'str',\n },\n ]);\n } else {\n for (const item of conditions) {\n item.push({\n field_name: get_label_key(),\n operator: 'icontains',\n format: 'input',\n value: [searchText.value],\n class_name: 'str',\n });\n }\n }\n }\n }\n return conditions;\n};\nconst getSimpleSearchParams = (has_search = true) => {\n const params = {};\n if (props.field.simpleSearchConditions) {\n props.field.simpleSearchConditions.forEach((item: any) => {\n if (item.searchType === 1) {\n // outModel 优先、formModel 兜底,两者同时参与查找\n const resolved = resolveModelValue(item.select_name);\n if (resolved.found) {\n params[item.field_name] = resolved.value;\n }\n } else if (item.searchType === 2) {\n Object.keys(props.formModel).forEach((key: any) => {\n if (item.select_name == key) {\n const value = props.formModel[key];\n params[item.field_name] = value;\n }\n });\n } else if (item.searchType === 3) {\n params[item.field_name] = item.value;\n } else if (item.searchType === 4) {\n params[item.field_name] = resolveContextValueWrapper(item.select_name);\n }\n });\n }\n if (searchText.value && has_search) {\n if (props?.labelKeyList && props?.labelKeyList?.length > 0) {\n props.labelKeyList.forEach((key: any) => {\n params[key] = searchText.value;\n });\n } else {\n params[get_label_key()] = searchText.value;\n }\n }\n return params;\n};\n\nconst searchConfig: any = {\n current: 1,\n pageSize: 200,\n is_pagination: true,\n request_source: 'strict',\n is_active: true,\n ...props.init_model, // 普通查询条件\n column_fields: [],\n sort_fields: [],\n conditions: [],\n simpleSearchParams: {},\n};\n\nconst get_value_key = () => {\n return props.valueKey || 'id';\n};\n\nconst get_label_key = () => {\n return props.labelKey || 'name';\n};\n\nconst get_sort_fields = () => {\n const list = [];\n if (props?.labelKeyList && props?.labelKeyList?.length > 0 && props.labelKeyType !== 1) {\n list.push(...props.labelKeyList);\n } else {\n list.push(get_label_key());\n }\n return list;\n};\n\nconst getColumnFields = () => {\n const list = [];\n if (props?.labelKeyList && props?.labelKeyList?.length > 0 && props.labelKeyType !== 1) {\n list.push(get_value_key(), ...props.labelKeyList);\n } else {\n list.push(get_value_key(), get_label_key());\n }\n if (props.field?.extendedFields && props.field?.extendedFields.length > 0) {\n list.push(...props.field.extendedFields);\n }\n // 去重\n const uniqueList = [...new Set(list)];\n searchConfig.column_fields = [].concat(uniqueList);\n};\n\ngetColumnFields();\nsearchConfig.sort_fields = get_sort_fields();\nif (props.init_model?.sort_fields) {\n searchConfig.sort_fields = props.init_model?.sort_fields;\n}\n\nconst checkEqualSelected = (value: any) => {\n if (Array.isArray(modalRef.selectedRows)) {\n if (modalRef.selectedRows.includes(value)) {\n return true;\n }\n } else {\n if (modalRef.selectedRows === value) {\n return true;\n }\n }\n return false;\n};\n\n/**\n * 对已选值数组去重。\n * 多选模式下,搜索区多次「展开/隐藏」会导致组件反复挂载初始化,\n * 若沿用 push 方式累积,值会重复(如 [1,2] -> [1,2,1,2]),\n * 这里统一在「初始化赋值 / 外部模型同步 / 值上抛」三处出口做去重。\n * 以 String(item) 作为去重键,兼容 id 字段下 1 与 '1' 混用的情况。\n */\nconst dedupeSelected = (list: any[] | null | undefined): any[] => {\n if (!Array.isArray(list)) {\n return [];\n }\n const seen = new Set<string>();\n const result: any[] = [];\n list.forEach(item => {\n const key = String(item);\n if (!seen.has(key)) {\n seen.add(key);\n result.push(item);\n }\n });\n return result;\n};\n\nconst datasource = computed(() => {\n return modalRef.datasource.map(item => {\n // 已经选择的数据不处理labelKeyList\n if (props.labelKeyList && props.labelKeyList.length > 0 && props?.labelKeyType !== 1) {\n const label = [];\n for (const key of props.labelKeyList) {\n label.push(item[key as string]);\n }\n return {\n value: item[get_value_key()],\n label: label.join(props.labelSpace),\n };\n } else {\n return {\n value: item[get_value_key()],\n label: item[get_label_key()],\n };\n }\n });\n});\nconst getDefaultValue = (dataList: any) => {\n if (dataList && !Array.isArray(dataList)) {\n dataList = [dataList];\n }\n if (\n props.field.default &&\n !props.formModel[props.field.name] &&\n props.field.mode == 'default' &&\n dataList.length > 0\n ) {\n props.formModel[props.field.name] = dataList[0];\n const foundItem = modalRef.datasource.find(item => {\n if (item[get_value_key()] == dataList[0]) {\n return true;\n }\n });\n if (foundItem) {\n emit('update:label', foundItem[get_label_key()]);\n }\n }\n if (props.field.mode == 'default') {\n const selectItems: any = datasource.value\n .filter((item: any) => checkEqualSelected(item.value))\n .map((item: any) => item.label);\n emit('update:label', selectItems.length > 0 ? selectItems[0] : '');\n } else {\n emit(\n 'update:label',\n datasource.value\n .filter((item: any) => checkEqualSelected(item.value))\n .map((item: any) => item.label),\n );\n }\n};\nconst setInnerModel = () => {\n if (props.field.mode === 'default') {\n const rawItems = modalRef.datasource.filter((item: any) =>\n checkEqualSelected(item[get_value_key()]),\n );\n if (props.innerModel) {\n props.innerModel[props.field.name] = rawItems[0];\n }\n } else {\n const rawItems = modalRef.datasource.filter((item: any) =>\n checkEqualSelected(item[get_value_key()]),\n );\n if (props.innerModel) {\n props.innerModel[props.field.name] = rawItems;\n }\n }\n};\n\nlet oldParams = {};\nwatch(\n // outModel 参与 searchType===1 的取值(见 resolveModelValue),必须一并监听:\n // 否则外部模型变化时查询条件不会重建。下方 isEqual(oldParams, newParams) 会比对新旧参数,\n // 参数没变就不会真的刷新,不会多打请求。\n () => [props.formModel, props.context, props.outModel],\n () => {\n const newParams = getQueryParams(false);\n if (!isEqual(oldParams, newParams)) {\n oldParams = newParams;\n delayRefresh(true);\n }\n },\n { deep: true },\n);\n\nwatch(\n () => props.formModel[props.field.name],\n () => {\n if (props.field.mode === 'default') {\n if (props.formModel[props.field.name] || props.formModel[props.field.name] === 0) {\n modalRef.selectedRows = [props.formModel[props.field.name]];\n } else {\n modalRef.selectedRows = [];\n }\n const selectItems: any = datasource.value\n .filter((item: any) => checkEqualSelected(item.value))\n .map((item: any) => item.label);\n emit('update:label', selectItems.length > 0 ? selectItems[0] : '');\n } else {\n // 注意:赋值时必须用「去重后的拷贝」,不能直接引用 formModel 里的原数组,\n // 否则组件内部数组会与外部 searchConditions 的值数组共享同一引用,\n // 一旦后续再对 selectedRows 做任何原地修改(如 push),会反向污染外部模型造成值重复\n if (props.formModel[props.field.name] && props.formModel[props.field.name].length > 0) {\n modalRef.selectedRows = dedupeSelected([...props.formModel[props.field.name]]);\n } else {\n modalRef.selectedRows = [];\n }\n emit(\n 'update:label',\n datasource.value\n .filter((item: any) => checkEqualSelected(item.value))\n .map((item: any) => item.label),\n );\n }\n },\n);\n\nwatch(\n () => props.value,\n () => {\n setInnerModel();\n },\n { deep: true },\n);\n\nconst handleRequiredConditionChange = (key: string) => {\n if (props.field.required_condition) {\n const item = props.field.required_condition.find((item: any) => item.key === key);\n if (item) {\n delayRefresh(true);\n }\n }\n};\n\nonMounted(() => {\n let tmpKey = `${route.path}_${props.field.name}_${props.field.postUrl}`;\n tableKey.value = 'remoteselectpro:' + md5(tmpKey);\n initDataSource();\n required_condition_event_obj().on('required_condition_change', handleRequiredConditionChange);\n refresh();\n});\n\nonUnmounted(() => {\n required_condition_event_obj().off('required_condition_change', handleRequiredConditionChange);\n});\nconst initDataSource = () => {\n // 统一的值转换:valueKey 为 id 时,尽量转成 Number,与历史逻辑保持一致\n const convertValue = (item: any) => {\n if (get_value_key() === 'id') {\n if (isNaN(Number(item))) {\n return item;\n } else {\n return Number(item);\n }\n } else {\n return item;\n }\n };\n let list: any[] = [];\n if (props.field.mode === 'default') {\n if (props.value || props.value === 0) {\n list.push(convertValue(props.value));\n }\n } else {\n if (typeof props.value === 'string') {\n list = (props.value as string).split(',').map(convertValue);\n } else if (props.value instanceof Array) {\n list = props.value.map(convertValue);\n } else if (props.value != null) {\n list.push(convertValue(props.value));\n }\n }\n // 必须用「去重后赋值」替代原 push 逻辑:\n // 该组件在搜索区反复显示/隐藏时会多次挂载,每次挂载都会执行到这里,\n // 若 push 到已存在值的数组上(或与外部模型共享引用的数组上),多选值会重复累积\n modalRef.selectedRows = dedupeSelected(list);\n};\nconst handleChange = () => {\n if (props.field.mode == 'default') {\n emit('update:value', modalRef.selectedRows);\n const selectItems: any = datasource.value\n .filter((item: any) => {\n return modalRef.selectedRows == item.value;\n })\n .map((item: any) => item.label);\n emit('update:label', selectItems.length > 0 ? selectItems[0] : '');\n } else {\n // 出口兜底去重:antd 多选对已有重复值时仍会按 [...mergedValues, val] 追加,\n // 这里先对值去重再上抛,保证外部 searchConditions/formModel 中不会出现重复\n modalRef.selectedRows = dedupeSelected(modalRef.selectedRows);\n emit('update:value', modalRef.selectedRows);\n emit(\n 'update:label',\n datasource.value\n .filter((item: any) => checkEqualSelected(item.value))\n .map((item: any) => item.label),\n );\n }\n};\nconst getRequiredConditionObj = () => {\n const required_condition = props.field.required_condition;\n const required_condition_obj = {};\n if (required_condition) {\n required_condition.forEach((item: any) => {\n const value = requiredConditionStore.value_map[item.key];\n if (value !== undefined && value !== null) {\n required_condition_obj[item.field_name] = value;\n }\n });\n }\n return required_condition_obj;\n};\n\n/**\n * 补充之前选择的项对应的数据\n */\nconst externDataSource = async (params: any, selectedRows: any) => {\n if (selectedRows && !Array.isArray(selectedRows)) {\n selectedRows = [selectedRows];\n }\n if (selectedRows && selectedRows.length > 0) {\n const notFoundValues = [];\n selectedRows.forEach((item1: any) => {\n if (!modalRef.datasource.some(item => item[get_value_key()] === item1)) {\n notFoundValues.push(item1);\n }\n });\n if (notFoundValues.length > 0) {\n const obj = { ...params };\n if (props.field.queryType === 'simple') {\n let value = notFoundValues as any;\n if (value instanceof Array && value.length > 0) {\n value = value.join(',');\n }\n obj[get_value_key()] = value;\n } else {\n if (obj.conditions && obj.conditions.length > 0) {\n obj.conditions[0].push({\n class_name: 'int',\n operator: 'in',\n value: notFoundValues,\n format: 'remote',\n field_name: get_value_key(),\n });\n } else {\n obj.conditions = [[]];\n obj.conditions[0].push({\n class_name: 'int',\n operator: 'in',\n value: notFoundValues,\n format: 'remote',\n field_name: get_value_key(),\n });\n }\n }\n const res1 = await getApiData({ ...obj }, props.field.postUrl, false, {\n skip_error: true,\n });\n modalRef.datasource = modalRef.datasource.concat(res1?.data || []);\n }\n }\n};\nconst getQueryParams = (has_search = true) => {\n let params: any = {};\n if (props.field.queryType === 'simple') {\n searchConfig.simpleSearchParams = getSimpleSearchParams(has_search);\n params = {\n ...searchConfig,\n ...searchConfig.simpleSearchParams,\n required_condition: getRequiredConditionObj(),\n };\n delete params.conditions;\n delete params.simpleSearchParams;\n } else {\n searchConfig.conditions = getConditions(has_search);\n params = { ...searchConfig, required_condition: getRequiredConditionObj() };\n delete params.simpleSearchParams;\n }\n return params;\n};\n\nconst refresh = async (clear = false) => {\n // modalRef.datasource.length = 0;\n // 不清空modalRef.datasource,保留原始数据,如果是输入过滤条件筛选的数据,需要去重后,追加到datasource里\n if (props.field.postUrl) {\n if (clear) {\n modalRef.datasource.length = 0;\n }\n const is_first = modalRef.datasource.length === 0;\n const params = getQueryParams();\n const res = await getApiData(params, props.field.postUrl, false, { skip_error: true });\n if (res?.data?.length > 0) {\n const rowKey = get_value_key();\n const new_list = res?.data.filter(i => {\n const f = modalRef.datasource.find(j => {\n return i[rowKey] == j[rowKey];\n });\n return !f;\n });\n modalRef.datasource = modalRef.datasource.concat(new_list);\n if (is_first) {\n await externDataSource(params, modalRef.selectedRows);\n }\n setInnerModel();\n }\n\n if (props.field.defaultValueType === 'first' && !props.is_form_design) {\n if (!props.formModel[props.field.name]) {\n if (props.field.mode === 'default' || !props.field.mode) {\n emit('update:label', modalRef.datasource[0][get_label_key()]);\n emit('update:value', modalRef.datasource[0][get_value_key()]);\n } else {\n emit('update:label', [modalRef.datasource[0][get_label_key()]]);\n emit('update:value', [modalRef.datasource[0][get_value_key()]]);\n }\n }\n } else if (props.field.defaultValueType === 'global' && !props.is_form_design) {\n if (!props.formModel[props.field.name]) {\n const globalDefaultKey = props.field.globalDefaultKey;\n const globalDefaultField = props.field.globalDefaultField;\n const globalDefaultValue = requiredConditionStore.value_map[globalDefaultKey];\n if (globalDefaultValue) {\n const globalDefaultItem = modalRef.datasource.find(\n item1 => item1[globalDefaultField] === globalDefaultValue,\n );\n if (globalDefaultItem) {\n if (props.field.mode === 'default' || !props.field.mode) {\n emit('update:label', globalDefaultItem[get_label_key()]);\n emit('update:value', globalDefaultItem[get_value_key()]);\n } else {\n emit('update:label', [globalDefaultItem[get_label_key()]]);\n emit('update:value', [globalDefaultItem[get_value_key()]]);\n }\n }\n }\n }\n } else {\n getDefaultValue(modalRef.selectedRows);\n }\n }\n};\nconst delayRefresh: any = debounce((clear = false) => {\n refresh(clear);\n}, 500);\n\nwatch(\n () => [\n props.labelKeyList,\n props.labelKey,\n props.labelKeyType,\n props.valueKey,\n props.labelSpace,\n props.field.postUrl,\n ],\n (newValue, oldValue) => {\n if (!isEqual(newValue, oldValue)) {\n getColumnFields();\n searchConfig.sort_fields = get_sort_fields();\n delayRefresh(true);\n }\n },\n { deep: true },\n);\n\nwatch(\n () => [props.field.searchConditions, props.field.queryType, props.field.simpleSearchConditions],\n (newValue, oldValue) => {\n if (!isEqual(newValue, oldValue)) {\n delayRefresh(true);\n }\n },\n { deep: true },\n);\n\nconst handleSearch = (str: any) => {\n searchText.value = str;\n delayRefresh();\n};\n\nconst tableModal = defineAsyncComponent(() => import('./tableModal.vue'));\n\nconst handleOpenTable = () => {\n let currentValue = [];\n searchText.value = '';\n let rowSelectionType = 'checkbox';\n if (props.field.mode === 'default') {\n rowSelectionType = 'radio';\n }\n if (!datasource.value) {\n currentValue = [];\n } else {\n currentValue = datasource.value.filter((item: any) => checkEqualSelected(item.value));\n }\n tableConfig.value = {\n key: tableKey.value,\n title: props.field.label || props.field.name,\n rowSelectionType,\n columns: props.field.table?.columns || [],\n search_config: props.field.table?.search_config || [],\n list_url: props.field.postUrl,\n is_selection: true,\n is_pagination: true,\n hide_header: true,\n };\n const init_model = props.init_model || {};\n if (props.field.queryType === 'simple') {\n tableConfig.value['query_params'] = { ...init_model, ...getSimpleSearchParams() };\n } else {\n const conditions = getConditions();\n tableConfig.value['query_params'] = init_model;\n if (conditions.length > 0 && conditions[0].length > 0) {\n tableConfig.value['base_conditions'] = conditions[0];\n }\n }\n const required_condition = getRequiredConditionObj();\n if (required_condition) {\n tableConfig.value['query_params'] = {\n ...tableConfig.value['query_params'],\n required_condition,\n };\n }\n const tempModal = reactive({\n open: true,\n loading: false,\n component: tableModal,\n isMultiple: props.field.mode !== 'default',\n tableConfig: tableConfig.value,\n labelKey: props.labelKey || 'name',\n value: currentValue,\n labelKeyList: props.labelKeyList || [],\n labelKeyType: props.labelKeyType || 1,\n labelSpace: props.labelSpace || '-',\n valueKey: props.valueKey || 'id',\n ok: async (data: any) => {\n const selectedValues = data.map((item: any) => item.value) || [];\n const selectedLabels = data.map((item: any) => item.label) || [];\n const params = getQueryParams();\n if (props.field.mode == 'default') {\n if (selectedValues.length == 0) {\n modalRef.selectedRows = undefined;\n emit('update:value', modalRef.selectedRows);\n emit('update:label', undefined);\n } else {\n modalRef.selectedRows = selectedValues[0];\n await externDataSource(params, selectedValues[0]);\n emit('update:value', modalRef.selectedRows);\n emit('update:label', selectedLabels[0]);\n }\n } else {\n modalRef.selectedRows = selectedValues;\n await externDataSource(params, selectedValues);\n emit('update:value', modalRef.selectedRows);\n emit('update:label', selectedLabels);\n }\n },\n cancel: () => {\n console.log('cancel');\n },\n });\n modalBox(tempModal);\n};\n\nconst filterOption = (val: string, option: any) => {\n if (datasource.value instanceof Array) {\n const f: any = datasource.value.find(item => {\n return item['value'] == option.key;\n });\n if (f) {\n return String(f['label']).toLowerCase().indexOf(val.toLowerCase()) >= 0;\n } else {\n return false;\n }\n }\n};\n</script>\n<style scoped lang=\"less\">\n.remote-select-pro {\n display: flex;\n align-items: flex-start;\n gap: 4px;\n flex-wrap: nowrap;\n // 禁用状态下文字保持黑色,不显示为灰色\n :deep(.ant-select-disabled.ant-select:not(.ant-select-customize-input) .ant-select-selector) {\n color: #000;\n }\n :deep(.ant-select-disabled .ant-select-selection-item) {\n color: #000;\n }\n}\n.ant-input-group.ant-input-group-compact {\n .remote-select-pro {\n display: flex;\n }\n}\n.ant-form-inline {\n .ant-input-group.ant-input-group-compact {\n .remote-select-pro {\n display: inline-flex;\n }\n }\n}\n.table-search-icon {\n color: black;\n font-size: 17px;\n}\n</style>\n"],"mappings":"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"}
|