NGyuejh
2023-12-29 8aaa45b4619984e75bfc952e82228f170c985d82
Merge remote-tracking branch 'origin/master'
7个文件已修改
1个文件已删除
200 ■■■■■ 已修改文件
north-glass-erp/.idea/dataSources.local.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/.idea/vcs.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/.idea/workspace.xml 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/components/basic/BasicTable.vue 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/hook/index.js 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/stores/sd/product/prduct.js 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/LoginView.vue 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/northglass-erp/src/views/sd/product/SelectProduct.vue 121 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
north-glass-erp/.idea/dataSources.local.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="dataSourceStorageLocal" created-in="IU-232.8660.185">
  <component name="dataSourceStorageLocal" created-in="IU-232.9559.62">
    <data-source name="@localhost [2]" uuid="165c5447-d19a-4aaf-af5f-cee92ae696c2">
      <database-info product="MySQL" version="8.0.22" jdbc-version="4.2" driver-name="MySQL Connector/J" driver-version="mysql-connector-java-8.0.25 (Revision: 08be9e9b4cba6aa115f9b27b215887af40b159e0)" dbms="MYSQL" exact-version="8.0.22" exact-driver-version="8.0">
        <extra-name-characters>#@</extra-name-characters>
north-glass-erp/.idea/vcs.xml
@@ -2,6 +2,5 @@
<project version="4">
  <component name="VcsDirectoryMappings">
    <mapping directory="$PROJECT_DIR$/.." vcs="Git" />
    <mapping directory="$PROJECT_DIR$" vcs="Git" />
  </component>
</project>
north-glass-erp/.idea/workspace.xml
@@ -4,7 +4,9 @@
    <option name="autoReloadType" value="SELECTIVE" />
  </component>
  <component name="ChangeListManager">
    <list default="true" id="402214ec-6c93-4a9d-b589-f17dc90f718e" name="更改" comment="11.24提交" />
    <list default="true" id="402214ec-6c93-4a9d-b589-f17dc90f718e" name="更改" comment="11.24提交">
      <change beforePath="$PROJECT_DIR$/northglass-erp/src/views/LoginView.vue" beforeDir="false" afterPath="$PROJECT_DIR$/northglass-erp/src/views/LoginView.vue" afterDir="false" />
    </list>
    <option name="SHOW_DIALOG" value="false" />
    <option name="HIGHLIGHT_CONFLICTS" value="true" />
    <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
@@ -67,7 +69,7 @@
    &quot;project.structure.side.proportion&quot;: &quot;0.0&quot;,
    &quot;settings.editor.selected.configurable&quot;: &quot;preferences.pluginManager&quot;,
    &quot;spring.configuration.checksum&quot;: &quot;def6d90e829e50c63f98c387daecd138&quot;,
    &quot;ts.external.directory.path&quot;: &quot;D:\\软件\\IntelliJ IDEA 2023.2\\plugins\\javascript-impl\\jsLanguageServicesImpl\\external&quot;,
    &quot;ts.external.directory.path&quot;: &quot;D:\\file\\IntelliJ IDEA 2023.2.1\\plugins\\javascript-impl\\jsLanguageServicesImpl\\external&quot;,
    &quot;vue.rearranger.settings.migration&quot;: &quot;true&quot;
  },
  &quot;keyToStringList&quot;: {
@@ -104,7 +106,7 @@
      <command value="length" />
    </option>
  </component>
  <component name="RunManager" selected="Spring Boot.ErpApplication">
  <component name="RunManager" selected="npm.dev">
    <configuration default="true" type="ArquillianJUnit" factoryName="" nameIsGenerated="true">
      <option name="arquillianRunConfiguration">
        <value>
@@ -213,6 +215,7 @@
      <workItem from="1702858329054" duration="9016000" />
      <workItem from="1703031064839" duration="55055000" />
      <workItem from="1703463546867" duration="16447000" />
      <workItem from="1703811064202" duration="8050000" />
    </task>
    <task id="LOCAL-00001" summary="第一次推送">
      <option name="closed" value="true" />
@@ -373,6 +376,23 @@
    <MESSAGE value="11.24提交" />
    <option name="LAST_COMMIT_MESSAGE" value="11.24提交" />
  </component>
  <component name="XDebuggerManager">
    <breakpoint-manager>
      <breakpoints>
        <line-breakpoint enabled="true" type="javascript">
          <url>file://$PROJECT_DIR$/northglass-erp/src/views/sd/product/SelectProduct.vue</url>
          <line>36</line>
          <option name="timeStamp" value="4" />
        </line-breakpoint>
        <line-breakpoint enabled="true" type="javascript">
          <url>file://$PROJECT_DIR$/northglass-erp/src/views/LoginView.vue</url>
          <line>32</line>
          <properties lambdaOrdinal="-1" />
          <option name="timeStamp" value="5" />
        </line-breakpoint>
      </breakpoints>
    </breakpoint-manager>
  </component>
  <component name="XSLT-Support.FileAssociations.UIState">
    <expand />
    <select />
north-glass-erp/northglass-erp/src/components/basic/BasicTable.vue
@@ -48,7 +48,6 @@
<script lang="ts" setup>
import {ref, reactive, defineEmits, onMounted, nextTick, toRef, watch} from 'vue'
import {VxeGridProps, VXETable} from 'vxe-table'
import scrollEvnt from '@/hook/index'
import request from "@/utils/request"
import deepClone from "@/utils/deepClone";
import {ElMessage} from "element-plus";
north-glass-erp/northglass-erp/src/hook/index.js
@@ -1,12 +0,0 @@
import useProductStore from "@/stores/sd/product/prduct"
let productStore = useProductStore()
export default  function  scrollEvnt(row){
    // 内容高度
    var scrollHeight = row.$event.target.scrollHeight
    var clientHeight = row.$event.target.clientHeight
    var scrollTop = row.$event.target.scrollTop
    //滚动到底部
    if ((Math.round(scrollTop + clientHeight) >= scrollHeight ) ) {
        productStore.flag=true
    }
}
north-glass-erp/northglass-erp/src/stores/sd/product/prduct.js
File was deleted
north-glass-erp/northglass-erp/src/views/LoginView.vue
@@ -1,5 +1,5 @@
<script lang="ts" setup>
import {reactive, ref} from "vue"
import {onMounted, onUnmounted, reactive, ref} from "vue"
import {useRouter,useRoute } from 'vue-router'
import type {FormInstance, FormRules} from 'element-plus'
import { ElMessage } from "element-plus";
@@ -9,7 +9,7 @@
import { sendSock, createWebSocket, closeSock,global_callback1 } from "@/utils/webSocket"
const store=userInfo()
const ruleFormRef  = ref<FormInstance>()
let ruleFormRef  = ref<FormInstance>()
const router = useRouter()
const route = useRoute()
@@ -80,10 +80,23 @@
let loginLoadings= ref(false)
let registerLoadings= ref(false)
const keyDown = (e) => {
  // 回车则执行登录方法 enter键的ASCII是13
  if (e.keyCode == 13 || e.keyCode == 100) {
    submitForm(ruleFormRef.value)
  }
}
onMounted(()=>{
  window.addEventListener('keydown', keyDown)
})
onUnmounted(() => {
  window.removeEventListener('keydown', keyDown)
})
</script>
<template>
  <div class="mainDiv">
  <div class="mainDiv" >
    <div id="main-login">
      <div id="img-div">
        <img id="img-pic" src="@/assets/img.png" alt="">
@@ -91,6 +104,7 @@
      <div id="div-login">
        <h2>北玻自动化ERP管理系统</h2>
        <el-form
            @submit.native.prevent
            ref="ruleFormRef"
            :model="userForm"
            status-icon
@@ -124,7 +138,9 @@
            <el-button
                :loading="loginLoadings"
                type="primary"
                native-type="submit"
                @click="submitForm(ruleFormRef)"
                @keyup.enter.native="keyDown(e)"
            >登录
            </el-button>
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) => {