UNPKG

ttk-app-core

Version:
86 lines (75 loc) 3.45 kB
import { Map, List, fromJS } from 'immutable' import { reducer as MetaReducer } from 'edf-meta-engine' import config from './config' import { getInitState, blankDetail } from './data' import moment from 'moment' import utils from 'edf-utils' import extend from './extend' import { consts, common } from 'edf-constant' import {FormDecorator} from 'edf-component' import index from './index' class reducer { constructor(option) { this.metaReducer = option.metaReducer this.config = config.current this.voucherReducer = option.voucherReducer } init = (state, option) => { return this.metaReducer.init(state, getInitState()) } load = (state, response) => { if (!response) { return this.metaReducer.sf(state, 'data', fromJS(getInitState().data)) } // 启用时间 if(response.orgParameterDto) state = this.metaReducer.sf(state, 'data.other.beginDate', fromJS(response.orgParameterDto.paramValue)) if(response.inventoryPropertyDtos) { state = this.metaReducer.sf(state, 'data.other.inventoryProperty', fromJS(response.inventoryPropertyDtos)) state = this.metaReducer.sf(state, 'data.form.inventoryProperty', response.propertyId) state = this.metaReducer.sf(state, 'data.form.typeRate', response.rate) } if(response.rdRecordDetailDtos) { let details = [] if(response.details){ state = this.metaReducer.sf(state, 'data.form.details', response.details) } else{ response.rdRecordDetailDtos.map(item=>{ item.inventory.price = item.price, item.inventory.quantity = item.quantity, item.inventory.amount = item.amount, details.push(item.inventory) }) state = this.metaReducer.sf(state, 'data.form.details', fromJS(details)) } } state = this.metaReducer.sf(state, 'data.other.isMonthlyClosed', fromJS(response.monthlyClosed)) return state } //附件上传状态 attachmentLoading = (state, attachmentLoading) => { // return this.metaReducer.sf(state, 'data.form.attachmentLoading', attachmentLoading) return this.voucherReducer.attachmentLoading(state, attachmentLoading) } //附件显示状态 attachmentVisible = (state, attachmentVisible) => { return this.metaReducer.sf(state, 'data.form.attachmentVisible', attachmentVisible) } upload = (state, file, ts, attachedNum) => { return this.voucherReducer.upload(state, file, ts, attachedNum) } updateState = (state, name, value) => { state = this.metaReducer.sf(state, name , value) return state } selectRow = (state, rowIndex, checked) => { state = this.metaReducer.sf(state, `data.form.details.${rowIndex}.selected`, checked) 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, extendReducer, voucherReducer }) return { ...metaReducer, ...extendReducer.gridReducer, ...o } }