ttk-app-core
Version:
enterprise develop framework
96 lines (88 loc) • 4.17 kB
JavaScript
import { Map, fromJS } from 'immutable'
import { reducer as MetaReducer } from 'edf-meta-engine'
import config from './config'
import { getInitState } from './data'
class reducer {
constructor(option) {
this.metaReducer = option.metaReducer
this.config = config.current
}
init = (state) => {
const initState = getInitState()
return this.metaReducer.init(state, initState)
}
load = (state, option) => {
let data = {}
data['data.basic.ts'] = option.ts
data['data.basic.name'] = option.name
data['data.basic.accountingStandards'] = option.accountingStandards
data['data.basic.enableDate'] = option.enabledYear + '-' + option.enabledMonth
data['data.basic.vatTaxpayer'] = option.vatTaxpayer
data['data.basic.vatTaxpayerNum'] = option.vatTaxpayerNum
data['data.basic.isSignAndRetreat'] = option.isSignAndRetreat
data['data.initState.name'] = option.name
data['data.initState.enableDate'] = option.enabledYear + '-' + option.enabledMonth
data['data.initState.vatTaxpayer'] = option.vatTaxpayer
data['data.initState.accountingStandards'] = option.accountingStandards
data['data.initState.isSignAndRetreat'] = option.isSignAndRetreat
data['data.initState.vatTaxpayerNum'] = option.vatTaxpayerNum
if (option.dlxxDto) {
if(!option.dlxxDto.DLFS) {
let areas = this.metaReducer.gf(state, 'data.enumData.basic.SS').toJS()
let areasCode = areas.find(o => option.dlxxDto.SS == o.code)
data['data.basic.ss'] = areasCode.id
data['data.initState.ss'] = areasCode.id
data['data.other.isShowOtherMsg'] = false
}else {
let areas = this.metaReducer.gf(state, 'data.enumData.basic.SS').toJS()
let areasCode = areas.find(o => option.dlxxDto.SS == o.code)
data['data.basic.ss'] = areasCode.id
data['data.initState.ss'] = areasCode.id
data['data.basic.dlfs'] = String(option.dlxxDto.DLFS)
data['data.basic.wbzh'] = option.dlxxDto.DLZH
data['data.basic.wbmm'] = option.dlxxDto.DLMM
data['data.nsxxDto.name'] = option.dlxxDto.QYMC
data['data.initState.pwd'] = option.dlxxDto.DLMM
data['data.basic.isAuthorization'] = option.dlxxDto.isAuthorization
//登录方式为CA登录
if(option.dlxxDto.DLFS == 1) {
data['data.other.CAStep'] = false
data['data.other.hasReadCA'] = true
}
data['data.other.readOrgInfoBtn'] = false
data['data.other.isShowOtherMsg'] = true
}
} else {
data['data.other.isShowOtherMsg'] = false
}
if (option.nsxxDto) {
data['data.nsxxDto'] = fromJS(option.nsxxDto)
// //处理增值税企业类型字段
// let zzsqylxEnum = this.metaReducer.gf(state, 'data.enumData.tax.ZZSQYLX.enumDetails').toJS()
// let arr = []
// if(option.nsxxDto.ZZSQYLX) {
// for(let i = 0; i < zzsqylxEnum.length ; i++) {
// arr.push(zzsqylxEnum[i].code)
// }
// if(arr.indexOf(option.nsxxDto.ZZSQYLX) == -1) {
// data['data.nsxxDto.ZZSQYLX'] = null
// }
// }
}else {
data['data.nsxxDto'] = fromJS({})
}
if (option.sfzxxDtos.length != 0) {
data['data.sfzxxDtos'] = fromJS(option.sfzxxDtos)
}
if (option.zgrdDtos.length != 0) {
data['data.zgrdDtos'] = fromJS(option.zgrdDtos)
}
state = this.metaReducer.sfs(state, data)
return state
}
}
export default function creator(option) {
const metaReducer = new MetaReducer(option),
o = new reducer({ ...option, metaReducer })
return { ...metaReducer, ...o }
}