UNPKG

ttk-app-core

Version:
67 lines (63 loc) 2.42 kB
import { Map, List, fromJS } from 'immutable' import { reducer as MetaReducer } from 'edf-meta-engine' import { getInitState } from './data' import extend from './extend' import {FormDecorator} from 'edf-component' class reducer { constructor(option) { this.metaReducer = option.metaReducer } init = (state, option) => { let initState = getInitState(); return this.metaReducer.init(state, initState) } load = (state, res) => { if(res.details) state = this.metaReducer.sf(state, 'data.other.tableList', fromJS(res.details)) if(res.inventoryPropertyList) { let propertyList = [] res.inventoryPropertyList.map(item=> { propertyList.push({ value: item.id, label: item.name }) }) state = this.metaReducer.sf(state, 'data.other.type', fromJS(propertyList)) } if(res.businessTypeDtos){ let businessList = [] res.businessTypeDtos.map(item=> { businessList.push({ value: item.id, label: item.name }) }) state = this.metaReducer.sf(state, 'data.other.businessList', fromJS(businessList)) } return state } update = (state, {path,value})=> { state = this.metaReducer.sf(state, path, fromJS(value)) return state } searchUpdate = (state, value) => { value.type = value.type ? value.type : undefined value.business = value.business ? value.business : undefined state = this.metaReducer.sfs(state, { 'data.other.searchValue': fromJS(value), 'data.form.typeId': value.type , 'data.form.businessId': value.business }) return state } upDateStart = (state, path, value)=> { state = this.metaReducer.sf(state, path, fromJS(value)) return state } } export default function creator(option) { const metaReducer = new MetaReducer(option), extendReducer = extend.reducerCreator({ ...option, metaReducer }), voucherReducer = FormDecorator.reducerCreator({ ...option, metaReducer }), o = new reducer({ ...option, metaReducer }) return { ...metaReducer, ...extendReducer, ...o } }