From 8aaa45b4619984e75bfc952e82228f170c985d82 Mon Sep 17 00:00:00 2001
From: NGyuejh <2083483352@qq.com>
Date: 星期五, 29 十二月 2023 11:08:31 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 north-glass-erp/northglass-erp/src/views/sd/product/SelectProduct.vue |  121 +++++++++++++++++++++++++++-------------
 1 files changed, 82 insertions(+), 39 deletions(-)

diff --git a/north-glass-erp/northglass-erp/src/views/sd/product/SelectProduct.vue b/north-glass-erp/northglass-erp/src/views/sd/product/SelectProduct.vue
index 47be59c..1ce781f 100644
--- a/north-glass-erp/northglass-erp/src/views/sd/product/SelectProduct.vue
+++ b/north-glass-erp/northglass-erp/src/views/sd/product/SelectProduct.vue
@@ -3,15 +3,12 @@
 import deepClone from "@/utils/deepClone"
 import {ElDatePicker, ElMessage} from "element-plus"
 import useProductGlassTypeStore from "@/stores/sd/product/productGlassType"
-import useProductStore from "@/stores/sd/product/prduct"
 import {onMounted, reactive, ref, watch} from "vue"
 import {Search} from "@element-plus/icons-vue"
 import GlassType from "@/components/sd/product/GlassType.vue"
 import {useRouter} from  'vue-router'
 import BasicTable from '@/components/basic/BasicTable.vue'
-import scrollEvnt from "@/hook";
 let productGlassTypeStore = useProductGlassTypeStore()
-let productStore = useProductStore()
 let router=useRouter()
 //鐩戝惉鐜荤拑绫诲瀷鏀瑰彉
 watch(productGlassTypeStore,(newVal,oldVal) => {
@@ -20,54 +17,100 @@
   })
 })
 
+let scrollTop =ref(null)
+let scrollHeight =ref(null)
+let clientHeight =ref(null)
+const  scrollEvnt = (row) => {
+  // 鍐呭楂樺害
+  scrollTop.value = row.$event.target.scrollTop
+  scrollHeight.value = row.$event.target.scrollHeight
+  clientHeight.value = row.$event.target.clientHeight
+}
+
+
+let produceList = ref([])
 let pageNum=$ref(1)
-watch(productStore,(newVal,oldVal) => {
-  if(newVal.flag===true){
-    pageNum=pageNum+1
+let pageState = null
+//鐩戝惉浜у搧婊氬姩鏉$姸鎬侊紝婊氬姩鍒板簳閮ㄥ悜鍚庣璇锋眰鏁版嵁
+watch(scrollTop,(newVal,oldVal) => {
+  //鍒ゆ柇褰撳墠鐘舵�佹煡璇㈢姸鎬�
+  if(pageState!==null){
+    return;
+  }
+  //鍒ゆ柇婊氬姩鏉′笂涓嬫粴鍔ㄤ笉鏄乏鍙虫粴鍔紝褰撳乏鍙虫粴鍔ㄧ洿鎺ヨ繑鍥�
+  if((newVal === oldVal && newVal===0) || oldVal===null){
+    return;
+  }
+  //鍒ゆ柇鏄惁婊氬埌搴曢儴
+  if ((Math.round(scrollTop.value + clientHeight.value)+5 >= scrollHeight.value ) ) {
+    if(newVal>oldVal){
+      //鍒ゆ柇褰撳墠瀹瑰櫒闀垮害鏄惁涓�500锛屽苟涓斿綋鍓嶉〉灏忎簬瀹瑰櫒鎬绘暟閲�
+      if(produceList.length===500 && pageNum<(produceList.length/100)){
+        pageNum=pageNum+5
+      }else{
+        pageNum=pageNum+1
+      }
+      pageState=true
+    }
+  }else if(newVal===0 && oldVal>0 && pageNum>1  ){  //鍒ゆ柇鏄惁婊氬埌椤堕儴骞朵笖澶т簬瀹瑰櫒鏁伴噺
+    //鍒ゆ柇鍚戜笂婊氬姩褰撳墠椤垫暟鏄惁澶т簬瀹瑰櫒鏁板��
+    if(pageNum>5){
+      pageNum=pageNum-5
+    }else if((produceList.length/100)>=5) {
+      pageNum=pageNum-1
+    }else{
+      return
+    }
+    pageState =false
+  }
+  if(pageState!==null){
+    gridOptions.loading=true
+    request.get(`/product/${pageNum}/100`).then((res) => {
+      try{
+        if(res.code==200){
+          if(pageState){
+            produceList = produceList.concat(res.data)
+            if(produceList.length>500){
+              produceList=produceList.slice(100,600)
+            }
+          }else{
+            produceList = res.data.concat(produceList)
+            if(produceList.length>500){
+              produceList=produceList.slice(0,500)
+            }
+          }
+          xGrid.value.reloadData(produceList)
+          pageState=null
+        }else{
+          ElMessage.warning(res.msg)
+        }
+      }finally {
+        gridOptions.loading=false
+      }
+    })
+  }
+
+
     //鍚庣鑾峰彇鏈夊灏戦〉锛岃秴杩囧灏戦〉涓嶅啀璇锋眰
     /*if(pageNum>5){
       console.log(newVal.pageNum)
       return
     }*/
-    request.get(`/product/${pageNum}/100`).then((res) => {
-      gridOptions.loading=true
-      try{
-        if(res.code==200){
-          gridOptions.data=  gridOptions.data.concat(res.data)
-          newVal.flag=false
-          setTimeout(()=>{
-            gridOptions.loading=false
-          },1000)
-        }else{
-          ElMessage.warning(res.msg)
-        }
-      }finally {
-
-      }
-    })
-  }
 
 })
-
-let flag = $ref(false)
 request.get("/product/1/100").then((res) => {
   if(res.code==200){
-    gridOptions.data= deepClone(res.data)
-    flag = true
+    produceList = produceList.value.concat(deepClone(res.data))
+
+    xGrid.value.reloadData(produceList)
+    gridOptions.loading=false
   }else{
     ElMessage.warning(res.msg)
     router.push("/login")
   }
 })
 
-//瀛愮粍浠舵帴鏀跺弬鏁�
-let tableProp = $ref({
-  datas:null,
-  footList:[],
-  //绛涢�夋潯浠跺垪
-  filter:{
-  },
-})
+
 
 
 
@@ -91,18 +134,19 @@
 
 const xGrid = ref()
 const gridOptions = reactive({
-  loading: false,
+  loading: true,
   border:  "full",//琛ㄦ牸鍔犺竟妗�
   keepSource: true,//淇濇寔婧愭暟鎹�
   align: 'center',//鏂囧瓧灞呬腑
   stripe:true,//鏂戦┈绾�
-  rowConfig: {isCurrent: true, isHover: true,height: 50},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
+  rowConfig: {isCurrent: true, isHover: true,height: 60, useKey: true},//榧犳爣绉诲姩鎴栭�夋嫨楂樹寒
   id: 'demo_1',
   showFooter: true,//鏄剧ず鑴�
   printConfig: {},
   importConfig: {},
   exportConfig: {},
-  scrollY:{ enabled: true ,gt:100},//寮�鍚櫄鎷熸粴鍔�
+  scrollX:{enabled: true},
+  scrollY:{ enabled: true ,gt:0},//寮�鍚櫄鎷熸粴鍔�
   showOverflow:true,
   columnConfig: {
     resizable: true,
@@ -139,7 +183,6 @@
     zoom: true,
     custom: true
   },
-  data:  null,//table body瀹為檯鏁版嵁
   footerMethod ({ columns, data }) {//椤佃剼鍑芥暟
     return[
       columns.map((column, columnIndex) => {

--
Gitblit v1.8.0