|
@@ -34,7 +34,7 @@ export function reducer(state: State, action: Action) {
|
|
|
export default (): {
|
|
|
state: State;
|
|
|
init: () => void;
|
|
|
- getEnum: (enumName: string, type: "map" | "arr" | "obj") => any;
|
|
|
+ getEnum: (enumName: string, type: "map" | "arr" | "obj",stateEnum?:{success?:number,error?:number,default?:number,processing?:number,warning:number}) => any;
|
|
|
getLabelAndClassList: (params?: { workDirection: number | string }) => Promise<boolean>;
|
|
|
} => {
|
|
|
const [state, dispatch] = useReducer(reducer, {});
|
|
@@ -106,24 +106,38 @@ export default (): {
|
|
|
dispatch({ type: 'setAll', params: { ...state, labelList, categoryList } });
|
|
|
return true;
|
|
|
};
|
|
|
- const getEnum = (enumName: string, type: "map" | "arr" | "obj") => {
|
|
|
+ /**
|
|
|
+ * @param enumName 枚举名称
|
|
|
+ * @param type 类型 "map" 通用在列表中选中值输出值会变成number | "arr" 数组类型返回 | "obj" 对象类型返回 再列表中选中输出值为string | "stateObj" 带状态徽标返回的对象
|
|
|
+ * @param stateEnum 类型 "stateObj" 时传入映射对象 {success?:number,error?:number,default?:number,processing?:number,warning:number} number为对应值展示什么状态
|
|
|
+ * */
|
|
|
+ const getEnum = (enumName: string, type: "map" | "arr" | "obj" | "stateObj",stateEnum?:{success?:number,error?:number,default?:number,processing?:number,warning:number}) => {
|
|
|
let arr = state?.enumList?.[enumName]?.values
|
|
|
// console.log("arr",enumName,arr)
|
|
|
switch (type) {
|
|
|
- case "map":
|
|
|
- return new Map(arr?.map(({ value, description }: any) => [value, description]))
|
|
|
- case "arr":
|
|
|
- return arr?.map(({ value, description }: any) => ({ value, key: value, label: description, disabled: false }))
|
|
|
- case "obj":
|
|
|
- let obj: any = {}
|
|
|
- if (arr) {
|
|
|
- for (let item of arr) {
|
|
|
- obj[item?.value] = { text: item?.description, disabled: false }
|
|
|
- }
|
|
|
- }
|
|
|
- return obj
|
|
|
+ case "map":
|
|
|
+ return new Map(arr?.map(({ value, description }: any) => [value, description]))
|
|
|
+ case "arr":
|
|
|
+ return arr?.map(({ value, description }: any) => ({ value, key: value, label: description, disabled: false }))
|
|
|
+ case "obj":
|
|
|
+ let obj: any = {}
|
|
|
+ if (arr) {
|
|
|
+ for (let item of arr) {
|
|
|
+ obj[item?.value] = { text: item?.description, disabled: false }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return obj
|
|
|
+ case "stateObj":
|
|
|
+ let stateObj: any = {}
|
|
|
+ if (arr && stateEnum) {
|
|
|
+ for (let item of arr) {
|
|
|
+ let state = stateEnum
|
|
|
+ obj[item?.value] = { text: item?.description, disabled: false }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return stateObj
|
|
|
}
|
|
|
-}
|
|
|
+ }
|
|
|
return {
|
|
|
state,
|
|
|
init,
|