@fmdevui/fm-dev
Version:
Page level components developed based on Element Plus.
37 lines (33 loc) • 1.12 kB
JavaScript
;
var pinia = require('pinia');
var index = require('../api/base/index.js');
var vue = require('vue');
const usefminputdropdownstore = pinia.defineStore("fminputdropdownstore", () => {
const state = vue.reactive({
optionsData: {}
});
const getOptionsData = async (apiService, apiAction, basecode, reload = false, multibasecode = []) => {
if (!reload) {
if (state.optionsData[basecode] && state.optionsData[basecode].length > 0) {
return state.optionsData[basecode];
}
}
const res = await index.useBaseApi(apiService).get(null, apiAction + "/?codetype=" + basecode + "&mcodes=" + multibasecode.join(","));
if (multibasecode.length > 0) {
const mdata = res.data.result ?? [];
multibasecode.forEach((p) => {
const tempdata = mdata.filter((x) => {
return x.code == p;
});
state.optionsData[p] = tempdata ?? [];
});
} else {
return state.optionsData[basecode] = res.data.result ?? [];
}
};
return {
state,
getOptionsData
};
});
exports.usefminputdropdownstore = usefminputdropdownstore;