From 49f8eeef1dfbc4ba1eb3a4cc413e4a78eba0357c Mon Sep 17 00:00:00 2001
From: zhou zhou <3272660260@qq.com>
Date: 星期六, 07 二月 2026 09:47:54 +0800
Subject: [PATCH] #取消页面缓存和更新页面组件

---
 rsf-admin/src/page/basicInfo/warehouse/WarehouseList.jsx                                |   75 +------
 rsf-admin/src/page/orders/outStock/OutOrderItemList.jsx                                 |    2 
 rsf-admin/package.json                                                                  |    7 
 rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AutoRunSchedules.java |    2 
 rsf-admin/src/layout/index.jsx                                                          |   25 +-
 rsf-admin/src/page/basicInfo/loc/LocList.jsx                                            |   44 +---
 rsf-admin/src/page/task/TaskItemList.jsx                                                |    4 
 /dev/null                                                                               |   63 -------
 rsf-admin/src/page/warehouseAreas/WarehouseAreasList.jsx                                |   31 +--
 rsf-admin/src/page/orders/asnOrder/AsnOrderItemList.jsx                                 |   48 ++--
 rsf-admin/src/layout/TabsBar.jsx                                                        |   22 --
 rsf-admin/package-lock.json                                                             |  154 +++++++---------
 rsf-admin/src/page/orders/asnOrderItem/AsnOrderItemList.jsx                             |   17 -
 rsf-admin/src/page/components/StickyDataTable.jsx                                       |   19 ++
 14 files changed, 177 insertions(+), 336 deletions(-)

diff --git a/rsf-admin/package-lock.json b/rsf-admin/package-lock.json
index e8c32e4..41e5268 100644
--- a/rsf-admin/package-lock.json
+++ b/rsf-admin/package-lock.json
@@ -31,7 +31,6 @@
         "ra-language-chinese": "^2.0.10",
         "ra-language-english": "^5.6.2",
         "react": "^18.3.0",
-        "react-activation": "^0.13.4",
         "react-admin": "^5.6.3",
         "react-barcode": "^1.6.1",
         "react-dom": "^18.3.0",
@@ -105,7 +104,6 @@
       "integrity": "sha512-IaaGWsQqfsQWVLqMn9OB92MNN7zukfVA4s7KKAI0KfrrDsZ0yhi5uV4baBuLuN7n3vsZpwP8asPPcVwApxvjBQ==",
       "dev": true,
       "license": "MIT",
-      "peer": true,
       "dependencies": {
         "@ampproject/remapping": "^2.2.0",
         "@babel/code-frame": "^7.27.1",
@@ -440,7 +438,6 @@
       "resolved": "https://registry.npmmirror.com/@emotion/is-prop-valid/-/is-prop-valid-1.3.1.tgz",
       "integrity": "sha512-/ACwoqx7XQi9knQs/G0qKvv5teDMhD7bXYns9N/wM8ah8iNb8jZ2uNO0YOgiq2o2poIvVtJS2YALasQuMSQ7Kw==",
       "license": "MIT",
-      "peer": true,
       "dependencies": {
         "@emotion/memoize": "^0.9.0"
       }
@@ -456,7 +453,6 @@
       "resolved": "https://registry.npmmirror.com/@emotion/react/-/react-11.14.0.tgz",
       "integrity": "sha512-O000MLDBDdk/EohJPFUqvnp4qnHeYkVP5B0xEG0D/L7cOKP9kefu2DXn8dj74cQfsEzUqh+sr1RzFqiL1o+PpA==",
       "license": "MIT",
-      "peer": true,
       "dependencies": {
         "@babel/runtime": "^7.18.3",
         "@emotion/babel-plugin": "^11.13.5",
@@ -500,7 +496,6 @@
       "resolved": "https://registry.npmmirror.com/@emotion/styled/-/styled-11.14.0.tgz",
       "integrity": "sha512-XxfOnXFffatap2IyCeJyNov3kiDQWoR08gPUQxvbL7fxKryGBKUZUkG6Hz48DZwVrJSVh9sJboyV1Ds4OW6SgA==",
       "license": "MIT",
-      "peer": true,
       "dependencies": {
         "@babel/runtime": "^7.18.3",
         "@emotion/babel-plugin": "^11.13.5",
@@ -1145,7 +1140,6 @@
       "resolved": "https://registry.npmmirror.com/@mui/icons-material/-/icons-material-5.17.1.tgz",
       "integrity": "sha512-CN86LocjkunFGG0yPlO4bgqHkNGgaEOEc3X/jG5Bzm401qYw79/SaLrofA7yAKCCXAGdIGnLoMHohc3+ubs95A==",
       "license": "MIT",
-      "peer": true,
       "dependencies": {
         "@babel/runtime": "^7.23.9"
       },
@@ -1172,7 +1166,6 @@
       "resolved": "https://registry.npmmirror.com/@mui/material/-/material-5.17.1.tgz",
       "integrity": "sha512-2B33kQf+GmPnrvXXweWAx+crbiUEsxCdCN979QDYnlH9ox4pd+0/IBriWLV+l6ORoBF60w39cWjFnJYGFdzXcw==",
       "license": "MIT",
-      "peer": true,
       "dependencies": {
         "@babel/runtime": "^7.23.9",
         "@mui/core-downloads-tracker": "^5.17.1",
@@ -1408,7 +1401,6 @@
       "resolved": "https://registry.npmmirror.com/@mui/system/-/system-6.4.11.tgz",
       "integrity": "sha512-gibtsrZEwnDaT5+I/KloOj/yHluX5G8heknuxBpQOdEQ3Gc0avjSImn5hSeKp8D4thiwZiApuggIjZw1dQguUA==",
       "license": "MIT",
-      "peer": true,
       "dependencies": {
         "@babel/runtime": "^7.26.0",
         "@mui/private-theming": "^6.4.9",
@@ -1493,7 +1485,6 @@
       "resolved": "https://registry.npmmirror.com/@mui/utils/-/utils-5.17.1.tgz",
       "integrity": "sha512-jEZ8FTqInt2WzxDV8bhImWBqeQRD99c/id/fq83H0ER9tFl+sfZlaAoCdznGvbSQQ9ividMxqSV2c7cC1vBcQg==",
       "license": "MIT",
-      "peer": true,
       "dependencies": {
         "@babel/runtime": "^7.23.9",
         "@mui/types": "~7.2.15",
@@ -1812,7 +1803,6 @@
       "resolved": "https://registry.npmmirror.com/@pixi/assets/-/assets-7.4.3.tgz",
       "integrity": "sha512-StvjiJBSp/j9hHkGu8AFHNvwYUazXq64WhyhytztyDMRkg/l/cL7EcttY5T0qZNWlIpccdr60LUKrWDOuMpkiw==",
       "license": "MIT",
-      "peer": true,
       "dependencies": {
         "@types/css-font-loading-module": "^0.0.12"
       },
@@ -1856,7 +1846,6 @@
       "resolved": "https://registry.npmmirror.com/@pixi/core/-/core-7.4.3.tgz",
       "integrity": "sha512-5YDs11faWgVVTL8VZtLU05/Fl47vaP5Tnsbf+y/WRR0VSW3KhRRGTBU1J3Gdc2xEWbJhUK07KGP7eSZpvtPVgA==",
       "license": "MIT",
-      "peer": true,
       "dependencies": {
         "@pixi/color": "7.4.3",
         "@pixi/constants": "7.4.3",
@@ -1877,7 +1866,6 @@
       "resolved": "https://registry.npmmirror.com/@pixi/display/-/display-7.4.3.tgz",
       "integrity": "sha512-b5m2dAaoNAVdxz1oDaxl3XZ059NEOcNtGkxTOZ4EYCw/jcp9sZXkgSROHRzsGn4k+NugH7+9MP4Id2Z0kkdUhw==",
       "license": "MIT",
-      "peer": true,
       "peerDependencies": {
         "@pixi/core": "7.4.3"
       }
@@ -1887,7 +1875,6 @@
       "resolved": "https://registry.npmmirror.com/@pixi/events/-/events-7.4.3.tgz",
       "integrity": "sha512-o3j/5Dxq6WDVS6eHfURB/cf/MP+NcsF/eC5PnbSHjXxJmDE7PoTVwLvxexm5uuvNRpFh/6/Fn0V8Vl4gV8sc8w==",
       "license": "MIT",
-      "peer": true,
       "peerDependencies": {
         "@pixi/core": "7.4.3",
         "@pixi/display": "7.4.3"
@@ -1967,7 +1954,6 @@
       "resolved": "https://registry.npmmirror.com/@pixi/graphics/-/graphics-7.4.3.tgz",
       "integrity": "sha512-wWLivD8/URb8A7X4TqCZGG39C91IE+aOuWY/z9NCz5Z6WvA/VWnsc5fLTlO+ggjGHgKF0cSucCXZfUe1wm0AOQ==",
       "license": "MIT",
-      "peer": true,
       "peerDependencies": {
         "@pixi/core": "7.4.3",
         "@pixi/display": "7.4.3",
@@ -1985,7 +1971,6 @@
       "resolved": "https://registry.npmmirror.com/@pixi/mesh/-/mesh-7.4.3.tgz",
       "integrity": "sha512-CikqFPtKvU3Zj986/MSoC8X39CWv5CEpiEW/tYp47p4tgQNDSkNWYnDiNYgb+4VX6pNsBrgX4DALLdTR17SlSA==",
       "license": "MIT",
-      "peer": true,
       "peerDependencies": {
         "@pixi/core": "7.4.3",
         "@pixi/display": "7.4.3"
@@ -2076,7 +2061,6 @@
       "resolved": "https://registry.npmmirror.com/@pixi/sprite/-/sprite-7.4.3.tgz",
       "integrity": "sha512-iNBrpOFF9nXDT6m2jcyYy6l/sRzklLDDck1eFHprHZwvNquY2nzRfh+RGBCecxhBcijiLJ3fsZN33fP0LDXkvw==",
       "license": "MIT",
-      "peer": true,
       "peerDependencies": {
         "@pixi/core": "7.4.3",
         "@pixi/display": "7.4.3"
@@ -2118,7 +2102,6 @@
       "resolved": "https://registry.npmmirror.com/@pixi/text/-/text-7.4.3.tgz",
       "integrity": "sha512-IAF0iu04rPg3oiL0HZsEZI44fpJxq3UZ4xTmx8l1RyhhSXiElLvvSlSH57vt/BKMQZtCs+AqEit7yn8heK2+nQ==",
       "license": "MIT",
-      "peer": true,
       "peerDependencies": {
         "@pixi/core": "7.4.3",
         "@pixi/sprite": "7.4.3"
@@ -2665,7 +2648,6 @@
       "integrity": "sha512-0PQHLhZPWOxGW4auogW0eOQAuNIlCYvibIpG67ja0TOJ6/sehu+1en7sfceUn+QQtx4Rk3GxbLNwPh0Cav7TWw==",
       "dev": true,
       "license": "MIT",
-      "peer": true,
       "dependencies": {
         "undici-types": "~6.19.2"
       }
@@ -2687,7 +2669,6 @@
       "resolved": "https://registry.npmmirror.com/@types/react/-/react-18.3.21.tgz",
       "integrity": "sha512-gXLBtmlcRJeT09/sI4PxVwyrku6SaNUj/6cMubjE6T6XdY1fDmBL7r0nX0jbSZPU/Xr0KuwLLZh6aOYY5d91Xw==",
       "license": "MIT",
-      "peer": true,
       "dependencies": {
         "@types/prop-types": "*",
         "csstype": "^3.0.2"
@@ -2699,7 +2680,6 @@
       "integrity": "sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==",
       "devOptional": true,
       "license": "MIT",
-      "peer": true,
       "peerDependencies": {
         "@types/react": "^18.0.0"
       }
@@ -2780,7 +2760,6 @@
       "integrity": "sha512-VlJEV0fOQ7BExOsHYAGrgbEiZoi8D+Bl2+f6V2RrXerRSylnp+ZBHmPvaIa8cz0Ajx7WO7Z5RqfgYg7ED1nRhA==",
       "dev": true,
       "license": "BSD-2-Clause",
-      "peer": true,
       "dependencies": {
         "@typescript-eslint/scope-manager": "5.62.0",
         "@typescript-eslint/types": "5.62.0",
@@ -2969,7 +2948,6 @@
       "integrity": "sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg==",
       "dev": true,
       "license": "MIT",
-      "peer": true,
       "bin": {
         "acorn": "bin/acorn"
       },
@@ -3041,6 +3019,7 @@
       "version": "1.0.2",
       "resolved": "https://registry.npmmirror.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.2.tgz",
       "integrity": "sha512-LHE+8BuR7RYGDKvnrmcuSq3tDcKv9OFEXQt/HpbZhY7V6h0zlUXutnAD82GiFx9rdieCMjkvtcsPqBwgUl1Iiw==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "call-bound": "^1.0.3",
@@ -3057,6 +3036,7 @@
       "version": "3.1.8",
       "resolved": "https://registry.npmmirror.com/array-includes/-/array-includes-3.1.8.tgz",
       "integrity": "sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "call-bind": "^1.0.7",
@@ -3163,6 +3143,7 @@
       "version": "1.0.4",
       "resolved": "https://registry.npmmirror.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.4.tgz",
       "integrity": "sha512-BNoCY6SXXPQ7gF2opIP4GBE+Xw7U+pHMYKuzjgCN3GwiaIR09UUeKfheyIry77QtrCBlC0KK0q5/TER/tYh3PQ==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "array-buffer-byte-length": "^1.0.1",
@@ -3184,6 +3165,7 @@
       "version": "1.0.0",
       "resolved": "https://registry.npmmirror.com/async-function/-/async-function-1.0.0.tgz",
       "integrity": "sha512-hsU18Ae8CDTR6Kgu9DYf0EbCr/a5iGL0rytQDobUcdpYOKokk8LEjVphnXkDkgpi0wYVsqrXuP0bZxJaTqdgoA==",
+      "dev": true,
       "license": "MIT",
       "engines": {
         "node": ">= 0.4"
@@ -3217,6 +3199,7 @@
       "version": "1.0.7",
       "resolved": "https://registry.npmmirror.com/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz",
       "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "possible-typed-array-names": "^1.0.0"
@@ -3325,7 +3308,6 @@
         }
       ],
       "license": "MIT",
-      "peer": true,
       "dependencies": {
         "caniuse-lite": "^1.0.30001716",
         "electron-to-chromium": "^1.5.149",
@@ -3578,8 +3560,7 @@
       "version": "3.1.3",
       "resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.3.tgz",
       "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==",
-      "license": "MIT",
-      "peer": true
+      "license": "MIT"
     },
     "node_modules/d3-array": {
       "version": "3.2.4",
@@ -3706,6 +3687,7 @@
       "version": "1.0.2",
       "resolved": "https://registry.npmmirror.com/data-view-buffer/-/data-view-buffer-1.0.2.tgz",
       "integrity": "sha512-EmKO5V3OLXh1rtK2wgXRansaK1/mtVdTUEiEI0W8RkvgT05kfxaH29PliLnpLP73yYO6142Q72QNa8Wx/A5CqQ==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "call-bound": "^1.0.3",
@@ -3723,6 +3705,7 @@
       "version": "1.0.2",
       "resolved": "https://registry.npmmirror.com/data-view-byte-length/-/data-view-byte-length-1.0.2.tgz",
       "integrity": "sha512-tuhGbE6CfTM9+5ANGf+oQb72Ky/0+s3xKUpHvShfiz2RxMFgFPjsXuRLBVMtvMs15awe45SRb83D6wH4ew6wlQ==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "call-bound": "^1.0.3",
@@ -3740,6 +3723,7 @@
       "version": "1.0.1",
       "resolved": "https://registry.npmmirror.com/data-view-byte-offset/-/data-view-byte-offset-1.0.1.tgz",
       "integrity": "sha512-BS8PfmtDGnrgYdOonGZQdLZslWIeCGFP9tpan0hi1Co2Zr2NKADsvGYA8XxuG/4UWgJ6Cjtv+YJnB6MM69QGlQ==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "call-bound": "^1.0.2",
@@ -3758,7 +3742,6 @@
       "resolved": "https://registry.npmmirror.com/date-fns/-/date-fns-3.6.0.tgz",
       "integrity": "sha512-fRHTG8g/Gif+kSh50gaGEdToemgfj74aRX3swtiouboip5JDLAyDE9F11nHMIcvOaXeOC6D7SpNhi7uFyB7Uww==",
       "license": "MIT",
-      "peer": true,
       "funding": {
         "type": "github",
         "url": "https://github.com/sponsors/kossnocorp"
@@ -3768,8 +3751,7 @@
       "version": "1.11.13",
       "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.13.tgz",
       "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==",
-      "license": "MIT",
-      "peer": true
+      "license": "MIT"
     },
     "node_modules/debug": {
       "version": "4.4.0",
@@ -3938,6 +3920,7 @@
       "version": "1.23.9",
       "resolved": "https://registry.npmmirror.com/es-abstract/-/es-abstract-1.23.9.tgz",
       "integrity": "sha512-py07lI0wjxAC/DcfK1S6G7iANonniZwTISvdPzk9hzeH0IZIshbuuFxLIU96OyF89Yb9hiqWn8M/bY83KY5vzA==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "array-buffer-byte-length": "^1.0.2",
@@ -4089,6 +4072,7 @@
       "version": "1.3.0",
       "resolved": "https://registry.npmmirror.com/es-to-primitive/-/es-to-primitive-1.3.0.tgz",
       "integrity": "sha512-w+5mJ3GuFL+NjVtJlvydShqE1eN3h3PbI7/5LAsYJP/2qtuMXjfL2LpHSRqo4b4eSF5K/DH1JXKUAHSB2UW50g==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "is-callable": "^1.2.7",
@@ -4170,7 +4154,6 @@
       "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.",
       "dev": true,
       "license": "MIT",
-      "peer": true,
       "dependencies": {
         "@eslint-community/eslint-utils": "^4.2.0",
         "@eslint-community/regexpp": "^4.6.1",
@@ -4642,6 +4625,7 @@
       "version": "0.3.5",
       "resolved": "https://registry.npmmirror.com/for-each/-/for-each-0.3.5.tgz",
       "integrity": "sha512-dKx12eRCVIzqCxFGplyFKJMPvLEWgmNtUrpTiJIR5u97zEhRG8ySrtboPHZXx7daLxQVrl643cTzbab2tkQjxg==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "is-callable": "^1.2.7"
@@ -4738,6 +4722,7 @@
       "version": "1.1.8",
       "resolved": "https://registry.npmmirror.com/function.prototype.name/-/function.prototype.name-1.1.8.tgz",
       "integrity": "sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "call-bind": "^1.0.8",
@@ -4758,6 +4743,7 @@
       "version": "1.2.3",
       "resolved": "https://registry.npmmirror.com/functions-have-names/-/functions-have-names-1.2.3.tgz",
       "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==",
+      "dev": true,
       "license": "MIT",
       "funding": {
         "url": "https://github.com/sponsors/ljharb"
@@ -4814,6 +4800,7 @@
       "version": "1.1.0",
       "resolved": "https://registry.npmmirror.com/get-symbol-description/-/get-symbol-description-1.1.0.tgz",
       "integrity": "sha512-w9UMqWwJxHNOvoNzSJ2oPF5wvYcvP7jUvYzhp67yEhTi17ZDBBC1z9pTdGuzjD+EFIqLSYRweZjqfiPzQ06Ebg==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "call-bound": "^1.0.3",
@@ -4875,6 +4862,7 @@
       "version": "1.0.4",
       "resolved": "https://registry.npmmirror.com/globalthis/-/globalthis-1.0.4.tgz",
       "integrity": "sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "define-properties": "^1.2.1",
@@ -4931,6 +4919,7 @@
       "version": "1.1.0",
       "resolved": "https://registry.npmmirror.com/has-bigints/-/has-bigints-1.1.0.tgz",
       "integrity": "sha512-R3pbpkcIqv2Pm3dUwgjclDRVmWpTJW2DcMzcIhEXEx1oh/CEMObMm3KLmRJOdvhM7o4uQBnwr8pzRK2sJWIqfg==",
+      "dev": true,
       "license": "MIT",
       "engines": {
         "node": ">= 0.4"
@@ -4965,6 +4954,7 @@
       "version": "1.2.0",
       "resolved": "https://registry.npmmirror.com/has-proto/-/has-proto-1.2.0.tgz",
       "integrity": "sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "dunder-proto": "^1.0.0"
@@ -5140,6 +5130,7 @@
       "version": "1.1.0",
       "resolved": "https://registry.npmmirror.com/internal-slot/-/internal-slot-1.1.0.tgz",
       "integrity": "sha512-4gd7VpWNQNB4UKKCFFVcp1AVv+FMOgs9NKzjHKusc8jTMhd5eL1NqQqOpE0KzMds804/yHlglp3uxgluOqAPLw==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "es-errors": "^1.3.0",
@@ -5187,6 +5178,7 @@
       "version": "3.0.5",
       "resolved": "https://registry.npmmirror.com/is-array-buffer/-/is-array-buffer-3.0.5.tgz",
       "integrity": "sha512-DDfANUiiG2wC1qawP66qlTugJeL5HyzMpfr8lLK+jMQirGzNod0B12cFB/9q838Ru27sBwfw78/rdoU7RERz6A==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "call-bind": "^1.0.8",
@@ -5210,6 +5202,7 @@
       "version": "2.1.1",
       "resolved": "https://registry.npmmirror.com/is-async-function/-/is-async-function-2.1.1.tgz",
       "integrity": "sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "async-function": "^1.0.0",
@@ -5229,6 +5222,7 @@
       "version": "1.1.0",
       "resolved": "https://registry.npmmirror.com/is-bigint/-/is-bigint-1.1.0.tgz",
       "integrity": "sha512-n4ZT37wG78iz03xPRKJrHTdZbe3IicyucEtdRsV5yglwc3GyUfbAfpSeD0FJ41NbUNSt5wbhqfp1fS+BgnvDFQ==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "has-bigints": "^1.0.2"
@@ -5244,6 +5238,7 @@
       "version": "1.2.2",
       "resolved": "https://registry.npmmirror.com/is-boolean-object/-/is-boolean-object-1.2.2.tgz",
       "integrity": "sha512-wa56o2/ElJMYqjCjGkXri7it5FbebW5usLw/nPmCMs5DeZ7eziSYZhSmPRn0txqeW4LnAmQQU7FgqLpsEFKM4A==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "call-bound": "^1.0.3",
@@ -5260,6 +5255,7 @@
       "version": "1.2.7",
       "resolved": "https://registry.npmmirror.com/is-callable/-/is-callable-1.2.7.tgz",
       "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==",
+      "dev": true,
       "license": "MIT",
       "engines": {
         "node": ">= 0.4"
@@ -5287,6 +5283,7 @@
       "version": "1.0.2",
       "resolved": "https://registry.npmmirror.com/is-data-view/-/is-data-view-1.0.2.tgz",
       "integrity": "sha512-RKtWF8pGmS87i2D6gqQu/l7EYRlVdfzemCJN/P3UOs//x1QE7mfhvzHIApBTRf7axvT6DMGwSwBXYCT0nfB9xw==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "call-bound": "^1.0.2",
@@ -5304,6 +5301,7 @@
       "version": "1.1.0",
       "resolved": "https://registry.npmmirror.com/is-date-object/-/is-date-object-1.1.0.tgz",
       "integrity": "sha512-PwwhEakHVKTdRNVOw+/Gyh0+MzlCl4R6qKvkhuvLtPMggI1WAHt9sOwZxQLSGpUaDnrdyDsomoRgNnCfKNSXXg==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "call-bound": "^1.0.2",
@@ -5340,6 +5338,7 @@
       "version": "1.1.1",
       "resolved": "https://registry.npmmirror.com/is-finalizationregistry/-/is-finalizationregistry-1.1.1.tgz",
       "integrity": "sha512-1pC6N8qWJbWoPtEjgcL2xyhQOP491EQjeUo3qTKcmV8YSDDJrOepfG8pcC7h/QgnQHYSv0mJ3Z/ZWxmatVrysg==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "call-bound": "^1.0.3"
@@ -5355,6 +5354,7 @@
       "version": "1.1.0",
       "resolved": "https://registry.npmmirror.com/is-generator-function/-/is-generator-function-1.1.0.tgz",
       "integrity": "sha512-nPUB5km40q9e8UfN/Zc24eLlzdSf9OfKByBw9CIdw4H1giPMeA0OIJvbchsCu4npfI2QcMVBsGEBHKZ7wLTWmQ==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "call-bound": "^1.0.3",
@@ -5396,6 +5396,7 @@
       "version": "2.0.3",
       "resolved": "https://registry.npmmirror.com/is-map/-/is-map-2.0.3.tgz",
       "integrity": "sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==",
+      "dev": true,
       "license": "MIT",
       "engines": {
         "node": ">= 0.4"
@@ -5418,6 +5419,7 @@
       "version": "1.1.1",
       "resolved": "https://registry.npmmirror.com/is-number-object/-/is-number-object-1.1.1.tgz",
       "integrity": "sha512-lZhclumE1G6VYD8VHe35wFaIif+CTy5SJIi5+3y4psDgWu4wPDoBhF8NxUOinEc7pHgiTsT6MaBb92rKhhD+Xw==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "call-bound": "^1.0.3",
@@ -5444,6 +5446,7 @@
       "version": "1.2.1",
       "resolved": "https://registry.npmmirror.com/is-regex/-/is-regex-1.2.1.tgz",
       "integrity": "sha512-MjYsKHO5O7mCsmRGxWcLWheFqN9DJ/2TmngvjKXihe6efViPqc274+Fx/4fYj/r03+ESvBdTXK0V6tA3rgez1g==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "call-bound": "^1.0.2",
@@ -5462,6 +5465,7 @@
       "version": "2.0.3",
       "resolved": "https://registry.npmmirror.com/is-set/-/is-set-2.0.3.tgz",
       "integrity": "sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==",
+      "dev": true,
       "license": "MIT",
       "engines": {
         "node": ">= 0.4"
@@ -5474,6 +5478,7 @@
       "version": "1.0.4",
       "resolved": "https://registry.npmmirror.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.4.tgz",
       "integrity": "sha512-ISWac8drv4ZGfwKl5slpHG9OwPNty4jOWPRIhBpxOoD+hqITiwuipOQ2bNthAzwA3B4fIjO4Nln74N0S9byq8A==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "call-bound": "^1.0.3"
@@ -5489,6 +5494,7 @@
       "version": "1.1.1",
       "resolved": "https://registry.npmmirror.com/is-string/-/is-string-1.1.1.tgz",
       "integrity": "sha512-BtEeSsoaQjlSPBemMQIrY1MY0uM6vnS1g5fmufYOtnxLGUZM2178PKbhsk7Ffv58IX+ZtcvoGwccYsh0PglkAA==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "call-bound": "^1.0.3",
@@ -5505,6 +5511,7 @@
       "version": "1.1.1",
       "resolved": "https://registry.npmmirror.com/is-symbol/-/is-symbol-1.1.1.tgz",
       "integrity": "sha512-9gGx6GTtCQM73BgmHQXfDmLtfjjTUDSyoxTCbp5WtoixAhfgsDirWIcVQ/IHpvI5Vgd5i/J5F7B9cN/WlVbC/w==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "call-bound": "^1.0.2",
@@ -5522,6 +5529,7 @@
       "version": "1.1.15",
       "resolved": "https://registry.npmmirror.com/is-typed-array/-/is-typed-array-1.1.15.tgz",
       "integrity": "sha512-p3EcsicXjit7SaskXHs1hA91QxgTw46Fv6EFKKGS5DRFLD8yKnohjF3hxoju94b/OcMZoQukzpPpBE9uLVKzgQ==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "which-typed-array": "^1.1.16"
@@ -5537,6 +5545,7 @@
       "version": "2.0.2",
       "resolved": "https://registry.npmmirror.com/is-weakmap/-/is-weakmap-2.0.2.tgz",
       "integrity": "sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==",
+      "dev": true,
       "license": "MIT",
       "engines": {
         "node": ">= 0.4"
@@ -5549,6 +5558,7 @@
       "version": "1.1.1",
       "resolved": "https://registry.npmmirror.com/is-weakref/-/is-weakref-1.1.1.tgz",
       "integrity": "sha512-6i9mGWSlqzNMEqpCp93KwRS1uUOodk2OJ6b+sq7ZPDSy2WuI5NFIxp/254TytR8ftefexkWn5xNiHUNpPOfSew==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "call-bound": "^1.0.3"
@@ -5564,6 +5574,7 @@
       "version": "2.0.4",
       "resolved": "https://registry.npmmirror.com/is-weakset/-/is-weakset-2.0.4.tgz",
       "integrity": "sha512-mfcwb6IzQyOKTs84CQMrOwW4gQcaTOAWJ0zzJCl2WSPDrWk/OzDaImWFH3djXhb24g4eudZfLRozAvPGw4d9hQ==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "call-bound": "^1.0.3",
@@ -5580,6 +5591,7 @@
       "version": "2.0.5",
       "resolved": "https://registry.npmmirror.com/isarray/-/isarray-2.0.5.tgz",
       "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==",
+      "dev": true,
       "license": "MIT"
     },
     "node_modules/isexe": {
@@ -6018,6 +6030,7 @@
       "version": "4.1.7",
       "resolved": "https://registry.npmmirror.com/object.assign/-/object.assign-4.1.7.tgz",
       "integrity": "sha512-nK28WOo+QIjBkDduTINE4JkF/UJJKyf2EJxvJKfblDpyg0Q+pkOHNTL0Qwy6NP6FhE/EnzV73BxxqcJaXY9anw==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "call-bind": "^1.0.8",
@@ -6119,6 +6132,7 @@
       "version": "1.0.1",
       "resolved": "https://registry.npmmirror.com/own-keys/-/own-keys-1.0.1.tgz",
       "integrity": "sha512-qFOyK5PjiWZd+QQIh+1jhdb9LpxTF0qs7Pm8o5QHYZ0M3vKqSqzsZaEB6oWlxZ+q2sJBMI/Ktgd2N5ZwQoRHfg==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "get-intrinsic": "^1.2.6",
@@ -6328,6 +6342,7 @@
       "version": "1.1.0",
       "resolved": "https://registry.npmmirror.com/possible-typed-array-names/-/possible-typed-array-names-1.1.0.tgz",
       "integrity": "sha512-/+5VFTchJDoVj3bhoqi6UeymcD00DAwb1nJwamzPvHEszJ4FpF6SNNbUbOS8yI56qHzdV8eK0qEfOSiodkTdxg==",
+      "dev": true,
       "license": "MIT",
       "engines": {
         "node": ">= 0.4"
@@ -6607,26 +6622,11 @@
       "resolved": "https://registry.npmmirror.com/react/-/react-18.3.1.tgz",
       "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==",
       "license": "MIT",
-      "peer": true,
       "dependencies": {
         "loose-envify": "^1.1.0"
       },
       "engines": {
         "node": ">=0.10.0"
-      }
-    },
-    "node_modules/react-activation": {
-      "version": "0.13.4",
-      "resolved": "https://registry.npmjs.org/react-activation/-/react-activation-0.13.4.tgz",
-      "integrity": "sha512-2lSI7vMbUiUvaEgizeBrn/xtyt7jw7nI1dqJNSgHcVbU+34eAlIxxGC6TBiruob6FkV8QFt8ShbkO2dBBT49Lg==",
-      "license": "ISC",
-      "dependencies": {
-        "hoist-non-react-statics": "^3.3.0",
-        "react-node-key": "^0.4.0",
-        "szfe-tools": "^0.0.0-beta.7"
-      },
-      "peerDependencies": {
-        "react": ">=16"
       }
     },
     "node_modules/react-admin": {
@@ -6670,7 +6670,6 @@
       "resolved": "https://registry.npmmirror.com/react-dom/-/react-dom-18.3.1.tgz",
       "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==",
       "license": "MIT",
-      "peer": true,
       "dependencies": {
         "loose-envify": "^1.1.0",
         "scheduler": "^0.23.2"
@@ -6713,7 +6712,6 @@
       "resolved": "https://registry.npmmirror.com/react-hook-form/-/react-hook-form-7.56.3.tgz",
       "integrity": "sha512-IK18V6GVbab4TAo1/cz3kqajxbDPGofdF0w7VHdCo0Nt8PrPlOZcuuDq9YYIV1BtjcX78x0XsldbQRQnQXWXmw==",
       "license": "MIT",
-      "peer": true,
       "engines": {
         "node": ">=18.0.0"
       },
@@ -6729,34 +6727,7 @@
       "version": "19.1.0",
       "resolved": "https://registry.npmmirror.com/react-is/-/react-is-19.1.0.tgz",
       "integrity": "sha512-Oe56aUPnkHyyDxxkvqtd7KkdQP5uIUfHxd5XTb3wE9d/kRnZLmKbDB0GWk919tdQ+mxxPtG6EAs6RMT6i1qtHg==",
-      "license": "MIT",
-      "peer": true
-    },
-    "node_modules/react-node-key": {
-      "version": "0.4.0",
-      "resolved": "https://registry.npmjs.org/react-node-key/-/react-node-key-0.4.0.tgz",
-      "integrity": "sha512-puiuP2QYEuNBVVvcjpUE8d8/jdAhiXHBHMmjZzQT4+fe276RMYea/tY7JoZoYlrhAX8DORLPvjySjXYJZ1m6/A==",
-      "license": "ISC",
-      "dependencies": {
-        "jsx-ast-utils": "^2.2.1",
-        "szfe-tools": "^0.0.0-beta.7"
-      },
-      "peerDependencies": {
-        "react": ">=16"
-      }
-    },
-    "node_modules/react-node-key/node_modules/jsx-ast-utils": {
-      "version": "2.4.1",
-      "resolved": "https://registry.npmjs.org/jsx-ast-utils/-/jsx-ast-utils-2.4.1.tgz",
-      "integrity": "sha512-z1xSldJ6imESSzOjd3NNkieVJKRlKYSOtMG8SFyCj2FIrvSaSuli/WjpBkEzCBoR9bYYYFgqJw61Xhu7Lcgk+w==",
-      "license": "MIT",
-      "dependencies": {
-        "array-includes": "^3.1.1",
-        "object.assign": "^4.1.0"
-      },
-      "engines": {
-        "node": ">=4.0"
-      }
+      "license": "MIT"
     },
     "node_modules/react-redux": {
       "version": "8.1.3",
@@ -6818,7 +6789,6 @@
       "resolved": "https://registry.npmmirror.com/react-router/-/react-router-6.30.0.tgz",
       "integrity": "sha512-D3X8FyH9nBcTSHGdEKurK7r8OYE1kKFn3d/CF+CoxbSHkxU7o37+Uh7eAHRXr6k2tSExXYO++07PeXJtA/dEhQ==",
       "license": "MIT",
-      "peer": true,
       "dependencies": {
         "@remix-run/router": "1.23.0"
       },
@@ -6834,7 +6804,6 @@
       "resolved": "https://registry.npmmirror.com/react-router-dom/-/react-router-dom-6.30.0.tgz",
       "integrity": "sha512-x30B78HV5tFk8ex0ITwzC9TTZMua4jGyA9IUlH1JLQYQTFyxr/ZxwOJq7evg1JX1qGVUcvhsmQSKdPncQrjTgA==",
       "license": "MIT",
-      "peer": true,
       "dependencies": {
         "@remix-run/router": "1.23.0",
         "react-router": "6.30.0"
@@ -6951,7 +6920,6 @@
       "resolved": "https://registry.npmmirror.com/redux/-/redux-4.2.1.tgz",
       "integrity": "sha512-LAUYz4lc+Do8/g7aeRa8JkyDErK6ekstQaqWQrNRW//MY1TvCEpMtpTWvlQ+FPbWCx+Xixu/6SHt5N0HR+SB4w==",
       "license": "MIT",
-      "peer": true,
       "dependencies": {
         "@babel/runtime": "^7.9.2"
       }
@@ -6960,6 +6928,7 @@
       "version": "1.0.10",
       "resolved": "https://registry.npmmirror.com/reflect.getprototypeof/-/reflect.getprototypeof-1.0.10.tgz",
       "integrity": "sha512-00o4I+DVrefhv+nX0ulyi3biSHCPDe+yLv5o/p6d/UVlirijB8E16FtfwSAi4g3tcqrQ4lRAqQSoFEZJehYEcw==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "call-bind": "^1.0.8",
@@ -7006,6 +6975,7 @@
       "version": "1.5.4",
       "resolved": "https://registry.npmmirror.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.4.tgz",
       "integrity": "sha512-dYqgNSZbDwkaJ2ceRd9ojCGjBq+mOm9LmtXnAnEGyHhN/5R7iDW2TRw3h+o/jCFxus3P2LfWIIiwowAjANm7IA==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "call-bind": "^1.0.8",
@@ -7157,6 +7127,7 @@
       "version": "1.1.3",
       "resolved": "https://registry.npmmirror.com/safe-array-concat/-/safe-array-concat-1.1.3.tgz",
       "integrity": "sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "call-bind": "^1.0.8",
@@ -7176,6 +7147,7 @@
       "version": "1.0.0",
       "resolved": "https://registry.npmmirror.com/safe-push-apply/-/safe-push-apply-1.0.0.tgz",
       "integrity": "sha512-iKE9w/Z7xCzUMIZqdBsp6pEQvwuEebH4vdpjcDWnyzaI6yl6O9FHvVpmGelvEHNsoY6wGblkxR6Zty/h00WiSA==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "es-errors": "^1.3.0",
@@ -7192,6 +7164,7 @@
       "version": "1.1.0",
       "resolved": "https://registry.npmmirror.com/safe-regex-test/-/safe-regex-test-1.1.0.tgz",
       "integrity": "sha512-x/+Cz4YrimQxQccJf5mKEbIa1NzeCRNI5Ecl/ekmlYaampdNLPalVyIcCZNNH3MvmqBugV5TMYZXv0ljslUlaw==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "call-bound": "^1.0.2",
@@ -7248,6 +7221,7 @@
       "version": "2.0.2",
       "resolved": "https://registry.npmmirror.com/set-function-name/-/set-function-name-2.0.2.tgz",
       "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "define-data-property": "^1.1.4",
@@ -7263,6 +7237,7 @@
       "version": "1.0.0",
       "resolved": "https://registry.npmmirror.com/set-proto/-/set-proto-1.0.0.tgz",
       "integrity": "sha512-RJRdvCo6IAnPdsvP/7m6bsQqNnn1FCBX5ZNtFL98MmFF/4xAIJTIg1YbHW5DC2W5SKZanrC6i4HsJqlajw/dZw==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "dunder-proto": "^1.0.1",
@@ -7468,6 +7443,7 @@
       "version": "1.2.10",
       "resolved": "https://registry.npmmirror.com/string.prototype.trim/-/string.prototype.trim-1.2.10.tgz",
       "integrity": "sha512-Rs66F0P/1kedk5lyYyH9uBzuiI/kNRmwJAR9quK6VOtIpZ2G+hMZd+HQbbv25MgCA6gEffoMZYxlTod4WcdrKA==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "call-bind": "^1.0.8",
@@ -7489,6 +7465,7 @@
       "version": "1.0.9",
       "resolved": "https://registry.npmmirror.com/string.prototype.trimend/-/string.prototype.trimend-1.0.9.tgz",
       "integrity": "sha512-G7Ok5C6E/j4SGfyLCloXTrngQIQU3PWtXGst3yM7Bea9FRURf1S42ZHlZZtsNque2FN2PoUhfZXYLNWwEr4dLQ==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "call-bind": "^1.0.8",
@@ -7507,6 +7484,7 @@
       "version": "1.0.8",
       "resolved": "https://registry.npmmirror.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.8.tgz",
       "integrity": "sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "call-bind": "^1.0.7",
@@ -7584,15 +7562,6 @@
       "license": "MIT",
       "funding": {
         "url": "https://github.com/fontello/svg2ttf?sponsor=1"
-      }
-    },
-    "node_modules/szfe-tools": {
-      "version": "0.0.0-beta.7",
-      "resolved": "https://registry.npmjs.org/szfe-tools/-/szfe-tools-0.0.0-beta.7.tgz",
-      "integrity": "sha512-/M7+Tel2G8zapfDYZlz17hf9ViqAi/loZMfM81b5iZMyaWL/t5dajBszEBI2kyIDFzlLT4btBcq+BimFgmAHug==",
-      "license": "ISC",
-      "dependencies": {
-        "@babel/runtime": "^7.10.2"
       }
     },
     "node_modules/text-table": {
@@ -7692,6 +7661,7 @@
       "version": "1.0.3",
       "resolved": "https://registry.npmmirror.com/typed-array-buffer/-/typed-array-buffer-1.0.3.tgz",
       "integrity": "sha512-nAYYwfY3qnzX30IkA6AQZjVbtK6duGontcQm1WSG1MD94YLqK0515GNApXkoxKOWMusVssAHWLh9SeaoefYFGw==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "call-bound": "^1.0.3",
@@ -7706,6 +7676,7 @@
       "version": "1.0.3",
       "resolved": "https://registry.npmmirror.com/typed-array-byte-length/-/typed-array-byte-length-1.0.3.tgz",
       "integrity": "sha512-BaXgOuIxz8n8pIq3e7Atg/7s+DpiYrxn4vdot3w9KbnBhcRQq6o3xemQdIfynqSeXeDrF32x+WvfzmOjPiY9lg==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "call-bind": "^1.0.8",
@@ -7725,6 +7696,7 @@
       "version": "1.0.4",
       "resolved": "https://registry.npmmirror.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.4.tgz",
       "integrity": "sha512-bTlAFB/FBYMcuX81gbL4OcpH5PmlFHqlCCpAl8AlEzMz5k53oNDvN8p1PNOWLEmI2x4orp3raOFB51tv9X+MFQ==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "available-typed-arrays": "^1.0.7",
@@ -7746,6 +7718,7 @@
       "version": "1.0.7",
       "resolved": "https://registry.npmmirror.com/typed-array-length/-/typed-array-length-1.0.7.tgz",
       "integrity": "sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "call-bind": "^1.0.7",
@@ -7768,7 +7741,6 @@
       "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==",
       "dev": true,
       "license": "Apache-2.0",
-      "peer": true,
       "bin": {
         "tsc": "bin/tsc",
         "tsserver": "bin/tsserver"
@@ -7781,6 +7753,7 @@
       "version": "1.1.0",
       "resolved": "https://registry.npmmirror.com/unbox-primitive/-/unbox-primitive-1.1.0.tgz",
       "integrity": "sha512-nWJ91DjeOkej/TA8pXQ3myruKpKEYgqvpw9lz4OPHj/NWFNluYrjbz9j01CJ8yKQd2g4jFoOkINCTW2I5LEEyw==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "call-bound": "^1.0.3",
@@ -7908,7 +7881,6 @@
       "integrity": "sha512-qO3aKv3HoQC8QKiNSTuUM1l9o/XX3+c+VTgLHbJWHZGeTPVAg2XwazI9UWzoxjIJCGCV2zU60uqMzjeLZuULqA==",
       "dev": true,
       "license": "MIT",
-      "peer": true,
       "dependencies": {
         "esbuild": "^0.21.3",
         "postcss": "^8.4.43",
@@ -7992,6 +7964,7 @@
       "version": "1.1.1",
       "resolved": "https://registry.npmmirror.com/which-boxed-primitive/-/which-boxed-primitive-1.1.1.tgz",
       "integrity": "sha512-TbX3mj8n0odCBFVlY8AxkqcHASw3L60jIuF8jFP78az3C2YhmGvqbHBpAjTRH2/xqYunrJ9g1jSyjCjpoWzIAA==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "is-bigint": "^1.1.0",
@@ -8011,6 +7984,7 @@
       "version": "1.2.1",
       "resolved": "https://registry.npmmirror.com/which-builtin-type/-/which-builtin-type-1.2.1.tgz",
       "integrity": "sha512-6iBczoX+kDQ7a3+YJBnh3T+KZRxM/iYNPXicqk66/Qfm1b93iu+yOImkg0zHbj5LNOcNv1TEADiZ0xa34B4q6Q==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "call-bound": "^1.0.2",
@@ -8038,6 +8012,7 @@
       "version": "1.0.2",
       "resolved": "https://registry.npmmirror.com/which-collection/-/which-collection-1.0.2.tgz",
       "integrity": "sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "is-map": "^2.0.3",
@@ -8056,6 +8031,7 @@
       "version": "1.1.19",
       "resolved": "https://registry.npmmirror.com/which-typed-array/-/which-typed-array-1.1.19.tgz",
       "integrity": "sha512-rEvr90Bck4WZt9HHFC4DJMsjvu7x+r6bImz0/BrbWb7A2djJ8hnZMrWnHo9F8ssv0OMErasDhftrfROTyqSDrw==",
+      "dev": true,
       "license": "MIT",
       "dependencies": {
         "available-typed-arrays": "^1.0.7",
@@ -8129,4 +8105,4 @@
       }
     }
   }
-}
+}
\ No newline at end of file
diff --git a/rsf-admin/package.json b/rsf-admin/package.json
index d377b15..4cc1046 100644
--- a/rsf-admin/package.json
+++ b/rsf-admin/package.json
@@ -35,7 +35,6 @@
     "ra-language-chinese": "^2.0.10",
     "ra-language-english": "^5.6.2",
     "react": "^18.3.0",
-    "react-activation": "^0.13.4",
     "react-admin": "^5.6.3",
     "react-barcode": "^1.6.1",
     "react-dom": "^18.3.0",
@@ -44,10 +43,10 @@
     "react-router-dom": "^6.26.1",
     "react-syntax-highlighter": "^15.5.0",
     "react-to-print": "^2.14.11",
-    "recharts": "^2.15.0",
     "svgpath": "^2.6.0",
     "three": "^0.155.0",
-    "tweedle.js": "^2.1.0"
+    "tweedle.js": "^2.1.0",
+    "recharts": "^2.15.0"
   },
   "devDependencies": {
     "@types/node": "^20.10.7",
@@ -65,4 +64,4 @@
     "vite": "^5.3.5"
   },
   "name": "rsf"
-}
+}
\ No newline at end of file
diff --git a/rsf-admin/src/layout/KeepAliveWrapper.jsx b/rsf-admin/src/layout/KeepAliveWrapper.jsx
deleted file mode 100644
index 197e9b9..0000000
--- a/rsf-admin/src/layout/KeepAliveWrapper.jsx
+++ /dev/null
@@ -1,63 +0,0 @@
-import React from 'react';
-import { useLocation } from 'react-router-dom';
-import KeepAlive, { useAliveController } from 'react-activation';
-
-// 涓嶉渶瑕佺紦瀛樼殑璺緞
-const EXCLUDED_PATHS = ['/', '/login'];
-
-/**
- * 鍒ゆ柇鏄惁涓哄瓙璺緞锛堣鎯�/缂栬緫/鍒涘缓椤甸潰锛�
- * 鍖归厤妯″紡: /resource/123/show, /resource/123/edit, /resource/123, /resource/create
- */
-const isSubPath = (path) => {
-    if (!path) return false;
-    const patterns = [
-        /^\/[^/]+\/\d+\/(show|edit)$/,  // /task/123/show 鎴� /task/123/edit
-        /^\/[^/]+\/\d+$/,                 // /task/123
-        /^\/[^/]+\/create$/,              // /task/create
-    ];
-    return patterns.some(pattern => pattern.test(path));
-};
-
-/**
- * KeepAlive 鍖呰缁勪欢
- * 鏍规嵁褰撳墠璺敱璺緞缂撳瓨椤甸潰缁勪欢锛屽垏鎹� Tab 鏃朵繚鎸侀〉闈㈢姸鎬�
- * 娉ㄦ剰锛氬瓙璺緞锛堣鎯�/缂栬緫/鍒涘缓椤甸潰锛変笉杩涜缂撳瓨
- */
-const KeepAliveWrapper = ({ children }) => {
-    const location = useLocation();
-    const { drop, getCachingNodes } = useAliveController();
-
-    // 妫�鏌ユ槸鍚﹀簲璇ョ紦瀛樺綋鍓嶈矾寰�
-    // 鎺掗櫎锛氱櫥褰曢〉銆佹牴璺緞銆佸瓙璺緞锛堣鎯�/缂栬緫/鍒涘缓椤甸潰锛�
-    const shouldCache = !EXCLUDED_PATHS.includes(location.pathname) && !isSubPath(location.pathname);
-
-    // 鏆撮湶 drop 鏂规硶缁� TabsBar 浣跨敤
-    React.useEffect(() => {
-        // 灏� drop 鏂规硶鎸傝浇鍒� window锛屼緵 TabsBar 璋冪敤
-        window.__keepAliveController = {
-            drop,
-            getCachingNodes
-        };
-        return () => {
-            delete window.__keepAliveController;
-        };
-    }, [drop, getCachingNodes]);
-
-    if (!shouldCache) {
-        return children;
-    }
-
-    return (
-        <KeepAlive
-            id={location.pathname}
-            name={location.pathname}
-            cacheKey={location.pathname}
-        >
-            {children}
-        </KeepAlive>
-    );
-};
-
-export default KeepAliveWrapper;
-
diff --git a/rsf-admin/src/layout/TabsBar.jsx b/rsf-admin/src/layout/TabsBar.jsx
index d441914..c346104 100644
--- a/rsf-admin/src/layout/TabsBar.jsx
+++ b/rsf-admin/src/layout/TabsBar.jsx
@@ -210,15 +210,6 @@
         const tabIndex = tabs.findIndex(tab => tab.path === tabPath);
         const newTabs = tabs.filter(tab => tab.path !== tabPath);
 
-        // 娓呴櫎 KeepAlive 缂撳瓨
-        if (window.__keepAliveController?.drop) {
-            try {
-                window.__keepAliveController.drop(tabPath);
-            } catch (e) {
-                console.warn('Failed to drop KeepAlive cache:', e);
-            }
-        }
-
         // 濡傛灉鍏抽棴鐨勬槸褰撳墠鏍囩椤碉紝闇�瑕佸鑸埌鍏朵粬鏍囩椤�
         if (location.pathname === tabPath || isSameResource(location.pathname, tabPath)) {
             // 浼樺厛瀵艰埅鍒板乏杈圭殑鏍囩椤碉紝鍚﹀垯瀵艰埅鍒板彸杈圭殑
@@ -240,19 +231,6 @@
     const handleCloseAll = () => {
         const dashboardTab = tabs.find(tab => tab.path === '/dashboard');
         const newTabs = [dashboardTab || { ...FIXED_TABS[0] }];
-
-        // 娓呴櫎鎵�鏈� KeepAlive 缂撳瓨锛坉ashboard 闄ゅ锛�
-        if (window.__keepAliveController?.drop) {
-            tabs.forEach(tab => {
-                if (tab.path !== '/dashboard') {
-                    try {
-                        window.__keepAliveController.drop(tab.path);
-                    } catch (e) {
-                        // ignore
-                    }
-                }
-            });
-        }
 
         saveTabs(newTabs);
         setTabs(newTabs);
diff --git a/rsf-admin/src/layout/index.jsx b/rsf-admin/src/layout/index.jsx
index faec8e1..95e8f93 100644
--- a/rsf-admin/src/layout/index.jsx
+++ b/rsf-admin/src/layout/index.jsx
@@ -1,9 +1,7 @@
 import { Layout as RALayout, CheckForApplicationUpdate, useSidebarState } from "react-admin";
-import { AliveScope } from 'react-activation';
 import AppBar from './AppBar';
 import { MyMenu } from './MyMenu';
 import TabsBar from './TabsBar';
-import KeepAliveWrapper from './KeepAliveWrapper';
 import { Box } from '@mui/material';
 
 const LayoutContent = ({ children }) => {
@@ -22,32 +20,35 @@
           width: `calc(100% - ${sidebarWidth}px)`,
           height: 'calc(100% - 86px)', // 鍑忓幓TabsBar鐨勯珮搴� (50px AppBar + 36px TabsBar)
           top: '86px',
-          // 浼樺寲杩囨浮鍔ㄧ敾锛氱缉鐭椂闂达紝浣跨敤鏇村钩婊戠殑 easing
-          transition: 'left 150ms ease-out, width 150ms ease-out',
-          willChange: 'left, width', // GPU 鍔犻��
+          transition: (theme) =>
+            theme.transitions.create(['left', 'width'], {
+              easing: theme.transitions.easing.sharp,
+              duration: theme.transitions.duration.leavingScreen,
+            }),
         }
       }}
     >
       <Box sx={{
         position: 'fixed',
         top: 48,
+        // left: 0,
         left: sidebarWidth + 5,
         right: 0,
         zIndex: 1100,
-        // 浼樺寲杩囨浮鍔ㄧ敾
-        transition: 'left 150ms ease-out',
-        willChange: 'left', // GPU 鍔犻��
+        transition: (theme) =>
+          theme.transitions.create('left', {
+            easing: theme.transitions.easing.sharp,
+            duration: theme.transitions.duration.leavingScreen,
+          }),
       }}>
         <TabsBar />
       </Box>
-      <KeepAliveWrapper>{children}</KeepAliveWrapper>
+      {children}
       <CheckForApplicationUpdate />
     </RALayout>
   );
 };
 
 export const Layout = ({ children }) => (
-  <AliveScope max={10}>
-    <LayoutContent>{children}</LayoutContent>
-  </AliveScope>
+  <LayoutContent>{children}</LayoutContent>
 );
diff --git a/rsf-admin/src/page/basicInfo/loc/LocList.jsx b/rsf-admin/src/page/basicInfo/loc/LocList.jsx
index 79c6c7d..5e57c80 100644
--- a/rsf-admin/src/page/basicInfo/loc/LocList.jsx
+++ b/rsf-admin/src/page/basicInfo/loc/LocList.jsx
@@ -5,7 +5,7 @@
     DatagridConfigurable,
     SearchInput,
     TopToolbar,
-    SelectColumnsButton,
+    ColumnsButton,
     EditButton,
     FilterButton,
     CreateButton,
@@ -55,6 +55,7 @@
 import LocCreate from "./LocCreate";
 import BindModal from "./BindModal";
 import InitModal from "./InitModal";
+import StickyDataTable from "@/page/components/StickyDataTable";
 
 const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({
     '& .css-1vooibu-MuiSvgIcon-root': {
@@ -158,7 +159,11 @@
     ]
 
     return (
-        <Box display="flex">
+        <Box display="flex" sx={{
+            '& .MuiTableCell-root': {
+                whiteSpace: 'nowrap',
+            }
+        }}>
             <List
                 sx={{
                     flexGrow: 1,
@@ -202,16 +207,17 @@
                         <FilterButton />
                         <InitButton />
                         <MyCreateButton onClick={() => { setCreateDialog(true) }} />
-                        <SelectColumnsButton preferenceKey='loc' />
+                        <ColumnsButton storeKey='loc' />
                         <MyExportButton />
                     </TopToolbar>
                 )}
                 perPage={DEFAULT_PAGE_SIZE}
                 aside={<LocListAside />}
             >
-                <StyledDatagrid
-                    preferenceKey='loc'
+                <StickyDataTable
+                    storeKey='loc'
                     align="left"
+                    stickyRight={['opt']}
                     bulkActionButtons={
                         <>
                             <BatchWateButton />
@@ -224,45 +230,29 @@
                         </>
                     }
                     rowClick={() => false}
-                    omit={['id', 'createTime', 'createBy', 'memo', 'updateTime', 'updateBy', 'length', 'width', 'height', 'statusBool', 'updateBy$', 'createBy$']}
+                    hiddenColumns={['id', 'createTime', 'createBy', 'memo', 'updateTime', 'updateBy', 'length', 'width', 'height', 'statusBool', 'updateBy$', 'createBy$']}
                 >
                     <NumberField source="id" />
                     <TextField source="code" label="table.field.loc.code" />
                     <NumberField source="warehouseId$" label="table.field.loc.warehouseId" />
                     <NumberField source="areaId$" label="table.field.loc.areaId" />
                     <TextField source="typeIds$" label="table.field.loc.type" cellClassName="type" />
-                    {/* <TextField source="name" label="table.field.loc.name" /> */}
-                    {/* <NumberField source="flagLogic" label="table.field.loc.flagLogic" />
-                    <TextField source="fucAtrrs" label="table.field.loc.fucAtrrs" />
-                    */}
-                    {/* <TextField source="unit" label="table.field.loc.unit" /> */}                    
-                    {/* <TextField source="length" label="table.field.loc.length" />
-                    <TextField source="width" label="table.field.loc.width" />
-                    <TextField source="height" label="table.field.loc.height" /> */}
+
                     <NumberField source="row" label="table.field.loc.row" />
                     <NumberField source="col" label="table.field.loc.col" />
                     <NumberField source="lev" label="table.field.loc.lev" />
                     <NumberField source="channel" label="table.field.loc.channel" />
-                    {/* <NumberField source="channel" label="table.field.loc.channel" />
-                    <NumberField source="maxParts" label="table.field.loc.maxParts" />
-                    <NumberField source="maxPack" label="table.field.loc.maxPack" />
-                    <NumberField source="flagLabelMange" label="table.field.loc.flagLabelMange" />
-                    <TextField source="locAttrs" label="table.field.loc.locAttrs" /> */}
+
                     <TextField source="useStatus$" label="table.field.loc.useStatus" />
                     <TextField source="barcode" label="table.field.loc.barcode" />
-                    {/* <TextField source="updateBy$" label="common.field.updateBy" />
-                    <DateField source="updateTime" label="common.field.updateTime" showTime align="left" />
-                    <TextField source="createBy$" label="common.field.createBy" />
-                    <DateField source="createTime" label="common.field.createTime" showTime align="left" /> */}
+
                     <BooleanField source="statusBool" label="common.field.status" sortable={false} align="left" />
-                    {/* <TextField source="memo" label="common.field.memo" sortable={false} /> */}
-                    <WrapperField cellClassName="opt" label="common.field.opt">
+                    <WrapperField source="opt" cellClassName="opt" label="common.field.opt">
                         <EditButton sx={{ padding: '1px', fontSize: '.75rem' }} />
-                        {/* <DeleteButton sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode={OPERATE_MODE} /> */}
                         <EnableButton />
                     </WrapperField>
 
-                </StyledDatagrid>
+                </StickyDataTable>
                 <InitModal
                     open={initDialog}
                     setOpen={setInitDialog}
diff --git a/rsf-admin/src/page/basicInfo/warehouse/WarehouseList.jsx b/rsf-admin/src/page/basicInfo/warehouse/WarehouseList.jsx
index a72b962..4a9ba41 100644
--- a/rsf-admin/src/page/basicInfo/warehouse/WarehouseList.jsx
+++ b/rsf-admin/src/page/basicInfo/warehouse/WarehouseList.jsx
@@ -2,10 +2,9 @@
 import { useNavigate } from 'react-router-dom';
 import {
     List,
-    DatagridConfigurable,
     SearchInput,
     TopToolbar,
-    SelectColumnsButton,
+    ColumnsButton,
     EditButton,
     FilterButton,
     CreateButton,
@@ -43,53 +42,16 @@
 import MyField from "@/page/components/MyField";
 import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting';
 import * as Common from '@/utils/common';
+import StickyDataTable from "@/page/components/StickyDataTable";
 
-// const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({
-//     '& .css-1vooibu-MuiSvgIcon-root': {
-//         height: '.9em'
-//     },
-//     '& .RaDatagrid-row': {
-//         cursor: 'auto'
-//     },
-//     '& .column-name': {
-//     },
-//     '& .opt': {
-//         width: 200
-//     },       
-//     '& .RaDatagrid-cell': {
-//         whiteSpace: 'nowrap',
-//         overflow: 'visible',
-//         textOverflow: 'unset',
-//         maxWidth: 'none'
-//     },
-//     '& .MuiTableCell-root': {
-//         whiteSpace: 'nowrap',
-//         overflow: 'visible',
-//         textOverflow: 'unset'
-//     }
-// }));
+
 
 const filters = [
     <SearchInput source="condition" placeholder="鎼滅储浠撳簱鍚嶇О" alwaysOn />,
     <TextInput source="factory" label="table.field.warehouse.factory" />,
     <TextInput source="code" label="table.field.warehouse.code" />,
-    <TextInput source="name" label="table.field.warehouse.name" />,    
-    // <TextInput source="address" label="table.field.warehouse.address" />,
-    // <TextInput source="longitude" label="table.field.warehouse.longitude" />,
-    // <TextInput source="latgitude" label="table.field.warehouse.latgitude" />,
-    // <NumberInput source="length" label="table.field.warehouse.length" />,
-    // <NumberInput source="width" label="table.field.warehouse.width" />,
-    // <NumberInput source="height" label="table.field.warehouse.height" />,
-    // <TextInput label="common.field.memo" source="memo" />,
-    // <SelectInput
-    //     label="common.field.status"
-    //     source="status"
-    //     choices={[
-    //         { id: '1', name: 'common.enums.statusTrue' },
-    //         { id: '0', name: 'common.enums.statusFalse' },
-    //     ]}
-    //     resettable
-    // />,
+    <TextInput source="name" label="table.field.warehouse.name" />,
+
 ]
 
 const WarehouseList = () => {
@@ -116,28 +78,24 @@
                     <TopToolbar>
                         <FilterButton />
                         <MyCreateButton onClick={() => { setCreateDialog(true) }} />
-                        <SelectColumnsButton preferenceKey='warehouse' />
+                        <ColumnsButton storeKey='warehouse' />
                         <MyExportButton />
                     </TopToolbar>
                 )}
-                perPage={DEFAULT_PAGE_SIZE}                
+                perPage={DEFAULT_PAGE_SIZE}
             >
-                <DatagridConfigurable
-                    preferenceKey='warehouse'
+                <StickyDataTable
+                    storeKey='warehouse'
                     bulkActionButtons={() => <BulkDeleteButton mutationMode={OPERATE_MODE} />}
-                    rowClick={(id, resource, record) => false} 
-                    omit={['id', 'updateTime', 'updateBy', 'createTime', 'createBy', 'longitude', 'latgitude', 'length', 'width', 'height']}
+                    rowClick={(id, resource, record) => false}
+                    stickyRight={['opt']}
+                    hiddenColumns={['id', 'updateTime', 'updateBy', 'createTime', 'createBy', 'longitude', 'latgitude', 'length', 'width', 'height']}
                 >
                     <NumberField source="id" />
                     <TextField source="factory" label="table.field.warehouse.factory" />
                     <TextField source="code" label="table.field.warehouse.code" />
                     <TextField source="name" label="table.field.warehouse.name" />
                     <TextField source="address" label="table.field.warehouse.address" />
-                    {/* <TextField source="longitude" label="table.field.warehouse.longitude" />
-                    <TextField source="latgitude" label="table.field.warehouse.latgitude" />
-                    <NumberField source="length" label="table.field.warehouse.length" />
-                    <NumberField source="width" label="table.field.warehouse.width" />
-                    <NumberField source="height" label="table.field.warehouse.height" /> */}
                     <ReferenceField source="updateBy" label="common.field.updateBy" reference="user" link={false} sortable={false}>
                         <TextField source="nickname" />
                     </ReferenceField>
@@ -147,11 +105,12 @@
                     </ReferenceField>
                     <DateField source="createTime" label="common.field.createTime" showTime />
                     <TextField source="memo" label="common.field.memo" sortable={false} />
-                    <WrapperField cellClassName="opt" label="common.field.opt">
-                        <EditButton sx={{ padding: '1px', fontSize: '.75rem' }} />
-                        <DeleteButton sx={{ padding: '1px', fontSize: '.75rem' }} mutationMode={OPERATE_MODE} />
+                    <WrapperField source="opt" cellClassName="opt" label="common.field.opt">
+                        <EditButton />
+                        <DeleteButton mutationMode={OPERATE_MODE} />
+
                     </WrapperField>
-                </DatagridConfigurable>
+                </StickyDataTable>
             </List>
             <WarehouseCreate
                 open={createDialog}
diff --git a/rsf-admin/src/page/components/StickyDataTable.jsx b/rsf-admin/src/page/components/StickyDataTable.jsx
index 4fbae7a..728665b 100644
--- a/rsf-admin/src/page/components/StickyDataTable.jsx
+++ b/rsf-admin/src/page/components/StickyDataTable.jsx
@@ -78,6 +78,11 @@
         fontWeight: 'bold',
         borderTop: '2px solid #e0e0e0',
     },
+    '& .RaDataTable-thead': {
+        backgroundColor: '#f5f5f5',
+        fontWeight: 'bold',
+        borderTop: '2px solid #e0e0e0',
+    },
 };
 
 /**
@@ -194,7 +199,19 @@
 
     return (
         <DataTable {...props} foot={footerComponent} sx={tableStyles}>
-            {processedChildren}
+            {/* {processedChildren} */}
+            {processedChildren
+                .map((column) => (
+                    <DataTable.Col
+                        key={column.key || column.props.source}
+                        source={column.props.source}
+                        label={column.props.label}
+                        sx={column.props.sx}
+                    >
+                        {column}
+                    </DataTable.Col>
+                ))
+            }
         </DataTable>
     );
 };
diff --git a/rsf-admin/src/page/orders/asnOrder/AsnOrderItemList.jsx b/rsf-admin/src/page/orders/asnOrder/AsnOrderItemList.jsx
index bac11a1..763ee1c 100644
--- a/rsf-admin/src/page/orders/asnOrder/AsnOrderItemList.jsx
+++ b/rsf-admin/src/page/orders/asnOrder/AsnOrderItemList.jsx
@@ -164,36 +164,36 @@
 
 const DynamicFields = (props) => {
   const translate = useTranslate();
-  const notify = useNotify(); 
+  const notify = useNotify();
   const [columns, setColumns] = useState([]);
   const { isLoading } = useListContext();
   const refresh = useRefresh();
   useEffect(() => {
-      getDynamicFields();
+    getDynamicFields();
   }, []);
 
   const getDynamicFields = async () => {
-      const result = await fetchInOrderItemColumns();
-      if (result.success) {
-          const hiddenSources = [
-              'splrName',
-              'businessTime', 'extendFields.[businessTime]',
-              'wkType', 'extendFields.[wkType]',
-              'type', 'extendFields.[type]',
-              'priceUnitId', 
-              'id', 'orderId', 'orderCode', 'poCode', 'poId','wkType', 
-              'type', 'checkType', 'spec', 'model', 'purQty',
-              'qrcode', 'trackCode', 'splrCode', 'splrName', 'projectCode', 
-              'supplierId', 'supplierName',  'shipperId',
-              // 'updateTime', 'updateBy', 'updateBy$',
-              'createTime', 'createBy', 'createBy$',
-              'extendFields.[inStockType]', 'extendFields.[baseUnitId]', 'extendFields.[priceUnitId]'
-          ];
-          const columns = result.columns.filter(col => !hiddenSources.includes(col.props.source));
-          setColumns(columns);
-      } else {
-          notify(result.msg);
-      }
+    const result = await fetchInOrderItemColumns();
+    if (result.success) {
+      const hiddenSources = [
+        'splrName',
+        'businessTime', 'extendFields.[businessTime]',
+        'wkType', 'extendFields.[wkType]',
+        'type', 'extendFields.[type]',
+        'priceUnitId',
+        'id', 'orderId', 'orderCode', 'poCode', 'poId', 'wkType',
+        'type', 'checkType', 'spec', 'model', 'purQty',
+        'qrcode', 'trackCode', 'splrCode', 'splrName', 'projectCode',
+        'supplierId', 'supplierName', 'shipperId',
+        // 'updateTime', 'updateBy', 'updateBy$',
+        'createTime', 'createBy', 'createBy$',
+        'extendFields.[inStockType]', 'extendFields.[baseUnitId]', 'extendFields.[priceUnitId]'
+      ];
+      const columns = result.columns.filter(col => !hiddenSources.includes(col.props.source));
+      setColumns(columns);
+    } else {
+      notify(result.msg);
+    }
   }
 
   // const getDynamicFields = async () => {
@@ -223,7 +223,7 @@
           preferenceKey='asnOrderItem'
           bulkActionButtons={false}
           rowClick={(id, resource, record) => false}
-          omit={['id', 'orderId', 'orderCode', 'poCode', 'poId', 'wkType', 'type', 'checkType', 'spec', 'model', 'purQty', 'qrcode', 'trackCode', 'splrCode', 
+          omit={['id', 'orderId', 'orderCode', 'poCode', 'poId', 'wkType', 'type', 'checkType', 'spec', 'model', 'purQty', 'qrcode', 'trackCode', 'splrCode',
             'splrName', 'projectCode', 'supplierId', 'supplierName', 'priceUnitId', 'shipperId', 'businessTime', 'extendFields.[businessTime]', 'extendFields.[wkType]', 'extendFields.[type]']}
         >
           {columns.map((column) => column)}
diff --git a/rsf-admin/src/page/orders/asnOrderItem/AsnOrderItemList.jsx b/rsf-admin/src/page/orders/asnOrderItem/AsnOrderItemList.jsx
index 2dbbe10..9cd224a 100644
--- a/rsf-admin/src/page/orders/asnOrderItem/AsnOrderItemList.jsx
+++ b/rsf-admin/src/page/orders/asnOrderItem/AsnOrderItemList.jsx
@@ -98,7 +98,7 @@
                     title={"menu.asnOrderItem"}
                     empty={false}
                     filters={filters}
-                    sort={{ field: "create_time", order: "desc" }}
+                    // sort={{ field: "mo.create_time", order: "desc" }}
                     actions={(
                         <TopToolbar>
                             <FilterButton />
@@ -142,7 +142,7 @@
         const result = await fetchInOrderItemFullColumns();
         if (result.success) {
             const hiddenSources = [
-                'splrName', 
+                'splrName',
                 'type', 'extendFields.[type]',
             ];
             const columns = result.columns.filter(col => !hiddenSources.includes(col.props.source));
@@ -190,18 +190,7 @@
                     rowClick={false}
                     hiddenColumns={omittedFields}
                 >
-                    {columns
-                        .map((column) => (
-                            <DataTable.Col
-                                key={column.key || column.props.source}
-                                source={column.props.source}
-                                label={column.props.label}
-                                sx={column.props.sx}
-                            >
-                                {column}
-                            </DataTable.Col>
-                        ))
-                    }
+                    {columns}
                 </StickyDataTable>}
         </Box>
     )
diff --git a/rsf-admin/src/page/orders/outStock/OutOrderItemList.jsx b/rsf-admin/src/page/orders/outStock/OutOrderItemList.jsx
index 384d6b8..b2cd41f 100644
--- a/rsf-admin/src/page/orders/outStock/OutOrderItemList.jsx
+++ b/rsf-admin/src/page/orders/outStock/OutOrderItemList.jsx
@@ -196,7 +196,7 @@
           preferenceKey='outStockItem'
           bulkActionButtons={false}
           rowClick={(id, resource, record) => false}
-          omit={['id', 'orderId', 'orderCode', 'poDetlId', 'poDetlCode', 'platOrderCode', 'matnrId', 'spec', 'model', 'purQty', 'purUnit', 
+          omit={['id', 'orderId', 'orderCode', 'poDetlId', 'poDetlCode', 'platOrderCode', 'matnrId', 'spec', 'model', 'purQty', 'purUnit',
             'qrcode', 'trackCode', 'splrCode', 'projectCode', 'workQty', 'createBy', 'createTime', 'createBy$', 'sourceWareHouseId', 'splrName', 'supplierName']}
         >
           {columns.map((column) => column)}
diff --git a/rsf-admin/src/page/task/TaskItemList.jsx b/rsf-admin/src/page/task/TaskItemList.jsx
index e0a437d..0d81413 100644
--- a/rsf-admin/src/page/task/TaskItemList.jsx
+++ b/rsf-admin/src/page/task/TaskItemList.jsx
@@ -153,7 +153,7 @@
                 <NumberField source="matnrId" label="table.field.taskItem.matnrId" />,
                 <TextField source="matnrCode" label="table.field.taskItem.matnrCode" />,
                 <TextField source="maktx" label="table.field.taskItem.maktx" />,
-                <TextField source="batch" label="table.field.taskItem.batch" />,           
+                <TextField source="batch" label="table.field.taskItem.batch" />,
                 <TextField source="unit" label="table.field.taskItem.unit" />,
                 <NumberField source="anfme" label="table.field.taskItem.anfme" />,
                 // <TextField source="platOrderCode" label="table.field.asnOrderItem.platOrderCode" />,
@@ -202,7 +202,7 @@
                     rowClick={false}
                     // expand={() => <TaskItemPanel />}
                     expandSingle={true}
-                    omit={['id', 'createTime', 'createBy', 'memo', 'taskId', 'orderId', 'orderItemId', 'matnrId', 'projectCode','statusBool', 'createBy$', 'spec', 'model']}
+                    omit={['id', 'createTime', 'createBy', 'memo', 'taskId', 'orderId', 'orderItemId', 'matnrId', 'projectCode', 'statusBool', 'createBy$', 'spec', 'model']}
                 >
                     {columns.map((column) => column)}
                 </StyledDatagrid>}
diff --git a/rsf-admin/src/page/warehouseAreas/WarehouseAreasList.jsx b/rsf-admin/src/page/warehouseAreas/WarehouseAreasList.jsx
index 317f494..0533580 100644
--- a/rsf-admin/src/page/warehouseAreas/WarehouseAreasList.jsx
+++ b/rsf-admin/src/page/warehouseAreas/WarehouseAreasList.jsx
@@ -5,7 +5,7 @@
     DatagridConfigurable,
     SearchInput,
     TopToolbar,
-    SelectColumnsButton,
+    ColumnsButton,
     EditButton,
     FilterButton,
     CreateButton,
@@ -46,6 +46,7 @@
 import { PAGE_DRAWER_WIDTH, OPERATE_MODE, DEFAULT_PAGE_SIZE } from '@/config/setting';
 import * as Common from '@/utils/common';
 import EditIcon from '@mui/icons-material/Edit';
+import StickyDataTable from "@/page/components/StickyDataTable";
 
 const StyledDatagrid = styled(DatagridConfigurable)(({ theme }) => ({
     '& .css-1vooibu-MuiSvgIcon-root': {
@@ -140,30 +141,24 @@
                     <TopToolbar>
                         <FilterButton />
                         <MyCreateButton onClick={() => { setCreateDialog(true) }} />
-                        <SelectColumnsButton preferenceKey='warehouseAreas' />
+                        <ColumnsButton storeKey='warehouseAreas' />
                         <MyExportButton />
                     </TopToolbar>
                 )}
                 perPage={DEFAULT_PAGE_SIZE}
-            > 
-                <StyledDatagrid                                    
-                    preferenceKey='warehouseAreas'
-                    bulkActionButtons={
-                        <>
-                            {/* <WareButton />
-                            <MixButton />
-                            <StatusButton /> */}
-                            <BulkDeleteButton mutationMode={OPERATE_MODE} />
-                        </>
-                    }
+            >
+                <StickyDataTable
+                    storeKey='warehouseAreas'
+                    bulkActionButtons={() => <BulkDeleteButton mutationMode={OPERATE_MODE} />}
                     rowClick={(id, resource, record) => false}
-                    omit={['id', 'createTime', 'createBy', 'statusBool', 'flagLabelMange$','shipperId$','supplierId', 'updateBy', 'updateTime']}
+                    stickyRight={['opt']}
+                    hiddenColumns={['id', 'updateTime', 'updateBy', 'createTime', 'createBy', 'longitude', 'latgitude', 'length', 'width', 'height']}
                 >
                     <NumberField source="id" />
                     <TextField source="warehouseId$" label="table.field.warehouseAreas.wareId" />
                     <TextField source="code" label="table.field.warehouseAreas.code" />
-                    <TextField source="name" label="table.field.warehouseAreas.name" />                   
-                    <TextField source="type$" label="table.field.warehouseAreas.type"/>
+                    <TextField source="name" label="table.field.warehouseAreas.name" />
+                    <TextField source="type$" label="table.field.warehouseAreas.type" />
                     <NumberField source="sort" label="table.field.warehouseAreas.sort" />
                     <TextField source="shipperId$" label="table.field.warehouseAreas.shipperId" />
                     <NumberField source="supplierId" label="table.field.warehouseAreas.supplierId" />
@@ -189,8 +184,8 @@
                     {/* <ReferenceField source="shipperId" label="table.field.warehouseAreas.shipperId" reference="shipper" link={false} sortable={false}>
                         <TextField source="name" />
                     </ReferenceField> */}
-                </StyledDatagrid>
-                
+                </StickyDataTable>
+
             </List>
             <WarehouseAreasCreate
                 open={createDialog}
diff --git a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AutoRunSchedules.java b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AutoRunSchedules.java
index 655148d..b6526ed 100644
--- a/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AutoRunSchedules.java
+++ b/rsf-server/src/main/java/com/vincent/rsf/server/manager/schedules/AutoRunSchedules.java
@@ -101,7 +101,7 @@
      * @description: 鑷姩瀹屾垚鐩樼偣鍔熻兘
      * @version 1.0
      */
-    @Scheduled(cron = "0/25 * * * * ?")
+//    @Scheduled(cron = "0/25 * * * * ?")
     @Transactional(rollbackFor = Exception.class)
     public void autoCheckComplete() {
         //鑾峰彇浠诲姟鍒楄〃涓紝涓虹洏鐐瑰嚭搴撶殑浠诲姟

--
Gitblit v1.9.1