diff --git a/hx-ai-intelligent/src/api/index.ts b/hx-ai-intelligent/src/api/index.ts index a2e9325..22478b4 100644 --- a/hx-ai-intelligent/src/api/index.ts +++ b/hx-ai-intelligent/src/api/index.ts @@ -1,3 +1,6 @@ +import { get } from 'lodash-es'; +import { http } from '/nerv-lib/util/http'; + /*** *配置接口 格式 module:Array */ @@ -6,4 +9,32 @@ export const apiModule = { }; 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) } }); +}; diff --git a/hx-ai-intelligent/src/view/equipmentManage/group/config.ts b/hx-ai-intelligent/src/view/equipmentManage/group/config.ts index 83a911a..4dee03b 100644 --- a/hx-ai-intelligent/src/view/equipmentManage/group/config.ts +++ b/hx-ai-intelligent/src/view/equipmentManage/group/config.ts @@ -137,10 +137,10 @@ export const treeConfig = (orgId) => { component: 'NsSelectApi', autoSubmit: true, componentProps: { - api: dict, - params: { dicKey: 'ENERGY_TYPE' }, + api: () => dict({ params: { dicKey: 'ENERGY_TYPE' } }), + // params: { dicKey: 'ENERGY_TYPE' }, immediate: true, - resultField: 'data.ENERGY_TYPE', + // resultField: 'data.ENERGY_TYPE', labelField: 'cnValue', valueField: 'cnValue', placeholder: '请选择能耗种类',