UNPKG

ttk-app-core

Version:
164 lines (137 loc) 6.24 kB
import { Map, fromJS } from 'immutable' import { reducer as MetaReducer } from 'edf-meta-engine' import config from './config' import extend from './extend' import { getInitState } from './data' import utils from 'edf-utils' class reducer { constructor(option) { this.metaReducer = option.metaReducer this.extendReducer = option.extendReducer this.config = config.current } init = (state, option) => { const initState = getInitState() return this.metaReducer.init(state, initState) } load = (state, {value, form}) => { if(value.disposeDetailList){ state = this.metaReducer.sf(state, `data.list`, fromJS(value.disposeDetailList)) } if(value.page) state = this.setPages(state, value.page) //更新高级查询中的资产下拉列表 if(value.codeAndNameList) { let assets = this.getLabelList(value.codeAndNameList, true) state = this.metaReducer.sf(state, `data.other.assets`, fromJS(assets)) const assetsList = this.metaReducer.gf(state, 'data.other.assets').toJS() let oldSearchValue = this.metaReducer.gf(state, 'data.other.oldSearchValue').toJS() if('assets' in oldSearchValue){ const flag = assetsList.find(item => item.value == oldSearchValue.assets)             if( !flag ){ form.setFieldsValue({assets: ''})             } } } if(value.submitShow !== undefined){ state = this.metaReducer.sf(state, `data.other.submitShow`, value.submitShow) } if(value.queryCondition && value.queryCondition.assetDisposeType) { let assetDisposeType = this.getLabelList(value.queryCondition.assetDisposeType) state = this.metaReducer.sf(state, `data.other.assetDisposeType`, fromJS(assetDisposeType)) } /*if(value.systemDate){ state = this.metaReducer.sf(state, 'data.searchValue.startDate', fromJS(utils.moment.stringToMoment(value.systemDate).startOf('month'))) state = this.metaReducer.sf(state, 'data.searchValue.endDate', fromJS(utils.moment.stringToMoment(value.systemDate).endOf('month'))) state = this.metaReducer.sf(state, 'data.other.oldSearchValue.startDate', fromJS(utils.moment.stringToMoment(value.systemDate).startOf('month'))) state = this.metaReducer.sf(state, 'data.other.oldSearchValue.endDate', fromJS(utils.moment.stringToMoment(value.systemDate).endOf('month'))) }*/ if (value.queryCondition && value.queryCondition.assetProperty && value.queryCondition.assetClass) { let assetProperty = this.getLabelList(value.queryCondition.assetProperty), assetClassAll = this.getLabelList(value.queryCondition.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.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.columnDto) { state = this.metaReducer.sf(state, 'data.other.columnDto', 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)) } return state } //设置分页 setPages = (state, page) => { state = this.metaReducer.sf(state, `data.page`, fromJS({ current: page.currentPage, total: page.totalCount, pageSize: page.pageSize })) return state } assetPropertyChange = (state, list, path, option) => { state = this.metaReducer.sf(state, `data.list`, fromJS(list)) state = this.metaReducer.sf(state, path, fromJS(option)) return state } selectAll = (state, checked, gridName) => { _hmt && _hmt.push(['_trackEvent', '资产', '资产处置清单', '勾选框全选']) state = this.extendReducer.gridReducer.selectAll(state, checked, gridName) return state } selectRow = (state, rowIndex, checked) => { _hmt && _hmt.push(['_trackEvent', '资产', '资产处置清单', '勾选框']) state = this.metaReducer.sf(state, `data.list.${rowIndex}.selected`, checked) return state } onColumnResizeEnd = (state, res) => { if(res[0]){ state = this.metaReducer.sf(state, 'data.other.columnDto', fromJS(res[0].columnDetails)) } return state } getLabelList = (list, isAsset, isAssetClass) => { let newList = [] if (list && Array.isArray(list)) { list.map(item => { if(isAsset && item.isDraftName!='已处置') return //资产分类 if(isAssetClass){ newList.push({ value: item.id, label: item.name, assetPropertyId: item.assetPropertyId }) //高级查询资产下拉项 }else if(isAsset){ newList.push({ value: item.id, label: item.code + '-' + item.name}) }else{ newList.push({ value: item.id, label: item.name }) } }) } return newList } settingOptionsUpdate = (state, {visible, data}) => { state = this.metaReducer.sf(state, 'data.other.columnDto', fromJS(data)) state = this.metaReducer.sf(state, 'data.showTableSetting', visible) return state } update = (state, { path, value }) => { return this.metaReducer.sf(state, path, fromJS(value)) } tableSettingVisible = (state, { value, data }) => { state = this.metaReducer.sf(state, 'data.showTableSetting', value) data = this.metaReducer.gf(state, 'data.other.columnDto') return state } } export default function creator(option) { const metaReducer = new MetaReducer(option), extendReducer = extend.reducerCreator({ ...option, metaReducer }), o = new reducer({ ...option, metaReducer, extendReducer }), ret = { ...metaReducer, ...extendReducer.gridReducer, ...o } return { ...ret } }