UNPKG

ttk-app-core

Version:
96 lines 4.98 kB
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 } }