UNPKG

vue-admin-core

Version:
61 lines (57 loc) 1.7 kB
'use strict'; var core = require('@formily/core'); require('../../components/config-provider/index.js'); require('../useRequest/index.js'); var vue = require('vue'); var lodashEs = require('lodash-es'); var useGlobalConfig = require('../../components/config-provider/src/hooks/use-global-config.js'); var useRequest = require('../useRequest/src/useRequest.js'); const useRemote = ({ form, target }, service, options) => { const { pagination, ...reset } = options || {}; const config = useGlobalConfig.useGlobalConfig(); const request = useRequest.default(service, reset); let totalKey = config.value.totalKey || "totalElements"; let listKey = config.value.listKey || "content"; if (!lodashEs.isBoolean(pagination) && pagination) { totalKey = pagination.totalKey; listKey = pagination.listKey; } vue.watch(request.loading, (loading) => { vue.toValue(form).query(target).take((field) => { if (core.isField(field)) field.setLoading(loading); }); }, { immediate: true }); vue.watch([request.data], ([data]) => { if (!data) return; const field = vue.toValue(form).query(target).take(); if (!field) return; if (!core.isField(field)) return; if (field.componentType === "TableSelect" && pagination) { field.setDataSource(data[listKey]); field.setComponentProps({ total: data[totalKey], // @ts-ignore onCurrentChange: (value) => request.run({ [config.value.currentPageKey]: value }) }); } else { field.setDataSource(data); } }); return request; }; exports.useRemote = useRemote; //# sourceMappingURL=useRemote.js.map