feat:设备使用记录

This commit is contained in:
houjunxiang
2026-03-05 16:54:47 +08:00
parent 749ac7f507
commit 9c88c45d66
357 changed files with 21486 additions and 5845 deletions

View File

@@ -0,0 +1,98 @@
<template>
<navbar-back title="试剂瓶回收"></navbar-back>
<view class="p8">
<u-sticky>
<view class="x-bc bg-w" v-if="listData.length > 0">
<checkbox-switch v-model="allChecked">全选</checkbox-switch>
<view class="pl16">
<up-button size="small" style="width: 60px" type="primary" text="回收" @click="handleSubmit"></up-button>
</view>
</view>
</u-sticky>
<scroll-view style="height: 90vh" scroll-y scroll-with-animation @scrolltolower="handleScrolltolower">
<u-checkbox-group placement="column" v-model="detailIds">
<view class="x-f border-b" v-for="(item, index) in listData">
<u-checkbox :name="item.id"></u-checkbox>
<view class="data-item">
<view
>试剂瓶名称<text>{{ item.materialName }}</text></view
>
<view
>类型<text>{{ item.materialType }}</text></view
>
<view
>数量<text>{{ item.quantity }}</text></view
>
<view
>清洗人<text>{{ item.operator }}</text></view
>
<view
>清洗日期<text>{{ nx.$dayjs(item.operatorDate).format('YYYY-MM-DD') }}</text></view
>
</view>
</view>
</u-checkbox-group>
<up-loadmore v-if="listData.length > 0" :status="loadStatus" />
<up-empty v-else mode="data" text="暂无数据" marginTop="50"> </up-empty>
</scroll-view>
</view>
</template>
<script setup>
import { ref, computed, watch } from 'vue'
import { useListData } from '@/nx/hooks/usePageListData'
import { onShow } from '@dcloudio/uni-app'
import nx from '@/nx'
const allChecked = ref(false)
const detailIds = ref([])
watch(allChecked, value => {
if (value) {
detailIds.value = listData.value.map(item => item.id)
} else {
detailIds.value = []
}
})
const searchParams = computed(() => {
return {
treatmentStatus: '0',
pageSize: 999
}
})
const { listData, scrollToLower, loadStatus, getInitData } = useListData({
searchParams,
api: nx.$api.material.getMaterialUseEndReuseDetailPage
})
onShow(() => {
getInitData()
})
function handleScrolltolower() {
scrollToLower()
}
function handleSubmit() {
if (detailIds.value.length === 0) {
return uni.showToast({
title: '请选择要回收的试剂瓶',
icon: 'none'
})
}
nx.$api.material.reuse(detailIds.value).then(res => {
uni.showToast({
title: '回收成功',
icon: 'none'
})
getInitData()
})
}
</script>
<style lang="scss" scoped>
.data-item {
padding: 8px;
color: #909399;
text {
color: #000;
}
}
</style>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff