/*
* @Author: your name
* @Date: 2021-07-26 10:13:13
* @LastEditTime: 2021-08-09 16:16:36
* @LastEditors: Please set LastEditors
* @Description: In User Settings Edit
* @FilePath: /TracerMethodology_PC/src/pages/UserMana/index.js
*/
import { PlusOutlined } from '@ant-design/icons';
import { Button, Popconfirm, Space,Table } from 'antd';
import React, { useState, useRef } from 'react';
import { PageContainer } from '@ant-design/pro-layout';
import ProTable from '@ant-design/pro-table';
import { ModalForm, ProFormText, ProFormSelect,DrawerForm,ProFormDigit} from '@ant-design/pro-form';
import UpdateForm from './updateForm';
import UpdateFormDrawer from './updateForm_drawer';
import { getCostshareparamList, editCostshareparamList, delCostshareparam, addCostshareparam,updateCostShareParamByAccountId } from './service';
import { getAccountingSubjectList} from '../accountingSubject/service';
const DepartmentMana = () => {
const columns = [
{
title: '成本分摊参数名',
dataIndex: 'shareParamName',
key: 'shareParamName',
hideInSearch: false,
},
{
title: '成本分摊参数编号',
dataIndex: 'shareParamCode',
key: 'shareParamCode',
hideInSearch: true,
},
{
title: '计算方式',
dataIndex: 'calcType',
key: 'calcType',
hideInSearch: true,
render: (text) => <>{text == 1 ? '手动填写' : '按对应会计科目计算'}>,
},
{
title:'操作',
dataIndex: 'option',
valueType: 'option',
render: (_, record) =>{
const {calcType} = record;
const groups = [
{
handleUpdateModalVisible(true);
setCurrentRow(record);
}}
>
编辑
,
{
setCurrentRow(record);
delListHandler(record);
}}
>
删除
,
]
return calcType==1?groups:[...groups, {
setDrawerVisible(true);
setCurrentRow(record);
setCurrentResponsibilityRow(record);
}}
>
设置对应会计科目
,]
}
},
];
const drawerTableColumns = [
{
title: '成本科目编码',
dataIndex: 'accountingCode',
key: 'accountingCode',
hideInSearch: true,
},
{
title: '成本科目名称',
dataIndex: 'accountingName',
key: 'accountingName',
hideInSearch: false,
}
];
const [createModalVisible, handleModalVisible] = useState(false);
const [updateModalVisible, handleUpdateModalVisible] = useState(false);
const actionRef = useRef(); //表格
const ref = useRef(); //新增表单
const [currentRow, setCurrentRow] = useState({});
const [currentResponsibilityRow, setCurrentResponsibilityRow] = useState({});
const drawerFormRef = useRef(); //DrawerForm
const actionDrawertableRef = useRef(); //Drawertable
const drawerModalRef = useRef(); //DrawerModal
const [drawerVisible, setDrawerVisible] = useState(false);
const [drawerMadalVisible, setDrawerMadalVisible] = useState(false);
const [hasSetParamsList, setHasSetParamsList] = useState([]);
const [selectedParam, setSelectedParam] = useState(null);
const [newAddParamList, setNewAddParamList] = useState([]);
const [accountType, setAccountType] = useState(1);
const [selectedRowKeys,setSelectedRowKeys] = useState([]);
const [drawerUpdateModalVisible,setDrawerUpdateModalVisible] = useState(false);
/**
*
* @param {Boolean} bool 弹窗展示状态
*/
const updateModalVisibleChange = (bool) => {
handleUpdateModalVisible(bool);
if (!bool) setCurrentRow(undefined);
};
const drawerUpdateModalVisibleChange = (bool)=>{
setDrawerUpdateModalVisible(bool);
if (!bool) setCurrentRow(undefined);
}
//获取科室列表
const getList = async (params = {}, sort, filter) => {
const res = await getCostshareparamList(params);
return {
data: res.data.list,
total: res.data.totalCount,
success: res.success,
};
};
/**
*
* @param {Object} value 删除项数据
*/
const delListHandler = async (value) => {
const resp = await delCostshareparam(value);
if (resp.status == 200) {
if (actionRef.current) {
actionRef.current.reload();
}
}
};
//分摊参数回调
const drawerVisibleChange = async (bool) => {
// console.log({currentRow});
if (bool) {
if(actionDrawertableRef.current){
actionDrawertableRef.current.reload();
}
}
setDrawerVisible(bool);
}
const handleDrawerModalVisible = (bool) => {
setDrawerMadalVisible(bool);
}
/**
*
* @param {Number} key
*/
const onTabChange = (key)=>{
setAccountType(Number(key));
if (actionDrawertableRef.current) {
actionDrawertableRef.current.reload();
}
}
return (
[
}
type="primary"
onClick={() => {
handleModalVisible(true);
}}
>
新增
]}
pagination={{
pageSize: 10,
}}
search={{
defaultCollapsed: false,
labelWidth: 'auto',
}}
/>
{
if (ref.current) {
ref.current.resetFields();
}
handleModalVisible(bool);
}}
onFinish={async (value) => {
const success = await addCostshareparam(value);
// console.log({ success });
if (success) {
handleModalVisible(false);
if (actionRef.current) {
actionRef.current.reload();
}
}
}}
>
{/* 设置对应会计科目 */}
drawerVisibleChange(visible)}
// onFinish={(value) => onSubmit({ ...values, ...value })}
onFinish={async () => {
const {id} = currentResponsibilityRow;
// console.log({selectedRowKeys,currentResponsibilityRow});
const resp = await updateCostShareParamByAccountId({costShareParamId:id,accountIds:selectedRowKeys});
const {status} = resp;
setDrawerVisible(false);
if(status==200){
if (actionRef.current) {
actionRef.current.reload();
}
}
}}
>
{
setSelectedRowKeys(selectedRowKeys);
}
}}
tableAlertRender={({ selectedRowKeys, selectedRows, onCleanSelected }) =>{
setSelectedRowKeys(selectedRowKeys);
return (
已选 {selectedRowKeys.length} 项
取消选择
)
}}
request={async (params = {}, sort, filter) => {
const {id} = currentResponsibilityRow;
const result = await getAccountingSubjectList({accountType,shareParamId:id});
const {status,data} = result;
if(status==200){
const selectedList = data.list.filter(item=>item.isSelect);
const temp = selectedList.map(item=>item.id);
setSelectedRowKeys(temp);
return {
data: data.list,
success: true
};
}
}}
pagination={{
pageSize: 10,
}}
search={false}
/>
{
if (ref.current) {
ref.current.resetFields();
}
handleDrawerModalVisible(bool);
}}
onFinish={async (value) => {
// console.log({ '新增分摊参数': value, selectedParam,hasSetParamsList});
const { shareParamPopout } = value;
const { id, shareParamCode, shareParamName } = selectedParam;
setHasSetParamsList(hasSetParamsList.concat([{
id, shareParamCode, shareParamName, shareParamPopout
}]));
setNewAddParamList(newAddParamList.concat([{
id, shareParamCode, shareParamName, shareParamPopout
}]));
setDrawerMadalVisible(false);
if (actionDrawertableRef.current) {
actionDrawertableRef.current.reload();
}
}}
>
{
// setSelectedParam(val);
const { id } = currentResponsibilityRow;
// console.log({currentResponsibilityRow});
const resp = await getParamsSelectableList({ id });
const { data, status } = resp;
if (status == 200) {
const selected = data.list.filter(item => item.id == val);
console.log({ selected });
setSelectedParam(selected[0]);
}
},
}}
request={async () => {
const { id } = currentResponsibilityRow;
const resp = await getParamsSelectableList({ id });
const { data, status } = resp;
if (status == 200) {
const temp = data.list.map(item => ({
label: item.shareParamName,
value: item.id
}));
return temp;
}
}}
width="sm"
name="id"
label="请选择分摊参数"
/>
{/* 科目更新 */}
{
const {id} = value;
const index = hasSetParamsList.findIndex(item=>item.id == id);
const temp = hasSetParamsList;
temp[index] = value;
setHasSetParamsList([].concat(temp));
setDrawerUpdateModalVisible(false);
if (actionDrawertableRef.current) {
actionDrawertableRef.current.reload();
}
}}
onCancel={() => {
drawerUpdateModalVisible(false);
setCurrentRow(undefined);
}}
currentResponsibilityRow={currentResponsibilityRow}
drawerUpdateModalVisible={drawerUpdateModalVisible}
drawerUpdateModalVisibleChange={drawerUpdateModalVisibleChange}
values={currentRow || {}}
/>
{/* 更新 */}
{
console.log({ '编辑': value });
const success = await editCostshareparamList(value);
if (success) {
handleUpdateModalVisible(false);
setCurrentRow(undefined);
if (actionRef.current) {
actionRef.current.reload();
}
}
}}
onCancel={() => {
handleUpdateModalVisible(false);
setCurrentRow(undefined);
}}
updateModalVisible={updateModalVisible}
updateModalVisibleChange={updateModalVisibleChange}
values={currentRow || {}}
/>
);
};
export default DepartmentMana;