vue-admin-core
Version:
A Component Library for Vue 3
1 lines • 4.16 kB
Source Map (JSON)
{"version":3,"file":"useRemote.mjs","sources":["../../../../../package/hooks/formily/useRemote.tsx"],"sourcesContent":["import { Form, FormPathPattern, isField } from \"@formily/core\";\nimport { useGlobalConfig } from \"@vue-admin-core/components/config-provider\";\nimport useRequest from \"../useRequest\";\nimport { Options, Service } from \"../useRequest/src/types\";\nimport { Ref, toValue, watch } from \"vue\";\nimport { isBoolean } from \"lodash-es\";\n\nexport const useRemote = <TData, TParams extends any[]>(\n {\n form,\n target\n }: {\n form: Ref<Form>;\n target: FormPathPattern;\n },\n service: Service<TData, TParams>,\n options: Options<TData, TParams> & {\n pagination?:\n | {\n totalKey: string;\n listKey: string;\n }\n | boolean;\n }\n) => {\n const { pagination, ...reset } = options || {};\n const config = useGlobalConfig();\n const request = useRequest(service, reset);\n\n let totalKey = config.value.totalKey || \"totalElements\";\n let listKey = config.value.listKey || \"content\";\n\n if (!isBoolean(pagination) && pagination) {\n totalKey = pagination.totalKey;\n listKey = pagination.listKey;\n }\n\n watch(\n request.loading,\n (loading) => {\n toValue(form)\n .query(target)\n .take((field) => {\n if (isField(field)) field.setLoading(loading as boolean);\n });\n },\n { immediate: true }\n );\n\n watch([request.data], ([data]) => {\n if (!data) return;\n const field = toValue(form).query(target).take();\n if (!field) return;\n if (!isField(field)) return;\n if (field.componentType === \"TableSelect\" && pagination) {\n field.setDataSource((data as any)[listKey]);\n field.setComponentProps({\n total: (data as any)[totalKey],\n // @ts-ignore\n onCurrentChange: (value: number) => request.run({ [config.value.currentPageKey]: value })\n });\n } else {\n field.setDataSource(data as any);\n }\n });\n\n return request;\n};\n"],"names":["useRemote","form","target","service","options","pagination","reset","config","useGlobalConfig","request","useRequest","totalKey","value","listKey","isBoolean","watch","loading","toValue","query","take","field","isField","setLoading","immediate","data","componentType","setDataSource","setComponentProps","total","onCurrentChange","run","currentPageKey"],"mappings":";;;;;;;;AAOO,MAAMA,YAAYA,CACvB;AAAA,EACEC,IAAAA;AAAAA,EACAC,MAAAA;AAIF,CAAA,EACAC,SACAC,OAQG,KAAA;AACH,EAAM,MAAA;AAAA,IAAEC,UAAAA;AAAAA,IAAY,GAAGC,KAAAA;AAAAA,GAAM,GAAIF,WAAW,EAAC,CAAA;AAC7C,EAAA,MAAMG,SAASC,eAAgB,EAAA,CAAA;AAC/B,EAAMC,MAAAA,OAAAA,GAAUC,UAAWP,CAAAA,OAAAA,EAASG,KAAK,CAAA,CAAA;AAEzC,EAAIK,IAAAA,QAAAA,GAAWJ,MAAOK,CAAAA,KAAAA,CAAMD,QAAY,IAAA,eAAA,CAAA;AACxC,EAAIE,IAAAA,OAAAA,GAAUN,MAAOK,CAAAA,KAAAA,CAAMC,OAAW,IAAA,SAAA,CAAA;AAEtC,EAAA,IAAI,CAACC,SAAAA,CAAUT,UAAU,CAAA,IAAKA,UAAY,EAAA;AACxCM,IAAAA,QAAAA,GAAWN,UAAWM,CAAAA,QAAAA,CAAAA;AACtBE,IAAAA,OAAAA,GAAUR,UAAWQ,CAAAA,OAAAA,CAAAA;AAAAA,GACvB;AAEAE,EACEN,KAAAA,CAAAA,OAAAA,CAAQO,SACPA,CAAY,OAAA,KAAA;AACXC,IAAAA,OAAAA,CAAQhB,IAAI,CACTiB,CAAAA,KAAAA,CAAMhB,MAAM,CAAA,CACZiB,KAAMC,CAAU,KAAA,KAAA;AACf,MAAA,IAAIC,QAAQD,KAAK,CAAA;AAAGA,QAAAA,KAAAA,CAAME,WAAWN,OAAkB,CAAA,CAAA;AAAA,KACxD,CAAA,CAAA;AAAA,GAEL,EAAA;AAAA,IAAEO,SAAW,EAAA,IAAA;AAAA,GACf,CAAA,CAAA;AAEAR,EAAAA,KAAAA,CAAM,CAACN,OAAQe,CAAAA,IAAI,GAAG,CAAC,CAACA,IAAI,CAAM,KAAA;AAChC,IAAA,IAAI,CAACA,IAAAA;AAAM,MAAA,OAAA;AACX,IAAA,MAAMJ,QAAQH,OAAQhB,CAAAA,IAAI,EAAEiB,KAAMhB,CAAAA,MAAM,EAAEiB,IAAK,EAAA,CAAA;AAC/C,IAAA,IAAI,CAACC,KAAAA;AAAO,MAAA,OAAA;AACZ,IAAI,IAAA,CAACC,QAAQD,KAAK,CAAA;AAAG,MAAA,OAAA;AACrB,IAAIA,IAAAA,KAAAA,CAAMK,aAAkB,KAAA,aAAA,IAAiBpB,UAAY,EAAA;AACvDe,MAAMM,KAAAA,CAAAA,aAAAA,CAAeF,IAAaX,CAAAA,OAAO,CAAC,CAAA,CAAA;AAC1CO,MAAAA,KAAAA,CAAMO,iBAAkB,CAAA;AAAA,QACtBC,KAAAA,EAAQJ,KAAab,QAAQ,CAAA;AAAA;AAAA,QAE7BkB,eAAAA,EAAkBjB,CAAkBH,KAAAA,KAAAA,OAAAA,CAAQqB,GAAI,CAAA;AAAA,UAAE,CAACvB,MAAAA,CAAOK,KAAMmB,CAAAA,cAAc,GAAGnB,KAAAA;AAAAA,SAAO,CAAA;AAAA,OACzF,CAAA,CAAA;AAAA,KACI,MAAA;AACLQ,MAAAA,KAAAA,CAAMM,cAAcF,IAAW,CAAA,CAAA;AAAA,KACjC;AAAA,GACD,CAAA,CAAA;AAED,EAAOf,OAAAA,OAAAA,CAAAA;AACT;;;;"}