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,12 +135,34 @@ const AddModal = forwardRef<AddModalRef, AddModalProps>((props, ref) => { | ||
135 | // 提取所有相同groupName的不同companyName | 135 | // 提取所有相同groupName的不同companyName |
136 | const companySet = new Set<string>(); | 136 | const companySet = new Set<string>(); |
137 | const companyIdMap = new Map<string, string>(); | 137 | const companyIdMap = new Map<string, string>(); |
138 | + const importItemsMap = new Map<string, any>(); // 存储createByName="import"的项 | ||
138 | 139 | ||
139 | - // 假设接口返回数据包含列表项,每项有companyName和id | 140 | + // 首先遍历所有非import的项 |
140 | res.data.data.forEach((item: any) => { | 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 | companySet.add(item.companyName); | 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,9 +172,7 @@ const AddModal = forwardRef<AddModalRef, AddModalProps>((props, ref) => { | ||
150 | value: name, | 172 | value: name, |
151 | id: companyIdMap.get(name) || '', | 173 | id: companyIdMap.get(name) || '', |
152 | })); | 174 | })); |
153 | - | ||
154 | setCompanyOptions(companies); | 175 | setCompanyOptions(companies); |
155 | - | ||
156 | // 如果只有一个选项,自动选中 | 176 | // 如果只有一个选项,自动选中 |
157 | if (companies.length === 1) { | 177 | if (companies.length === 1) { |
158 | form.setFieldsValue({ | 178 | form.setFieldsValue({ |