ttk-app-core
Version:
enterprise develop framework
96 lines • 4.98 kB
JavaScript
import { Map, fromJS } from 'immutable'
import { reducer as MetaReducer } from 'edf-meta-engine'
import config from './config'
import { getInitState } from './data'
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, urlData) => {
//会计总则
state = this.metaReducer.sf(state, 'data.accountingStandards', fromJS(urlData && urlData.kjzdzzDm))
state = this.metaReducer.sf(state, 'data.urlData', fromJS(urlData))
return state
}
//获取报表头相关的数据
setRptTitle = (state, mainTitle,value) => {
state = this.metaReducer.sf(state, 'data.rptHeader.mainTitle', mainTitle)
if(value){
state = this.metaReducer.sf(state, 'data.rptHeader.vatTaxpayerNum', `纳税人识别号: ${value.nsrsbh}`)
state = this.metaReducer.sf(state, 'data.rptHeader.fillReportDate', `填报日期:${value.reportDate}`)
state = this.metaReducer.sf(state, 'data.rptHeader.compilingUnit', `编制单位:${value.nsrmc}`)
state = this.metaReducer.sf(state, 'data.rptHeader.reportperiod', `报表属期:${value.fromDate} 至 ${value.toDate}`)
state = this.metaReducer.sf(state, 'data.rptHeader.enterprise', `${value.reportShortName}`)
state = this.metaReducer.sf(state, 'data.rptHeader.subTitle', `${value.accountingStandardDescribe}`)
state = this.metaReducer.sf(state, 'data.rptHeader.unit', '单位:元')
}
return state
}
//初始化报表
initTranPeport = (state, tranReport)=>{
if (tranReport) {
state = this.metaReducer.sf(state, 'data.targetList', fromJS(tranReport))
}
return state
}
//设置报表数据
setSourceRpt = (state, tranReport, type, rptTitle) => {
if (tranReport){
if (tranReport.header && tranReport.body) {
let header = tranReport.header, body = tranReport.body, memo = tranReport.memo
//资产负债表
if (type =='balanceSheetRpt'){
state = this.metaReducer.sf(state, 'data.source.headerList', fromJS(header.zcfzbHeader ? header.zcfzbHeader:''))
state = this.metaReducer.sf(state, 'data.source.dataList', fromJS(body.zcfzbBody ? body.zcfzbBody : ''))
state = this.setRptTitle(state, rptTitle, memo.zcfzbMemo ? memo.zcfzbMemo:'')
}
//利润表
if (type == 'profitStatementRpt') {
state = this.metaReducer.sf(state, 'data.source.headerList', fromJS(header.lrbHeader ? header.lrbHeader : ''))
state = this.metaReducer.sf(state, 'data.source.dataList', fromJS(body.lrbBody ? body.lrbBody : ''))
state = this.setRptTitle(state, rptTitle, memo.lrbMemo ? memo.lrbMemo : '')
}
//现金流量表
if (type == 'cashflowStatementRpt') {
state = this.metaReducer.sf(state, 'data.source.headerList', fromJS(header.xjllbHeader ? header.xjllbHeader : ''))
state = this.metaReducer.sf(state, 'data.source.dataList', fromJS(body.xjllbBody ? body.xjllbBody : ''))
state = this.setRptTitle(state, rptTitle, memo.xjllbMemo ? memo.xjllbMemo : '')
}
}
}
return state
}
//表格加载
tableLoading = (state, loading) => {
return this.metaReducer.sf(state, 'data.loading', loading)
}
//初始化表格数据
tableData = (state, value) => {
state = this.metaReducer.sf(state, 'data.list', fromJS(value && value.rows))
return state
}
//upload start
uploadFile = (state, value, key) => {
state = this.metaReducer.sf(state, 'data.btnState.updateState', true)
if (key == "balancesheet") {
state = this.metaReducer.sf(state, 'data.balancesheetData', fromJS( {originalName:value.originalName, id: value.id } ) )
} else if (key == "profitstatement") {
state = this.metaReducer.sf(state, 'data.profitstatementData', fromJS( {originalName:value.originalName, id: value.id } ) )
} else if (key == "cashflowstatement") {
state = this.metaReducer.sf(state, 'data.cashflowstatementData', fromJS( {originalName:value.originalName, id: value.id } ) )
}
return state
}
//upload end
}
export default function creator(option) {
const metaReducer = new MetaReducer(option),
o = new reducer({ ...option, metaReducer })
return { ...metaReducer, ...o }
}