From b0e84af3dafe8984b69858c4420b5611c9b58f30 Mon Sep 17 00:00:00 2001
From: CD配唱片 <CD配唱片>
Date: 星期四, 24 四月 2025 15:17:00 +0800
Subject: [PATCH] 提交工艺路线的表格触底加载

---
 /dev/null                                     |  233 ------------
 src/views/mainPlan/gasPlanning/index.vue      |   89 ++++
 src/components/HxlhTable/index.vue            |  388 +++++++++++---------
 src/views/mainPlan/plateProcessStat/index.vue |    1 
 src/views/basicData/processRoute/index.vue    |  410 ++++++++++++--------
 src/views/mainPlan/platePlanList/index.vue    |    2 
 6 files changed, 543 insertions(+), 580 deletions(-)

diff --git a/src/components/HxlhTable/index.vue b/src/components/HxlhTable/index.vue
index 53c7fab..34bc34e 100644
--- a/src/components/HxlhTable/index.vue
+++ b/src/components/HxlhTable/index.vue
@@ -1,180 +1,185 @@
 <template>
-    <div class="hxlh-table">
-        <vxe-grid
-            ref="vxeTable"
-            :show-header-overflow="true"
-            :show-overflow="showOverflow"
-            :stripe="true"
-            :border="true"
-            :show-footer="showfooter"
-            header-align="center"
-            highlight-hover-column
-            highlight-hover-row
-            resizable
-            size="small"
-            :loading="loading"
-            :pager-config="tablePage"
-            :form-config="tableForm"
-            :columns="columns"
-            :column-config="{resizable: true}"
-            :data.sync="data"
-            :checkbox-config="checkboxConfig"
-            :height="height"
-            :max-height="maxHeight"
-            :toolbar="toolbar"
-            :reload-data="reloadData"
-            :footer-method="footerMethod"
-            :footer-cell-class-name="footerCellClassName"
-            :scroll-x="{enabled: true}"
-            :scroll-y="{enabled: true}"
-            row-height="auto"
-            :expand-config="expandConfig"
-            :tree-config="treeConfig"
-            :row-style="rowStyle"
-            @sort-change="sortChange"
-            @page-change="pagerChange"
-            @form-submit="findList"
-            @checkbox-change="checkChange"
-            @checkbox-all="checkChangeall"
-            >
-            <template v-slot:buttons="row">
-                <slot name="buttons" v-bind="row"/>
-            </template>
-            <template #expandContent="{ row }">
-              <vxe-grid v-bind="subGridOptions" :data="row.subList">
-              </vxe-grid>
-            </template>
-            <template v-slot:status="row" >
-              <slot name="status" v-bind="row"/>
-            </template>
-            <template v-slot:mark="row" >
-              <slot name="mark" v-bind="row"/>
-            </template>
-        </vxe-grid>
-    </div>
-  </template>
-  
+  <div class="hxlh-table">
+    <vxe-grid
+      ref="vxeTable"
+      :show-header-overflow="true"
+      :show-overflow="showOverflow"
+      :stripe="true"
+      :border="true"
+      :show-footer="showfooter"
+      header-align="center"
+      highlight-hover-column
+      highlight-hover-row
+      resizable
+      size="small"
+      :loading="loading"
+      :pager-config="tablePage"
+      :form-config="tableForm"
+      :columns="columns"
+      :column-config="{ resizable: true }"
+      :data.sync="data"
+      :checkbox-config="checkboxConfig"
+      :height="height"
+      :max-height="maxHeight"
+      :toolbar="toolbar"
+      :reload-data="reloadData"
+      :footer-method="footerMethod"
+      :footer-cell-class-name="footerCellClassName"
+      :scroll-x="{ enabled: true }"
+      :scroll-y="{ enabled: true }"
+      row-height="auto"
+      :expand-config="expandConfig"
+      :tree-config="treeConfig"
+      :row-style="rowStyle"
+      :virtualYConfig="virtualYConfig"
+      @sort-change="sortChange"
+      @page-change="pagerChange"
+      @form-submit="findList"
+      @checkbox-change="checkChange"
+      @checkbox-all="checkChangeall"
+      @scroll-boundary="scrollBoundaryEvent"
+    >
+      <template v-slot:buttons="row">
+        <slot name="buttons" v-bind="row" />
+      </template>
+      <template #expandContent="{ row }">
+        <vxe-grid v-bind="subGridOptions" :data="row.subList"> </vxe-grid>
+      </template>
+      <template v-slot:status="row">
+        <slot name="status" v-bind="row" />
+      </template>
+      <template v-slot:mark="row">
+        <slot name="mark" v-bind="row" />
+      </template>
+    </vxe-grid>
+  </div>
+</template>
+
 <script setup>
 // 鑾峰彇 Vuex 瀛樺偍瀹炰緥
 // const useStore = useStore();
 
 const props = defineProps({
-/* table 鍙傛暟*/
-showOverflow: {
+  /* table 鍙傛暟*/
+  showOverflow: {
     type: Boolean,
     default: () => {
-    return true
-    }
-},
-columns: {
+      return true;
+    },
+  },
+  columns: {
     type: Array,
     default: () => {
-    return []
-    }
-},
-showfooter: {
+      return [];
+    },
+  },
+  showfooter: {
     type: Boolean,
     default: () => {
-    return false
-    }
-},
-toolbar: {
+      return false;
+    },
+  },
+  toolbar: {
     type: Object,
     default: () => {
-        return {
-            id: 'khjgz',
-            zoom: true,
-            resizable: {
-            storage: true
-            },
-            custom: {
-            storage: true
-            },
-            slots: {
-            buttons: 'buttons'
-            }
-        }
-    }
-},
-data: {
+      return {
+        id: "khjgz",
+        zoom: true,
+        resizable: {
+          storage: true,
+        },
+        custom: {
+          storage: true,
+        },
+        slots: {
+          buttons: "buttons",
+        },
+      };
+    },
+  },
+  data: {
     type: Array,
     default: () => {
-    return []
-    }
-},
-loading: {
+      return [];
+    },
+  },
+  loading: {
     type: Boolean,
-    default: false
-},
-page: {
+    default: false,
+  },
+  page: {
     type: Object,
-    default: function() {
-        return null
-    }
-},
-checkboxConfig: {
+    default: function () {
+      return null;
+    },
+  },
+  checkboxConfig: {
     type: Object,
     default: () => {
-    return {}
-    }
-},
-maxHeight: {
+      return {};
+    },
+  },
+  maxHeight: {
     type: String,
     default: () => {
-    return ''
-    }
-},
-height: {
+      return "";
+    },
+  },
+  height: {
     type: String,
     default: () => {
-    return ''
-    }
-},
-reloadData: {
+      return "";
+    },
+  },
+  reloadData: {
     type: Function,
     default: () => {
-    return {}
-    }
-},
-footerCellClassName: {
+      return {};
+    },
+  },
+  footerCellClassName: {
     type: Function,
     default: () => {
-    return {}
-    }
-},
-mxTableFootData: {
+      return {};
+    },
+  },
+  mxTableFootData: {
     type: Array,
     default: () => {
-    return []
-    }
-},
-expandConfig: {
+      return [];
+    },
+  },
+  expandConfig: {
     type: Object,
     default: () => {
-      return {lazy: false}
-    }
-},
-subGridOptions: {
-    type:Object,
-    default :()=>{
-      return {}
-    }
-},
-treeConfig: {
+      return { lazy: false };
+    },
+  },
+  subGridOptions: {
     type: Object,
     default: () => {
-    return {}
-    }
-},
-rowStyle: {
+      return {};
+    },
+  },
+  treeConfig: {
+    type: Object,
+    default: () => {
+      return {};
+    },
+  },
+  rowStyle: {
     type: Function,
     default: () => {
-    return {}
-    }
-},
-
-})
-
+      return {};
+    },
+  },
+  virtualYConfig:{
+    type: Object,
+    default: () => {
+      return {};
+    },
+  }
+});
 
 const tableForm = ref([]);
 
@@ -182,55 +187,72 @@
 const emit = defineEmits();
 
 function pagerChange({ type, currentPage, pageSize }) {
-    if (type == 'current') {
-        emit("changePageNo", currentPage);
-    } else if (type == 'size') {
-        emit('changePageSize', pageSize)
-    }
+  if (type == "current") {
+    emit("changePageNo", currentPage);
+  } else if (type == "size") {
+    emit("changePageSize", pageSize);
+  }
 }
 function findList() {}
 
 function sortChange({ column, property, order }) {
-    emit('sortTable', property, order)
+  emit("sortTable", property, order);
 }
 
 function checkChange(info) {
-    const { records, checked, row, rowIndex } = info
-    emit('on-checkbox', { records, rowIndex, checked })
+  const { records, checked, row, rowIndex } = info;
+  emit("on-checkbox", { records, rowIndex, checked });
 }
 
 function checkChangeall(info) {
-    const { records, checked, row } = info
-    emit('on-checkbox', { records, rowIndex: null, checked })
+  const { records, checked, row } = info;
+  emit("on-checkbox", { records, rowIndex: null, checked });
 }
 
 // 瀹氫箟 footerMethod 鍑芥暟
 function footerMethod({ columns, data }) {
   // 瑙﹀彂 footerMethod 浜嬩欢
-  emit('footerMethod', { columns, data });
+  emit("footerMethod", { columns, data });
   // 杩斿洖 Vuex 涓殑 hxlhTableFootData 鐘舵��
-//   return useStore.state.hxlhTableFootData;
-};
-
+  //   return useStore.state.hxlhTableFootData;
+}
+function scrollBoundaryEvent ({ direction }) {
+  switch (direction) {
+    case 'top':
+      console.log('瑙﹀彂椤堕儴闃堝�艰寖鍥�')
+      break
+    case 'bottom':
+      console.log('瑙﹀彂搴曢儴闃堝�艰寖鍥�')
+      // this.loadList(20)
+      emit('bottomAutoLoadMore')
+      break
+    case 'left':
+      console.log('瑙﹀彂宸︿晶闃堝�艰寖鍥�')
+      break
+    case 'right':
+      console.log('瑙﹀彂鍙充晶闃堝�艰寖鍥�')
+      break
+  }
+}
 function handleSum(list, field) {
-    var total = 0
-    for (var index = 0; index < list.length; index++) {
-    total += Number(list[index][field] || 0)
-    }
-    return total
+  var total = 0;
+  for (var index = 0; index < list.length; index++) {
+    total += Number(list[index][field] || 0);
+  }
+  return total;
 }
 const vxeTable = ref(null);
 
 // 鍦ㄥ�煎彂鐢熸敼鍙樻椂鏇存柊琛ㄥ熬鍚堣
 function updateFooter(params) {
-    const xTable = vxeTable.value
-    xTable.updateFooter()
+  const xTable = vxeTable.value;
+  xTable.updateFooter();
 }
 
 // 鍙栨秷澶嶉�夋閫夋嫨
 function clearCheckboxRow() {
-    const xTable = vxeTable.value
-    xTable.clearCheckboxRow()
+  const xTable = vxeTable.value;
+  xTable.clearCheckboxRow();
 }
 
 // 瀹氫箟 tablePage 璁$畻灞炴��
@@ -242,10 +264,19 @@
     total: props.page.total,
     currentPage: props.page.current,
     pageSize: props.page.size,
-    align: 'left',
+    align: "left",
     pageSizes: [10, 20, 50, 100, 500],
-    layouts: ['PrevJump', 'PrevPage', 'Number', 'NextPage', 'NextJump', 'Sizes', 'FullJump', 'Total'],
-    perfect: true
+    layouts: [
+      "PrevJump",
+      "PrevPage",
+      "Number",
+      "NextPage",
+      "NextJump",
+      "Sizes",
+      "FullJump",
+      "Total",
+    ],
+    perfect: true,
   };
 });
 
@@ -273,17 +304,16 @@
 </script>
 
 <style lang="scss">
-  .hxlh-table .vxe-toolbar .vxe-tools--operate {
-    margin-top: -23px;
-  }
+.hxlh-table .vxe-toolbar .vxe-tools--operate {
+  margin-top: -23px;
+}
 
-  .hxlh-table .vxe-toolbar {
-    min-height: 52px;
-    height: auto;
-  }
+.hxlh-table .vxe-toolbar {
+  min-height: 52px;
+  height: auto;
+}
 
-  .vxe-table .vxe-footer--column.col-red {
-    color: red;
-  }
-
-</style>
\ No newline at end of file
+.vxe-table .vxe-footer--column.col-red {
+  color: red;
+}
+</style>
diff --git a/src/views/basicData/processRoute/index.vue b/src/views/basicData/processRoute/index.vue
index 38a4cd4..cdad7f9 100644
--- a/src/views/basicData/processRoute/index.vue
+++ b/src/views/basicData/processRoute/index.vue
@@ -1,23 +1,27 @@
 <template>
   <div class="app-container">
-    <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="90px">
+    <el-form
+      :model="queryParams"
+      ref="queryRef"
+      :inline="true"
+      v-show="showSearch"
+      label-width="90px"
+    >
       <el-row :gutter="20">
-        <el-col
-        :span="6">
-      <el-form-item label="闆嗘垚鏃ユ湡" style="width: 308px">
-        <el-date-picker
-          v-model="daterangeIntegrationDay"
-          value-format="YYYY-MM-DD HH:mm:ss"
-          type="daterange"
-          range-separator="-"
-          start-placeholder="寮�濮嬫棩鏈�"
-          end-placeholder="缁撴潫鏃ユ湡"
-        ></el-date-picker>
-      </el-form-item>
+        <el-col :span="6">
+          <el-form-item label="闆嗘垚鏃ユ湡" style="width: 308px">
+            <el-date-picker
+              v-model="daterangeIntegrationDay"
+              value-format="YYYY-MM-DD HH:mm:ss"
+              type="daterange"
+              range-separator="-"
+              start-placeholder="寮�濮嬫棩鏈�"
+              end-placeholder="缁撴潫鏃ユ湡"
+            ></el-date-picker>
+          </el-form-item>
         </el-col>
-        <el-col
-        :span="6">
-      <el-form-item label="鏂欏彿" prop="itemNo">
+        <el-col :span="6">
+          <el-form-item label="鏂欏彿" prop="itemNo">
             <el-input
               v-model="queryParams.itemNo"
               placeholder="璇疯緭鍏ユ枡鍙�"
@@ -26,26 +30,27 @@
             />
           </el-form-item>
         </el-col>
-        <el-col
-          :span="12"
-          style="text-align: right;">
-      <el-form-item>
-        <el-button type="primary" icon="Search" @click="handleQuery">鎼滅储</el-button>
-        <el-button icon="Refresh" @click="resetQuery">閲嶇疆</el-button>
-      </el-form-item>
+        <el-col :span="12" style="text-align: right">
+          <el-form-item>
+            <el-button type="primary" icon="Search" @click="handleQuery"
+              >鎼滅储</el-button
+            >
+            <el-button icon="Refresh" @click="resetQuery">閲嶇疆</el-button>
+          </el-form-item>
         </el-col>
-    </el-row>
+      </el-row>
     </el-form>
 
     <el-row :gutter="10" class="mb8">
       <el-col :span="1.5">
-        <el-button 
-          type="info" 
-          plain 
-          icon="Upload" 
-          @click="handleImport" 
+        <el-button
+          type="info"
+          plain
+          icon="Upload"
+          @click="handleImport"
           v-hasPermi="['processRoute:processRoute:importData']"
-          >瀵煎叆</el-button>
+          >瀵煎叆</el-button
+        >
       </el-col>
       <el-col :span="1.5">
         <el-button
@@ -54,39 +59,65 @@
           icon="Download"
           @click="handleExport"
           v-hasPermi="['processRoute:processRoute:export']"
-        >瀵煎嚭</el-button>
+          >瀵煎嚭</el-button
+        >
       </el-col>
-      <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
+      <right-toolbar
+        v-model:showSearch="showSearch"
+        @queryTable="getList"
+      ></right-toolbar>
     </el-row>
     <HxlhTable
-        style="width: 100%"
-        :columns="columns"
-        :data="processRouteList"
-        :loading="loading"
-        :height="height"
-        @on-checkbox="handleCheckboxChange"
+      style="width: 100%"
+      :columns="columns"
+      :virtualYConfig="virtualYConfig"
+      :data="processRouteList"
+      :loading="loading"
+      :height="height"
+      @bottomAutoLoadMore="handleAutoLoadMore"
+      @on-checkbox="handleCheckboxChange"
     >
     </HxlhTable>
-  <!-- 鐢ㄦ埛瀵煎叆瀵硅瘽妗� -->
-  <el-dialog :title="upload.title" v-model="upload.open" width="90%" append-to-body @close="dialogCancel">
+    <!-- 鐢ㄦ埛瀵煎叆瀵硅瘽妗� -->
+    <el-dialog
+      :title="upload.title"
+      v-model="upload.open"
+      width="90%"
+      append-to-body
+      @close="dialogCancel"
+    >
       <el-row :gutter="10">
         <el-col>
-          <div style="border-bottom: 1px solid #ccc;" >
-            <p>涓婁紶Excel鏂囦欢锛屽寘鍚伐鑹鸿矾绾夸俊鎭�傜郴缁熷皢瑙f瀽鏁版嵁骞朵繚瀛樺埌鏈湴锛岀敤浜庡叧鑱斿埌闆朵欢璁″垝涓��</p>
+          <div style="border-bottom: 1px solid #ccc">
+            <p>
+              涓婁紶Excel鏂囦欢锛屽寘鍚伐鑹鸿矾绾夸俊鎭�傜郴缁熷皢瑙f瀽鏁版嵁骞朵繚瀛樺埌鏈湴锛岀敤浜庡叧鑱斿埌闆朵欢璁″垝涓��
+            </p>
           </div>
         </el-col>
-        <el-col >
+        <el-col>
           <div></div>
         </el-col>
       </el-row>
 
-      <el-row :gutter="10" style="margin-top: 20px;">
-      </el-row>
+      <el-row :gutter="10" style="margin-top: 20px"> </el-row>
       <el-row>
         <el-col>
-          <el-upload ref="uploadRef" :limit="1" accept=".xlsx, .xls" :headers="upload.headers" :action="upload.url + '?updateSupport=' + upload.updateSupport" :disabled="upload.isUploading" :on-progress="handleFileUploadProgress" :on-success="handleFileSuccess" :auto-upload="true" drag>
+          <el-upload
+            ref="uploadRef"
+            :limit="1"
+            accept=".xlsx, .xls"
+            :headers="upload.headers"
+            :action="upload.url + '?updateSupport=' + upload.updateSupport"
+            :disabled="upload.isUploading"
+            :on-progress="handleFileUploadProgress"
+            :on-success="handleFileSuccess"
+            :auto-upload="true"
+            drag
+          >
             <el-icon class="el-icon--upload"><upload-filled /></el-icon>
-            <div class="el-upload__text">灏嗘枃浠舵嫋鍒版澶勶紝鎴�<em>鐐瑰嚮涓婁紶</em></div>
+            <div class="el-upload__text">
+              灏嗘枃浠舵嫋鍒版澶勶紝鎴�<em>鐐瑰嚮涓婁紶</em>
+            </div>
             <template #tip>
               <div class="el-upload__tip">
                 <span>浠呭厑璁稿鍏ls銆亁lsx鏍煎紡鏂囦欢銆�</span>
@@ -96,12 +127,24 @@
         </el-col>
       </el-row>
       <el-row>
-        <el-col style="margin-top: 20px;">
+        <el-col style="margin-top: 20px">
           <div v-show="isVisible">
-            <el-alert icon="Check" :show-icon="true" title="宸ヨ壓璺嚎鏁版嵁宸叉垚鍔熻В鏋�" type="success" :closable="false"/>
+            <el-alert
+              icon="Check"
+              :show-icon="true"
+              title="宸ヨ壓璺嚎鏁版嵁宸叉垚鍔熻В鏋�"
+              type="success"
+              :closable="false"
+            />
           </div>
           <div v-show="isError">
-            <el-alert icon="Close" :show-icon="true" title="宸ヨ壓璺嚎鏁版嵁宸茶В鏋愬け璐�" type="error" :closable="false"/>
+            <el-alert
+              icon="Close"
+              :show-icon="true"
+              title="宸ヨ壓璺嚎鏁版嵁宸茶В鏋愬け璐�"
+              type="error"
+              :closable="false"
+            />
           </div>
         </el-col>
       </el-row>
@@ -121,8 +164,11 @@
           </HxlhTable>
         </el-col>
         <el-col>
-          <div style="text-align: right;">
-            <h4>鍏变笂浼�<span style="color: blue;">{{ total }}</span>鏉″伐鑹鸿矾绾挎暟鎹�</h4>
+          <div style="text-align: right">
+            <h4>
+              鍏变笂浼�<span style="color: blue">{{ total }}</span
+              >鏉″伐鑹鸿矾绾挎暟鎹�
+            </h4>
           </div>
         </el-col>
       </el-row>
@@ -135,7 +181,8 @@
             :disabled="planned"
             @click="uploadParse"
             v-hasPermi="['processRoute:processRoute:confirmProcessRoute']"
-          >纭涓婁紶</el-button>
+            >纭涓婁紶</el-button
+          >
           <el-button @click="dialogCancel">鍙� 娑�</el-button>
         </div>
       </template>
@@ -144,11 +191,19 @@
 </template>
 
 <script setup name="ProcessRoute">
-import { listProcessRoute, getProcessRoute, delProcessRoute, addProcessRoute, updateProcessRoute,processRouteTempList,confirmProcessRoute } from "@/api/basicData/processRoute";
-import HxlhTable from '@/components/HxlhTable'
+import {
+  listProcessRoute,
+  getProcessRoute,
+  delProcessRoute,
+  addProcessRoute,
+  updateProcessRoute,
+  processRouteTempList,
+  confirmProcessRoute,
+} from "@/api/basicData/processRoute";
+import HxlhTable from "@/components/HxlhTable";
 import { getToken } from "@/utils/auth";
 import { ref } from "vue";
-import { ElMessage } from 'element-plus'
+import { ElMessage } from "element-plus";
 const { proxy } = getCurrentInstance();
 
 const processRouteList = ref([]);
@@ -162,7 +217,7 @@
 const title = ref("");
 const daterangeIntegrationDay = ref([]);
 //寮圭獥鐩稿叧
-const height = ref(document.documentElement.clientHeight - 260 + "px;")
+const height = ref(document.documentElement.clientHeight - 260 + "px;");
 const isVisible = ref(false);
 const isError = ref(false);
 const planned = ref(true);
@@ -170,6 +225,11 @@
 const exampleHeight = ref("500px");
 const uploadRef = ref();
 const exampleList = ref([]);
+const virtualYConfig = {
+  enabled: true,
+  gt: 0,
+  threshold: 50,
+};
 /*** 鐢ㄦ埛瀵煎叆鍙傛暟 */
 const upload = reactive({
   // 鏄惁鏄剧ず寮瑰嚭灞傦紙鐢ㄦ埛瀵煎叆锛�
@@ -183,154 +243,154 @@
   // 璁剧疆涓婁紶鐨勮姹傚ご閮�
   headers: { Authorization: "Bearer " + getToken() },
   // 涓婁紶鐨勫湴鍧�
-  url: import.meta.env.VITE_APP_BASE_API + "/aps/processRoute/importData"
+  url: import.meta.env.VITE_APP_BASE_API + "/aps/processRoute/importData",
 });
-// 琛ㄦ牸閰嶇疆-鍒楄〃 
+// 琛ㄦ牸閰嶇疆-鍒楄〃
 const columns = ref([
-  { type: 'checkbox', width: 60, align:"center"},
-  { type: 'seq', title: '搴忓彿', width: 60 },
+  { type: "checkbox", width: 60, align: "center" },
+  { type: "seq", title: "搴忓彿", width: 60 },
   {
-    title: '鏂欏彿',
-    field: 'itemNo',
+    title: "鏂欏彿",
+    field: "itemNo",
     width: 150,
-    align:"center",
+    align: "center",
   },
   {
-    title: '宸ュ崟鍙�',
-    field: 'workOrderNo',
+    title: "宸ュ崟鍙�",
+    field: "workOrderNo",
     width: 150,
-    align:"center",
+    align: "center",
   },
   {
-    title: '宸ュ簭搴忓彿',
-    field: 'processNumber',
+    title: "宸ュ簭搴忓彿",
+    field: "processNumber",
     width: 100,
-    align:"center",
+    align: "center",
   },
   {
-    title: '宸ュ簭鍚嶇О',
-    field: 'processName',
+    title: "宸ュ簭鍚嶇О",
+    field: "processName",
     width: 150,
-    align:"center",
+    align: "center",
   },
   {
-    title: '宸ュ簭璁″垝寮�濮嬫棩鏈�',
-    field: 'processPlanStartDay',
+    title: "宸ュ簭璁″垝寮�濮嬫棩鏈�",
+    field: "processPlanStartDay",
     width: 200,
-    align:"center",
+    align: "center",
   },
   {
-    title: '宸ュ簭璁″垝缁撴潫鏃ユ湡',
-    field: 'processPlanEndDay',
+    title: "宸ュ簭璁″垝缁撴潫鏃ユ湡",
+    field: "processPlanEndDay",
     width: 200,
-    align:"center",
+    align: "center",
   },
   {
-    title: '鏈紑宸ユ暟閲�',
-    field: 'notStartWorkCount',
+    title: "鏈紑宸ユ暟閲�",
+    field: "notStartWorkCount",
     width: 90,
-    align:"center",
+    align: "center",
   },
   {
-    title: '宸插畬鎴愭暟閲�',
-    field: 'completedCount',
+    title: "宸插畬鎴愭暟閲�",
+    field: "completedCount",
     width: 90,
-    align:"center",
+    align: "center",
   },
   {
-    title: '搴熷純鏁伴噺',
-    field: 'discardCount',
+    title: "搴熷純鏁伴噺",
+    field: "discardCount",
     width: 90,
-    align:"center",
+    align: "center",
   },
   {
-    title: '鏍囧噯宸ユ椂',
-    field: 'standardTime',
+    title: "鏍囧噯宸ユ椂",
+    field: "standardTime",
     width: 90,
-    align:"center",
+    align: "center",
   },
   {
-    title: '宸ュ簭鎺掑簭',
-    field: 'processOrder',
+    title: "宸ュ簭鎺掑簭",
+    field: "processOrder",
     width: 90,
-    align:"center",
+    align: "center",
   },
   {
-    title: '闆嗘垚鏃ユ湡',
-    field: 'integrationDay',
+    title: "闆嗘垚鏃ユ湡",
+    field: "integrationDay",
     width: 160,
-    align:"center",
-  }
+    align: "center",
+  },
 ]);
 
 // 琛ㄦ牸閰嶇疆-寮圭獥
 const exampleColumns = ref([
-  { type: 'seq', title: '搴忓彿', width: 60 },
+  { type: "seq", title: "搴忓彿", width: 60 },
   {
-    title: '鏂欏彿',
-    field: 'itemNo',
+    title: "鏂欏彿",
+    field: "itemNo",
     width: 150,
-    align:"center",
+    align: "center",
   },
   {
-    title: '宸ュ崟鍙�',
-    field: 'workOrderNo',
+    title: "宸ュ崟鍙�",
+    field: "workOrderNo",
     width: 150,
-    align:"center",
+    align: "center",
   },
   {
-    title: '宸ュ簭搴忓彿',
-    field: 'processNumber',
+    title: "宸ュ簭搴忓彿",
+    field: "processNumber",
     width: 85,
-    align:"center",
+    align: "center",
   },
   {
-    title: '宸ュ簭鍚嶇О',
-    field: 'processName',
+    title: "宸ュ簭鍚嶇О",
+    field: "processName",
     width: 150,
-    align:"center",
+    align: "center",
   },
   {
-    title: '宸ュ簭璁″垝寮�濮嬫棩鏈�',
-    field: 'processPlanStartDay',
+    title: "宸ュ簭璁″垝寮�濮嬫棩鏈�",
+    field: "processPlanStartDay",
     width: 200,
-    align:"center",
+    align: "center",
   },
   {
-    title: '宸ュ簭璁″垝缁撴潫鏃ユ湡',
-    field: 'processPlanEndDay',
+    title: "宸ュ簭璁″垝缁撴潫鏃ユ湡",
+    field: "processPlanEndDay",
     width: 200,
-    align:"center",
+    align: "center",
   },
   {
-    title: '鏈紑宸ユ暟閲�',
-    field: 'notStartWorkCount',
+    title: "鏈紑宸ユ暟閲�",
+    field: "notStartWorkCount",
     width: 140,
-    align:"center",
+    align: "center",
   },
   {
-    title: '宸插畬鎴愭暟閲�',
-    field: 'completedCount',
+    title: "宸插畬鎴愭暟閲�",
+    field: "completedCount",
     width: 140,
-    align:"center",
+    align: "center",
   },
   {
-    title: '搴熷純鏁伴噺',
-    field: 'discardCount',
+    title: "搴熷純鏁伴噺",
+    field: "discardCount",
     width: 140,
-    align:"center",
+    align: "center",
   },
   {
-    title: '鏍囧噯宸ユ椂',
-    field: 'standardTime',
+    title: "鏍囧噯宸ユ椂",
+    field: "standardTime",
     width: 140,
-    align:"center",
+    align: "center",
   },
   {
-    title: '宸ュ簭鎺掑簭',
-    field: 'processOrder',
+    title: "宸ュ簭鎺掑簭",
+    field: "processOrder",
     width: 140,
-    align:"center",
+    align: "center",
   },
   // {
   //   title: '闆嗘垚鏃ユ湡',
@@ -343,12 +403,11 @@
   form: {},
   queryParams: {
     pageNum: 1,
-    pageSize: 10,
+    pageSize: 10000,
     itemNo: null,
     integrationDay: null,
   },
-  rules: {
-  }
+  rules: {},
 });
 
 const { queryParams, form, rules } = toRefs(data);
@@ -357,17 +416,23 @@
 function getList() {
   loading.value = true;
   queryParams.value.params = {};
-  if (null != daterangeIntegrationDay && '' != daterangeIntegrationDay) {
-    queryParams.value.params["beginIntegrationDay"] = daterangeIntegrationDay.value[0];
-    queryParams.value.params["endIntegrationDay"] = daterangeIntegrationDay.value[1];
+  if (null != daterangeIntegrationDay && "" != daterangeIntegrationDay) {
+    queryParams.value.params["beginIntegrationDay"] =
+      daterangeIntegrationDay.value[0];
+    queryParams.value.params["endIntegrationDay"] =
+      daterangeIntegrationDay.value[1];
   }
-  listProcessRoute(queryParams.value).then(response => {
+  listProcessRoute(queryParams.value).then((response) => {
     processRouteList.value = response.rows;
     total.value = response.total;
     loading.value = false;
   });
 }
 
+function handleAutoLoadMore(){
+  queryParams.value.pageNum++;
+  getList();
+}
 // 鍙栨秷鎸夐挳
 function cancel() {
   open.value = false;
@@ -396,7 +461,7 @@
     createBy: null,
     createTime: null,
     updateBy: null,
-    updateTime: null
+    updateTime: null,
   };
   proxy.resetForm("processRouteRef");
 }
@@ -416,7 +481,7 @@
 
 // 澶氶�夋閫変腑鏁版嵁
 function handleSelectionChange(selection) {
-  ids.value = selection.map(item => item.id);
+  ids.value = selection.map((item) => item.id);
   single.value = selection.length != 1;
   multiple.value = !selection.length;
 }
@@ -431,8 +496,8 @@
 /** 淇敼鎸夐挳鎿嶄綔 */
 function handleUpdate(row) {
   reset();
-  const _id = row.id || ids.value
-  getProcessRoute(_id).then(response => {
+  const _id = row.id || ids.value;
+  getProcessRoute(_id).then((response) => {
     form.value = response.data;
     open.value = true;
     title.value = "淇敼宸ヨ壓璺嚎";
@@ -441,16 +506,16 @@
 
 /** 鎻愪氦鎸夐挳 */
 function submitForm() {
-  proxy.$refs["processRouteRef"].validate(valid => {
+  proxy.$refs["processRouteRef"].validate((valid) => {
     if (valid) {
       if (form.value.id != null) {
-        updateProcessRoute(form.value).then(response => {
+        updateProcessRoute(form.value).then((response) => {
           proxy.$modal.msgSuccess("淇敼鎴愬姛");
           open.value = false;
           getList();
         });
       } else {
-        addProcessRoute(form.value).then(response => {
+        addProcessRoute(form.value).then((response) => {
           proxy.$modal.msgSuccess("鏂板鎴愬姛");
           open.value = false;
           getList();
@@ -463,25 +528,32 @@
 /** 鍒犻櫎鎸夐挳鎿嶄綔 */
 function handleDelete(row) {
   const _ids = row.id || ids.value;
-  proxy.$modal.confirm('鏄惁纭鍒犻櫎宸ヨ壓璺嚎缂栧彿涓�"' + _ids + '"鐨勬暟鎹」锛�').then(function() {
-    return delProcessRoute(_ids);
-  }).then(() => {
-    getList();
-    proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛");
-  }).catch(() => {});
+  proxy.$modal
+    .confirm('鏄惁纭鍒犻櫎宸ヨ壓璺嚎缂栧彿涓�"' + _ids + '"鐨勬暟鎹」锛�')
+    .then(function () {
+      return delProcessRoute(_ids);
+    })
+    .then(() => {
+      getList();
+      proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛");
+    })
+    .catch(() => {});
 }
 /** 瀵煎叆鎸夐挳鎿嶄綔 */
 function handleImport() {
   upload.title = "宸ヨ壓璺嚎鏁版嵁涓婁紶";
   upload.open = true;
-};
+}
 /** 瀵煎嚭鎸夐挳鎿嶄綔 */
 function handleExport() {
-  proxy.download('aps/processRoute/export', {
-    ...queryParams.value
-  }, `processRoute_${new Date().getTime()}.xlsx`)
+  proxy.download(
+    "aps/processRoute/export",
+    {
+      ...queryParams.value,
+    },
+    `processRoute_${new Date().getTime()}.xlsx`
+  );
 }
-
 
 /**鏂囦欢涓婁紶涓鐞� */
 const handleFileUploadProgress = (event, file, fileList) => {
@@ -490,15 +562,21 @@
 
 /** 鏂囦欢涓婁紶鎴愬姛澶勭悊 */
 const handleFileSuccess = (response, file, fileList) => {
-  if(response.code == '200'){
+  if (response.code == "200") {
     batchNumber.value = response.data;
     isVisible.value = true;
     planned.value = false;
     isError.value = false;
     getExampleList();
-  }else{
+  } else {
     isError.value = true;
-    proxy.$alert("<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" + response.msg + "</div>", "瀵煎叆缁撴灉", { dangerouslyUseHTMLString: true });
+    proxy.$alert(
+      "<div style='overflow: auto;overflow-x: hidden;max-height: 70vh;padding: 10px 20px 0;'>" +
+        response.msg +
+        "</div>",
+      "瀵煎叆缁撴灉",
+      { dangerouslyUseHTMLString: true }
+    );
   }
   proxy.$refs["uploadRef"].handleRemove(file);
   upload.isUploading = false;
@@ -508,7 +586,7 @@
   loading.value = true;
   queryParams.value = {};
   queryParams.value.batchNumber = batchNumber.value;
-  processRouteTempList(queryParams.value).then(response => {
+  processRouteTempList(queryParams.value).then((response) => {
     exampleList.value = response.rows;
     total.value = response.total;
     loading.value = false;
@@ -518,7 +596,7 @@
 function uploadParse() {
   queryParams.value.params = {};
   queryParams.value.params["batchNumber"] = batchNumber.value;
-  confirmProcessRoute(queryParams.value).then(response => {
+  confirmProcessRoute(queryParams.value).then((response) => {
     exampleList.value = response.rows;
     loading.value = false;
     isVisible.value = false;
@@ -526,15 +604,15 @@
     planned.value = true;
     upload.open = false;
     ElMessage({
-      message: '宸ヨ壓璺嚎鏁版嵁宸叉垚鍔熶笂浼犲拰瑙f瀽',
-      type: 'success',
-    })
+      message: "宸ヨ壓璺嚎鏁版嵁宸叉垚鍔熶笂浼犲拰瑙f瀽",
+      type: "success",
+    });
     getList();
   });
 }
 
 /** dialog鍙栨秷 */
-function dialogCancel(){
+function dialogCancel() {
   if (uploadRef.value) {
     uploadRef.value.clearFiles();
   }
diff --git a/src/views/mainPlan/gasPlanning/index.vue b/src/views/mainPlan/gasPlanning/index.vue
new file mode 100644
index 0000000..3f10796
--- /dev/null
+++ b/src/views/mainPlan/gasPlanning/index.vue
@@ -0,0 +1,89 @@
+<template>
+    <HxlhTable
+      style="width: 100%"
+      :columns="columns"
+      :data="gasPlanList"
+      :loading="loading"
+      :height="height"
+    >
+    </HxlhTable>
+</template>
+<script setup>
+const height = ref(document.documentElement.clientHeight - 270 + "px;");
+const loading = ref(true);
+const gasPlanList = ref([]);
+// 琛ㄦ牸閰嶇疆
+const columns = ref([
+  {
+    title: "涓讳欢鏂欏彿",
+    field: "mainPartNumber",
+    width: 150,
+  },
+  {
+    title: "涓氬姟绫诲瀷",
+    field: "businessType",
+  },
+  {
+    title: "鍗曟嵁鍙�",
+    field: "documentNumber",
+    width: 100,
+  },
+  {
+    title: "褰撳墠宸ュ簭鍙�",
+    field: "currentProcessNumberTxt",
+    width: 100,
+  },
+  {
+    title: "闇�姹傚垎绫�",
+    field: "requirementType",
+    width: 80,
+  },
+  {
+    title: "鍗曟嵁鐘舵��",
+    field: "documentStatus",
+    width: 80,
+  },
+  {
+    title: "褰撳墠宸ュ簭",
+    field: "workCenter",
+    width: 80,
+  },
+  {
+    title: "璁″垝寮�宸ユ棩",
+    field: "processPlanStartDaytxt",
+    width: 140,
+    type: "html",
+  },
+  {
+    title: "鏂欏彿",
+    field: "itemNumber",
+    width: 140,
+    type: "html",
+  },
+  {
+    title: "鍥惧彿",
+    field: "drawingNo",
+    width: 120,
+    // format: 'YYYY-MM-DD'
+  },
+  {
+    title: "鐗堟湰鍙�",
+    field: "versionNumber",
+    width: 140,
+    type: "html",
+  },
+  {
+    title: "鐢熶骇鏁伴噺",
+    field: "productionQuantity",
+    width: 140,
+    type: "html",
+  },
+  {
+    title: "璁″垝瀹屽伐鏃�",
+    field: "planEndDay",
+    width: 140,
+    format: "YYYY-MM-DD hh:mm:ss",
+  },
+]);
+
+</script>
\ No newline at end of file
diff --git a/src/views/mainPlan/platePlanList/index copy.vue b/src/views/mainPlan/platePlanList/index copy.vue
deleted file mode 100644
index 785b128..0000000
--- a/src/views/mainPlan/platePlanList/index copy.vue
+++ /dev/null
@@ -1,233 +0,0 @@
-<template>
-  <div class="app-container">
-    <el-form :model="queryParams" ref="queryRef" :inline="true" v-show="showSearch" label-width="68px">
-      <el-form-item>
-        <el-button type="primary" icon="Search" @click="handleQuery">鎼滅储</el-button>
-        <el-button icon="Refresh" @click="resetQuery">閲嶇疆</el-button>
-      </el-form-item>
-    </el-form>
-
-    <el-row :gutter="10" class="mb8">
-      <el-col :span="1.5">
-        <el-button
-          type="primary"
-          plain
-          icon="Plus"
-          @click="handleAdd"
-          v-hasPermi="['ApsPlateProcessShopStat:ApsPlateProcessShopStat:add']"
-        >鏂板</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="success"
-          plain
-          icon="Edit"
-          :disabled="single"
-          @click="handleUpdate"
-          v-hasPermi="['ApsPlateProcessShopStat:ApsPlateProcessShopStat:edit']"
-        >淇敼</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="danger"
-          plain
-          icon="Delete"
-          :disabled="multiple"
-          @click="handleDelete"
-          v-hasPermi="['ApsPlateProcessShopStat:ApsPlateProcessShopStat:remove']"
-        >鍒犻櫎</el-button>
-      </el-col>
-      <el-col :span="1.5">
-        <el-button
-          type="warning"
-          plain
-          icon="Download"
-          @click="handleExport"
-          v-hasPermi="['ApsPlateProcessShopStat:ApsPlateProcessShopStat:export']"
-        >瀵煎嚭</el-button>
-      </el-col>
-      <right-toolbar v-model:showSearch="showSearch" @queryTable="getList"></right-toolbar>
-    </el-row>
-
-    <el-table v-loading="loading" :data="ApsPlateProcessShopStatList" @selection-change="handleSelectionChange">
-      <el-table-column type="selection" width="55" align="center" />
-      <el-table-column label="${comment}" align="center" prop="id" />
-      <el-table-column label="鍗曟嵁鍙�" align="center" prop="docNo" />
-      <el-table-column label="杞﹂棿缂栫爜" align="center" prop="shopCode" />
-      <el-table-column label="杞﹂棿鍚嶇О" align="center" prop="shopName" />
-      <el-table-column label="璁″垝寮�濮嬫椂闂�" align="center" prop="planStartDate" />
-      <el-table-column label="璁″垝缁撴潫鏃ユ湡" align="center" prop="planEndDate" />
-      <el-table-column label="鎿嶄綔" align="center" class-name="small-padding fixed-width">
-        <template #default="scope">
-          <el-button link type="primary" icon="Edit" @click="handleUpdate(scope.row)" v-hasPermi="['ApsPlateProcessShopStat:ApsPlateProcessShopStat:edit']">淇敼</el-button>
-          <el-button link type="primary" icon="Delete" @click="handleDelete(scope.row)" v-hasPermi="['ApsPlateProcessShopStat:ApsPlateProcessShopStat:remove']">鍒犻櫎</el-button>
-        </template>
-      </el-table-column>
-    </el-table>
-    
-    <pagination
-      v-show="total>0"
-      :total="total"
-      v-model:page="queryParams.pageNum"
-      v-model:limit="queryParams.pageSize"
-      @pagination="getList"
-    />
-
-    <!-- 娣诲姞鎴栦慨鏀归挘閲戣溅闂寸粺璁″璇濇 -->
-    <el-dialog :title="title" v-model="open" width="500px" append-to-body>
-      <el-form ref="ApsPlateProcessShopStatRef" :model="form" :rules="rules" label-width="80px">
-      </el-form>
-      <template #footer>
-        <div class="dialog-footer">
-          <el-button type="primary" @click="submitForm">纭� 瀹�</el-button>
-          <el-button @click="cancel">鍙� 娑�</el-button>
-        </div>
-      </template>
-    </el-dialog>
-  </div>
-</template>
-
-<script setup name="ApsPlateProcessShopStat">
-import { listApsPlateProcessShopStat, getApsPlateProcessShopStat, delApsPlateProcessShopStat, addApsPlateProcessShopStat, updateApsPlateProcessShopStat } from "@/api/ApsPlateProcessShopStat/ApsPlateProcessShopStat";
-
-const { proxy } = getCurrentInstance();
-
-const ApsPlateProcessShopStatList = ref([]);
-const open = ref(false);
-const loading = ref(true);
-const showSearch = ref(true);
-const ids = ref([]);
-const single = ref(true);
-const multiple = ref(true);
-const total = ref(0);
-const title = ref("");
-
-const data = reactive({
-  form: {},
-  queryParams: {
-    pageNum: 1,
-    pageSize: 10,
-    docNo: null,
-    shopCode: null,
-    shopName: null,
-    planStartDate: null,
-    planEndDate: null,
-  },
-  rules: {
-  }
-});
-
-const { queryParams, form, rules } = toRefs(data);
-
-/** 鏌ヨ閽i噾杞﹂棿缁熻鍒楄〃 */
-function getList() {
-  loading.value = true;
-  listApsPlateProcessShopStat(queryParams.value).then(response => {
-    ApsPlateProcessShopStatList.value = response.rows;
-    total.value = response.total;
-    loading.value = false;
-  });
-}
-
-// 鍙栨秷鎸夐挳
-function cancel() {
-  open.value = false;
-  reset();
-}
-
-// 琛ㄥ崟閲嶇疆
-function reset() {
-  form.value = {
-    id: null,
-    docNo: null,
-    shopCode: null,
-    shopName: null,
-    planStartDate: null,
-    planEndDate: null,
-    delFlag: null,
-    createBy: null,
-    createTime: null,
-    updateBy: null,
-    updateTime: null
-  };
-  proxy.resetForm("ApsPlateProcessShopStatRef");
-}
-
-/** 鎼滅储鎸夐挳鎿嶄綔 */
-function handleQuery() {
-  queryParams.value.pageNum = 1;
-  getList();
-}
-
-/** 閲嶇疆鎸夐挳鎿嶄綔 */
-function resetQuery() {
-  proxy.resetForm("queryRef");
-  handleQuery();
-}
-
-// 澶氶�夋閫変腑鏁版嵁
-function handleSelectionChange(selection) {
-  ids.value = selection.map(item => item.id);
-  single.value = selection.length != 1;
-  multiple.value = !selection.length;
-}
-
-/** 鏂板鎸夐挳鎿嶄綔 */
-function handleAdd() {
-  reset();
-  open.value = true;
-  title.value = "娣诲姞閽i噾杞﹂棿缁熻";
-}
-
-/** 淇敼鎸夐挳鎿嶄綔 */
-function handleUpdate(row) {
-  reset();
-  const _id = row.id || ids.value
-  getApsPlateProcessShopStat(_id).then(response => {
-    form.value = response.data;
-    open.value = true;
-    title.value = "淇敼閽i噾杞﹂棿缁熻";
-  });
-}
-
-/** 鎻愪氦鎸夐挳 */
-function submitForm() {
-  proxy.$refs["ApsPlateProcessShopStatRef"].validate(valid => {
-    if (valid) {
-      if (form.value.id != null) {
-        updateApsPlateProcessShopStat(form.value).then(response => {
-          proxy.$modal.msgSuccess("淇敼鎴愬姛");
-          open.value = false;
-          getList();
-        });
-      } else {
-        addApsPlateProcessShopStat(form.value).then(response => {
-          proxy.$modal.msgSuccess("鏂板鎴愬姛");
-          open.value = false;
-          getList();
-        });
-      }
-    }
-  });
-}
-
-/** 鍒犻櫎鎸夐挳鎿嶄綔 */
-function handleDelete(row) {
-  const _ids = row.id || ids.value;
-  proxy.$modal.confirm('鏄惁纭鍒犻櫎閽i噾杞﹂棿缁熻缂栧彿涓�"' + _ids + '"鐨勬暟鎹」锛�').then(function() {
-    return delApsPlateProcessShopStat(_ids);
-  }).then(() => {
-    getList();
-    proxy.$modal.msgSuccess("鍒犻櫎鎴愬姛");
-  }).catch(() => {});
-}
-
-/** 瀵煎嚭鎸夐挳鎿嶄綔 */
-function handleExport() {
-  proxy.download('ApsPlateProcessShopStat/ApsPlateProcessShopStat/export', {
-    ...queryParams.value
-  }, `ApsPlateProcessShopStat_${new Date().getTime()}.xlsx`)
-}
-
-getList();
-</script>
diff --git a/src/views/mainPlan/platePlanList/index.vue b/src/views/mainPlan/platePlanList/index.vue
index 1986cb3..aa02926 100644
--- a/src/views/mainPlan/platePlanList/index.vue
+++ b/src/views/mainPlan/platePlanList/index.vue
@@ -374,7 +374,7 @@
     // {
     //   ...queryParams.value,
     // },
-    `aps_plate_process_stat_${new Date().getTime()}.xlsx`
+    `aps_plate_process_shop_stat_${new Date().getTime()}.xlsx`
   );
 }
 
diff --git a/src/views/mainPlan/plateProcessStat/index.vue b/src/views/mainPlan/plateProcessStat/index.vue
index d2169d9..17ba217 100644
--- a/src/views/mainPlan/plateProcessStat/index.vue
+++ b/src/views/mainPlan/plateProcessStat/index.vue
@@ -203,7 +203,6 @@
 
     });
     aps_plate_process_statList.value =listValue
-    debugger;
     total.value = response.total;
     loading.value = false;
   });

--
Gitblit v1.9.3