diff --git a/electron.vite.config.ts b/electron.vite.config.ts
index eaf504a..c39791b 100644
--- a/electron.vite.config.ts
+++ b/electron.vite.config.ts
@@ -14,8 +14,6 @@ import monacoEditorPlugin from "vite-plugin-monaco-editor"
 import IconsResolver from 'unplugin-icons/resolver'
 import Icons from 'unplugin-icons/vite'
 
-import LawUIResolver from "law-ui/es/resolver"
-
 export default defineConfig({
   main: {
     resolve: {
@@ -29,6 +27,14 @@ export default defineConfig({
     plugins: [externalizeDepsPlugin()],
   },
   preload: {
+    build: {
+      lib: {
+        entry: {
+          index: resolve(__dirname, "./src/preload/index.ts"),
+          loading: resolve(__dirname, "./src/preload/loading.ts"),
+        }
+      }
+    },
     plugins: [externalizeDepsPlugin()],
   },
   renderer: {
@@ -101,12 +107,11 @@ export default defineConfig({
       // https://github.com/antfu/vite-plugin-components
       Components({
         dts: true,
-        dirs: ["src/components"],
+        dirs: ["src/components", "src/ui"],
         resolvers: [
           IconsResolver({
             prefix: 'icon',
           }),
-          LawUIResolver({ importStyle: 'sass' })
         ]
       }),
       Icons(),
diff --git a/package.json b/package.json
index 238d155..30360f4 100644
--- a/package.json
+++ b/package.json
@@ -56,7 +56,6 @@
     "eslint": "^8.57.1",
     "eslint-plugin-vue": "^9.32.0",
     "extract-zip": "^2.0.1",
-    "law-ui": "0.0.2-bate.7",
     "locales": "workspace:*",
     "lodash-es": "^4.17.21",
     "logger": "workspace:^",
diff --git a/packages/logger/crash-handler.ts b/packages/logger/crash-handler.ts
index c8ce008..57bafb3 100644
--- a/packages/logger/crash-handler.ts
+++ b/packages/logger/crash-handler.ts
@@ -53,7 +53,7 @@ export class CrashHandler {
   private crashReportDir: string
   private initialized: boolean = false
   private startTime: number = Date.now()
-  private normalShutdown: boolean = false
+  // private normalShutdown: boolean = false
 
   /**
    * 获取单例实例
@@ -104,7 +104,7 @@ export class CrashHandler {
 
     // 设置应用退出处理
     app.on("before-quit", () => {
-      this.normalShutdown = true
+      // this.normalShutdown = true
       this.clearStartupMarker()
     })
 
diff --git a/packages/logger/renderer-error.ts b/packages/logger/renderer-error.ts
index 6d0b6a8..4caea50 100644
--- a/packages/logger/renderer-error.ts
+++ b/packages/logger/renderer-error.ts
@@ -1,4 +1,4 @@
-import { LogLevel, LogLevelName } from "./common"
+import { LogLevel } from "./common"
 
 /**
  * 错误详情接口
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index dc35869..09db290 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -83,7 +83,7 @@ importers:
         version: 31.7.7
       electron-builder:
         specifier: ^24.13.3
-        version: 24.13.3(electron-builder-squirrel-windows@24.13.3)
+        version: 24.13.3(electron-builder-squirrel-windows@24.13.3(dmg-builder@24.13.3))
       electron-vite:
         specifier: ^2.3.0
         version: 2.3.0(vite@5.4.14(@types/node@20.17.19)(sass@1.85.0))
@@ -96,9 +96,6 @@ importers:
       extract-zip:
         specifier: ^2.0.1
         version: 2.0.1
-      law-ui:
-        specifier: 0.0.2-bate.7
-        version: 0.0.2-bate.7(ant-design-vue@3.2.20(vue@3.5.13(typescript@5.7.3)))(vue@3.5.13(typescript@5.7.3))
       locales:
         specifier: workspace:*
         version: link:packages/locales
@@ -187,17 +184,6 @@ packages:
     resolution: {integrity: sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==}
     engines: {node: '>=6.0.0'}
 
-  '@ant-design/colors@6.0.0':
-    resolution: {integrity: sha512-qAZRvPzfdWHtfameEGP2Qvuf838NhergR35o+EuVyB5XvSA98xod5r4utvi4TJ3ywmevm290g9nsCG5MryrdWQ==}
-
-  '@ant-design/icons-svg@4.4.2':
-    resolution: {integrity: sha512-vHbT+zJEVzllwP+CM+ul7reTEfBR0vgxFe7+lREAsAA7YGsYpboiq2sQNeQeRvh09GfQgs/GyFEvZpJ9cLXpXA==}
-
-  '@ant-design/icons-vue@6.1.0':
-    resolution: {integrity: sha512-EX6bYm56V+ZrKN7+3MT/ubDkvJ5rK/O2t380WFRflDcVFgsvl3NLH7Wxeau6R8DbrO5jWR6DSTC3B6gYFp77AA==}
-    peerDependencies:
-      vue: '>=3.0.3'
-
   '@antfu/install-pkg@0.4.1':
     resolution: {integrity: sha512-T7yB5QNG29afhWVkVq7XeIMBa5U/vs9mX69YqayXypPRmYzUmzwnYltplHmPtZ4HPCn+sQKeXW8I47wCbuBOjw==}
 
@@ -330,10 +316,6 @@ packages:
     peerDependencies:
       '@babel/core': ^7.0.0-0
 
-  '@babel/runtime@7.27.0':
-    resolution: {integrity: sha512-VtPOkrdPHZsKc/clNqyi9WUA8TINkZ4cGk63UUE3u4pmB2k+ZMQRDuIOagv8UVd6j7k0T3+RRIb7beKTebNbcw==}
-    engines: {node: '>=6.9.0'}
-
   '@babel/template@7.25.9':
     resolution: {integrity: sha512-9DGttpmPvIxBb/2uwpVo3dqJ+O6RooAFOS+lB+xDqoE2PVCE8nfoHMdZLpfCQRLwvohzXISPZcgxt80xLfsuwg==}
     engines: {node: '>=6.9.0'}
@@ -358,10 +340,6 @@ packages:
     resolution: {integrity: sha512-Y3IR1cRnOxOCDvMmNiym7XpXQ93iGDDPHx+Zj+NM+rg0fBaShfQLkg+hKPaZCEvg5N/LeCo4+Rj/i3FuJsIQaw==}
     engines: {node: '>=6.9.0'}
 
-  '@ctrl/tinycolor@3.6.1':
-    resolution: {integrity: sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==}
-    engines: {node: '>=10'}
-
   '@develar/schema-utils@2.6.5':
     resolution: {integrity: sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig==}
     engines: {node: '>= 8.9.0'}
@@ -1133,9 +1111,6 @@ packages:
   '@rushstack/eslint-patch@1.10.5':
     resolution: {integrity: sha512-kkKUDVlII2DQiKy7UstOR1ErJP8kUKAQ4oa+SQtM0K+lPdmmjj0YnnxBgtTVYH7mUKtbsxeFC9y0AmK7Yb78/A==}
 
-  '@simonwep/pickr@1.8.2':
-    resolution: {integrity: sha512-/l5w8BIkrpP6n1xsetx9MWPWlU6OblN5YgZZphxan0Tq4BByTCETL6lyIeY8lagalS2Nbt4F2W034KHLIiunKA==}
-
   '@sindresorhus/is@4.6.0':
     resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==}
     engines: {node: '>=10'}
@@ -1682,12 +1657,6 @@ packages:
     resolution: {integrity: sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==}
     engines: {node: '>=12'}
 
-  ant-design-vue@3.2.20:
-    resolution: {integrity: sha512-YWpMfGaGoRastIXEYfCoJiaRiDHk4chqtYhlKQM5GqPt6NfvrM1Vg2e60yHtjxlZjed91wCMm0rAmyUr7Hwzdg==}
-    engines: {node: '>=12.22.0'}
-    peerDependencies:
-      vue: '>=3.2.0'
-
   anymatch@3.1.3:
     resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==}
     engines: {node: '>= 8'}
@@ -1717,9 +1686,6 @@ packages:
   argparse@2.0.1:
     resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==}
 
-  array-tree-filter@2.1.0:
-    resolution: {integrity: sha512-4ROwICNlNw/Hqa9v+rk5h22KjmzB1JGTMVKP2AKJBOCgb0yL0ASf0+YvCcLNNwquOHNX48jkeZIJ3a+oOQqKcw==}
-
   array-union@2.1.0:
     resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==}
     engines: {node: '>=8'}
@@ -1744,9 +1710,6 @@ packages:
     resolution: {integrity: sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==}
     engines: {node: '>=0.12.0'}
 
-  async-validator@4.2.5:
-    resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==}
-
   async@3.2.6:
     resolution: {integrity: sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==}
 
@@ -1913,9 +1876,6 @@ packages:
     resolution: {integrity: sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg==}
     engines: {node: '>= 10'}
 
-  compute-scroll-into-view@1.0.20:
-    resolution: {integrity: sha512-UCB0ioiyj8CRjtrvaceBLqqhZCVP+1B8+NWQhmdsm0VXOJtobBCf1dBQmebCCo34qZmUwZfIH2MZLqNHazrfjg==}
-
   concat-map@0.0.1:
     resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==}
 
@@ -1932,9 +1892,6 @@ packages:
   convert-source-map@2.0.0:
     resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==}
 
-  core-js@3.41.0:
-    resolution: {integrity: sha512-SJ4/EHwS36QMJd6h/Rg+GyR4A5xE0FSI3eZ+iBVpfqf1x0eTSg1smWLHrA+2jQThZSh97fmSgFSU8B61nxosxA==}
-
   core-util-is@1.0.2:
     resolution: {integrity: sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==}
 
@@ -1969,9 +1926,6 @@ packages:
   csstype@3.1.3:
     resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==}
 
-  dayjs@1.11.13:
-    resolution: {integrity: sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg==}
-
   de-indent@1.0.2:
     resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==}
 
@@ -2041,12 +1995,6 @@ packages:
     resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
     engines: {node: '>=6.0.0'}
 
-  dom-align@1.12.4:
-    resolution: {integrity: sha512-R8LUSEay/68zE5c8/3BDxiTEvgb4xZTF0RKmAHfiEVN3klfIpXfi2/QCoiWPccVQ0J/ZGdz9OjzL4uJEP/MRAw==}
-
-  dom-scroll-into-view@2.0.1:
-    resolution: {integrity: sha512-bvVTQe1lfaUr1oFzZX80ce9KLDlZ3iU+XGNE/bz9HnGdklTieqsbmsLHe+rT2XWqopvL0PckkYqN7ksmm5pe3w==}
-
   dotenv-expand@5.1.0:
     resolution: {integrity: sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==}
 
@@ -2537,10 +2485,6 @@ packages:
     resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==}
     engines: {node: '>=8'}
 
-  is-plain-object@3.0.1:
-    resolution: {integrity: sha512-Xnpx182SBMrr/aBik8y+GuR4U1L9FqMSojwDQwPMmxyC6bvEqly9UBCxhauBF5vNh2gwWJNX6oDV7O+OM4z34g==}
-    engines: {node: '>=0.10.0'}
-
   isarray@1.0.0:
     resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==}
 
@@ -2623,12 +2567,6 @@ packages:
   kolorist@1.8.0:
     resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==}
 
-  law-ui@0.0.2-bate.7:
-    resolution: {integrity: sha512-fwglMPWXIlQpnf/KqC2Bt577zipIRhM4UNBSrAJln4dYwHkAUs2P9F5kXui0hqySfuKYFaiZuAMZ8eot+o3c4Q==}
-    peerDependencies:
-      ant-design-vue: ^3.0.0
-      vue: ^3.0.0
-
   lazy-val@1.0.5:
     resolution: {integrity: sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==}
 
@@ -2687,10 +2625,6 @@ packages:
   lodash@4.17.21:
     resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
 
-  loose-envify@1.4.0:
-    resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==}
-    hasBin: true
-
   lowdb@7.0.1:
     resolution: {integrity: sha512-neJAj8GwF0e8EpycYIDFqEPcx9Qz4GUho20jWFR7YiFeXzF1YMLdxB36PypcTSPMA+4+LvgyMacYhlr18Zlymw==}
     engines: {node: '>=18'}
@@ -2817,9 +2751,6 @@ packages:
     engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
     hasBin: true
 
-  nanopop@2.4.2:
-    resolution: {integrity: sha512-NzOgmMQ+elxxHeIha+OG/Pv3Oc3p4RU2aBhwWwAqDpXrdTbtRylbRLQztLy8dMMwfl6pclznBdfUhccEn9ZIzw==}
-
   natural-compare@1.4.0:
     resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==}
 
@@ -3021,16 +2952,10 @@ packages:
   reflect-metadata@0.2.2:
     resolution: {integrity: sha512-urBwgfrvVP/eAyXx4hluJivBKzuEbSQs9rKWCrCkbSxNv8mxPcUZKeuoF3Uy4mJl3Lwprp6yy5/39VWigZ4K6Q==}
 
-  regenerator-runtime@0.14.1:
-    resolution: {integrity: sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==}
-
   require-directory@2.1.1:
     resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==}
     engines: {node: '>=0.10.0'}
 
-  resize-observer-polyfill@1.5.1:
-    resolution: {integrity: sha512-LwZrotdHOo12nQuZlHEmtuXdqGoOD0OhaxopaNFxWzInpEgaLWoVuAMbTzixuosCx2nEG58ngzW3vxdWoxIgdg==}
-
   resolve-alpn@1.2.1:
     resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==}
 
@@ -3093,9 +3018,6 @@ packages:
   sax@1.4.1:
     resolution: {integrity: sha512-+aWOz7yVScEGoKNd4PA10LZ8sk0A/z5+nXQG5giUO5rprX9jgYsTdov9qCchZiPIZezbZH+jRut8nPodFAX4Jg==}
 
-  scroll-into-view-if-needed@2.2.31:
-    resolution: {integrity: sha512-dGCXy99wZQivjmjIqihaBQNjryrz5rueJY7eHfTdyWEiR4ttYpsajb14rn9s5d4DY4EcY6+4+U/maARBXJedkA==}
-
   scule@1.3.0:
     resolution: {integrity: sha512-6FtHJEvt+pVMIB9IBY+IcCJ6Z5f1iQnytgyfKMhDKgmzYG+TeH/wx1y3l27rshSbLiSanrR9ffZDrEsmjlQF2g==}
 
@@ -3115,9 +3037,6 @@ packages:
     resolution: {integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==}
     engines: {node: '>=10'}
 
-  shallow-equal@1.2.1:
-    resolution: {integrity: sha512-S4vJDjHHMBaiZuT9NPb616CSmLf618jawtv3sufLl6ivK8WocjAo58cXwbRV1cgqxH0Qbv+iUt6m05eqEa2IRA==}
-
   shebang-command@2.0.0:
     resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==}
     engines: {node: '>=8'}
@@ -3566,12 +3485,6 @@ packages:
     peerDependencies:
       typescript: '>=5.0.0'
 
-  vue-types@3.0.2:
-    resolution: {integrity: sha512-IwUC0Aq2zwaXqy74h4WCvFCUtoV0iSWr0snWnE9TnU18S66GAQyqQbRf2qfJtUuiFsBf6qp0MEwdonlwznlcrw==}
-    engines: {node: '>=10.15.0'}
-    peerDependencies:
-      vue: ^3.0.0
-
   vue@3.5.13:
     resolution: {integrity: sha512-wmeiSMxkZCSc+PM2w2VRsOYAZC8GdipNFRTsLSfodVqI9mbejKeXEGr8SckuLnrQPGe3oJN5c3K0vpoU9q/wCQ==}
     peerDependencies:
@@ -3580,9 +3493,6 @@ packages:
       typescript:
         optional: true
 
-  warning@4.0.3:
-    resolution: {integrity: sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==}
-
   webpack-virtual-modules@0.6.2:
     resolution: {integrity: sha512-66/V2i5hQanC51vBQKPH4aI8NMAcBW59FVBs+rC7eGHupMyfn34q7rZIE+ETlJ+XTevqfUhVVBgSUNSW2flEUQ==}
 
@@ -3661,18 +3571,6 @@ snapshots:
       '@jridgewell/gen-mapping': 0.3.5
       '@jridgewell/trace-mapping': 0.3.25
 
-  '@ant-design/colors@6.0.0':
-    dependencies:
-      '@ctrl/tinycolor': 3.6.1
-
-  '@ant-design/icons-svg@4.4.2': {}
-
-  '@ant-design/icons-vue@6.1.0(vue@3.5.13(typescript@5.7.3))':
-    dependencies:
-      '@ant-design/colors': 6.0.0
-      '@ant-design/icons-svg': 4.4.2
-      vue: 3.5.13(typescript@5.7.3)
-
   '@antfu/install-pkg@0.4.1':
     dependencies:
       package-manager-detector: 0.2.2
@@ -3848,10 +3746,6 @@ snapshots:
     transitivePeerDependencies:
       - supports-color
 
-  '@babel/runtime@7.27.0':
-    dependencies:
-      regenerator-runtime: 0.14.1
-
   '@babel/template@7.25.9':
     dependencies:
       '@babel/code-frame': 7.26.2
@@ -3898,8 +3792,6 @@ snapshots:
       '@babel/helper-string-parser': 7.25.9
       '@babel/helper-validator-identifier': 7.25.9
 
-  '@ctrl/tinycolor@3.6.1': {}
-
   '@develar/schema-utils@2.6.5':
     dependencies:
       ajv: 6.12.6
@@ -4523,11 +4415,6 @@ snapshots:
 
   '@rushstack/eslint-patch@1.10.5': {}
 
-  '@simonwep/pickr@1.8.2':
-    dependencies:
-      core-js: 3.41.0
-      nanopop: 2.4.2
-
   '@sindresorhus/is@4.6.0': {}
 
   '@szmarczak/http-timer@4.0.6':
@@ -5311,27 +5198,6 @@ snapshots:
 
   ansi-styles@6.2.1: {}
 
-  ant-design-vue@3.2.20(vue@3.5.13(typescript@5.7.3)):
-    dependencies:
-      '@ant-design/colors': 6.0.0
-      '@ant-design/icons-vue': 6.1.0(vue@3.5.13(typescript@5.7.3))
-      '@babel/runtime': 7.27.0
-      '@ctrl/tinycolor': 3.6.1
-      '@simonwep/pickr': 1.8.2
-      array-tree-filter: 2.1.0
-      async-validator: 4.2.5
-      dayjs: 1.11.13
-      dom-align: 1.12.4
-      dom-scroll-into-view: 2.0.1
-      lodash: 4.17.21
-      lodash-es: 4.17.21
-      resize-observer-polyfill: 1.5.1
-      scroll-into-view-if-needed: 2.2.31
-      shallow-equal: 1.2.1
-      vue: 3.5.13(typescript@5.7.3)
-      vue-types: 3.0.2(vue@3.5.13(typescript@5.7.3))
-      warning: 4.0.3
-
   anymatch@3.1.3:
     dependencies:
       normalize-path: 3.0.0
@@ -5339,7 +5205,7 @@ snapshots:
 
   app-builder-bin@4.0.0: {}
 
-  app-builder-lib@24.13.3(dmg-builder@24.13.3)(electron-builder-squirrel-windows@24.13.3):
+  app-builder-lib@24.13.3(dmg-builder@24.13.3(electron-builder-squirrel-windows@24.13.3))(electron-builder-squirrel-windows@24.13.3(dmg-builder@24.13.3)):
     dependencies:
       '@develar/schema-utils': 2.6.5
       '@electron/notarize': 2.2.1
@@ -5411,8 +5277,6 @@ snapshots:
 
   argparse@2.0.1: {}
 
-  array-tree-filter@2.1.0: {}
-
   array-union@2.1.0: {}
 
   assert-plus@1.0.0:
@@ -5433,8 +5297,6 @@ snapshots:
 
   async-exit-hook@2.0.1: {}
 
-  async-validator@4.2.5: {}
-
   async@3.2.6: {}
 
   asynckit@0.4.0: {}
@@ -5624,8 +5486,6 @@ snapshots:
       normalize-path: 3.0.0
       readable-stream: 3.6.2
 
-  compute-scroll-into-view@1.0.20: {}
-
   concat-map@0.0.1: {}
 
   confbox@0.1.8: {}
@@ -5639,8 +5499,6 @@ snapshots:
 
   convert-source-map@2.0.0: {}
 
-  core-js@3.41.0: {}
-
   core-util-is@1.0.2:
     optional: true
 
@@ -5673,8 +5531,6 @@ snapshots:
 
   csstype@3.1.3: {}
 
-  dayjs@1.11.13: {}
-
   de-indent@1.0.2: {}
 
   debug@4.4.0:
@@ -5726,7 +5582,7 @@ snapshots:
 
   dmg-builder@24.13.3(electron-builder-squirrel-windows@24.13.3):
     dependencies:
-      app-builder-lib: 24.13.3(dmg-builder@24.13.3)(electron-builder-squirrel-windows@24.13.3)
+      app-builder-lib: 24.13.3(dmg-builder@24.13.3(electron-builder-squirrel-windows@24.13.3))(electron-builder-squirrel-windows@24.13.3(dmg-builder@24.13.3))
       builder-util: 24.13.1
       builder-util-runtime: 9.2.4
       fs-extra: 10.1.0
@@ -5754,10 +5610,6 @@ snapshots:
     dependencies:
       esutils: 2.0.3
 
-  dom-align@1.12.4: {}
-
-  dom-scroll-into-view@2.0.1: {}
-
   dotenv-expand@5.1.0: {}
 
   dotenv@9.0.2: {}
@@ -5772,7 +5624,7 @@ snapshots:
 
   electron-builder-squirrel-windows@24.13.3(dmg-builder@24.13.3):
     dependencies:
-      app-builder-lib: 24.13.3(dmg-builder@24.13.3)(electron-builder-squirrel-windows@24.13.3)
+      app-builder-lib: 24.13.3(dmg-builder@24.13.3(electron-builder-squirrel-windows@24.13.3))(electron-builder-squirrel-windows@24.13.3(dmg-builder@24.13.3))
       archiver: 5.3.2
       builder-util: 24.13.1
       fs-extra: 10.1.0
@@ -5780,9 +5632,9 @@ snapshots:
       - dmg-builder
       - supports-color
 
-  electron-builder@24.13.3(electron-builder-squirrel-windows@24.13.3):
+  electron-builder@24.13.3(electron-builder-squirrel-windows@24.13.3(dmg-builder@24.13.3)):
     dependencies:
-      app-builder-lib: 24.13.3(dmg-builder@24.13.3)(electron-builder-squirrel-windows@24.13.3)
+      app-builder-lib: 24.13.3(dmg-builder@24.13.3(electron-builder-squirrel-windows@24.13.3))(electron-builder-squirrel-windows@24.13.3(dmg-builder@24.13.3))
       builder-util: 24.13.1
       builder-util-runtime: 9.2.4
       chalk: 4.1.2
@@ -6397,8 +6249,6 @@ snapshots:
 
   is-path-inside@3.0.3: {}
 
-  is-plain-object@3.0.1: {}
-
   isarray@1.0.0: {}
 
   isbinaryfile@4.0.10: {}
@@ -6470,11 +6320,6 @@ snapshots:
 
   kolorist@1.8.0: {}
 
-  law-ui@0.0.2-bate.7(ant-design-vue@3.2.20(vue@3.5.13(typescript@5.7.3)))(vue@3.5.13(typescript@5.7.3)):
-    dependencies:
-      ant-design-vue: 3.2.20(vue@3.5.13(typescript@5.7.3))
-      vue: 3.5.13(typescript@5.7.3)
-
   lazy-val@1.0.5: {}
 
   lazystream@1.0.1:
@@ -6522,10 +6367,6 @@ snapshots:
 
   lodash@4.17.21: {}
 
-  loose-envify@1.4.0:
-    dependencies:
-      js-tokens: 4.0.0
-
   lowdb@7.0.1:
     dependencies:
       steno: 4.0.2
@@ -6635,8 +6476,6 @@ snapshots:
 
   nanoid@3.3.7: {}
 
-  nanopop@2.4.2: {}
-
   natural-compare@1.4.0: {}
 
   node-addon-api@1.7.2:
@@ -6842,12 +6681,8 @@ snapshots:
 
   reflect-metadata@0.2.2: {}
 
-  regenerator-runtime@0.14.1: {}
-
   require-directory@2.1.1: {}
 
-  resize-observer-polyfill@1.5.1: {}
-
   resolve-alpn@1.2.1: {}
 
   resolve-from@4.0.0: {}
@@ -6926,10 +6761,6 @@ snapshots:
 
   sax@1.4.1: {}
 
-  scroll-into-view-if-needed@2.2.31:
-    dependencies:
-      compute-scroll-into-view: 1.0.20
-
   scule@1.3.0: {}
 
   semver-compare@1.0.0:
@@ -6944,8 +6775,6 @@ snapshots:
       type-fest: 0.13.1
     optional: true
 
-  shallow-equal@1.2.1: {}
-
   shebang-command@2.0.0:
     dependencies:
       shebang-regex: 3.0.0
@@ -7453,11 +7282,6 @@ snapshots:
       semver: 7.6.3
       typescript: 5.7.3
 
-  vue-types@3.0.2(vue@3.5.13(typescript@5.7.3)):
-    dependencies:
-      is-plain-object: 3.0.1
-      vue: 3.5.13(typescript@5.7.3)
-
   vue@3.5.13(typescript@5.7.3):
     dependencies:
       '@vue/compiler-dom': 3.5.13
@@ -7468,10 +7292,6 @@ snapshots:
     optionalDependencies:
       typescript: 5.7.3
 
-  warning@4.0.3:
-    dependencies:
-      loose-envify: 1.4.0
-
   webpack-virtual-modules@0.6.2: {}
 
   which@2.0.2:
diff --git a/src/common/event/PlatForm/main/command.ts b/src/common/event/PlatForm/main/command.ts
index c1fbb00..618f209 100644
--- a/src/common/event/PlatForm/main/command.ts
+++ b/src/common/event/PlatForm/main/command.ts
@@ -3,7 +3,7 @@ import { inject } from "inversify"
 import errorHandler from "logger/main-error"
 import Tabs from "main/modules/tabs"
 import WindowManager from "main/modules/window-manager"
-import { getFileUrl } from "main/utils"
+import { getFileUrl, getPreloadUrl } from "main/utils"
 import icon from "@res/icon.png?asset"
 import setting from "setting/main"
 import { LogLevel } from "logger/common"
@@ -37,15 +37,15 @@ export default class PlatFormCommand {
     let srdWindow = this._WindowManager.get("srd")
     let mainWindow = this._WindowManager.getMainWindow()
     if (srdWindow && mainWindow) {
-      console.log(srdWindow.webContents.session);
-      console.log(srdWindow.webContents.session.storagePath);
-      console.log(srdWindow.webContents.session.cookies);
+      console.log(srdWindow.webContents.session)
+      console.log(srdWindow.webContents.session.storagePath)
+      console.log(srdWindow.webContents.session.cookies)
     }
   }
 
-  showSrd(){
+  showSrd() {
     this._WindowManager.createWindow("srd", {
-      url: "https://www.srdcloud.cn/",
+      url: "https://baidu.com/",
       overideWindowOpts: true,
       confrimWindowClose: false,
       type: "info",
@@ -54,9 +54,11 @@ export default class PlatFormCommand {
         height: 400,
         darkTheme: true,
         modal: true,
-        show: false,
+        show: true,
         resizable: true,
+        icon: icon,
         webPreferences: {
+          preload: getPreloadUrl("loading"),
           devTools: false,
           sandbox: false,
           nodeIntegration: false,
@@ -78,7 +80,7 @@ export default class PlatFormCommand {
         minimizable: false,
         darkTheme: true,
         modal: true,
-        show: false,
+        show: true,
         resizable: false,
         icon: icon,
         webPreferences: {
diff --git a/src/main/App.ts b/src/main/App.ts
index 7e368c2..00b3ebf 100644
--- a/src/main/App.ts
+++ b/src/main/App.ts
@@ -62,6 +62,9 @@ class App extends BaseClass {
   }
 
   async init() {
+    // 新开窗口的时候,会有个窗口闪烁的问题,也可以理解为渐入效果
+    // 主进程中添加如下代码即可
+    app.commandLine.appendSwitch("wm-window-animations-disabled")
     crashHandler.init()
     this._Updater.init()
     this._DB.init()
diff --git a/src/main/modules/db/index.ts b/src/main/modules/db/index.ts
index 4cc077d..ce5db72 100644
--- a/src/main/modules/db/index.ts
+++ b/src/main/modules/db/index.ts
@@ -1,4 +1,4 @@
-import { inject, injectable } from "inversify"
+import { injectable } from "inversify"
 import Setting from "setting/main"
 import { CustomAdapter, CustomLow } from "./custom"
 import path from "node:path"
diff --git a/src/main/utils/session/index.ts b/src/main/utils/session/index.ts
index 89974e7..128df4f 100644
--- a/src/main/utils/session/index.ts
+++ b/src/main/utils/session/index.ts
@@ -9,8 +9,8 @@ import { BrowserWindow } from "electron"
  */
 function createLoginWin(partition) {
   partition = partition || `persist:${Math.random()}`
-  const charset = require("superagent-charset")
-  const request = charset(require("superagent")) // HTTP
+  // const charset = require("superagent-charset")
+  // const request = charset(require("superagent")) // HTTP
   let presWindow = new BrowserWindow({
     width: 1280,
     height: 768,
@@ -22,9 +22,9 @@ function createLoginWin(partition) {
     },
   })
   let webContents = presWindow.webContents
-  return new Promise(function (resove, reject) {
+  return new Promise(function (resove, _) {
     // webContents.openDevTools();
-    presWindow.loadURL("http://taobao.com/#/login")
+    presWindow.loadURL("https://login.taobao.com/member/login.jhtml")
     webContents.on("did-navigate-in-page", async function () {
       // 这里可以看情况进行参数的传递,获取制定的 cookies
       const cookies = await webContents.session.cookies.get({})
@@ -37,6 +37,25 @@ function createLoginWin(partition) {
       //   }
       //   let obj = { partition, cookies }
       //   resove(obj)
+      // fetch("https://login.taobao.com/member/login.jhtml", {
+      //   method: "GET",
+      //   credentials: "include",
+      //   headers: {
+      //     Cookie: cookies.map(item => `${item.name}=${item.value};`).join(" "),
+      //     "Content-Type": "application/json",
+      //   },
+      // })
+      //   .then(response => response.json())
+      //   .then(data => {
+      //     console.log(data)
+      //     presWindow.close()
+      //     resove(obj)
+      //   })
+      //   .catch(err => {
+      //     presWindow.close()
+      //     reject(err)
+      //   })
+      // })
       // 这一步并不是必需的。
       //   request
       //     .get("http://taobao.com/userinfo")
@@ -60,4 +79,4 @@ function createLoginWin(partition) {
 
 export {
     createLoginWin
-}
\ No newline at end of file
+}
diff --git a/src/preload/loading.ts b/src/preload/loading.ts
new file mode 100644
index 0000000..e69de29
diff --git a/src/renderer/components.d.ts b/src/renderer/components.d.ts
index c48d990..f27e755 100644
--- a/src/renderer/components.d.ts
+++ b/src/renderer/components.d.ts
@@ -11,8 +11,7 @@ declare module 'vue' {
     AdjustLine: typeof import('./src/components/AdjustLine.vue')['default']
     CodeEditor: typeof import('./src/components/CodeEditor/code-editor.vue')['default']
     'IconStash:arrowReplyDuotone': typeof import('~icons/stash/arrow-reply-duotone')['default']
-    LawDialog: typeof import('law-ui/es')['LawDialog']
-    NavBar: typeof import('./src/components/NavBar.vue')['default']
+    NavBar: typeof import('./src/ui/NavBar.vue')['default']
     RouterLink: typeof import('vue-router')['RouterLink']
     RouterView: typeof import('vue-router')['RouterView']
     Versions: typeof import('./src/components/Versions.vue')['default']
diff --git a/src/renderer/src/App.vue b/src/renderer/src/App.vue
index 9496d53..2ed6d22 100644
--- a/src/renderer/src/App.vue
+++ b/src/renderer/src/App.vue
@@ -1,5 +1,5 @@
 <script setup lang="ts">
-import { ModalContainer } from "law-ui"
+
 </script>
 
 <template>
@@ -11,7 +11,6 @@ import { ModalContainer } from "law-ui"
           <component :is="Component" :key="route.fullPath" />
         </Transition>
       </router-view>
-      <ModalContainer to="#page-container"/>
     </div>
   </div>
 </template>
diff --git a/src/renderer/src/main.ts b/src/renderer/src/main.ts
index 3a7a93b..be26896 100644
--- a/src/renderer/src/main.ts
+++ b/src/renderer/src/main.ts
@@ -3,8 +3,6 @@ import "simplebar-vue/dist/simplebar.min.css"
 import "@unocss/reset/normalize.css"
 import "@/assets/style/_common.scss"
 import "virtual:uno.css"
-import 'law-ui/theme-chalk/law-mask.css';
-import 'law-ui/theme-chalk/law-dialog.css';
 import 'nprogress/nprogress.css';
 
 import { createApp } from "vue"
@@ -16,7 +14,7 @@ import i18n from "./i18n"
 const app = createApp(App)
 
 // 全局错误处理
-app.config.errorHandler = (err, instance, info) => {
+app.config.errorHandler = (err, _, info) => {
   // console.error("应用错误:", err)
   // console.info("错误信息:", info)
   errorHandler.captureError(err)
diff --git a/src/renderer/src/pages/index/index.vue b/src/renderer/src/pages/index/index.vue
index c3d5d04..2dc1a88 100644
--- a/src/renderer/src/pages/index/index.vue
+++ b/src/renderer/src/pages/index/index.vue
@@ -1,6 +1,4 @@
 <script setup lang="ts">
-  import { useDialog } from "law-ui"
-
   definePage({
     meta: {
       home: true,
@@ -8,30 +6,13 @@
   })
 
   const showDialog = ref(false)
-
-  const { show, hide } = useDialog({
-    renderUI: () => import("./_ui/_dialog.vue"),
-    dialogProps: {
-      style: {
-        width: "50%",
-      }
-    }
-  })
 </script>
 
 <template>
-  <div @click="show()">sad--{{ showDialog }}</div>asd
+  <div>sad--{{ showDialog }}</div>asd
   <div @click="$router.push('/demo')">aaa</div>
-  <!-- <Dialog inBox disabled v-model:show="showDialog">
-    <template v-slot:placeholder><div class="dialog-placeholder"></div></template>
-    <div bg-white>saasda</div>
-  </Dialog> -->
 </template>
 
 <style lang="scss" scoped>
-  // .dialog-placeholder :deep() {
-  //   & + .dialog__content {
-  //     width: 50%;
-  //   }
-  // }
+
 </style>
diff --git a/src/renderer/src/router/index.ts b/src/renderer/src/router/index.ts
index 60c1c08..e9eb6bb 100644
--- a/src/renderer/src/router/index.ts
+++ b/src/renderer/src/router/index.ts
@@ -3,7 +3,7 @@ import { routes as generatedRoutes, handleHotUpdate } from "vue-router/auto-rout
 import { setupLayouts } from "virtual:generated-layouts"
 import NProgress from 'nprogress'
 
-NProgress.configure({ showSpinner: false, parent: "#page-container" }) 
+NProgress.configure({ showSpinner: false, parent: "#page-container" })
 
 const routes = setupLayouts(generatedRoutes)
 
@@ -12,13 +12,13 @@ const router = createRouter({
   routes,
 })
 
-router.beforeEach((to, from, next)=>{
+router.beforeEach((_to, _from, next)=>{
   console.log("开始导航");
   NProgress.start();
   return next()
 })
-
-router.afterEach((to, from, failure) => {
+router
+router.afterEach((_to, _from, failure) => {
   console.log("结束导航");
   NProgress.done();
   if (isNavigationFailure(failure)) {
diff --git a/src/renderer/src/components/NavBar.vue b/src/renderer/src/ui/NavBar.vue
similarity index 97%
rename from src/renderer/src/components/NavBar.vue
rename to src/renderer/src/ui/NavBar.vue
index 194ab82..7d6e66f 100644
--- a/src/renderer/src/components/NavBar.vue
+++ b/src/renderer/src/ui/NavBar.vue
@@ -34,7 +34,7 @@
         >
           <icon-stash:arrow-reply-duotone></icon-stash:arrow-reply-duotone>
         </div>
-        <div
+        <!-- <div
           v-if="!isHome"
           text-sm
           px-2
@@ -46,7 +46,7 @@
           @click="backHome"
         >
           🏠
-        </div>
+        </div> -->
         <div text-sm px-2 hover:rounded-md hover:bg-gray-2 hover:cursor-pointer text="hover:hover" @click="onClickAbout">关于</div>
       </div>
     </div>
@@ -79,9 +79,9 @@ import { LogLevel } from "logger/common"
     return false
   })
 
-  function backHome() {
-    router.push("/")
-  }
+  // function backHome() {
+  //   router.push("/")
+  // }
   function back() {
     router.back()
   }