UNPKG

ttk-app-core

Version:
56 lines (48 loc) 1.75 kB
import {Map, List, fromJS} from 'immutable' import {reducer as MetaReducer} from 'edf-meta-engine' import config from './config' import {getInitState} from './data' class reducer { constructor(option) { this.metaReducer = option.metaReducer } init = (state) => { return this.metaReducer.init(state, getInitState()) } load = (state, option, props) => { if (option.response) { if (option.response.property) { let propertyName; option.deptAttr.forEach(dep => { if (dep.id == option.response.property) { propertyName = dep.name; return }}) option.response.attribute = { id: option.response.property, name: propertyName } } state = this.metaReducer.sf(state, 'data.form', fromJS(option.response)) }else { let obj = {} if(props.propertyName){ obj.attribute = { id: props.property, name: props.propertyName } }else { obj.attribute = { id: 3000010001, name: '其它(含管理)' } } state = this.metaReducer.sf(state, 'data.form', fromJS(obj)) } if (option.deptAttr) { state = this.metaReducer.sf(state, 'data.other.attributes', fromJS(option.deptAttr)) } return state } } export default function creator(option) { const metaReducer = new MetaReducer(option), o = new reducer({...option, metaReducer}) return {...metaReducer, ...o} }