Files
zgty-mas-m/pages/material/inventoryCheck/index.vue
2026-03-27 17:32:11 +08:00

114 lines
2.8 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<template>
<navbar-back title="库存盘点"></navbar-back>
<view class="p8">
<u-sticky>
<up-subsection
activeColor="#0055A2"
mode="subsection"
:list="list"
:current="current"
@change="changeTab"
></up-subsection>
</u-sticky>
<scroll-view style="height: 82vh" scroll-y scroll-with-animation @scrolltolower="handleScrolltolower">
<view class="x-f border-b" v-for="(item, index) in listData" @click="handleClickItem(item)">
<view class="data-item">
<view
>标题<text>{{ item.title }}</text></view
>
<view
>盘点人<text>{{ item.operatorName }}</text></view
>
<view
>盘点时间<text>{{ nx.$dayjs(item.applyTime).format('YYYY-MM-DD HH:mm:ss') }}</text></view
>
<view
>盘点部门<text>{{ deptName(item) }}</text></view
>
<view
>盘点事由<text>{{ item.reason }}</text></view
>
</view>
</view>
<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 userInfo = computed(() => nx.$store('user').userInfo)
const list = ref(['待盘点', '已盘点'])
const allChecked = ref(false)
const detailIds = ref([])
watch(allChecked, value => {
if (value) {
detailIds.value = listData.value.map(item => item.id)
} else {
detailIds.value = []
}
})
const current = ref(0)
function changeTab(index) {
current.value = index
getInitData()
}
const searchParams = computed(() => {
if (current.value === 0) {
return {
businessType: '库存盘点',
operatorId: userInfo.value.id,
progress: 'in_progress'
}
} else {
return {
businessType: '库存盘点',
operatorId: userInfo.value.id,
progress: 'completed'
}
}
})
const { listData, scrollToLower, loadStatus, getInitData } = useListData({
searchParams,
api: nx.$api.material.getLifecycleList
})
onShow(() => {
getInitData()
})
function handleScrolltolower() {
scrollToLower()
}
const deptName = item => {
if (item.formData) {
let formData = JSON.parse(item.formData)
return formData.departmentName
}
return ''
}
function handleClickItem(item) {
nx.$router.go('/pages/material/inventoryCheck/check', { id: item.id, current: current.value })
}
</script>
<style lang="scss" scoped>
.data-item {
padding: 8px;
border-bottom: 1px solid #eee;
color: #909399;
text {
color: #000;
}
}
</style>