ttk-app-core
Version:
enterprise develop framework
56 lines (48 loc) • 1.75 kB
JavaScript
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}
}