ttk-app-core
Version:
enterprise develop framework
54 lines (51 loc) • 1.99 kB
JavaScript
import { Map, fromJS } from 'immutable'
import { reducer as MetaReducer } from 'edf-meta-engine'
import config from './config'
import { getInitState } from './data'
import { consts } from 'edf-consts'
import moment from 'moment'
class reducer {
constructor(option) {
this.metaReducer = option.metaReducer
this.config = config.current
}
init = (state, option) => {
const initState = getInitState()
return this.metaReducer.init(state, initState)
}
load = (state, res) => {
return state
}
setContent = (state, name, appName, appProps) => {
const currContent = this.metaReducer.gf(state, 'data.content')
const appList = this.metaReducer.gf(state, 'data.other.appList')
//判断当前显示appName和要新打开的是否一致
// if (currContent && appName == currContent.get('appName')) {
// state = this.metaReducer.sf(state, 'data.content', currContent)
// return state
// }
const res = appList.filter((element) => {
let item = element.toJS()
return item && item.appName == appName
})
let step, status
if (res && res.size > 0) {
step = res.first().get('step')
status = res.first().get('status')
}
if (appName == 'ttk-gl-app-financeinit-accountrelation') {
step = 2
}
let content = fromJS({ name, appName, appProps, editing: false, step: step, stepstatu: status })
state = this.metaReducer.sf(state, 'data.content', content)
return state
}
reInitContent = (state, value) => {
return this.metaReducer.sf(state, 'data.stepContent', fromJS(value))
}
}
export default function creator(option) {
const metaReducer = new MetaReducer(option),
o = new reducer({ ...option, metaReducer })
return { ...metaReducer, ...o }
}