UNPKG

@oiij/naive-ui

Version:

Some Composable Functions And Components for Vue 3

90 lines (88 loc) 2.2 kB
import { useDataRequest } from "../../composables/useDataRequest.js"; import { computed, defineComponent, guardReactiveProps, normalizeProps, renderSlot, toValue } from "vue"; //#region src/components/remote-request/RemoteRequest.vue const _sfc_main = /* @__PURE__ */ defineComponent({ __name: "RemoteRequest", props: { api: { type: Function }, defaultParams: {}, manual: { type: Boolean }, fields: {}, requestOptions: {}, requestPlugins: {} }, emits: [ "before", "success", "error", "finally" ], setup(__props, { expose: __expose, emit: __emit }) { const emit = __emit; const _fields = { page: "page", pageSize: "pageSize", list: "list", count: "count", ...__props.fields }; const { loading, data, error, params, list, pagination, run, runAsync, refresh, refreshAsync, cancel, mutate, setParams, runParams, runParamsAsync, onBefore, onSuccess, onError, onFinally } = useDataRequest(__props.api, { defaultParams: __props.defaultParams, fields: _fields, manual: __props.manual, requestOptions: __props.requestOptions, requestPlugins: __props.requestPlugins }); onBefore((params$1) => { emit("before", params$1); }); onSuccess((data$1, params$1) => { emit("success", data$1, params$1); }); onError((err, params$1) => { emit("error", err, params$1); }); onFinally((params$1, data$1, err) => { emit("finally", params$1, data$1, err); }); const expose = { loading, data, error, params, list, pagination, run, runAsync, refresh, refreshAsync, cancel, mutate, setParams, runParams, runParamsAsync, onBefore, onSuccess, onError, onFinally }; const templateBind = computed(() => { return { ...expose, loading: toValue(loading), data: toValue(data), error: toValue(error), params: toValue(params), list: toValue(list), pagination: toValue(pagination) }; }); __expose(expose); return (_ctx, _cache) => { return renderSlot(_ctx.$slots, "default", normalizeProps(guardReactiveProps(templateBind.value))); }; } }); var RemoteRequest_default = _sfc_main; //#endregion export { RemoteRequest_default as default };