bug
jiangping
2023-12-06 1f4e7d0f73a73e7350cf5a1df279d5f30904c5d5
minipro_standard/components/selectMaterial.vue
@@ -1,61 +1,161 @@
<template>
   <u-popup :show="show" :round="10" closeable @close="show=false">
      <view class="material-content">
         <u-list @scrolltoupper="scrolltoupper" @scrolltolower="scrolltolower">
            <u-list-item v-for="(item, index) in list" :key="index">
               <view class="" style="height: 20px;">{{item}}</view>
      <view class="material-content bbox p30">
         <view class="tc b f30 c2">选择物料</view>
         <scroll-view scroll-y="true" refresher-enabled="true" :refresher-triggered="refreshing"
            @scrolltolower="loadMore" @refresherrefresh="onRefresh">
            <view v-for="(item1, index) in list" :key="index" class="mb20" @click="jump(item1)">
               <div class="page_content_title_top">
                  <span>{{ item1.materialName + ' | ' + item1.materialCode }}</span>
               </div>
               <div class="page_content_title_bottom">
                  <span>{{ item1.locationName }}&nbsp;/&nbsp;</span>
                  <span>{{ item1.num }}{{ item1.unitName }}</span>
               </div>
               <div class="page_content_title_bottom">
                  <span class="green" v-if="item1.qualityType == 0">合格&nbsp;<span class="c1">/</span>&nbsp;</span>
                  <span class="orange" v-else-if="item1.qualityType == 1">不良&nbsp;<span
                        class="c1">/</span>&nbsp;</span>
                  <span class="red" v-else-if="item1.qualityType == 2">报废&nbsp;<span
                        class="c1">/</span>&nbsp;</span>
                  <span v-else>-&nbsp;/&nbsp;</span>
                  <span>{{item1.procedureName ? item1.procedureName : '-'}}&nbsp;/&nbsp;</span>
                  <span>{{item1.batch ? item1.batch : '-'}}</span>
               </div>
            </view>
         </scroll-view>
         <!-- <u-list @scrolltoupper="scrolltoupper" @scrolltolower="scrolltolower">
            <u-list-item v-for="(item1, index) in list" :key="index">
            </u-list-item>
         </u-list>
         </u-list> -->
      </view>
   </u-popup>
</template>
<script>
   import {
      choiceStockListPage,
      choiceStockPageForStandard
   } from '@/util/api/agencyAPI'
   export default {
      name: "selectMaterial",
      data() {
         return {
            show: false,
            pages: {
               size: 10,
               index: 1,
               total: 0
            show: false,
            refreshing: false,
            pages: {
               capacity: 10,
               page: 1,
               total: 0
            },
            list: [
               1,2,3,4,5,6,7,8
            list: [
               1, 2, 3, 4, 5, 6, 7, 8
            ]
         };
      },
      methods: {
         open(target) {
            this.show = true
            this.workorderId = target.workorderId
            this.refreshing = false
            this.workorderId = target.workorderId
            this.deviceId = target.deviceId
            this.list = []
            this.pages = {
               size: 10,
               index: 1,
               total: 0
            this.pages = {
               capacity: 10,
               page: 1,
               total: 0
            }
            this.loadData()
         },
         loadData() {
            this.list = [1,2,3,4,5,6,1,2,3,4,5,6,1,2,3,4,5,6,1,2,3,4,5,6,1,2,3,4,5,6,1,2,3,4,5,6,1,2,3,4,5,6]
            choiceStockPageForStandard({
                  ...this.pages,
                  model: {
                     workorderId: this.workorderId,
                     deviceId: this.deviceId
                  }
               }).then(res => {
                  let {
                     data
                  } = res
                  if (data.page == 1) {
                     this.list = [];
                  }
                  this.pages.page = data.page
                  this.pages.total = data.total
                  this.list.push(...data.records)
               }).catch((err) => {
               })
               .finally(() => {
                  this.refreshing = false;
               })
         },
         scrolltoupper() {
            console.log('scrolltoupper');
            this.loadData()
         loadMore() {
            this.pages.page += 1
            this.loadData()
         },
         scrolltolower() {
            console.log('scrolltolower');
            this.loadData()
         onRefresh() {
            if (this.refreshing) return
            this.refreshing = true;
            this.pages.page = 1
            this.loadData()
         },
         jump(item) {
            this.$emit('selectAction', item)
            this.show = false
         }
      }
   }
</script>
<style lang="scss" scoped>
   .material-content {
      height: 800rpx;
      height: 1100rpx;
   }
   .page_content_title_top {
      display: flex;
      align-items: center;
      justify-content: space-between;
      span {
         &:nth-child(1) {
            font-size: 30rpx;
            font-weight: 500;
            color: #222222;
         }
         &:nth-child(2) {
            flex-shrink: 0;
            font-size: 24rpx;
            font-weight: 400;
            color: #333333;
            // span {
            //    font-size: 24rpx;
            //    color: $nav-color;
            // }
         }
      }
   }
   .page_content_title_bottom {
      margin-top: 10rpx;
      span {
         font-size: 24rpx;
         font-weight: 400;
         color: #666666;
      }
   }
   .page_content_title {
      display: flex;
      flex-direction: column;
      margin-bottom: 10rpx;
   }
</style>