@fe6/water-pro
Version:
An enterprise-class UI design language and Vue-based implementation
58 lines (49 loc) • 1.13 kB
JavaScript
/** @format */
import { ref } from 'vue';
import { isFunction, isArray } from '@fe6/shared';
import warning from '../warning';
export default (function (api) {
var loading = ref(false);
var result = ref([]);
function fetch(params) {
var _ref = params || {},
success = _ref.success,
fecthParams = _ref.params,
error = _ref.error;
if (!api || !isFunction(api) || typeof api !== 'function') {
return;
}
try {
loading.value = true;
var res = api({
params: fecthParams,
success: success,
error: error
});
loading.value = false;
if (isArray(res)) {
result.value = res;
if (isFunction(success)) {
success(res);
}
return;
}
} catch (err) {
if (isFunction(error)) {
error();
}
warning(err);
} finally {
loading.value = false;
}
}
var setLoading = function setLoading(loadingStatue) {
loading.value = loadingStatue;
};
return {
loading: loading,
fetch: fetch,
result: result,
setLoading: setLoading
};
});