Commit dfec11378624acbfe81ffb05753e39b811ce94e9

Authored by boyang
1 parent b19689c2

fix: 课题组重复去重

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&lt;AddModalRef, AddModalProps&gt;((props, ref) =&gt; { @@ -150,9 +172,7 @@ const AddModal = forwardRef&lt;AddModalRef, AddModalProps&gt;((props, ref) =&gt; {
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({