|
@@ -8,9 +8,7 @@ import useAddedItem from '../hooks/useAddedItem'
|
|
|
const profile = <Ref>inject('profile')
|
|
|
const parentLoading = ref(false)
|
|
|
const rightLoading = ref(false)
|
|
|
-let page = 1
|
|
|
-let rightPage = 1
|
|
|
-let limit = 15
|
|
|
+
|
|
|
let searchType = ''
|
|
|
const vxeRef = ref()
|
|
|
const vxeRefRight = ref()
|
|
@@ -18,6 +16,27 @@ const selectedParentAsins = ref([])
|
|
|
const hasMore = ref(true)
|
|
|
const isScrollSelectAll = ref(false)
|
|
|
const { parentAsinsSet } = useAddedItem()
|
|
|
+const productLineId = ref('')
|
|
|
+const searchResult = ref([])
|
|
|
+let page = 1
|
|
|
+let rightPage = 1
|
|
|
+let limit = 15
|
|
|
+let hasMoreParentAsin = true
|
|
|
+
|
|
|
+emitter.on('PopoverFilter-noMoreParenAsin', () => {
|
|
|
+ hasMoreParentAsin = false
|
|
|
+})
|
|
|
+
|
|
|
+emitter.on('PopoverFilter-productLineSelect', (data: any) => {
|
|
|
+ productLineId.value = data.value
|
|
|
+ gridOptions.data.splice(0)
|
|
|
+})
|
|
|
+
|
|
|
+let isFirstTime = true
|
|
|
+emitter.on('PopoverFilter-searchResult', (data: any) => {
|
|
|
+ gridOptions.data = data.value
|
|
|
+ isFirstTime = false
|
|
|
+})
|
|
|
|
|
|
emitter.on('TopFilter', (value: any) => {
|
|
|
if (value.isVisible?.value) {
|
|
@@ -118,7 +137,7 @@ function handleCellClick(table: any) {
|
|
|
function checkRightTableRows() {
|
|
|
const rightData = vxeRefRight.value.getTableData().tableData
|
|
|
|
|
|
- rightData.forEach((row) => {
|
|
|
+ rightData.forEach((row: any) => {
|
|
|
const concatValue = searchType === 'sku' ? row.parentAsin + row.sku : row.parentAsin + row.asin
|
|
|
if (parentAsinsSet.value.has(concatValue)) {
|
|
|
vxeRefRight.value.setCheckboxRow(row, true)
|
|
@@ -133,7 +152,7 @@ async function selectChangeRight(table: any) {
|
|
|
// 新增代码: 查找并选中左侧表格对应的条目
|
|
|
const parentAsin = table.row.parentAsin
|
|
|
const leftTableData = vxeRef.value.getTableData().tableData
|
|
|
- const leftRow = leftTableData.find((row) => row.parentAsin === parentAsin)
|
|
|
+ const leftRow = leftTableData.find((row: any) => row.parentAsin === parentAsin)
|
|
|
if (leftRow) {
|
|
|
await vxeRef.value.setCheckboxRow(leftRow, true)
|
|
|
}
|
|
@@ -142,7 +161,7 @@ async function selectChangeRight(table: any) {
|
|
|
// 新增代码: 查找并取消选中左侧表格对应的条目
|
|
|
const parentAsin = table.row.parentAsin
|
|
|
const leftTableData = vxeRef.value.getTableData().tableData
|
|
|
- const leftRow = leftTableData.find((row) => row.parentAsin === parentAsin)
|
|
|
+ const leftRow = leftTableData.find((row: any) => row.parentAsin === parentAsin)
|
|
|
if (leftRow && table.records.length === 0) {
|
|
|
await vxeRef.value.setCheckboxRow(leftRow, false)
|
|
|
}
|
|
@@ -156,7 +175,7 @@ async function selectAllChangeRight(table: any) {
|
|
|
const rightTableData = vxeRefRight.value.getTableData().tableData
|
|
|
for (const data of rightTableData) {
|
|
|
const leftTableData = vxeRef.value.getTableData().tableData
|
|
|
- const leftRow = leftTableData.find((row) => row.parentAsin === data.parentAsin)
|
|
|
+ const leftRow = leftTableData.find((row: any) => row.parentAsin === data.parentAsin)
|
|
|
if (leftRow) {
|
|
|
await vxeRef.value.setCheckboxRow(leftRow, true)
|
|
|
}
|
|
@@ -167,7 +186,7 @@ async function selectAllChangeRight(table: any) {
|
|
|
const rightTableData = vxeRefRight.value.getTableData().tableData
|
|
|
for (const data of rightTableData) {
|
|
|
const leftTableData = vxeRef.value.getTableData().tableData
|
|
|
- const leftRow = leftTableData.find((row) => row.parentAsin === data.parentAsin)
|
|
|
+ const leftRow = leftTableData.find((row: any) => row.parentAsin === data.parentAsin)
|
|
|
if (leftRow) {
|
|
|
await vxeRef.value.setCheckboxRow(leftRow, false)
|
|
|
}
|
|
@@ -229,10 +248,19 @@ async function handleScroll(event: any) {
|
|
|
const target = event.$event.target
|
|
|
// 计算是否达到底部:容器高度 + 滚动顶部距离 >= 滚动内容的总高度
|
|
|
if (target.scrollHeight - (target.scrollTop + target.clientHeight) < 1) {
|
|
|
- page += 1
|
|
|
- await fetchParentAsin()
|
|
|
- if (isScrollSelectAll.value) {
|
|
|
- await vxeRef.value.setAllCheckboxRow(true)
|
|
|
+ if (hasMoreParentAsin) {
|
|
|
+ // 只有在还有数据时才进行加载
|
|
|
+ page += 1
|
|
|
+ if (productLineId.value.length > 0) {
|
|
|
+ emitter.emit('PopoverFilterTable-sendRequest')
|
|
|
+ } else {
|
|
|
+ await fetchParentAsin()
|
|
|
+ }
|
|
|
+ if (isScrollSelectAll.value) {
|
|
|
+ await vxeRef.value.setAllCheckboxRow(true)
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ console.log('Reached the bottom, but no more data to load.')
|
|
|
}
|
|
|
}
|
|
|
}
|