|  | @@ -1,7 +1,6 @@
 | 
											
												
													
														|  |  import { ref } from 'vue'
 |  |  import { ref } from 'vue'
 | 
											
												
													
														|  |  import emitter from '/@/utils/emitter'
 |  |  import emitter from '/@/utils/emitter'
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -
 |  | 
 | 
											
												
													
														|  |  export default function useAddedItem() {
 |  |  export default function useAddedItem() {
 | 
											
												
													
														|  |    // 用于存储从 PopoverFilterTable 组件传来的数据
 |  |    // 用于存储从 PopoverFilterTable 组件传来的数据
 | 
											
												
													
														|  |    const receiveData = ref([])
 |  |    const receiveData = ref([])
 | 
											
										
											
												
													
														|  | @@ -12,29 +11,50 @@ export default function useAddedItem() {
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  |    // 点击复选框就会触发, 用于处理从 PopoverFilterTable 组件传来的数据
 |  |    // 点击复选框就会触发, 用于处理从 PopoverFilterTable 组件传来的数据
 | 
											
												
													
														|  |    emitter.on('PopoverFilterTable-tableData', (data: any) => {
 |  |    emitter.on('PopoverFilterTable-tableData', (data: any) => {
 | 
											
												
													
														|  | -    // 过滤出 parentAsin 和 sku 都不在 parentAsinsSet 和 allSkus 中的数据,避免重复添加
 |  | 
 | 
											
												
													
														|  | -    const uniqueData = data.filter(
 |  | 
 | 
											
												
													
														|  | -      (item: any) => !parentAsinsSet.value.has(item.parentAsin + item.sku) && !allSkus.value.includes(item.sku)
 |  | 
 | 
											
												
													
														|  | -    )
 |  | 
 | 
											
												
													
														|  | -    // 将过滤后的数据添加到 receiveData 中
 |  | 
 | 
											
												
													
														|  | -    receiveData.value.push(...uniqueData)
 |  | 
 | 
											
												
													
														|  | -    // 将新添加的 parentAsin 和 sku 添加到 parentAsinsSet 和 allSkus 中
 |  | 
 | 
											
												
													
														|  | -    uniqueData.forEach((item: any) => {
 |  | 
 | 
											
												
													
														|  | -      parentAsinsSet.value.add(item.parentAsin + item.sku)
 |  | 
 | 
											
												
													
														|  | -      allSkus.value.push(item.sku)
 |  | 
 | 
											
												
													
														|  | -    })
 |  | 
 | 
											
												
													
														|  | 
 |  | +    if (searchType.value === 'sku') {
 | 
											
												
													
														|  | 
 |  | +      // 过滤出 parentAsin 和 sku 都不在 parentAsinsSet 和 allSkus 中的数据,避免重复添加
 | 
											
												
													
														|  | 
 |  | +      const uniqueData = data.filter(
 | 
											
												
													
														|  | 
 |  | +        (item: any) => !parentAsinsSet.value.has(item.parentAsin + item.sku) && !allSkus.value.includes(item.sku)
 | 
											
												
													
														|  | 
 |  | +      )
 | 
											
												
													
														|  | 
 |  | +      // 将过滤后的数据添加到 receiveData 中
 | 
											
												
													
														|  | 
 |  | +      receiveData.value.push(...uniqueData)
 | 
											
												
													
														|  | 
 |  | +      // 将新添加的 parentAsin 和 sku 添加到 parentAsinsSet 和 allSkus 中
 | 
											
												
													
														|  | 
 |  | +      uniqueData.forEach((item: any) => {
 | 
											
												
													
														|  | 
 |  | +        parentAsinsSet.value.add(item.parentAsin + item.sku)
 | 
											
												
													
														|  | 
 |  | +        allSkus.value.push(item.sku)
 | 
											
												
													
														|  | 
 |  | +      })
 | 
											
												
													
														|  | 
 |  | +    } else {
 | 
											
												
													
														|  | 
 |  | +      const uniqueData = data.filter(
 | 
											
												
													
														|  | 
 |  | +        (item: any) => !parentAsinsSet.value.has(item.parentAsin + item.asin) && !allSkus.value.includes(item.asin)
 | 
											
												
													
														|  | 
 |  | +      )
 | 
											
												
													
														|  | 
 |  | +      receiveData.value.push(...uniqueData)
 | 
											
												
													
														|  | 
 |  | +      uniqueData.forEach((item: any) => {
 | 
											
												
													
														|  | 
 |  | +        parentAsinsSet.value.add(item.parentAsin + item.asin)
 | 
											
												
													
														|  | 
 |  | +        allSkus.value.push(item.asin)
 | 
											
												
													
														|  | 
 |  | +      })
 | 
											
												
													
														|  | 
 |  | +    }
 | 
											
												
													
														|  |    })
 |  |    })
 | 
											
												
													
														|  |  
 |  |  
 | 
											
												
													
														|  | -  emitter.on('PopoverFilterTable-needDeleteBySku', (skuToDelete: string) => {
 |  | 
 | 
											
												
													
														|  | 
 |  | +  emitter.on('PopoverFilterTable-needDeleteBySearchType', (searchTypeToDelete: string) => {
 | 
											
												
													
														|  |      // 遍历 receiveData,找到 sku 匹配的项
 |  |      // 遍历 receiveData,找到 sku 匹配的项
 | 
											
												
													
														|  |      receiveData.value = receiveData.value.reduce((acc: any[], item: any) => {
 |  |      receiveData.value = receiveData.value.reduce((acc: any[], item: any) => {
 | 
											
												
													
														|  | -      if (item.sku !== skuToDelete) {
 |  | 
 | 
											
												
													
														|  | -        acc.push(item)
 |  | 
 | 
											
												
													
														|  | 
 |  | +      if (searchType.value === 'sku') {
 | 
											
												
													
														|  | 
 |  | +        if (item.sku !== searchTypeToDelete) {
 | 
											
												
													
														|  | 
 |  | +          acc.push(item)
 | 
											
												
													
														|  | 
 |  | +        } else {
 | 
											
												
													
														|  | 
 |  | +          // 从 parentAsinsSet 和 allSkus 中删除该 parentAsin 和 sku 的组合
 | 
											
												
													
														|  | 
 |  | +          parentAsinsSet.value.delete(item.parentAsin + item.sku)
 | 
											
												
													
														|  | 
 |  | +          allSkus.value = allSkus.value.filter((sku) => sku !== item.sku)
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  |        } else {
 |  |        } else {
 | 
											
												
													
														|  | -        // 从 parentAsinsSet 和 allSkus 中删除该 parentAsin 和 sku 的组合
 |  | 
 | 
											
												
													
														|  | -        parentAsinsSet.value.delete(item.parentAsin + item.sku)
 |  | 
 | 
											
												
													
														|  | -        allSkus.value = allSkus.value.filter((sku) => sku !== item.sku)
 |  | 
 | 
											
												
													
														|  | 
 |  | +        if (item.asin !== searchTypeToDelete) {
 | 
											
												
													
														|  | 
 |  | +          acc.push(item)
 | 
											
												
													
														|  | 
 |  | +        } else {
 | 
											
												
													
														|  | 
 |  | +          parentAsinsSet.value.delete(item.parentAsin + item.asin)
 | 
											
												
													
														|  | 
 |  | +          allSkus.value = allSkus.value.filter((asin) => asin !== item.asin)
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  |        }
 |  |        }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |        return acc
 |  |        return acc
 | 
											
												
													
														|  |      }, [])
 |  |      }, [])
 | 
											
												
													
														|  |    })
 |  |    })
 | 
											
										
											
												
													
														|  | @@ -42,13 +62,23 @@ export default function useAddedItem() {
 | 
											
												
													
														|  |    emitter.on('PopoverFilterTable-needDelete', (parentAsinToDelete: string) => {
 |  |    emitter.on('PopoverFilterTable-needDelete', (parentAsinToDelete: string) => {
 | 
											
												
													
														|  |      // 遍历 receiveData,找到 parentAsin 匹配的项
 |  |      // 遍历 receiveData,找到 parentAsin 匹配的项
 | 
											
												
													
														|  |      receiveData.value = receiveData.value.reduce((acc: any[], item: any) => {
 |  |      receiveData.value = receiveData.value.reduce((acc: any[], item: any) => {
 | 
											
												
													
														|  | -      if (item.parentAsin !== parentAsinToDelete) {
 |  | 
 | 
											
												
													
														|  | -        acc.push(item)
 |  | 
 | 
											
												
													
														|  | 
 |  | +      if (searchType.value === 'sku') {
 | 
											
												
													
														|  | 
 |  | +        if (item.parentAsin !== parentAsinToDelete) {
 | 
											
												
													
														|  | 
 |  | +          acc.push(item)
 | 
											
												
													
														|  | 
 |  | +        } else {
 | 
											
												
													
														|  | 
 |  | +          // 从 parentAsinsSet 和 allSkus 中删除该 parentAsin 和 sku 的组合
 | 
											
												
													
														|  | 
 |  | +          parentAsinsSet.value.delete(item.parentAsin + item.sku)
 | 
											
												
													
														|  | 
 |  | +          allSkus.value = allSkus.value.filter((sku) => sku !== item.sku)
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  |        } else {
 |  |        } else {
 | 
											
												
													
														|  | -        // 从 parentAsinsSet 和 allSkus 中删除该 parentAsin 和 sku 的组合
 |  | 
 | 
											
												
													
														|  | -        parentAsinsSet.value.delete(item.parentAsin + item.sku)
 |  | 
 | 
											
												
													
														|  | -        allSkus.value = allSkus.value.filter((sku) => sku !== item.sku)
 |  | 
 | 
											
												
													
														|  | 
 |  | +        if (item.parentAsin !== parentAsinToDelete) {
 | 
											
												
													
														|  | 
 |  | +          acc.push(item)
 | 
											
												
													
														|  | 
 |  | +        } else {
 | 
											
												
													
														|  | 
 |  | +          parentAsinsSet.value.delete(item.parentAsin + item.asin)
 | 
											
												
													
														|  | 
 |  | +          allSkus.value = allSkus.value.filter((asin) => asin !== item.asin)
 | 
											
												
													
														|  | 
 |  | +        }
 | 
											
												
													
														|  |        }
 |  |        }
 | 
											
												
													
														|  | 
 |  | +
 | 
											
												
													
														|  |        return acc
 |  |        return acc
 | 
											
												
													
														|  |      }, [])
 |  |      }, [])
 | 
											
												
													
														|  |    })
 |  |    })
 |