/* * @Author: your name * @Date: 2021-07-26 10:13:13 * @LastEditTime: 2021-08-13 11:38:52 * @LastEditors: Please set LastEditors * @Description: In User Settings Edit * @FilePath: /TracerMethodology_PC/src/pages/UserMana/index.js */ // import { PlusOutlined } from '@ant-design/icons'; import { Cascader, Form, Button, Drawer, Table } from 'antd'; import React, { useRef, useState, useEffect } from 'react'; import { PageContainer } from '@ant-design/pro-layout'; import ProTable from '@ant-design/pro-table'; import { ProFormDatePicker, ProFormSelect, } from '@ant-design/pro-form'; import { getAfterIncomeCollectionList, getAfterIncomeCollectionTableData } from './service'; import { getResponsibilityCenterList } from '@/pages/responsibilityCenter/service'; import { getCostProjecttList } from '@/pages/costProjectMana/service'; import moment from 'moment'; import 'moment/locale/zh-cn'; import locale from 'antd/es/date-picker/locale/zh_CN'; import './index.less'; const AfterCollectionSearch = () => { const [currentTime, setCurrentTime] = useState(moment().format('YYYY-MM')); const [selectableResponsibilityList, setSelectableResponsibilityList] = useState([]); const [selectedResponsibilityCode,setSelectedResponsibilityCode] = useState(null); const [selectedAccountingCode,setSelectedAccountingCode] = useState(null) // const [selectableCostProjectList, setSelectableCostProjectList] = useState([]) const columns = [ { title: '选择时间', key: 'date', hideInTable: true, dataIndex: 'date', renderFormItem: (item, { type, defaultRender, formItemProps, fieldProps, ...rest }, form) => { if (type === 'form') { return null; } return ( { return value.format('YYYY-MM') }, locale: locale,onChange:(moment)=>{setCurrentTime(moment.format('YYYYMM'))} }} name="date" /> ) }, }, { title: '执行责任中心', key: 'responsibilityCode', hideInTable: true, fieldProps: (form, config) => { console.log({ form, config }); }, dataIndex: 'responsibilityName', renderFormItem: (item, { type, defaultRender, formItemProps, fieldProps, ...rest }, form) => { // console.log({item,type, defaultRender,formItemProps, fieldProps,rest,form }) if (type === 'form') { return null; } return ( {setSelectedResponsibilityCode(val[0])}} {...fieldProps} /> ) }, }, { title: '成本项目', key: 'accountingCode', hideInTable: true, dataIndex: 'accountingCode', renderFormItem: (item, { type, defaultRender, formItemProps, fieldProps, ...rest }, form) => { // console.log({item,type, defaultRender,formItemProps, fieldProps,rest,form }) if (type === 'form') { return null; } return ( { const resp = await getCostProjecttList({ pageSize: 100 }); const { status, data: { list } } = resp; if (status == 200) { const arr = list.map(item => ({ 'label': item.productName, 'value': item.productCode })); return arr; } }} fieldProps={{ onChange:(value)=>{setSelectedAccountingCode(value)} }} width="md" name="accountingCode" /> ) }, }, { title: '年份', dataIndex: 'year', key: 'year', hideInSearch: true, }, { title: '月份', dataIndex: 'month', key: 'month', hideInSearch: true, }, { title: '科室编码', dataIndex: 'departmentCode', key: 'departmentCode', hideInSearch: true, }, { title: '科室名称', dataIndex: 'departmentName', key: 'departmentName', hideInSearch: true, }, { title: '责任中心编码', dataIndex: 'responsibilityCode', key: 'responsibilityCode', hideInSearch: true, }, { title: '责任中心名', dataIndex: 'responsibilityName', key: 'responsibilityName', hideInSearch: true, }, { title: '会计科目编码', dataIndex: 'accountingCode', key: 'accountingCode', hideInSearch: true, }, { title: '会计科目名', dataIndex: 'accountingName', key: 'accountingName', hideInSearch: true, }, { title: '成本项目编码', dataIndex: 'productCode', key: 'productCode', hideInSearch: true, }, { title: '成本项目名', dataIndex: 'productName', key: 'productName', hideInSearch: true, }, { title: '金额', dataIndex: 'amount', key: 'amount', hideInSearch: true, }, ]; const actionRef = useRef(); const [totalCount, setTotalCount] = useState(0); const [drawerVisible, setDrawerVisible] = useState(false); const [reportTableColumns, setReportTableColumns] = useState([]); const [totalData,setTotalData] = useState([]); //获取列表 const getList = async (params = {}, sort, filter) => { const { date } = params; console.log(moment(date).format('YYYY-MM')); const res = await getAfterIncomeCollectionList({ ...params, date: moment(date).format('YYYYMM') }); if (res && res.status) { const { data: { totalAmount } } = res; setTotalCount(totalAmount); return { data: res.data.list, total: res.data.totalCount, success: res.success, }; } }; const renderDrawerHandle = () => { setDrawerVisible(true); } const getReportData = async (params = {}, sort, filter)=>{ const resp = await getAfterIncomeCollectionTableData({...params,date:currentTime,responsibilityCode:selectedResponsibilityCode,accountingCode:selectedAccountingCode}); const { status, data: { titleMap, realData, totalMap } } = resp; if (status == 200) { const titleMapToArr = Object.entries(titleMap); const totalMapToArr = Object.entries(totalMap); const columns = [...titleMapToArr].map((item, index) => { if (index == 0 || index == [...titleMapToArr].length - 1) { return { title: item[1], dataIndex: item[0], key: item[0], fixed:index == 0?'left':'right', hideInSearch: true, width: 100, } } return { title: item[1], dataIndex: item[0], key: item[0], hideInSearch: true, width: 500, } }); setReportTableColumns(columns); setTotalData(totalMapToArr); return Promise.resolve({ data: realData, success: true, }); } } useEffect(async () => { const responsibilityList = await getResponsibilityCenterList({ pageSize: 50 }); const { data: { list } } = responsibilityList; setSelectableResponsibilityList(list); }, []); return ( [ ]} pagination={{ pageSize: 10, }} search={{ defaultCollapsed: false, labelWidth: 'auto', }} footer={() => {`合计:${totalCount}`}} /> setDrawerVisible(false)} visible={drawerVisible} > ( 合计 { totalData.map((item, index) => { return ( {item[1]} ) }) } )} // footer={() => {`合计:${totalCount}`}} /> ); }; export default AfterCollectionSearch;