fix: 获取字典数据方法
This commit is contained in:
@@ -1,3 +1,6 @@
|
|||||||
|
import { get } from 'lodash-es';
|
||||||
|
import { http } from '/nerv-lib/util/http';
|
||||||
|
|
||||||
/***
|
/***
|
||||||
*配置接口 格式 module:Array<resource>
|
*配置接口 格式 module:Array<resource>
|
||||||
*/
|
*/
|
||||||
@@ -6,4 +9,32 @@ export const apiModule = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
export const BASE_URL = '/carbon-smart';
|
export const BASE_URL = '/carbon-smart';
|
||||||
export const dict = `${BASE_URL}/client/dict/listByKey`;
|
|
||||||
|
interface dictHttpConfig {
|
||||||
|
api?: string;
|
||||||
|
keyField?: string;
|
||||||
|
params: object;
|
||||||
|
transform?: Function;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取字典数据(首次获取,后续读缓存)
|
||||||
|
*/
|
||||||
|
|
||||||
|
export const dict = async ({
|
||||||
|
api = `${BASE_URL}/client/dict/listByKey`,
|
||||||
|
params = {},
|
||||||
|
keyField = 'dicKey',
|
||||||
|
transform = (res: any) => res,
|
||||||
|
}: dictHttpConfig) => {
|
||||||
|
const dictMap = JSON.parse(sessionStorage.getItem('dictMap') || '{}') as Object;
|
||||||
|
const key = get(params, keyField) as keyof typeof dictMap;
|
||||||
|
|
||||||
|
if (!dictMap.hasOwnProperty(key)) {
|
||||||
|
const res = await http.post(api, params);
|
||||||
|
const options = get(transform(res), `data.${key}`);
|
||||||
|
dictMap[key] = options;
|
||||||
|
sessionStorage.setItem('dictMap', JSON.stringify(dictMap));
|
||||||
|
}
|
||||||
|
return Promise.resolve({ data: { data: get(dictMap, key) } });
|
||||||
|
};
|
||||||
|
@@ -137,10 +137,10 @@ export const treeConfig = (orgId) => {
|
|||||||
component: 'NsSelectApi',
|
component: 'NsSelectApi',
|
||||||
autoSubmit: true,
|
autoSubmit: true,
|
||||||
componentProps: {
|
componentProps: {
|
||||||
api: dict,
|
api: () => dict({ params: { dicKey: 'ENERGY_TYPE' } }),
|
||||||
params: { dicKey: 'ENERGY_TYPE' },
|
// params: { dicKey: 'ENERGY_TYPE' },
|
||||||
immediate: true,
|
immediate: true,
|
||||||
resultField: 'data.ENERGY_TYPE',
|
// resultField: 'data.ENERGY_TYPE',
|
||||||
labelField: 'cnValue',
|
labelField: 'cnValue',
|
||||||
valueField: 'cnValue',
|
valueField: 'cnValue',
|
||||||
placeholder: '请选择能耗种类',
|
placeholder: '请选择能耗种类',
|
||||||
|
Reference in New Issue
Block a user