Commit a4ecb82b authored by xiexiuxing's avatar xiexiuxing

fix:修改bug

parent 6b40df10
......@@ -13,7 +13,6 @@ export interface CheckboxTreeProps {
showSave?;
disabled?: boolean;
actions?: RefObject<any>;
btnId: any;
}
const CheckboxTree: React.FC<CheckboxTreeProps> = props => {
......@@ -24,11 +23,8 @@ const CheckboxTree: React.FC<CheckboxTreeProps> = props => {
handleChange,
disabled,
showSave,
btnId = [],
handleSubmit,
} = props;
const checkedKeys = findTreeKeys(checkedNodes, 'id');
const {
selected,
......@@ -39,13 +35,13 @@ const CheckboxTree: React.FC<CheckboxTreeProps> = props => {
allSelected,
unSelectAll,
selectAll,
} = useSelections(checkedKeys, [...btnId]);
} = useSelections(checkedKeys, []);
if (actions) {
actions.current.selected = selected;
actions.current.setSelected = setSelected;
actions.current.getSelected = () => selected;
}
const toggleSelectAll = () => {
checkChange();
if (allSelected) {
......@@ -54,17 +50,9 @@ const CheckboxTree: React.FC<CheckboxTreeProps> = props => {
selectAll();
}
};
const checkChange = (e?) => {
handleChange && handleChange(e);
};
// useEffect(() => {
// console.log(btnId)
// // setSelected([...btnId])
// // actions.current.selected = btnId;
// setSelected([...btnId])
// }, [btnId])
return (
<div>
{title && (
......
......@@ -42,7 +42,6 @@ import FieldHeader from '@/components/FieldHeader';
import OrgModal from './orgModal';
import { PlusOutlined } from '@ant-design/icons';
import { useTreeTabs } from '@/hooks/useTreeTabs';
import { concat } from 'lodash';
const intl = getIntl();
const pageTitles = [`${intl.formatMessage({ id: 'authConfig.add' })}`, `${intl.formatMessage({ id: 'authConfig.edit' })}`, `${intl.formatMessage({ id: 'authConfig.previewLook' })}`];
......@@ -88,8 +87,6 @@ const getTreeNode = (treeData: any, targetNodeId: any) => {
const MemberDetail: React.FC<{}> = () => {
const intl = useIntl();
const [form] = Form.useForm();
const value = useContext(historyContainer);
const [nodeRecord, setNodeRecord] = useState<any>(null);
const [orgModalVisible, setOrgModalVisible] = useState(false);
const [treeExtraMaps, { set: setButtonAuth, get: getButtonAuth }] = useMap<
......@@ -107,6 +104,8 @@ const MemberDetail: React.FC<{}> = () => {
const res = await getMemberRoleAuthTree({
memberRoleId: roleId
});
console.log(res, 'res');
return { data: res.data.menus };
}, []);
......@@ -132,11 +131,9 @@ const MemberDetail: React.FC<{}> = () => {
const [plateformTreeList, setplateformTreeList] = useState<any>([])
// 存储默认勾选的id
const [checkIds, setcheckIds] = useState<any>({});
const [btnId, setbtnId] = useState([]);
const modalRef = useRef<any>({})
// 存储右边点击选中的数据权限id
const [dataId, setdataId] = useState<any>([]);
const disabledCheckAuthConfig = useMemo(() => {
if (nodeRecord && authInfos[nodeRecord.id]) {
return authInfos[nodeRecord.id] as {
......@@ -194,10 +191,10 @@ const MemberDetail: React.FC<{}> = () => {
const handleNodeSelected = async (selectKey, selectNode) => {
try {
const { node } = await handleSelect(selectKey, selectNode);
// actionRef.current.selected = node.buttonIds;
// actionRef.current.setSelected(node.buttonIds)
setbtnId(node.buttonIds)
console.log(node)
setcheckflag(treeActions.getSelectKeys().indexOf(selectKey) != -1)
console.log(node.buttonIds, 'node.buttonIds')
actionRef.current.setSelected(node.buttonIds)
if (nodeRecord) {
return new Promise((resolve, reject) => {
if (selectKey !== nodeRecord.key) {
......@@ -228,6 +225,36 @@ const MemberDetail: React.FC<{}> = () => {
setcheckflag(checked.indexOf(nodeRecord.id) != -1 ? true : false)
}
}
// 中间点击时间
const handleChange = (e) => {
console.log(e)
if (!dataId.includes(nodeRecord.id)) {
dataId.push(nodeRecord.id)
setdataId(dataId)
}
menuActions
.submit()
.then(async ({ values }) => {
actionRef.current.setSelected(actionRef.current.getSelected())
setErrors(true);
setAuthInfos({
...authInfos,
[nodeRecord.id]: Object.assign(
{ ...authInfos[nodeRecord.id] },
{ buttonIds: await actionRef.current.getSelected() ? await actionRef.current.getSelected() : [] },
),
});
console.log(authInfos)
})
.catch(err => {
// console.log(err);
if (Array.isArray(err)) {
setErrors(true);
}
});
}
// 编辑和预览模式下需回显数据
const fetchRoleMenuDetail = async id => {
// 10秒缓存
......@@ -253,24 +280,22 @@ const MemberDetail: React.FC<{}> = () => {
}, []);
useEffect(() => {
// console.log(formInitValue)
if (formInitValue) {
if (actionRef.current.setSelected) {
actionRef.current.setSelected();
}
// if (actionRef.current.setSelected) {
// actionRef.current.setSelected();
// }
}
}, [getButtonAuth, nodeRecord]);
// 提交
const handleSubmit = () => {
menuActions
.submit()
.then(async ({ values }) => {
setErrors(false);
// 如果未点击过操作权限tab, 则无法获取到actionRef实例, 需补充手动补充回显的ids, 新增的时候如果未设置按钮,则返回空数组
const buttonCheckIds =
actionRef.current.selected || (formValue && formValue.ids) || [];
// 获取选中的树状 id
const treeCheckIds = treeActions.getSelectKeys();
// 把后台返回的数据处理成一个数组
......@@ -318,15 +343,13 @@ const MemberDetail: React.FC<{}> = () => {
list = publicarr.filter((element, index, self) => {
return self.findIndex(x => x.menuId === element.menuId) === index
})
// console.log(actionRef.current.selected)
const publicParams = {
...values,
imFlag: !!values.imFlag,
// checked: treeCheckIds,
auth: (flag && dataId.length === 0) ? [] : list.map(v => ({
menuId: v.menuId,
// @todo 暂时写死为空
buttonIds: actionRef.current.selected,
buttonIds: authInfos[v.menuId].buttonIds ? authInfos[v.menuId].buttonIds : [],
checked: v.checked,
hasDataAuth: authInfos[v.menuId]?.hasDataAuth ? authInfos[v.menuId]?.hasDataAuth : 0,
orgIds: authInfos[v.menuId]?.hasDataAuth ? authInfos[v.menuId]?.orgIds : [],
......@@ -334,6 +357,7 @@ const MemberDetail: React.FC<{}> = () => {
};
delete publicParams.checkIds
if (pageStatus === PageStatus.EDIT) {
await postMemberRoleUpdate({
memberRoleId: id,
......@@ -417,12 +441,8 @@ const MemberDetail: React.FC<{}> = () => {
{ orgIds: selectKeys },
),
});
// console.log(plateformTreeData, 'plateformTreeData');
// console.log(selectKeys, 'selectKeys');
let plateformTreeDataList = mapkey(plateformTreeData, selectKeys, [])
// console.log(plateformTreeDataList)
setplateformTreeList(plateformTreeDataList)
// console.log(plateformTreeDataList, 'plateformTreeData')
setOrgModalVisible(false);
};
const handleOrgCancel = () => {
......@@ -500,7 +520,7 @@ const MemberDetail: React.FC<{}> = () => {
<Col span={8} className={styled['menu-role-tree']}>
<TabTree
title={intl.formatMessage({ id: 'authConfig.menuAccess' })}
fetchData={params => fetchMenuData()}
fetchData={fetchMenuData}
checkable
actions={treeActions}
treeData={treeData}
......@@ -517,7 +537,7 @@ const MemberDetail: React.FC<{}> = () => {
actions={actionRef}
disabled={!checkflag}
checkedNodes={buttonInfos}
btnId={btnId}
handleChange={handleChange}
title={intl.formatMessage({ id: 'authConfig.MenuInterfaceAccess' })}
/>
</Col>
......@@ -538,11 +558,6 @@ const MemberDetail: React.FC<{}> = () => {
<div style={{ marginTop: 16 }}>
<p style={{ color: '#909399' }}>{intl.formatMessage({ id: 'authConfig.OrganizationAuthorization' })}</p>
{plateformTreeList.map(v => {
//
// {disabledCheckAuthConfig.orgIds.map(v => {
// const node = getTreeNode(plateformTreeData, v);
// // console.log(node, '1111')
// if (!node || !node.id) return null;
return (
<div className="org-tag-container" key={v.id}>
<Tag color={'#F4F5F7'} className="org-tag">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment