UNPKG

ttk-app-core

Version:
78 lines (72 loc) 2.74 kB
import { Map, List, fromJS } from 'immutable' import { reducer as MetaReducer } from 'edf-meta-engine' import { getInitState } from './data' 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 && res.inventoryPropertyList) { let newInventoryProperty = [] res.inventoryPropertyList.map(item=>{ newInventoryProperty.push({ value: item.id, label: item.name }) }) state = this.metaReducer.sf(state, 'data.other.type', fromJS(newInventoryProperty)) } if(res && res.details) { state = this.metaReducer.sf(state, 'data.other.tableList', fromJS(res.details)) if(!res.details.length) { state = this.metaReducer.sf(state, 'data.other.isEmpty', true) }else { state = this.metaReducer.sf(state, 'data.other.isEmpty', false) } } if(res && res.getList) { state = this.metaReducer.sf(state, 'data.other.tableList', fromJS(res.getList)) if(!res.getList.length) { state = this.metaReducer.sf(state, 'data.other.isEmpty', true) }else { state = this.metaReducer.sf(state, 'data.other.isEmpty', false) } } return state } searchUpdate = (state, value) => { value.type = value.type ? value.type : undefined state = this.metaReducer.sfs(state, { 'data.searchValue': fromJS(value), 'data.form.typeId': fromJS(value.type) }) return state } upDate = (state, value) => { value = value ? value : undefined state = this.metaReducer.sfs(state, { 'data.searchValue.type': fromJS(value), 'data.form.typeId': fromJS(value) }) return state } upDateStart = (state, path, value)=> { state = this.metaReducer.sf(state, path, fromJS(value)) return state } setTableOption = (state, value) => { return this.metaReducer.sf(state, 'data.tableOption', fromJS(value)) } updateOption = (state, { path, value }) => { return this.metaReducer.sf(state, path, fromJS(value)) } } export default function creator(option) { const metaReducer = new MetaReducer(option), o = new reducer({ ...option, metaReducer }) return { ...metaReducer, ...o } }