| north-glass-erp/.idea/dataSources.local.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| north-glass-erp/.idea/vcs.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| north-glass-erp/.idea/workspace.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| north-glass-erp/northglass-erp/src/components/basic/BasicTable.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| north-glass-erp/northglass-erp/src/hook/index.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| north-glass-erp/northglass-erp/src/stores/sd/product/prduct.js | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| north-glass-erp/northglass-erp/src/views/LoginView.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| north-glass-erp/northglass-erp/src/views/sd/product/SelectProduct.vue | ●●●●● 补丁 | 查看 | 原始文档 | 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 @@ "project.structure.side.proportion": "0.0", "settings.editor.selected.configurable": "preferences.pluginManager", "spring.configuration.checksum": "def6d90e829e50c63f98c387daecd138", "ts.external.directory.path": "D:\\软件\\IntelliJ IDEA 2023.2\\plugins\\javascript-impl\\jsLanguageServicesImpl\\external", "ts.external.directory.path": "D:\\file\\IntelliJ IDEA 2023.2.1\\plugins\\javascript-impl\\jsLanguageServicesImpl\\external", "vue.rearranger.settings.migration": "true" }, "keyToStringList": { @@ -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) => {