Commit dfec11378624acbfe81ffb05753e39b811ce94e9
1 parent
b19689c2
fix: 课题组重复去重
Showing
1 changed file
with
25 additions
and
5 deletions
src/pages/ResearchGroup/ResearchGroupAccess/components/AddModal.tsx
... | ... | @@ -135,12 +135,34 @@ const AddModal = forwardRef<AddModalRef, AddModalProps>((props, ref) => { |
135 | 135 | // 提取所有相同groupName的不同companyName |
136 | 136 | const companySet = new Set<string>(); |
137 | 137 | const companyIdMap = new Map<string, string>(); |
138 | + const importItemsMap = new Map<string, any>(); // 存储createByName="import"的项 | |
138 | 139 | |
139 | - // 假设接口返回数据包含列表项,每项有companyName和id | |
140 | + // 首先遍历所有非import的项 | |
140 | 141 | res.data.data.forEach((item: any) => { |
141 | - if (item.groupName === groupName && item.companyName) { | |
142 | + if ( | |
143 | + item.groupName === groupName && | |
144 | + item.companyName && | |
145 | + item.createByName !== 'import' | |
146 | + ) { | |
142 | 147 | companySet.add(item.companyName); |
143 | - companyIdMap.set(item.companyName, item.id); // 保存id用于提交 | |
148 | + companyIdMap.set(item.companyName, item.id); | |
149 | + } else if ( | |
150 | + item.groupName === groupName && | |
151 | + item.companyName && | |
152 | + item.createByName === 'import' | |
153 | + ) { | |
154 | + // 如果是import项,则存储该companyName的第一个项 | |
155 | + if (!importItemsMap.has(item.companyName)) { | |
156 | + importItemsMap.set(item.companyName, item); | |
157 | + } | |
158 | + } | |
159 | + }); | |
160 | + | |
161 | + // 如果有companyName只存在于import项中,加入第一个import项 | |
162 | + importItemsMap.forEach((item, companyName) => { | |
163 | + if (!companySet.has(companyName)) { | |
164 | + companySet.add(companyName); | |
165 | + companyIdMap.set(companyName, item.id); | |
144 | 166 | } |
145 | 167 | }); |
146 | 168 | |
... | ... | @@ -150,9 +172,7 @@ const AddModal = forwardRef<AddModalRef, AddModalProps>((props, ref) => { |
150 | 172 | value: name, |
151 | 173 | id: companyIdMap.get(name) || '', |
152 | 174 | })); |
153 | - | |
154 | 175 | setCompanyOptions(companies); |
155 | - | |
156 | 176 | // 如果只有一个选项,自动选中 |
157 | 177 | if (companies.length === 1) { |
158 | 178 | form.setFieldsValue({ | ... | ... |