UNPKG

ttk-app-core

Version:
196 lines (159 loc) 9.29 kB
import { Map, fromJS, toJS } from 'immutable' import { reducer as MetaReducer } from 'edf-meta-engine' import config from './config' import { getInitState } from './data' import moment from 'moment' import utils from 'edf-utils' class reducer { constructor(option) { this.metaReducer = option.metaReducer this.config = config.current } init = (state, option) => { const initState = getInitState() return this.metaReducer.init(state, initState) } update = (state, { path, value }) => { return this.metaReducer.sf(state, path, fromJS(value)) } searchUpdate = (state, value) => { return this.metaReducer.sf(state, 'data.searchValue', fromJS(value)) } settingOptionsUpdate = (state, {visible, data}) => { state = this.metaReducer.sf(state, 'data.assetStatList', fromJS(data)) state = this.metaReducer.sf(state, 'data.showTableSetting', visible) state = this.getColumnDetails(state, data) return state } getColumnDetails = (state, columnDetails) => { let newColumn = {} columnDetails.map((item,index) => { newColumn[item.fieldName] = item.isVisible }) state = this.metaReducer.sf(state, 'data.columnsNameObj', fromJS(newColumn)) return state } tableSettingVisible = (state, { value, data }) => { state = this.metaReducer.sf(state, 'data.showTableSetting', value) data = this.metaReducer.gf(state, 'data.assetStatList') return state } load = (state, value) => { state = this.metaReducer.sf(state, 'data.list', fromJS(value.assetList)) // if (value.codeAndNameList) { // state = this.metaReducer.sf(state, 'data.other.codeAndNameList', fromJS(value.codeAndNameList)) // } //state = this.metaReducer.sf(state, 'data.filter', fromJS(response.filter)) return state } initOption = (state, value) => { //资产属性和资产类别 if (value.assetProperty && value.assetClass) { let assetProperty = this.getLabelList(value.assetProperty), assetClassAll = this.getLabelList(value.assetClass, false, true), assetClass = [] let all = { label: '全部', value: 0 } assetProperty.unshift(all) state = this.metaReducer.sf(state, `data.other.assetProperty`, fromJS(assetProperty)) state = this.metaReducer.sf(state, `data.other.assetClass`, fromJS([all])) state = this.metaReducer.sf(state, `data.other.assetClassAll`, fromJS(assetClassAll)) state = this.metaReducer.sf(state, `data.assetStatList`, fromJS(value.columnDto.columnDetails)) state = this.metaReducer.sf(state, `data.other.ts`, fromJS(value.columnDto.ts)) state = this.metaReducer.sf(state, `data.other.code`, fromJS(value.columnDto.code)) state = this.metaReducer.sf(state, `data.form.assetProperty`, fromJS(all)) state = this.metaReducer.sf(state, `data.searchValue.assetProperty`, fromJS(all)) state = this.metaReducer.sf(state, `data.form.assetClass`, fromJS(all)) state = this.metaReducer.sf(state, `data.searchValue.assetClass`, fromJS(all)) } if(value.systemDate) { let contextDate = value.systemDate, currentOrg = this.metaReducer.context.get("currentOrg") if(currentOrg.periodDate && moment(currentOrg.periodDate)<=moment(value.systemDate)){ contextDate = currentOrg.periodDate } state = this.metaReducer.sf(state, 'data.filter.startBuyData', fromJS(utils.moment.stringToMoment(contextDate)).endOf('month').format('YYYY-MM')) state = this.metaReducer.sf(state, 'data.filter.endBuyData', fromJS(utils.moment.stringToMoment(contextDate)).endOf('month').format('YYYY-MM')) state = this.metaReducer.sf(state, 'data.searchValue.date_start', fromJS(utils.moment.stringToMoment(contextDate).endOf('month'))) state = this.metaReducer.sf(state, 'data.other.oldSearchValue.date_start', fromJS(utils.moment.stringToMoment(contextDate).endOf('month'))) state = this.metaReducer.sf(state, 'data.searchValue.date_end', fromJS(utils.moment.stringToMoment(contextDate).endOf('month'))) state = this.metaReducer.sf(state, 'data.other.oldSearchValue.date_end', fromJS(utils.moment.stringToMoment(contextDate).endOf('month'))) } state = this.metaReducer.sf(state, 'data.list', fromJS(value.assetList)) //初始化时刷新列表 if(value.assetList) { let list = value.assetList //高级查询资产下拉项 let assets = this.getLabelList(list, true) state = this.metaReducer.sf(state, `data.other.assets`, fromJS(assets)) state = this.metaReducer.sf(state, `data.list`, fromJS(list)) //资产列表 } return state } // load = (state, value) => { // //资产属性和资产类别 // if (value.assetProperty && value.assetClass) { // let assetProperty = this.getLabelList(value.assetProperty), // assetClassAll = this.getLabelList(value.assetClass, false, true), assetClass = [] // let all = { label: '全部', value: 0 } // assetProperty.unshift(all) // state = this.metaReducer.sf(state, `data.other.assetProperty`, fromJS(assetProperty)) // state = this.metaReducer.sf(state, `data.other.assetClass`, fromJS([all])) // state = this.metaReducer.sf(state, `data.other.assetClassAll`, fromJS(assetClassAll)) // state = this.metaReducer.sf(state, `data.assetStatList`, fromJS(value.columnDto.columnDetails)) // state = this.metaReducer.sf(state, `data.other.ts`, fromJS(value.columnDto.ts)) // state = this.metaReducer.sf(state, `data.form.assetProperty`, fromJS(all)) // state = this.metaReducer.sf(state, `data.searchValue.assetProperty`, fromJS(all)) // state = this.metaReducer.sf(state, `data.form.assetClass`, fromJS(all)) // state = this.metaReducer.sf(state, `data.searchValue.assetClass`, fromJS(all)) // } // if(value.systemDate) { // state = this.metaReducer.sf(state, 'data.filter.startBuyData', fromJS(utils.moment.stringToMoment(value.systemDate)).endOf('month').format('YYYY-MM')) // state = this.metaReducer.sf(state, 'data.filter.endBuyData', fromJS(utils.moment.stringToMoment(value.systemDate)).endOf('month').format('YYYY-MM')) // state = this.metaReducer.sf(state, 'data.searchValue.date_start', fromJS(utils.moment.stringToMoment(value.systemDate).endOf('month'))) // state = this.metaReducer.sf(state, 'data.other.oldSearchValue.date_start', fromJS(utils.moment.stringToMoment(value.systemDate).endOf('month'))) // state = this.metaReducer.sf(state, 'data.searchValue.date_end', fromJS(utils.moment.stringToMoment(value.systemDate).endOf('month'))) // state = this.metaReducer.sf(state, 'data.other.oldSearchValue.date_end', fromJS(utils.moment.stringToMoment(value.systemDate).endOf('month'))) // } // state = this.metaReducer.sf(state, 'data.list', fromJS(value.assetList)) // //初始化时刷新列表 // if(value.assetList) { // let list = value.assetList // //高级查询资产下拉项 // let assets = this.getLabelList(list, true) // state = this.metaReducer.sf(state, `data.other.assets`, fromJS(assets)) // state = this.metaReducer.sf(state, `data.list`, fromJS(list)) //资产列表 // } // return state // } sortReduce = (state, value) => { state = this.metaReducer.sf(state, `data.other.sort`, fromJS(value)) return state } onColumnResizeEnd = (state, res) => { if(res[0]){ state = this.metaReducer.sf(state, 'data.assetStatList', fromJS(res[0].columnDetails)) } return state } getLabelList = (list, isAsset, isAssetClass) => { let newList = [] if (list && Array.isArray(list)) { list.map(item => { //资产分类 if(isAssetClass){ newList.push({ value: item.id, label: item.name, assetPropertyId: item.assetPropertyId }) //高级查询资产下拉项 }else if(isAsset){ if(!(item.seq =='合计')) newList.push({ value: item.assetPropertyId, label: item.assetPropertyId + item.assetClassName}) }else{ newList.push({ value: item.id, label: item.name }) } }) } return newList } } export default function creator(option) { const metaReducer = new MetaReducer(option), o = new reducer({ ...option, metaReducer }) return { ...metaReducer, ...o } }