UNPKG

ttk-app-core

Version:
59 lines (49 loc) 2.15 kB
import { Map, List, fromJS } from 'immutable' import { reducer as MetaReducer } from 'edf-meta-engine' import config from './config' import { getInitState } from './data' import moment from 'moment' import extend from './extend' class reducer { constructor(option) { this.metaReducer = option.metaReducer this.extendReducer = option.extendReducer this.config = config.current } init = (state, option) => { return this.metaReducer.init(state, getInitState()) } load = (state, { voucher, stocks, customers, ticketTypes, warehouses,settlementModes,assetAccounts}) => { if (voucher) { state = this.metaReducer.sf(state, 'data.form', fromJS(voucher)) } else { state = this.metaReducer.sf(state, 'data', fromJS(getInitState().data)) } state = this.metaReducer.sf(state, 'data.other.stocks', fromJS(stocks)) state = this.metaReducer.sf(state, 'data.other.customers', fromJS(customers)) state = this.metaReducer.sf(state, 'data.other.ticketTypes', fromJS(ticketTypes)) state = this.metaReducer.sf(state, 'data.other.warehouses', fromJS(warehouses)) state = this.metaReducer.sf(state, 'data.other.settlementModes', fromJS(settlementModes)) state = this.metaReducer.sf(state, 'data.other.assetAccounts', fromJS(assetAccounts)) return state } setForm = (state, form) => { if (form) return this.metaReducer.sf(state, 'data.form', fromJS(form)) else return this.metaReducer.sf(state, 'data.form', fromJS(getInitState().data.form)) } addRowBefore = (state, gridName, rowIndex) => { return state } delRowBefore = (state, gridName, rowIndex) => { return state } } export default function creator(option) { const metaReducer = new MetaReducer(option), extendReducer = extend.reducerCreator({ ...option, metaReducer }), o = new reducer({ ...option, metaReducer, extendReducer }) return { ...metaReducer, ...extendReducer.gridReducer, ...o } }