ttk-app-core
Version:
enterprise develop framework
263 lines (250 loc) • 7.3 kB
JavaScript
import { Map, fromJS } from 'immutable'
import { reducer as MetaReducer } from 'edf-meta-engine'
import config from './config'
import { getInitState } from './data'
const SMALLACCOUNTINGSTANDARDS = [
{
rowIndex: 0,
assetsDisabled: true,
liabilitiesDisabled: true
},
{
rowIndex: 10,
assetsDisabled: false,
liabilitiesDisabled: true
},
{
rowIndex: 11,
assetsDisabled: false,
liabilitiesDisabled: true
},
{
rowIndex: 12,
assetsDisabled: false,
liabilitiesDisabled: true
},
{
rowIndex: 13,
assetsDisabled: false,
liabilitiesDisabled: true
},
{
rowIndex: 15,
assetsDisabled: true,
liabilitiesDisabled: true
},
{
rowIndex: 16,
assetsDisabled: true,
liabilitiesDisabled: true
},
// {
// rowIndex: 20,
// assetsDisabled: false,
// liabilitiesDisabled: true
// },
{
rowIndex: 21,
assetsDisabled: true,
liabilitiesDisabled: true
},
{
rowIndex: 22,
assetsDisabled: false,
liabilitiesDisabled: true
},
{
rowIndex: 23,
assetsDisabled: false,
liabilitiesDisabled: true
},
{
rowIndex: 24,
assetsDisabled: false,
liabilitiesDisabled: true
},
{
rowIndex: 25,
assetsDisabled: false,
liabilitiesDisabled: true
},
{
rowIndex: 30,
assetsDisabled: true,
liabilitiesDisabled: true
},
{
rowIndex: 31,
assetsDisabled: true,
liabilitiesDisabled: true
}
]
const ACCOUNTINGSTANDARDS = [
{
rowIndex: 0,
assetsDisabled: true,
liabilitiesDisabled: true
},
// {
// rowIndex: 10,
// assetsDisabled: true,
// liabilitiesDisabled: false
// },
// {
// rowIndex: 11,
// assetsDisabled: false,
// liabilitiesDisabled: true
// },
// {
// rowIndex: 12,
// assetsDisabled: true,
// liabilitiesDisabled: false
// },
// {
// rowIndex: 13,
// assetsDisabled: true,
// liabilitiesDisabled: true
// },
{
rowIndex: 14,
assetsDisabled: true,
liabilitiesDisabled: false
},
{
rowIndex: 15,
assetsDisabled: true,
liabilitiesDisabled: true
},
{
rowIndex: 16,
assetsDisabled: false,
liabilitiesDisabled: true
},
{
rowIndex: 23,
assetsDisabled: false,
liabilitiesDisabled: false
},
{
rowIndex: 24,
assetsDisabled: false,
liabilitiesDisabled: false
},
{
rowIndex: 25,
assetsDisabled: false,
liabilitiesDisabled: false
},
{
rowIndex: 27,
assetsDisabled: false,
liabilitiesDisabled: true
},
{
rowIndex: 28,
assetsDisabled: false,
liabilitiesDisabled: true
},
{
rowIndex: 29,
assetsDisabled: false,
liabilitiesDisabled: true
},
{
rowIndex: 40,
assetsDisabled: true,
liabilitiesDisabled: true
},
{
rowIndex: 39,
assetsDisabled: true,
liabilitiesDisabled: true
},
{
rowIndex: 33,
assetsDisabled: true,
liabilitiesDisabled: false
},
{
rowIndex: 34,
assetsDisabled: true,
liabilitiesDisabled: false
},
{
rowIndex: 35,
assetsDisabled: true,
liabilitiesDisabled: false
},
{
rowIndex: 36,
assetsDisabled: true,
liabilitiesDisabled: false
},
{
rowIndex: 37,
assetsDisabled: true,
liabilitiesDisabled: false
},
{
rowIndex: 38,
assetsDisabled: true,
liabilitiesDisabled: false
},
]
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, value,title) => {
// state = this.metaReducer.sf(state, 'data.statement', fromJS( value['reportTemplateDto']['rows'] ))
state = this.metaReducer.sf(state, 'data.statement', fromJS( this.setCellDisabled(state ,value['reportTemplateDto']['rows']) ))
// state = this.metaReducer.sf(state, 'data.accountingStandards', fromJS(value['reportTemplateDto']['accountingStandardsId']))
state = this.metaReducer.sf(state, 'data.selectTimeData', fromJS(value['periods']))
state = this.metaReducer.sf(state, 'data.resetArApAccount', fromJS(value['resetArApAccount']))
state = this.metaReducer.sf(state, 'data.selectedPeriod', fromJS(value['selectedPeriod']))
if((state.get('data').get('selectData')==undefined&&title)||(state.get('data').get('selectData')&&title)){
state = this.metaReducer.sf(state, 'data.selectTimeTitle', fromJS(title['period']['name']))
}else{
state = this.metaReducer.sf(state, 'data.selectTimeTitle', fromJS(value['selectedPeriod']['name']))
}
console.log(state.toJS())
return state
}
tableLoading = (state, loading) => {
return this.metaReducer.sf(state, 'data.loading', loading)
}
select = (state, value, selectData) => {
console.log(selectData)
state = this.metaReducer.sf(state, 'data.selectData', fromJS( selectData ))
state = this.metaReducer.sf(state, 'data.selectTimeTitle', fromJS(selectData['name']))
// state = this.metaReducer.sf(state, 'data.statement', fromJS( value['rows'] ))
state = this.metaReducer.sf(state, 'data.statement', fromJS( this.setCellDisabled(state, value['rows']) ))
state = this.metaReducer.sf(state, 'data.recalculation', !!value['recalculation'])
state = this.metaReducer.sf(state, 'data.monthClosingFlag', fromJS(value['monthClosingFlag']))
return state
}
setCellDisabled = (state,list) => {
let accountingStandards = this.metaReducer.gf(state, 'data.accountingStandards'),
disabledList
if(accountingStandards == 2000020002) {//小企业会计准则
disabledList = SMALLACCOUNTINGSTANDARDS
} else {
disabledList = ACCOUNTINGSTANDARDS
}
disabledList.map(item => {
list[item.rowIndex]['assetsDisabled'] = item.assetsDisabled
list[item.rowIndex]['liabilitiesDisabled'] = item.liabilitiesDisabled
})
return list
}
}
export default function creator(option) {
const metaReducer = new MetaReducer(option),
o = new reducer({ ...option, metaReducer })
return { ...metaReducer, ...o }
}