This commit is contained in:
hongchao 2025-07-23 18:26:43 +08:00
commit effce51e87
26 changed files with 125 additions and 74 deletions

View File

@ -307,7 +307,7 @@ const getTableList = async (isTap = false) => {
// //
const onScrollTolower = debounce(() => { const onScrollTolower = debounce(() => {
if (total.value > tableList.value.length) { if (total.value > tableList.value.length) {
queryParams.value.pageNum++ queryParams.value.pageSize += 5
getTableList() getTableList()
} }
}) })

View File

@ -129,7 +129,7 @@
const onScrollTolower = debounce(() => { const onScrollTolower = debounce(() => {
if (total.value > tableList.value.length) { if (total.value > tableList.value.length) {
queryParams.value.pageNum++ queryParams.value.pageSize += 5
getTableList() getTableList()
} }
}, 500) }, 500)

View File

@ -159,7 +159,7 @@
const onScrollTolower = debounce(() => { const onScrollTolower = debounce(() => {
if (total.value > tableList.value.length) { if (total.value > tableList.value.length) {
queryParams.value.pageNum++ queryParams.value.pageSize += 5
getTableList() getTableList()
} }
}, 500) }, 500)

View File

@ -175,7 +175,7 @@ const onScrollTolower = debounce(() => {
console.log('触底事件') console.log('触底事件')
// //
if (tableList.value.length < total.value) { if (tableList.value.length < total.value) {
queryParams.value.pageNum++ queryParams.value.pageSize += 5
getTableList(false) getTableList(false)
} }
}, 500) }, 500)

View File

@ -145,7 +145,7 @@ onShow(() => {
const onScrollTolower = debounce(() => { const onScrollTolower = debounce(() => {
console.log('触底事件') console.log('触底事件')
if (total.value > tableList.value.length) { if (total.value > tableList.value.length) {
queryParams.value.pageNum++ queryParams.value.pageSize += 5
getTableList() getTableList()
} }
}, 500) }, 500)

View File

@ -295,7 +295,7 @@ const onScrollTolower = debounce(() => {
console.log("下一页") console.log("下一页")
// //
if (tableList.value.length < total.value) { if (tableList.value.length < total.value) {
queryParams.value.pageNum++ queryParams.value.pageSize += 5
getTableList(false) getTableList(false)
} }
}, 500) }, 500)

View File

@ -227,7 +227,7 @@ const onScrollTolower = debounce(() => {
console.log('下一页') console.log('下一页')
// //
if (tableList.value.length < total.value) { if (tableList.value.length < total.value) {
queryParams.value.pageNum++ queryParams.value.pageSize += 5
getTableList(false) getTableList(false)
} }
}, 500) }, 500)

View File

@ -133,7 +133,7 @@ const onScrollTolower = debounce(() => {
console.log('触底事件') console.log('触底事件')
// //
if (tableList.value.length < total.value) { if (tableList.value.length < total.value) {
queryParams.value.pageNum++ queryParams.value.pageSize += 5
getTableList(false) getTableList(false)
} }
}, 500) }, 500)

View File

@ -137,7 +137,7 @@ const onScrollTolower = debounce(() => {
console.log('触底事件') console.log('触底事件')
// //
if (tableList.value.length < total.value) { if (tableList.value.length < total.value) {
queryParams.value.pageNum++ queryParams.value.pageSize += 5
getTableList(false) getTableList(false)
} }
}, 500) }, 500)

View File

@ -30,7 +30,7 @@
</view> </view>
<view class="table-list-item"> <view class="table-list-item">
<uni-row :gutter="24" style="display: flex;align-items: center"> <uni-row :gutter="24" style="display: flex; align-items: center">
<uni-col :span="6">出库方式</uni-col> <uni-col :span="6">出库方式</uni-col>
<uni-col :span="6"> <uni-col :span="6">
<view class="coding-btn" @tap="onCodeIdentify">编码识别</view> <view class="coding-btn" @tap="onCodeIdentify">编码识别</view>
@ -78,8 +78,8 @@
> >
<view class="table-list-item" v-for="item in codeDeviceList" :key="item.maId"> <view class="table-list-item" v-for="item in codeDeviceList" :key="item.maId">
<uni-row :gutter="24"> <uni-row :gutter="24">
<uni-col :span="6">物资类型</uni-col> <uni-col :span="8">物资类型</uni-col>
<uni-col :span="14"> <uni-col :span="12">
<view class="cont">{{ item.materialName }}</view> <view class="cont">{{ item.materialName }}</view>
</uni-col> </uni-col>
<uni-col :span="4"> <uni-col :span="4">
@ -90,7 +90,10 @@
borderColor="#409eff" borderColor="#409eff"
activeBorderColor="#409eff" activeBorderColor="#409eff"
:checked="item.checked" :checked="item.checked"
:disabled="maxNum === isSelectNum && !item.checked" :disabled="
(maxNum === isSelectNum && !item.checked) ||
isWithinOneMonth(item.nextCheckTime)
"
style="transform: scale(0.7)" style="transform: scale(0.7)"
/> />
</label> </label>
@ -98,29 +101,47 @@
</uni-col> </uni-col>
</uni-row> </uni-row>
<uni-row :gutter="24"> <uni-row :gutter="24">
<uni-col :span="6">规格型号</uni-col> <uni-col :span="8">规格型号</uni-col>
<uni-col :span="16"> <uni-col :span="14">
<view class="cont">{{ item.materialModel }}</view> <view class="cont">{{ item.materialModel }}</view>
</uni-col> </uni-col>
</uni-row> </uni-row>
<uni-row :gutter="24"> <uni-row :gutter="24">
<uni-col :span="6">设备编码</uni-col> <uni-col :span="8">设备编码</uni-col>
<uni-col :span="16"> <uni-col :span="14">
<view class="cont">{{ item.maCode }}</view> <view class="cont">{{ item.maCode }}</view>
</uni-col> </uni-col>
</uni-row> </uni-row>
<uni-row :gutter="24"> <uni-row :gutter="24">
<uni-col :span="6">设备状态</uni-col> <uni-col :span="8">设备状态</uni-col>
<uni-col :span="16"> <uni-col :span="14">
<view class="cont">{{ item.statusName }}</view> <view class="cont">{{ item.statusName }}</view>
</uni-col> </uni-col>
</uni-row> </uni-row>
<uni-row :gutter="24"> <uni-row :gutter="24">
<uni-col :span="6">设备数量</uni-col> <uni-col :span="8">设备数量</uni-col>
<uni-col :span="16"> <uni-col :span="14">
<view class="cont">1</view> <view class="cont">1</view>
</uni-col> </uni-col>
</uni-row> </uni-row>
<uni-row :gutter="24">
<uni-col :span="8">本次检验时间</uni-col>
<uni-col :span="14">
<view class="cont">{{ item.thisCheckTime }}</view>
</uni-col>
</uni-row>
<uni-row :gutter="24">
<uni-col :span="8">下次检验时间</uni-col>
<uni-col :span="14">
<view
class="cont"
:style="{
color: isWithinOneMonth(item.nextCheckTime) ? 'red' : '',
}"
>{{ item.nextCheckTime }}</view
>
</uni-col>
</uni-row>
</view> </view>
<view class="loading-text"> <view class="loading-text">
@ -157,6 +178,7 @@ const maxNum = ref(0)
const total = ref(0) const total = ref(0)
const boxCode = ref('') const boxCode = ref('')
const boxInfo = ref({}) const boxInfo = ref({})
const checkedIds = ref([])
// //
const queryCodeParams = ref({ const queryCodeParams = ref({
pageNum: 1, pageNum: 1,
@ -186,6 +208,20 @@ onShow(() => {
console.log(queryParams.value) console.log(queryParams.value)
getCodeDetailData(queryParams.value.id, queryParams.value.publishTask, queryParams.value.typeId) // 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) => { const getCodeDetailData = async (id, publishTask, typeId) => {
console.log('yyyyyyyyyy', id, publishTask, typeId) console.log('yyyyyyyyyy', id, publishTask, typeId)
@ -203,16 +239,27 @@ const getCodeDetailData = async (id, publishTask, typeId) => {
// //
const getCodeDeviceListData = async () => { const getCodeDeviceListData = async () => {
// ID const checkedIdSet = new Set(checkedIds.value)
const checkedIds = codeDeviceList.value.filter(e => e.checked).map(e => e.maId)
const res = await getCodeDeviceListAPI(queryCodeParams.value) const res = await getCodeDeviceListAPI(queryCodeParams.value)
// checked const newRows = res.rows || []
const newRows = res.rows.map(e => ({ const map = new Map()
...e,
checked: checkedIds.includes(e.maId) //
})) codeDeviceList.value.forEach((item) => {
codeDeviceList.value.push(...newRows) map.set(item.maId, item)
total.value = res.total })
// 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(() => { const onScrollTolower = debounce(() => {
// console.log('--') // console.log('--')
if (total.value > codeDeviceList.value.length) { if (total.value > codeDeviceList.value.length) {
queryCodeParams.value.pageNum++ queryCodeParams.value.pageSize += 5
getCodeDeviceListData() getCodeDeviceListData()
} }
}, 500) }, 500)
@ -239,6 +286,11 @@ const finish = computed(() => {
// //
const onChangeChecked = (item) => { const onChangeChecked = (item) => {
item.checked = !item.checked 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, outNum: 1,
parentId, parentId,
typeId, typeId,
publishTask publishTask,
}) })
}) })
console.log(paramsList) console.log(paramsList)
@ -525,8 +577,6 @@ const handleScanError = (error) => {
uni.showToast({ title: error.message, icon: 'none' }) uni.showToast({ title: error.message, icon: 'none' })
} }
// //
const getMaInfoScan = async () => { const getMaInfoScan = async () => {
let param = { let param = {
@ -574,7 +624,7 @@ const confirmCodeOutBound = async () => {
typeId, typeId,
typeName: codeData.value.typeName, typeName: codeData.value.typeName,
typeModelName: codeData.value.typeModelName, typeModelName: codeData.value.typeModelName,
publishTask publishTask,
}) })
const res = await setOutboundNumAPI({ leaseOutDetailsList: paramsList }) const res = await setOutboundNumAPI({ leaseOutDetailsList: paramsList })
console.log('333333333333', res) console.log('333333333333', res)

View File

@ -212,7 +212,7 @@ onShow(() => {
const onScrollTolower = debounce(() => { const onScrollTolower = debounce(() => {
console.log('触底事件') console.log('触底事件')
if (total.value > tableList.value.length) { if (total.value > tableList.value.length) {
queryParams.value.pageNum++ queryParams.value.pageSize += 5
getTableList() getTableList()
} }
}, 500) }, 500)

View File

@ -159,7 +159,7 @@ const onCodeSearch = () => {
const onScrollTolower = debounce(() => { const onScrollTolower = debounce(() => {
// console.log('--') // console.log('--')
if (total.value > codeDeviceList.value.length) { if (total.value > codeDeviceList.value.length) {
queryCodeParams.value.pageNum++ queryCodeParams.value.pageSize += 5
getCodeDeviceListData() getCodeDeviceListData()
} }
}, 500) }, 500)

View File

@ -204,7 +204,7 @@ onShow(() => {
const onScrollTolower = debounce(() => { const onScrollTolower = debounce(() => {
console.log('触底事件') console.log('触底事件')
if (total.value > tableList.value.length) { if (total.value > tableList.value.length) {
queryParams.value.pageNum++ queryParams.value.pageSize += 5
getTableList() getTableList()
} }
}, 500) }, 500)

View File

@ -379,7 +379,7 @@ const handleReview = (action) => {
const onScrollTolower = debounce(() => { const onScrollTolower = debounce(() => {
// console.log('--') // console.log('--')
if (total.value > codeDeviceList.value.length) { if (total.value > codeDeviceList.value.length) {
queryCodeParams.value.pageNum++ queryCodeParams.value.pageSize += 5
getCodeDeviceListData() getCodeDeviceListData()
} }
}, 500) }, 500)

View File

@ -264,7 +264,7 @@ onShow(() => {
const onScrollTolower = debounce(() => { const onScrollTolower = debounce(() => {
console.log('触底事件') console.log('触底事件')
if (total.value > tableList.value.length) { if (total.value > tableList.value.length) {
queryParams.value.pageNum++ queryParams.value.pageSize += 5
getTableList() getTableList()
} }
}, 500) }, 500)

View File

@ -223,7 +223,7 @@ onShow(() => {
const onScrollTolower = debounce(() => { const onScrollTolower = debounce(() => {
console.log('触底事件') console.log('触底事件')
if (total.value > tableList.value.length) { if (total.value > tableList.value.length) {
queryParams.value.pageNum++ queryParams.value.pageSize += 5
getTableList() getTableList()
} }
}, 500) }, 500)

View File

@ -212,7 +212,7 @@
const onScrollTolower = debounce(() => { const onScrollTolower = debounce(() => {
if (total.value > tableList.value.length) { if (total.value > tableList.value.length) {
queryParams.value.pageNum++ queryParams.value.pageSize += 5
getTableList() getTableList()
} }
}, 500) }, 500)

View File

@ -225,7 +225,7 @@
const onScrollTolower = debounce(() => { const onScrollTolower = debounce(() => {
if (total.value > tableList.value.length) { if (total.value > tableList.value.length) {
queryParams.value.pageNum++ queryParams.value.pageSize += 5
getTableList() getTableList()
} }
}, 500) }, 500)

View File

@ -217,7 +217,7 @@ onShow(() => {
const onScrollTolower = debounce(() => { const onScrollTolower = debounce(() => {
console.log('触底事件') console.log('触底事件')
if (total.value > tableList.value.length) { if (total.value > tableList.value.length) {
queryParams.value.pageNum++ queryParams.value.pageSize += 5
getTableList() getTableList()
} }
}, 500) }, 500)

View File

@ -245,7 +245,7 @@ onShow(() => {
const onScrollTolower = debounce(() => { const onScrollTolower = debounce(() => {
console.log('触底事件') console.log('触底事件')
if (total.value > tableList.value.length) { if (total.value > tableList.value.length) {
queryParams.value.pageNum++ queryParams.value.pageSize += 5
getTableList() getTableList()
} }
}, 500) }, 500)

View File

@ -257,7 +257,7 @@ const getTableList = async (isTap = false) => {
const onScrollTolower = debounce(() => { const onScrollTolower = debounce(() => {
// //
if (tableList.value.length < total.value) { if (tableList.value.length < total.value) {
queryParams.value.pageNum++ queryParams.value.pageSize += 5
getTableList(false) getTableList(false)
} }
}, 500) }, 500)

View File

@ -260,7 +260,7 @@ const getTableList = async (isTap = false) => {
const onScrollTolower = debounce(() => { const onScrollTolower = debounce(() => {
// //
if (tableList.value.length < total.value) { if (tableList.value.length < total.value) {
queryParams.value.pageNum++ queryParams.value.pageSize += 5
getTableList(false) getTableList(false)
} }
}, 500) }, 500)

View File

@ -225,7 +225,7 @@ const getTableList = async (isTap = false) => {
const onScrollTolower = debounce(() => { const onScrollTolower = debounce(() => {
// //
if (tableList.value.length < total.value) { if (tableList.value.length < total.value) {
queryParams.value.pageNum++ queryParams.value.pageSize += 5
getTableList(false) getTableList(false)
} }
}, 500) }, 500)

View File

@ -237,7 +237,7 @@ const getTableList = async (isTap = false) => {
const onScrollTolower = debounce(() => { const onScrollTolower = debounce(() => {
// //
if (tableList.value.length < total.value) { if (tableList.value.length < total.value) {
queryParams.value.pageNum++ queryParams.value.pageSize += 5
getTableList(false) getTableList(false)
} }
}, 500) }, 500)

View File

@ -2,16 +2,16 @@
<!-- 退料任务 --> <!-- 退料任务 -->
<view class="accept page-common"> <view class="accept page-common">
<uni-row :gutter="24" class="search-form"> <uni-row :gutter="24" class="search-form">
<uni-col :span="16"> <uni-col :span="18">
<view> <view>
<uni-easyinput placeholder="请输入内容"/> <uni-easyinput v-model="queryParams.keyWord" placeholder="请输入内容"/>
</view> </view>
</uni-col> </uni-col>
<uni-col :span="4"> <uni-col :span="6">
<view class="search" @click="">查询</view> <view class="search" @click="getTableList">查询</view>
</uni-col> </uni-col>
</uni-row> </uni-row>
<uni-row :gutter="24" class="search-form"> <!-- <uni-row :gutter="24" class="search-form">
<uni-col :span="5"> <uni-col :span="5">
<view style="font-size: 24rpx;">物资类型</view> <view style="font-size: 24rpx;">物资类型</view>
</uni-col> </uni-col>
@ -44,7 +44,7 @@
</view> </view>
</scroll-view> </scroll-view>
</uni-col> </uni-col>
</uni-row> </uni-row> -->
<view style="width:100%;"> <view style="width:100%;">
<uni-table border stripe emptyText=""> <uni-table border stripe emptyText="">
<uni-tr> <uni-tr>
@ -185,26 +185,27 @@ const queryParams = ref({
const onScrollTolower = debounce(() => { const onScrollTolower = debounce(() => {
console.log('触底事件') console.log('触底事件')
if (total.value > tableList.value.length) { if (total.value > tableList.value.length) {
queryParams.value.pageNum++ queryParams.value.pageSize += 10
getTableList() getTableList()
} }
}, 500) }, 500)
// //
const getTableList = async (isTap = false) => { const getTableList = async (isTap = false) => {
// console.log('queryParams.value', queryParams.value) const res = await getRetainedEquipmentListApi(queryParams.value);
const res = await getRetainedEquipmentListApi(queryParams.value) const newRows = res?.data?.rows || [];
console.log(res) total.value = res?.data?.total || 0;
total.value = res.data.total
if (isTap) { if (isTap || queryParams.pageNum === 1) {
tableList.value = res.data.rows // tab
} else { tableList.value = newRows;
if (res.data.rows.length == 0) { } else {
tableList.value = [] // typeId
} else { const existingIds = new Set(tableList.value.map(item => item.typeId));
tableList.value.push(...res.data.rows) const filteredRows = newRows.filter(item => !existingIds.has(item.typeId));
} tableList.value.push(...filteredRows);
} }
} };
const getRetainedEquipmentList = async () => { const getRetainedEquipmentList = async () => {
const res = await getRetainedEquipmentListApi({isApp:1}) const res = await getRetainedEquipmentListApi({isApp:1})
console.log(res) console.log(res)
@ -264,10 +265,10 @@ onLoad(() => {
// //
.search { .search {
height: 80rpx; height: 60rpx;
background: linear-gradient(135deg, #4b8eff 0%, #3784fb 100%); background: linear-gradient(135deg, #4b8eff 0%, #3784fb 100%);
text-align: center; text-align: center;
line-height: 80rpx; line-height: 60rpx;
color: #fff; color: #fff;
border-radius: 12rpx; border-radius: 12rpx;
font-size: 28rpx; font-size: 28rpx;

View File

@ -4,7 +4,7 @@ import { http } from '@/utils/http'
export const getRetainedEquipmentListApi = (data) => { export const getRetainedEquipmentListApi = (data) => {
return http({ return http({
method: 'GET', method: 'GET',
url: '/material/complex_query/getRetainedEquipmentList', url: '/material/complex_query/getPersonNum',
data, data,
}) })
} }