|
@@ -4,7 +4,7 @@
|
|
|
* @Author: code4eat awesomedema@gmail.com
|
|
|
* @Date: 2022-12-16 09:42:52
|
|
|
* @LastEditors: code4eat awesomedema@gmail.com
|
|
|
- * @LastEditTime: 2023-06-30 20:41:30
|
|
|
+ * @LastEditTime: 2023-07-06 15:22:46
|
|
|
* @FilePath: /BudgetManaSystem/src/pages/budgetMana/monthlySet/index.tsx
|
|
|
* @Description: 这是默认设置,请设置`customMade`, 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
|
|
*/
|
|
@@ -33,7 +33,7 @@ import 'dayjs/locale/zh-cn';
|
|
|
|
|
|
import React from 'react';
|
|
|
import DirectoryTree from 'antd/es/tree/DirectoryTree';
|
|
|
-import { findAllParents, getDeepestTreeData, getNodesWithChildren } from '@/utils/tooljs';
|
|
|
+import { findAllParents, findParentCodes, getDeepestTreeData, getNodesWithChildren } from '@/utils/tooljs';
|
|
|
import { ColumnsType, TableRowSelection } from 'antd/es/table/interface';
|
|
|
import { difference } from 'lodash';
|
|
|
import { getBillProjectData } from '../bilingProjectMana/service';
|
|
@@ -520,37 +520,64 @@ const CheckUnitProjectSet: React.FC = () => {
|
|
|
}
|
|
|
|
|
|
const onSelectHandle = (record: any, selected:boolean, selectedRows:any[], nativeEvent: any) => {
|
|
|
- let data = [...datasource];
|
|
|
- let parent = record.parentCode != 0 ? findAllParents([...data],`${record.parentCode}`):undefined;
|
|
|
|
|
|
- parent = parent?parent.filter(obj => Object.keys(obj).length !== 0):[];
|
|
|
+ // console.log({selectedRows});
|
|
|
|
|
|
- set_allParentsNode([...allParentsNode,...parent]);
|
|
|
-
|
|
|
- let result = [...selectedRows,...parent];
|
|
|
-
|
|
|
- result = result.filter(obj => Object.keys(obj).length !== 0);
|
|
|
-
|
|
|
- const _result = Array.from(new Set(result.map(obj => JSON.stringify(obj)))).map(str => JSON.parse(str));
|
|
|
+ if(selected){
|
|
|
+ let data = [...datasource];
|
|
|
+ let parent = record.parentCode != 0 ? findAllParents([...data],`${record.parentCode}`):undefined;
|
|
|
+
|
|
|
+ parent = parent?parent.filter(obj => Object.keys(obj).length !== 0):[];
|
|
|
+
|
|
|
+ set_allParentsNode([...allParentsNode,...parent]);
|
|
|
+
|
|
|
+ let result = [...selectedRows,...parent];
|
|
|
+
|
|
|
+ result = result.filter(obj => Object.keys(obj).length !== 0);
|
|
|
+
|
|
|
+ const _result = Array.from(new Set(result.map(obj => JSON.stringify(obj)))).map(str => JSON.parse(str));
|
|
|
+
|
|
|
+ setSelectedKeys([...selectedRows.map((a: { code: any; })=>a.code)]);
|
|
|
+ set_selectedRows([...selectedRows,..._result]);
|
|
|
+ }else {
|
|
|
+ if(record.children){
|
|
|
+ const parentCodes = findParentCodes(record);
|
|
|
+
|
|
|
+ //除去取消勾选的父级
|
|
|
+ const _allParentsNode = allParentsNode.filter(a=>!parentCodes.includes(a.code));
|
|
|
+ set_allParentsNode([..._allParentsNode]);
|
|
|
+ setSelectedKeys([...selectedRows.map((a: { code: any; })=>a.code)]);
|
|
|
+ set_selectedRows([...selectedRows]);
|
|
|
+ }else{
|
|
|
+ setSelectedKeys([...selectedRows.map((a: { code: any; })=>a.code)]);
|
|
|
+ set_selectedRows([...selectedRows]);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
- setSelectedKeys([...selectedRows.map((a: { code: any; })=>a.code)]);
|
|
|
- set_selectedRows([...selectedRows,..._result]);
|
|
|
+
|
|
|
|
|
|
};
|
|
|
|
|
|
+ const onSelectAllHandle = (selected: boolean, selectedRows: any[], changeRows: any[])=>{
|
|
|
+ if(selected){
|
|
|
+ setSelectedKeys([...selectedRows.map((a: { code: any; })=>a.code)]);
|
|
|
+ set_selectedRows([...selectedRows]);
|
|
|
+ }else{
|
|
|
+ set_allParentsNode([]);
|
|
|
+ setSelectedKeys([]);
|
|
|
+ set_selectedRows([]);
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
const save = async () => {
|
|
|
if (!isCopy && currentSelectedTabKey == '4') {
|
|
|
-
|
|
|
- //const _selectedRows = Array.from(new Set([...allParentsNode,...selectedRows].map(obj => JSON.stringify(obj)))).map(str => JSON.parse(str));
|
|
|
-
|
|
|
-
|
|
|
+
|
|
|
let _selectedRows = Object.values([...allParentsNode,...selectedRows].reduce((acc, cur) => {
|
|
|
acc[cur.code] = cur; // 如果 id 相同,后来的元素将替换前者
|
|
|
return acc;
|
|
|
}, {}));
|
|
|
|
|
|
-
|
|
|
-
|
|
|
const result = {
|
|
|
itemList: _selectedRows.map((a: any) => ({
|
|
|
code: a.code,
|
|
@@ -663,7 +690,10 @@ const CheckUnitProjectSet: React.FC = () => {
|
|
|
// 注释该行则默认不显示下拉选项
|
|
|
selectedRowKeys:selectedKeys,
|
|
|
onSelect: onSelectHandle,
|
|
|
- checkStrictly: false
|
|
|
+ checkStrictly: false,
|
|
|
+ onSelectAll(selected, selectedRows, changeRows) {
|
|
|
+ onSelectAllHandle(selected, selectedRows, changeRows);
|
|
|
+ },
|
|
|
}}
|
|
|
pagination={false}
|
|
|
dataSource={showList}
|