diff --git a/src/pages/back/index.vue b/src/pages/back/index.vue index c554d2a..e36e2db 100644 --- a/src/pages/back/index.vue +++ b/src/pages/back/index.vue @@ -307,7 +307,7 @@ const getTableList = async (isTap = false) => { // 滚动触底事件 const onScrollTolower = debounce(() => { if (total.value > tableList.value.length) { - queryParams.value.pageNum++ + queryParams.value.pageSize += 5 getTableList() } }) diff --git a/src/pages/expectations/detail.vue b/src/pages/expectations/detail.vue index 0bc3e20..e768db6 100644 --- a/src/pages/expectations/detail.vue +++ b/src/pages/expectations/detail.vue @@ -129,7 +129,7 @@ const onScrollTolower = debounce(() => { if (total.value > tableList.value.length) { - queryParams.value.pageNum++ + queryParams.value.pageSize += 5 getTableList() } }, 500) diff --git a/src/pages/expectations/index.vue b/src/pages/expectations/index.vue index 022ce61..3b24511 100644 --- a/src/pages/expectations/index.vue +++ b/src/pages/expectations/index.vue @@ -159,7 +159,7 @@ const onScrollTolower = debounce(() => { if (total.value > tableList.value.length) { - queryParams.value.pageNum++ + queryParams.value.pageSize += 5 getTableList() } }, 500) diff --git a/src/pages/new-purchase/accept/index.vue b/src/pages/new-purchase/accept/index.vue index 963ba16..609bc10 100644 --- a/src/pages/new-purchase/accept/index.vue +++ b/src/pages/new-purchase/accept/index.vue @@ -175,7 +175,7 @@ const onScrollTolower = debounce(() => { console.log('触底事件') // 判断是否还有更多数据 if (tableList.value.length < total.value) { - queryParams.value.pageNum++ + queryParams.value.pageSize += 5 getTableList(false) } }, 500) diff --git a/src/pages/new-purchase/bind/index.vue b/src/pages/new-purchase/bind/index.vue index a55a2c5..527899a 100644 --- a/src/pages/new-purchase/bind/index.vue +++ b/src/pages/new-purchase/bind/index.vue @@ -145,7 +145,7 @@ onShow(() => { const onScrollTolower = debounce(() => { console.log('触底事件') if (total.value > tableList.value.length) { - queryParams.value.pageNum++ + queryParams.value.pageSize += 5 getTableList() } }, 500) diff --git a/src/pages/new-purchase/entry/index.vue b/src/pages/new-purchase/entry/index.vue index 901e962..c20be0e 100644 --- a/src/pages/new-purchase/entry/index.vue +++ b/src/pages/new-purchase/entry/index.vue @@ -295,7 +295,7 @@ const onScrollTolower = debounce(() => { console.log("下一页") // 判断是否还有更多数据 if (tableList.value.length < total.value) { - queryParams.value.pageNum++ + queryParams.value.pageSize += 5 getTableList(false) } }, 500) diff --git a/src/pages/part/entry/index.vue b/src/pages/part/entry/index.vue index de2953e..2d645fc 100644 --- a/src/pages/part/entry/index.vue +++ b/src/pages/part/entry/index.vue @@ -227,7 +227,7 @@ const onScrollTolower = debounce(() => { console.log('下一页') // 判断是否还有更多数据 if (tableList.value.length < total.value) { - queryParams.value.pageNum++ + queryParams.value.pageSize += 5 getTableList(false) } }, 500) diff --git a/src/pages/part/part-lease/applyList.vue b/src/pages/part/part-lease/applyList.vue index ebf64a6..25ac8f0 100644 --- a/src/pages/part/part-lease/applyList.vue +++ b/src/pages/part/part-lease/applyList.vue @@ -133,7 +133,7 @@ const onScrollTolower = debounce(() => { console.log('触底事件') // 判断是否还有更多数据 if (tableList.value.length < total.value) { - queryParams.value.pageNum++ + queryParams.value.pageSize += 5 getTableList(false) } }, 500) diff --git a/src/pages/part/parts-accept/index.vue b/src/pages/part/parts-accept/index.vue index 498ddca..6aec2f2 100644 --- a/src/pages/part/parts-accept/index.vue +++ b/src/pages/part/parts-accept/index.vue @@ -137,7 +137,7 @@ const onScrollTolower = debounce(() => { console.log('触底事件') // 判断是否还有更多数据 if (tableList.value.length < total.value) { - queryParams.value.pageNum++ + queryParams.value.pageSize += 5 getTableList(false) } }, 500) diff --git a/src/pages/picking/outbound/code-outbound.vue b/src/pages/picking/outbound/code-outbound.vue index e696935..6093dd8 100644 --- a/src/pages/picking/outbound/code-outbound.vue +++ b/src/pages/picking/outbound/code-outbound.vue @@ -30,7 +30,7 @@ - + 出库方式: 编码识别 @@ -78,8 +78,8 @@ > - 物资类型: - + 物资类型: + {{ item.materialName }} @@ -90,7 +90,10 @@ borderColor="#409eff" activeBorderColor="#409eff" :checked="item.checked" - :disabled="maxNum === isSelectNum && !item.checked" + :disabled=" + (maxNum === isSelectNum && !item.checked) || + isWithinOneMonth(item.nextCheckTime) + " style="transform: scale(0.7)" /> @@ -98,29 +101,47 @@ - 规格型号: - + 规格型号: + {{ item.materialModel }} - 设备编码: - + 设备编码: + {{ item.maCode }} - 设备状态: - + 设备状态: + {{ item.statusName }} - 设备数量: - + 设备数量: + 1 + + 本次检验时间: + + {{ item.thisCheckTime }} + + + + 下次检验时间: + + {{ item.nextCheckTime }} + + @@ -157,6 +178,7 @@ const maxNum = ref(0) const total = ref(0) const boxCode = ref('') const boxInfo = ref({}) +const checkedIds = ref([]) // 编码设备列表查询参数 const queryCodeParams = ref({ pageNum: 1, @@ -186,6 +208,20 @@ onShow(() => { console.log(queryParams.value) getCodeDetailData(queryParams.value.id, queryParams.value.publishTask, queryParams.value.typeId) //获取详情 }) + +const isWithinOneMonth = (dateStr) => { + if (!dateStr) { + return false + } + const inputDate = new Date(dateStr) + const today = new Date() + today.setHours(0, 0, 0, 0) // 清除时分秒 + const futureLimit = new Date(today) + futureLimit.setDate(today.getDate() + 30) + + return inputDate >= today && inputDate <= futureLimit +} + // 获取编码列表 const getCodeDetailData = async (id, publishTask, typeId) => { console.log('yyyyyyyyyy', id, publishTask, typeId) @@ -203,16 +239,27 @@ const getCodeDetailData = async (id, publishTask, typeId) => { // 获取编码列表 const getCodeDeviceListData = async () => { - // 记录已勾选的设备ID - const checkedIds = codeDeviceList.value.filter(e => e.checked).map(e => e.maId) + const checkedIdSet = new Set(checkedIds.value) const res = await getCodeDeviceListAPI(queryCodeParams.value) - // 合并新数据,并保持已勾选项的 checked 状态 - const newRows = res.rows.map(e => ({ - ...e, - checked: checkedIds.includes(e.maId) - })) - codeDeviceList.value.push(...newRows) - total.value = res.total + const newRows = res.rows || [] + const map = new Map() + + // 先放入旧数据(可保留滚动加载场景) + codeDeviceList.value.forEach((item) => { + map.set(item.maId, item) + }) + + // 再放入新数据,设置 checked 状态 + newRows.forEach((item) => { + map.set(item.maId, { + ...item, + checked: checkedIdSet.has(item.maId), + }) + }) + + // 更新最终列表 + codeDeviceList.value = Array.from(map.values()) + total.value = res.total || 0 } // 编码搜索按钮 @@ -226,7 +273,7 @@ const onCodeSearch = () => { const onScrollTolower = debounce(() => { // console.log('滚动触底--') if (total.value > codeDeviceList.value.length) { - queryCodeParams.value.pageNum++ + queryCodeParams.value.pageSize += 5 getCodeDeviceListData() } }, 500) @@ -239,6 +286,11 @@ const finish = computed(() => { // 复选框事件 const onChangeChecked = (item) => { item.checked = !item.checked + if (item.checked) { + checkedIds.value.push(item.maId) + } else { + checkedIds.value = checkedIds.value.filter((maId) => maId !== item.maId) + } } // 计算已选择数量 @@ -430,7 +482,7 @@ const boxOutBound = async () => { outNum: 1, parentId, typeId, - publishTask + publishTask, }) }) console.log(paramsList) @@ -525,8 +577,6 @@ const handleScanError = (error) => { uni.showToast({ title: error.message, icon: 'none' }) } - - //查看是否是该规格型号 const getMaInfoScan = async () => { let param = { @@ -574,7 +624,7 @@ const confirmCodeOutBound = async () => { typeId, typeName: codeData.value.typeName, typeModelName: codeData.value.typeModelName, - publishTask + publishTask, }) const res = await setOutboundNumAPI({ leaseOutDetailsList: paramsList }) console.log('333333333333', res) diff --git a/src/pages/picking/outbound/index.vue b/src/pages/picking/outbound/index.vue index 55d7135..5d4a3d7 100644 --- a/src/pages/picking/outbound/index.vue +++ b/src/pages/picking/outbound/index.vue @@ -212,7 +212,7 @@ onShow(() => { const onScrollTolower = debounce(() => { console.log('触底事件') if (total.value > tableList.value.length) { - queryParams.value.pageNum++ + queryParams.value.pageSize += 5 getTableList() } }, 500) diff --git a/src/pages/picking/outbound/inner-detail.vue b/src/pages/picking/outbound/inner-detail.vue index 23a3201..86ac8db 100644 --- a/src/pages/picking/outbound/inner-detail.vue +++ b/src/pages/picking/outbound/inner-detail.vue @@ -159,7 +159,7 @@ const onCodeSearch = () => { const onScrollTolower = debounce(() => { // console.log('滚动触底--') if (total.value > codeDeviceList.value.length) { - queryCodeParams.value.pageNum++ + queryCodeParams.value.pageSize += 5 getCodeDeviceListData() } }, 500) diff --git a/src/pages/picking/outbound/sign.vue b/src/pages/picking/outbound/sign.vue index 7732c3f..2953c50 100644 --- a/src/pages/picking/outbound/sign.vue +++ b/src/pages/picking/outbound/sign.vue @@ -204,7 +204,7 @@ onShow(() => { const onScrollTolower = debounce(() => { console.log('触底事件') if (total.value > tableList.value.length) { - queryParams.value.pageNum++ + queryParams.value.pageSize += 5 getTableList() } }, 500) diff --git a/src/pages/picking/review/details.vue b/src/pages/picking/review/details.vue index b2dda17..336ba4a 100644 --- a/src/pages/picking/review/details.vue +++ b/src/pages/picking/review/details.vue @@ -379,7 +379,7 @@ const handleReview = (action) => { const onScrollTolower = debounce(() => { // console.log('滚动触底--') if (total.value > codeDeviceList.value.length) { - queryCodeParams.value.pageNum++ + queryCodeParams.value.pageSize += 5 getCodeDeviceListData() } }, 500) diff --git a/src/pages/picking/review/index.vue b/src/pages/picking/review/index.vue index db33e58..7549569 100644 --- a/src/pages/picking/review/index.vue +++ b/src/pages/picking/review/index.vue @@ -264,7 +264,7 @@ onShow(() => { const onScrollTolower = debounce(() => { console.log('触底事件') if (total.value > tableList.value.length) { - queryParams.value.pageNum++ + queryParams.value.pageSize += 5 getTableList() } }, 500) diff --git a/src/pages/repair/equipAssessment/index.vue b/src/pages/repair/equipAssessment/index.vue index da9da05..6b6d8f7 100644 --- a/src/pages/repair/equipAssessment/index.vue +++ b/src/pages/repair/equipAssessment/index.vue @@ -223,7 +223,7 @@ onShow(() => { const onScrollTolower = debounce(() => { console.log('触底事件') if (total.value > tableList.value.length) { - queryParams.value.pageNum++ + queryParams.value.pageSize += 5 getTableList() } }, 500) diff --git a/src/pages/repair/fieldMaintenance/detail.vue b/src/pages/repair/fieldMaintenance/detail.vue index 6a51198..7877144 100644 --- a/src/pages/repair/fieldMaintenance/detail.vue +++ b/src/pages/repair/fieldMaintenance/detail.vue @@ -212,7 +212,7 @@ const onScrollTolower = debounce(() => { if (total.value > tableList.value.length) { - queryParams.value.pageNum++ + queryParams.value.pageSize += 5 getTableList() } }, 500) diff --git a/src/pages/repair/fieldMaintenance/index.vue b/src/pages/repair/fieldMaintenance/index.vue index 78c3702..966d03e 100644 --- a/src/pages/repair/fieldMaintenance/index.vue +++ b/src/pages/repair/fieldMaintenance/index.vue @@ -225,7 +225,7 @@ const onScrollTolower = debounce(() => { if (total.value > tableList.value.length) { - queryParams.value.pageNum++ + queryParams.value.pageSize += 5 getTableList() } }, 500) diff --git a/src/pages/repair/scrapExamine/index.vue b/src/pages/repair/scrapExamine/index.vue index 5fc0c0c..79a5bf9 100644 --- a/src/pages/repair/scrapExamine/index.vue +++ b/src/pages/repair/scrapExamine/index.vue @@ -217,7 +217,7 @@ onShow(() => { const onScrollTolower = debounce(() => { console.log('触底事件') if (total.value > tableList.value.length) { - queryParams.value.pageNum++ + queryParams.value.pageSize += 5 getTableList() } }, 500) diff --git a/src/pages/repair/testedInBound/index.vue b/src/pages/repair/testedInBound/index.vue index 98d9aec..358d62c 100644 --- a/src/pages/repair/testedInBound/index.vue +++ b/src/pages/repair/testedInBound/index.vue @@ -245,7 +245,7 @@ onShow(() => { const onScrollTolower = debounce(() => { console.log('触底事件') if (total.value > tableList.value.length) { - queryParams.value.pageNum++ + queryParams.value.pageSize += 5 getTableList() } }, 500) diff --git a/src/pages/standardBox/acceptBox.vue b/src/pages/standardBox/acceptBox.vue index 591f6b9..7378d55 100644 --- a/src/pages/standardBox/acceptBox.vue +++ b/src/pages/standardBox/acceptBox.vue @@ -257,7 +257,7 @@ const getTableList = async (isTap = false) => { const onScrollTolower = debounce(() => { // 判断是否还有更多数据 if (tableList.value.length < total.value) { - queryParams.value.pageNum++ + queryParams.value.pageSize += 5 getTableList(false) } }, 500) diff --git a/src/pages/standardBox/boxList.vue b/src/pages/standardBox/boxList.vue index 58c8590..983bd3a 100644 --- a/src/pages/standardBox/boxList.vue +++ b/src/pages/standardBox/boxList.vue @@ -260,7 +260,7 @@ const getTableList = async (isTap = false) => { const onScrollTolower = debounce(() => { // 判断是否还有更多数据 if (tableList.value.length < total.value) { - queryParams.value.pageNum++ + queryParams.value.pageSize += 5 getTableList(false) } }, 500) diff --git a/src/pages/standardBox/index.vue b/src/pages/standardBox/index.vue index 93480eb..84b8b8d 100644 --- a/src/pages/standardBox/index.vue +++ b/src/pages/standardBox/index.vue @@ -225,7 +225,7 @@ const getTableList = async (isTap = false) => { const onScrollTolower = debounce(() => { // 判断是否还有更多数据 if (tableList.value.length < total.value) { - queryParams.value.pageNum++ + queryParams.value.pageSize += 5 getTableList(false) } }, 500) diff --git a/src/pages/standardBox/transferBox.vue b/src/pages/standardBox/transferBox.vue index 62949b6..fcd38fa 100644 --- a/src/pages/standardBox/transferBox.vue +++ b/src/pages/standardBox/transferBox.vue @@ -237,7 +237,7 @@ const getTableList = async (isTap = false) => { const onScrollTolower = debounce(() => { // 判断是否还有更多数据 if (tableList.value.length < total.value) { - queryParams.value.pageNum++ + queryParams.value.pageSize += 5 getTableList(false) } }, 500) diff --git a/src/pages/stquery/deviceStatusRecord/index.vue b/src/pages/stquery/deviceStatusRecord/index.vue index e2894d1..086aec2 100644 --- a/src/pages/stquery/deviceStatusRecord/index.vue +++ b/src/pages/stquery/deviceStatusRecord/index.vue @@ -2,16 +2,16 @@ - + - + - - 查询 - + + 查询 + - + @@ -185,26 +185,27 @@ const queryParams = ref({ const onScrollTolower = debounce(() => { console.log('触底事件') if (total.value > tableList.value.length) { - queryParams.value.pageNum++ + queryParams.value.pageSize += 10 getTableList() } }, 500) // 获取列表数据 const getTableList = async (isTap = false) => { - // console.log('queryParams.value查询参数', queryParams.value) - const res = await getRetainedEquipmentListApi(queryParams.value) - console.log(res) - total.value = res.data.total - if (isTap) { - tableList.value = res.data.rows - } else { - if (res.data.rows.length == 0) { - tableList.value = [] - } else { - tableList.value.push(...res.data.rows) - } - } -} + const res = await getRetainedEquipmentListApi(queryParams.value); + const newRows = res?.data?.rows || []; + total.value = res?.data?.total || 0; + + if (isTap || queryParams.pageNum === 1) { + // 刷新或tab切换,直接替换 + tableList.value = newRows; + } else { + // 加载更多,按 typeId 去重后合并 + const existingIds = new Set(tableList.value.map(item => item.typeId)); + const filteredRows = newRows.filter(item => !existingIds.has(item.typeId)); + tableList.value.push(...filteredRows); + } +}; + const getRetainedEquipmentList = async () => { const res = await getRetainedEquipmentListApi({isApp:1}) console.log(res) @@ -264,10 +265,10 @@ onLoad(() => { // 搜索按钮 .search { - height: 80rpx; + height: 60rpx; background: linear-gradient(135deg, #4b8eff 0%, #3784fb 100%); text-align: center; - line-height: 80rpx; + line-height: 60rpx; color: #fff; border-radius: 12rpx; font-size: 28rpx; diff --git a/src/services/stquery/stquery.js b/src/services/stquery/stquery.js index 14f2b91..04b267a 100644 --- a/src/services/stquery/stquery.js +++ b/src/services/stquery/stquery.js @@ -4,7 +4,7 @@ import { http } from '@/utils/http' export const getRetainedEquipmentListApi = (data) => { return http({ method: 'GET', - url: '/material/complex_query/getRetainedEquipmentList', + url: '/material/complex_query/getPersonNum', data, }) }