Commit 7e03883a by yuananting

fix:修改指派对象弹窗对象树的key

parent 8cbb2129
...@@ -114,7 +114,7 @@ ...@@ -114,7 +114,7 @@
.ant-tag { .ant-tag {
border: 1px solid #cccccc; border: 1px solid #cccccc;
color: #666666; color: #666666;
margin-bottom: 12px; margin-bottom: 10px;
font-size: 14px; font-size: 14px;
} }
} }
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* @Author: yuananting * @Author: yuananting
* @Date: 2021-08-05 17:09:36 * @Date: 2021-08-05 17:09:36
* @LastEditors: yuananting * @LastEditors: yuananting
* @LastEditTime: 2021-08-17 14:50:50 * @LastEditTime: 2021-08-18 15:41:13
* @Description: 新建培训任务-选择指派学员 * @Description: 新建培训任务-选择指派学员
* @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有 * @Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
* @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有 * @@Copyrigh: © 2020 杭州杰竞科技有限公司 版权所有
...@@ -38,7 +38,7 @@ function ChooseAssignorModal(props) { ...@@ -38,7 +38,7 @@ function ChooseAssignorModal(props) {
const [structureData, setStructureData] = useState([]); const [structureData, setStructureData] = useState([]);
const [activeKey, setActiveKey] = useState('departMentTab'); const [activeKey, setActiveKey] = useState('departMentTab');
const [checkedAssignorList, setCheckedAssignorList] = useState(props.currentAssignorList || []); // 勾选的指派学员 const [checkedAssignorList, setCheckedAssignorList] = useState(props.currentAssignorList || []); // 勾选的指派学员
const [checkedAssignorKeys, setCheckedAssignorKeys] = useState(props.currentAssignorList.map((item) => item.checkedId) || []); const [checkedAssignorKeys, setCheckedAssignorKeys] = useState(handleCheckedKeys(props.currentAssignorList, []));
const [queryName, setQueryName] = useState(''); // 搜索框内的值 const [queryName, setQueryName] = useState(''); // 搜索框内的值
const [departmentUserVOList, setDepartmentUserVOList] = useState([]); const [departmentUserVOList, setDepartmentUserVOList] = useState([]);
const [departmentVOList, setDepartmentVOList] = useState([]); const [departmentVOList, setDepartmentVOList] = useState([]);
...@@ -81,21 +81,32 @@ function ChooseAssignorModal(props) { ...@@ -81,21 +81,32 @@ function ChooseAssignorModal(props) {
}; };
StoreService.getDepartmentUserNotPage(params).then((res) => { StoreService.getDepartmentUserNotPage(params).then((res) => {
const { result = [] } = res; const { result = [] } = res;
const structureData = handleStructureData(result.departmentVOList); const structureData = handleStructureData(result.departmentVOList);
const checkedKeys = checkedAssignorList.map((item) => item.checkedId); const checkedKeys = handleCheckedKeys(structureData, []);
setStructureData(structureData); setStructureData(structureData);
setCheckedAssignorKeys(checkedKeys); setCheckedAssignorKeys(checkedKeys);
}); });
} }
function handleCheckedKeys(dataArray, checkedKeys) {
dataArray.map((item, index) => {
if (checkedAssignorList.find((checkedItem) => checkedItem.checkedId === item.checkedId)) {
checkedKeys.push(item.id);
}
if (item.children?.length > 0) {
handleCheckedKeys(item.children, checkedKeys);
}
});
return checkedKeys;
}
function handleStructureData(dataArray) { function handleStructureData(dataArray) {
const _dataArray = dataArray.map((item, index) => { const _dataArray = dataArray.map((item, index) => {
item.title = ''; item.title = '';
item.checkedId = item.storeCustomerId || item.id; item.checkedId = item.storeCustomerId || item.id;
item.checkedType = item.storeCustomerId ? 'CUSTOMER' : AssignTypeEnum[activeKey]; item.checkedType = item.storeCustomerId ? 'CUSTOMER' : AssignTypeEnum[activeKey];
item.checkedName = item.storeCustomerId ? item.userName : item.name; item.checkedName = item.storeCustomerId ? item.userName : item.name;
item.key = item.checkedId; item.key = item.id;
item.children = []; item.children = [];
if (activeKey !== 'departMentTab' && item.depLevel === 0) { if (activeKey !== 'departMentTab' && item.depLevel === 0) {
item.disableCheckbox = true; item.disableCheckbox = true;
...@@ -119,7 +130,6 @@ function ChooseAssignorModal(props) { ...@@ -119,7 +130,6 @@ function ChooseAssignorModal(props) {
function onCheckAssignor(key, e) { function onCheckAssignor(key, e) {
const { node, checked } = e; const { node, checked } = e;
let _checkedAssignorList = [...checkedAssignorList]; let _checkedAssignorList = [...checkedAssignorList];
if (checked) { if (checked) {
...@@ -130,14 +140,14 @@ function ChooseAssignorModal(props) { ...@@ -130,14 +140,14 @@ function ChooseAssignorModal(props) {
}); });
} }
const _checkedAssignorKeys = _checkedAssignorList.map((item) => item.checkedId); const _checkedAssignorKeys = _checkedAssignorList.map((item) => item.id);
setCheckedAssignorKeys(_checkedAssignorKeys); setCheckedAssignorKeys(_checkedAssignorKeys);
setCheckedAssignorList(_checkedAssignorList); setCheckedAssignorList(_checkedAssignorList);
} }
function removeCheckedAssignor(item) { function removeCheckedAssignor(item) {
const _checkedAssignorList = checkedAssignorList.filter((childItem) => childItem.checkedId !== item.checkedId); const _checkedAssignorList = checkedAssignorList.filter((childItem) => childItem.checkedId !== item.checkedId);
const _checkedAssignorKeys = _checkedAssignorList.map((item) => item.checkedId); const _checkedAssignorKeys = _checkedAssignorList.map((item) => item.id);
setCheckedAssignorKeys(_checkedAssignorKeys); setCheckedAssignorKeys(_checkedAssignorKeys);
setCheckedAssignorList(_checkedAssignorList); setCheckedAssignorList(_checkedAssignorList);
} }
...@@ -165,21 +175,22 @@ function ChooseAssignorModal(props) { ...@@ -165,21 +175,22 @@ function ChooseAssignorModal(props) {
const _departmentUserVOList = departmentUserVOList.map((item) => { const _departmentUserVOList = departmentUserVOList.map((item) => {
item.checkedName = item.userName; item.checkedName = item.userName;
item.checkedId = item.storeCustomerId; item.checkedId = item.storeCustomerId;
item.checked = checkedAssignorKeys.includes(item.checkedId); item.checked = checkedAssignorList.find((checkedItem) => checkedItem.checkedId === item.checkedId);
item.checkedType = 'CUSTOMER'; item.checkedType = 'CUSTOMER';
return item; return item;
}); });
const _departmentVOList = departmentVOList.map((item) => { const _departmentVOList = departmentVOList.map((item) => {
item.checkedName = item.name; item.checkedName = item.name;
item.checkedId = item.id; item.checkedId = item.id;
item.checked = checkedAssignorKeys.includes(item.checkedId); item.checked = checkedAssignorList.find((checkedItem) => checkedItem.checkedId === item.checkedId);
item.checkedType = AssignTypeEnum[activeKey]; item.checkedType = AssignTypeEnum[activeKey];
return item; return item;
}); });
const _subLevelDepartmentVOList = subLevelDepartmentVOList.map((item) => { const _subLevelDepartmentVOList = subLevelDepartmentVOList.map((item) => {
item.disableCheckbox = true;
item.checkedName = item.name; item.checkedName = item.name;
item.checkedId = item.id; item.checkedId = item.id;
item.checked = checkedAssignorKeys.includes(item.checkedId); item.checked = checkedAssignorList.find((checkedItem) => checkedItem.checkedId === item.checkedId);
item.checkedType = AssignTypeEnum[activeKey]; item.checkedType = AssignTypeEnum[activeKey];
return item; return item;
}); });
...@@ -268,7 +279,7 @@ function ChooseAssignorModal(props) { ...@@ -268,7 +279,7 @@ function ChooseAssignorModal(props) {
setSubLevelDepartmentVOList(_subLevelDepartmentVOList); setSubLevelDepartmentVOList(_subLevelDepartmentVOList);
} }
const _checkedAssignorKeys = _checkedAssignorList.map((item) => item.checkedId); const _checkedAssignorKeys = _checkedAssignorList.map((item) => item.id);
setCheckedAssignorKeys(_checkedAssignorKeys); setCheckedAssignorKeys(_checkedAssignorKeys);
setCheckedAssignorList(_checkedAssignorList); setCheckedAssignorList(_checkedAssignorList);
} }
...@@ -398,7 +409,6 @@ function ChooseAssignorModal(props) { ...@@ -398,7 +409,6 @@ function ChooseAssignorModal(props) {
placeholder={handlePlaceHolder()} placeholder={handlePlaceHolder()}
value={queryName} value={queryName}
enterButton={<span className='icon iconfont'>&#xe832;</span>} enterButton={<span className='icon iconfont'>&#xe832;</span>}
// onFocus={() => setDropDownVisible(true)}
onChange={(e) => { onChange={(e) => {
setQueryName(e.target.value); setQueryName(e.target.value);
setDropDownVisible(!!e.target.value); setDropDownVisible(!!e.target.value);
...@@ -496,7 +506,6 @@ function ChooseAssignorModal(props) { ...@@ -496,7 +506,6 @@ function ChooseAssignorModal(props) {
<LottieIcon title='暂无数据' type='college' size={150} /> <LottieIcon title='暂无数据' type='college' size={150} />
</Otherwise> </Otherwise>
</Choose> </Choose>
</div> </div>
</div> </div>
</div> </div>
......
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