<template> <view class="container"> <VNavigationBar background-color="#fff" title="入库单" title-color="#333"></VNavigationBar> <view class="body"> <view class="orderList"> <scroll-view scroll-y="true" style="height: 100%" class="itemContent" @scrolltolower="onReachBottomCus" refresher-enabled @refresherrefresh="onRefresherrefresh" :refresher-triggered="isTriggered"> <in-ware-card v-for="(item, index) in inWareList" :key="index" :order="item" @childEvent="onRefresherrefresh" @startWork="startWork"></in-ware-card> <view style="text-align: center" v-if="inWareList.length==0"> <image class="" src="@/static/images/nothing.png"></image> </view> </scroll-view> </view> </view> <tabBarVue msg="2"></tabBarVue> </view> </template> <script> import VNavigationBar from '@/components/VNavigationBar.vue' import tabBarVue from '@/components/tabBar/tabBar.vue' import OrderCard from "@/components/orderCard.vue"; import request from '@/utils/request'; import {formatTimestamp, getOrderStatusText, builderOrder, saveTicketsRecords} from "@/utils/utils"; import { getToken, getUserInfo, getStrData, getTenantId } from '@/utils/auth' import RepairSoCard from "@/components/repairSoCard.vue"; import InWareCard from "@/components/inWareCard.vue"; export default { components: { OrderCard, tabBarVue, VNavigationBar, InWareCard, }, data() { return { searchText: "", payShow: false, activeKey: 0, pageNo: 1, pageSize: 10, total: 0, isRepairWarehouse: false, //是否是仓库管理员 //下来刷新状态 isTriggered: false, imageUrl: '', soId: "", orderList: [], inWareList: [], } }, onShow() { if (!getToken()) { uni.reLaunch({ url: '/pages/login/login' }) } else { //直接取缓存中的用户信息 this.userInfo = getUserInfo() this.onRefresherrefresh() } }, onLoad(data) { if (data.soId) { this.soId = data.soId } }, methods: { /** * 上滑加载数据 */ onReachBottomCus() { //判断 如果页码*页容量大于等于总条数,提示该页数据加载完毕 if (this.pageNo * this.pageSize >= this.total) { uni.$u.toast('没有更多数据了') return } //页码+1,调用获取数据的方法获取第二页数据 this.pageNo++ //此处调用自己获取数据列表的方法 this.getRepairSoList() }, /** * 下拉刷新数据 */ onRefresherrefresh() { this.isTriggered = true this.pageNo = 1 this.total = 0 this.getRepairSoList() this.repairSoList = [] }, /** * 清空 */ clearText() { this.searchText = "" this.onRefresherrefresh() }, changeTabFun(id) { this.activeKey = id this.onRefresherrefresh() }, gotoDetail(row) { if (row.goodsType === '2') { uni.navigateTo({ url: '/pages-order/orderDetail/orderDetail?ticketsId=' + row.goodsId }) } else { uni.navigateTo({ url: '/pages-order/orderDetail/orderDetail' }) } }, /** * 获取入库单 */ getRepairSoList() { console.log('soId', this.soId) const paramsObj = { pageNo: this.pageNo, pageSize: this.pageSize, userId: this.userInfo.id, mainId: this.soId, // soType: "01" } request({ url: '/admin-api/repair/so/page', method: 'get', params: paramsObj }).then((res) => { console.log('获取的数据', res.data.records) //判断 如果获取的数据的页码不是第一页,就让之前赋值获取过的数组数据 concat连接 刚获取的第n页数据 if (this.pageNo != 1) { this.inWareList = this.inWareList.concat(res.data.records) } else { this.inWareList = res.data.records } //将获取的总条数赋值 this.total = res.data.total this.isTriggered = false }) }, } } </script> <style lang="less" scoped> .container { height: 100%; background: #F3F5F7; display: flex; flex-direction: column; color: #333333; .header { padding: 40rpx 32rpx 20rpx; background-color: #fff; .searchBox { background: #F3F5F7; padding: 20rpx 32rpx; border-radius: 12rpx 12rpx 12rpx 12rpx; display: flex; align-items: center; column-gap: 12rpx; .searchInput { flex: 1; width: 0; } .searchBtn { font-weight: 500; font-size: 28rpx; color: #0174F6; } } } .body { flex: 1; height: 0; padding: 24rpx 32rpx; overflow: auto; } .tabList { background: #FFFFFF; border-radius: 12rpx 12rpx 12rpx 12rpx; display: flex; align-items: center; padding: 0 40rpx; .tabItem { padding: 30rpx; flex: 1; //z-index: 9999999; text-align: center; position: relative; font-size: 24rpx; &.actived { color: #0174F6; } .activeLine { position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); width: 96rpx; height: 6rpx; background: #0174F6; border-radius: 4rpx 4rpx 0rpx 0rpx; } } } .orderList { //padding: 30rpx 0; padding-top: 10rpx; height: calc(100% - 30rpx); display: flex; flex-direction: column; row-gap: 20rpx; .orderItem { } } } </style>