UNPKG

ttk-app-core

Version:
69 lines (63 loc) 2.69 kB
import { Map, fromJS } from 'immutable' import { reducer as MetaReducer } from 'edf-meta-engine' import config from './config' import { getInitState } from './data' import extend from './extend' import * as api from './api' class reducer { constructor(option) { this.metaReducer = option.metaReducer } init = (state, option) => { const initState = getInitState() return this.metaReducer.init(state, initState) } load = (state, response) => { let calcDict = response.calcDict, list = response.matchList.map((item)=>{ //api.TransSubject(item.accountDto, calcDict) return { item, ...item.accountDto} }) state = this.metaReducer.sf(state, 'data.list', fromJS(response.matchList)) return state } /** * 加载load状态 */ loading = (state, loading) => { return this.metaReducer.sf(state, 'data.other.loading', loading) } /** * 删除数据 */ deleteAccount = (state, accountId, parentId, isDelCurSubject) => { let list = this.metaReducer.gf(state, 'data.list') //获取父级科目的行号 let rowIndex = list.toJS().findIndex((x)=>x.id == accountId) if(isDelCurSubject){ let sameGradeSubjects = list.filter(subItem => { return subItem.parentId == parentId && subItem.id != accountId }) //还存在同级科目时,则不更改父级科目为末级科目 if(sameGradeSubjects && sameGradeSubjects.size === 0){ let parentSubject = list.filter(subItem => subItem.id == parentId) //父级科目列表 if(parentSubject && parentSubject.size == 1){ let parentSubjectRowIndex = list.toJS().findIndex((x)=>x.id == parentId) list = list.update(parentSubjectRowIndex, item => { item = item.set('isEndNode', true) return item }) } } list = list.delete(rowIndex) }else{ } return state = this.metaReducer.sf(state, 'data.list', list) } } 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 } }