From 07050487199a910d9a23db79cb2eb5e8a5cdd6a6 Mon Sep 17 00:00:00 2001
From: 杨磊 <505174330@qq.com>
Date: 星期二, 18 三月 2025 11:52:03 +0800
Subject: [PATCH] first submit

---
 src/assets/images/bookStore/shujixiangq_di.png           |    0 
 src/assets/images/standard/biaozhun_bg.png               |    0 
 src/assets/images/personalCenter/moxingku1.png           |    0 
 src/assets/js/middleGround/api/dps5.js                   |   42 
 src/assets/images/reader/action@2x.png                   |    0 
 src/assets/images/bookStore/top-3.png                    |    0 
 src/assets/images/default-bookFair.png                   |    0 
 src/assets/images/home/icon_ziyuan.png                   |    0 
 src/assets/images/reader/mulu.png                        |    0 
 src/assets/images/math/yinpin.png                        |    0 
 src/assets/images/reader/hangju2.png                     |    0 
 src/assets/images/header/erCode.jpg                      |    0 
 src/assets/images/math/shipin@2x.png                     |    0 
 src/assets/images/bookStore/jd.png                       |    0 
 src/assets/images/reader/search.png                      |    0 
 src/assets/images/personalCenter/tupianku.png            |    0 
 src/assets/images/header/mobile-phone-dianji.png         |    0 
 src/assets/images/personalCenter/icon_shoucang.png       |    0 
 src/assets/images/reader/page.png                        |    0 
 src/assets/images/reader/shuqian1.png                    |    0 
 src/assets/images/bookStore/Collect.png                  |    0 
 src/assets/images/reader/biji-dianji.png                 |    0 
 src/assets/js/middleGround/api/edu.js                    |  189 ---
 src/assets/js/middleGround/api/app.js                    |   69 -
 src/assets/images/personalCenter/Wechat.png              |    0 
 src/assets/images/personalCenter/icon_ziyuan_click.png   |    0 
 src/assets/images/reader/gaoliang2.png                   |    0 
 src/assets/images/bookStore/paihangbang.png              |    0 
 src/assets/images/header/Slice.png                       |    0 
 src/assets/images/math/tupian_Top_bg.png                 |    0 
 src/assets/images/math/arrow_@2x.png                     |    0 
 src/assets/images/math/moxing.png                        |    0 
 src/assets/images/reader/fenxiang.png                    |    0 
 src/assets/images/header/mobile-phone-moren.png          |    0 
 src/assets/images/reader/kuaitui.png                     |    0 
 src/assets/images/reader/danlan.png                      |    0 
 src/assets/images/header/login_bg.png                    |    0 
 package-lock.json                                        |  688 ++++++++++++++
 src/assets/images/about/map-marker.png                   |    0 
 src/assets/images/reader/yangshi-click2.png              |    0 
 src/assets/images/standard/biaozhun_bg@2x.png            |    0 
 src/views/login/index.vue                                |  142 +++
 src/assets/images/reader/huaxian-dianji.png              |    0 
 src/assets/images/bookStore/yishoucang.png               |    0 
 src/assets/images/reader/gaoliang-dianji2.png            |    0 
 src/assets/images/personalCenter/icon_geren_click.png    |    0 
 src/assets/images/about/phone.png                        |    0 
 src/assets/images/math/default-pub.png                   |    0 
 src/assets/images/about/webpeizhi.png                    |    0 
 src/assets/images/about/zuzhijiagou_bg.png               |    0 
 src/assets/images/math/collect1f.png                     |    0 
 src/assets/images/math/banner.png                        |    0 
 src/assets/images/reader/jieshu-icon.png                 |    0 
 src/assets/images/reader/shuqian.png                     |    0 
 src/assets/images/header/password-icon.png               |    0 
 src/assets/js/middleGround/api/store.js                  |  172 +--
 src/assets/images/personalCenter/moxingku.png            |    0 
 src/assets/images/reader/huaxian.png                     |    0 
 src/assets/images/reader/hangjuActive3.png               |    0 
 src/assets/images/home/tuijiantushu_bg.png               |    0 
 src/assets/images/defaultImg/journal.png                 |    0 
 src/assets/images/reader/fuzhi.png                       |    0 
 src/assets/js/toolClass.js                               |   25 
 src/assets/images/about/Phone-.png                       |    0 
 src/assets/images/personalCenter/icon_tushu_click.png    |    0 
 src/assets/images/personalCenter/yinpinku.png            |    0 
 src/store/modules/user.ts                                |   41 
 src/assets/images/math/shipin_Top_bg.png                 |    0 
 src/assets/images/reader/biji-dianji2.png                |    0 
 src/assets/images/math/moxing_Top_bg.png                 |    0 
 src/assets/images/about/zuzhijiagou_bg@2x.png            |    0 
 src/assets/images/math/fengexian@2x.png                  |    0 
 src/assets/images/reader/search-dianji.png               |    0 
 src/assets/images/header/wechat-dianji.png               |    0 
 src/assets/images/reader/tingshu2.png                    |    0 
 src/assets/images/personalCenter/icon_news_click.png     |    0 
 src/assets/images/bookStore/cd.png                       |    0 
 src/assets/images/personalCenter/notification.png        |    0 
 src/assets/images/personalCenter/tupianku1.png           |    0 
 src/assets/images/personalCenter/icon_shoucang_click.png |    0 
 src/assets/images/personalCenter/xuanzhong.png           |    0 
 src/assets/images/reader/biji.png                        |    0 
 src/assets/images/bookStore/xuanzhong.png                |    0 
 src/assets/images/reader/Listen.png                      |    0 
 src/assets/images/bookStore/biaoqian.png                 |    0 
 src/assets/images/standard/jianjie_tu.png                |    0 
 src/assets/images/math/yp-index.jpeg                     |    0 
 src/assets/images/bookStore/close.png                    |    0 
 src/assets/images/math/shipin_Top_bg@2x.png              |    0 
 src/assets/images/reader/hangju1.png                     |    0 
 src/assets/images/personalCenter/shipinku1.png           |    0 
 src/assets/images/header/logo.png                        |    0 
 src/assets/images/bookStore/sp-mr.png                    |    0 
 src/assets/images/reader/huaxian-dianji2.png             |    0 
 src/assets/images/reader/huaxian2.png                    |    0 
 src/assets/images/math/moxing@2x.png                     |    0 
 src/assets/images/bookStore/next.png                     |    0 
 src/assets/images/math/moxing_Top_bg@2x.png              |    0 
 src/views/model/index.vue                                |   66 +
 src/views/simulation/component/Result.vue                |    0 
 src/assets/images/reader/pattern.png                     |    0 
 src/assets/images/bookStore/top-2.png                    |    0 
 src/assets/images/math/Group 29@2x.png                   |    0 
 src/assets/images/personalCenter/icon_cart_click.png     |    0 
 src/assets/images/reader/yangshi-click.png               |    0 
 src/assets/images/about/guanyu_tu@2x.png                 |    0 
 src/assets/images/default-book-img.png                   |    0 
 src/assets/images/reader/shuanglan-dianji.png            |    0 
 src/assets/images/math/md1.png                           |    0 
 src/assets/images/reader/hangjuActive4.png               |    0 
 src/assets/images/personalCenter/jihuo.svg               |    8 
 src/assets/images/reader/page-blue.png                   |    0 
 src/assets/images/math/collect1e.png                     |    0 
 src/assets/images/reader/bookmark.png                    |    0 
 src/assets/images/math/shipin.png                        |    0 
 src/assets/images/bookStore/search.png                   |    0 
 src/assets/images/about/adress.png                       |    0 
 src/assets/images/about/rongyu_bg@2x.png                 |    0 
 src/assets/images/about/guanyu_tu.png                    |    0 
 src/assets/images/about/chuanzhen.png                    |    0 
 src/assets/images/bookStore/other.png                    |    0 
 src/assets/images/reader/shuanglan.png                   |    0 
 src/views/simulation/component/Config.vue                |    0 
 package.json                                             |   12 
 src/assets/js/middleGround/WebMiddleGroundApi.js         |    6 
 src/assets/images/reader/fullScreen.png                  |    0 
 src/assets/images/bookStore/last.png                     |    0 
 src/assets/images/home/icon_xinwen.png                   |    0 
 src/App.vue                                              |   10 
 src/assets/images/defaultImg/news.png                    |    0 
 src/assets/images/reader/tingshu.png                     |    0 
 src/assets/js/config.js                                  |   81 +
 src/assets/images/math/banner@2x.png                     |    0 
 src/assets/images/math/sp-index.jpg                      |    0 
 src/views/simulation/index.vue                           |   31 
 src/assets/images/standard/jianjie_tu@2x.png             |    0 
 src/assets/images/math/default-audio.png                 |    0 
 src/assets/images/reader/Listen2.png                     |    0 
 src/assets/images/reader/danlan-dianji.png               |    0 
 src/assets/images/personalCenter/icon_cart.png           |    0 
 src/assets/images/math/Group 29.png                      |    0 
 src/assets/images/bookStore/vedio.png                    |    0 
 src/assets/images/math/cd@2x.png                         |    0 
 src/assets/images/personalCenter/icon_kecheng_click.png  |    0 
 src/assets/images/home/tuijianziyuan_bg.png              |    0 
 src/assets/images/bookStore/dangdang.png                 |    0 
 src/assets/images/home/icon_tushu.png                    |    0 
 src/assets/images/math/yinpin@2x.png                     |    0 
 src/assets/images/bookStore/top-1.png                    |    0 
 src/assets/images/math/tupian@2x.png                     |    0 
 src/assets/images/math/cd.png                            |    0 
 src/assets/images/reader/gaoliang-dianji.png             |    0 
 src/assets/images/reader/hangjuActive1.png               |    0 
 src/views/simulation/component/Test.vue                  |    0 
 src/assets/images/book-cover.png                         |    0 
 src/assets/images/about/email.png                        |    0 
 src/assets/images/reader/shuqian-click.png               |    0 
 src/plugin/axios/index.ts                                |   86 
 src/assets/images/reader/pattern2.png                    |    0 
 src/assets/images/header/check.gif                       |    0 
 src/assets/images/reader/halfScreen2.png                 |    0 
 src/assets/images/reader/tuichu.png                      |    0 
 src/assets/images/defaultImg/book.png                    |    0 
 src/assets/images/math/Top_bg@2x.png                     |    0 
 src/assets/images/bookStore/suspend.svg                  |    6 
 src/assets/images/reader/kuaitui@2x.png                  |    0 
 src/assets/images/bookStore/weidian.png                  |    0 
 src/assets/images/reader/kaishi.png                      |    0 
 src/assets/images/math/tupian.png                        |    0 
 src/assets/images/personalCenter/icon_dingdan_click.png  |    0 
 src/assets/images/reader/zihao-da.png                    |    0 
 src/assets/images/reader/shuqian2.png                    |    0 
 src/assets/images/bookStore/play.png                     |    0 
 src/assets/images/about/rongyu_bg.png                    |    0 
 src/assets/images/reader/page-yellow.png                 |    0 
 src/assets/images/math/fengexian.png                     |    0 
 src/assets/images/reader/biji2.png                       |    0 
 src/assets/js/middleGround/api/identity.js               |  208 +--
 src/assets/images/math/Top_bg.png                        |    0 
 src/assets/images/personalCenter/icon_kecheng.png        |    0 
 src/assets/images/reader/search2.png                     |    0 
 src/assets/images/reader/hangju4.png                     |    0 
 src/assets/images/personalCenter/icon_geren.png          |    0 
 src/assets/images/bookStore/suspend.png                  |    0 
 src/assets/images/personalCenter/shipinku.png            |    0 
 src/assets/images/reader/hangju3.png                     |    0 
 src/assets/images/personalCenter/icon_dingdan.png        |    0 
 src/assets/images/personalCenter/icon_news.png           |    0 
 src/assets/images/bookStore/video-bg.png                 |    0 
 src/assets/images/header/bottom_1.png                    |    0 
 src/assets/images/bookStore/note.png                     |    0 
 src/router/index.ts                                      |   83 
 src/assets/images/math/shizhong.png                      |    0 
 src/assets/images/reader/serch-dianji2.png               |    0 
 src/assets/images/reader/mulu-dianji2.png                |    0 
 src/assets/images/reader/page-green.png                  |    0 
 src/assets/images/personalCenter/yinpinku1.png           |    0 
 src/assets/images/reader/halfScreen.png                  |    0 
 src/assets/images/reader/hangjuActive2.png               |    0 
 src/assets/images/reader/zihao-xiao.png                  |    0 
 src/assets/images/about/custom-phone.png                 |    0 
 src/assets/images/personalCenter/jihuo1.svg              |    8 
 src/assets/images/bookStore/play.svg                     |    6 
 src/assets/images/reader/zanting@2x.png                  |    0 
 src/assets/images/math/tupian_Top_bg@2x.png              |    0 
 src/assets/js/middleGround/tool.js                       |  330 +++---
 src/main.js                                              |   12 
 src/assets/images/reader/shuqian-click2.png              |    0 
 src/assets/images/about/dianhua.png                      |    0 
 src/assets/images/reader/page-purple.png                 |    0 
 src/assets/images/math/md-index.jpeg                     |    0 
 src/assets/images/bookStore/word.png                     |    0 
 src/assets/images/math/icon_pause.png                    |    0 
 src/assets/images/reader/mulu2.png                       |    0 
 src/assets/images/reader/mulu-dianji.png                 |    0 
 src/assets/images/math/arrow_.png                        |    0 
 src/store/index.Ts                                       |    8 
 src/assets/images/reader/gaoliang.png                    |    0 
 src/assets/images/reader/kuaijin.png                     |    0 
 src/assets/images/math/am1.png                           |    0 
 src/assets/images/personalCenter/icon_tushu.png          |    0 
 src/assets/images/bookStore/done.png                     |    0 
 src/assets/images/math/tp-index.jpg                      |    0 
 src/assets/images/header/wechat-moren.png                |    0 
 src/assets/images/reader/FullScreen2.png                 |    0 
 src/assets/images/personalCenter/icon_ziyuan.png         |    0 
 src/assets/images/header/Group.png                       |    0 
 src/assets/images/math/banner - 副本.png                   |    0 
 src/assets/images/math/tp1.png                           |    0 
 src/assets/js/middleGround/api/ugc.js                    |  105 -
 src/assets/images/math/icon_play.png                     |    0 
 /dev/null                                                |  266 -----
 src/assets/images/reader/kuaijin@2x.png                  |    0 
 src/assets/images/reader/zanting.png                     |    0 
 src/assets/images/bookStore/audio.png                    |    0 
 src/views/model/children/landerModel.vue                 |   87 +
 src/assets/images/bookStore/tmall.png                    |    0 
 src/assets/images/bookStore/goumai.png                   |    0 
 238 files changed, 1,694 insertions(+), 1,093 deletions(-)

diff --git a/package-lock.json b/package-lock.json
index 2485b94..902d3c7 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,15 +1,20 @@
 {
-  "name": "my-vue-app",
+  "name": "model",
   "version": "0.0.0",
   "lockfileVersion": 2,
   "requires": true,
   "packages": {
     "": {
-      "name": "my-vue-app",
+      "name": "model",
       "version": "0.0.0",
+      "license": "MIT",
       "dependencies": {
         "@element-plus/icons-vue": "^2.3.1",
+        "axios": "^1.6.2",
         "element-plus": "^2.5.6",
+        "moment": "^2.30.1",
+        "pinia": "^3.0.1",
+        "spark-md5": "^3.0.2",
         "vue": "^3.4.21",
         "vue-router": "^4.3.0"
       },
@@ -17,7 +22,7 @@
         "@vitejs/plugin-vue": "^5.0.4",
         "less": "^4.2.2",
         "less-loader": "^12.2.0",
-        "vite": "^5.1.6"
+        "vite": "5.4.11"
       }
     },
     "node_modules/@babel/helper-string-parser": {
@@ -818,6 +823,28 @@
       "resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.6.4.tgz",
       "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g=="
     },
+    "node_modules/@vue/devtools-kit": {
+      "version": "7.7.2",
+      "resolved": "https://registry.npmmirror.com/@vue/devtools-kit/-/devtools-kit-7.7.2.tgz",
+      "integrity": "sha512-CY0I1JH3Z8PECbn6k3TqM1Bk9ASWxeMtTCvZr7vb+CHi+X/QwQm5F1/fPagraamKMAHVfuuCbdcnNg1A4CYVWQ==",
+      "dependencies": {
+        "@vue/devtools-shared": "^7.7.2",
+        "birpc": "^0.2.19",
+        "hookable": "^5.5.3",
+        "mitt": "^3.0.1",
+        "perfect-debounce": "^1.0.0",
+        "speakingurl": "^14.0.1",
+        "superjson": "^2.2.1"
+      }
+    },
+    "node_modules/@vue/devtools-shared": {
+      "version": "7.7.2",
+      "resolved": "https://registry.npmmirror.com/@vue/devtools-shared/-/devtools-shared-7.7.2.tgz",
+      "integrity": "sha512-uBFxnp8gwW2vD6FrJB8JZLUzVb6PNRG0B0jBnHsOH8uKyva2qINY8PTF5Te4QlTbMDqU5K6qtJDr6cNsKWhbOA==",
+      "dependencies": {
+        "rfdc": "^1.4.1"
+      }
+    },
     "node_modules/@vue/reactivity": {
       "version": "3.5.13",
       "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.5.13.tgz",
@@ -951,6 +978,52 @@
       "resolved": "https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz",
       "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg=="
     },
+    "node_modules/asynckit": {
+      "version": "0.4.0",
+      "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz",
+      "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
+    },
+    "node_modules/axios": {
+      "version": "1.8.2",
+      "resolved": "https://registry.npmmirror.com/axios/-/axios-1.8.2.tgz",
+      "integrity": "sha512-ls4GYBm5aig9vWx8AWDSGLpnpDQRtWAfrjU+EuytuODrFBkqesN2RkOQCBzrA1RQNHw1SmRMSDDDSwzNAYQ6Rg==",
+      "dependencies": {
+        "follow-redirects": "^1.15.6",
+        "form-data": "^4.0.0",
+        "proxy-from-env": "^1.1.0"
+      }
+    },
+    "node_modules/birpc": {
+      "version": "0.2.19",
+      "resolved": "https://registry.npmmirror.com/birpc/-/birpc-0.2.19.tgz",
+      "integrity": "sha512-5WeXXAvTmitV1RqJFppT5QtUiz2p1mRSYU000Jkft5ZUCLJIk4uQriYNO50HknxKwM6jd8utNc66K1qGIwwWBQ==",
+      "funding": {
+        "url": "https://github.com/sponsors/antfu"
+      }
+    },
+    "node_modules/call-bind-apply-helpers": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmmirror.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
+      "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
+      "dependencies": {
+        "es-errors": "^1.3.0",
+        "function-bind": "^1.1.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/combined-stream": {
+      "version": "1.0.8",
+      "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz",
+      "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+      "dependencies": {
+        "delayed-stream": "~1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.8"
+      }
+    },
     "node_modules/copy-anything": {
       "version": "2.0.6",
       "resolved": "https://registry.npmmirror.com/copy-anything/-/copy-anything-2.0.6.tgz",
@@ -972,6 +1045,27 @@
       "version": "1.11.13",
       "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.13.tgz",
       "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg=="
+    },
+    "node_modules/delayed-stream": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz",
+      "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==",
+      "engines": {
+        "node": ">=0.4.0"
+      }
+    },
+    "node_modules/dunder-proto": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmmirror.com/dunder-proto/-/dunder-proto-1.0.1.tgz",
+      "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
+      "dependencies": {
+        "call-bind-apply-helpers": "^1.0.1",
+        "es-errors": "^1.3.0",
+        "gopd": "^1.2.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
     },
     "node_modules/element-plus": {
       "version": "2.9.5",
@@ -1022,6 +1116,47 @@
         "errno": "cli.js"
       }
     },
+    "node_modules/es-define-property": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz",
+      "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==",
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/es-errors": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz",
+      "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/es-object-atoms": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmmirror.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
+      "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
+      "dependencies": {
+        "es-errors": "^1.3.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/es-set-tostringtag": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
+      "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
+      "dependencies": {
+        "es-errors": "^1.3.0",
+        "get-intrinsic": "^1.2.6",
+        "has-tostringtag": "^1.0.2",
+        "hasown": "^2.0.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
     "node_modules/esbuild": {
       "version": "0.21.5",
       "resolved": "https://registry.npmmirror.com/esbuild/-/esbuild-0.21.5.tgz",
@@ -1070,6 +1205,39 @@
       "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz",
       "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
     },
+    "node_modules/follow-redirects": {
+      "version": "1.15.9",
+      "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.9.tgz",
+      "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==",
+      "funding": [
+        {
+          "type": "individual",
+          "url": "https://github.com/sponsors/RubenVerborgh"
+        }
+      ],
+      "engines": {
+        "node": ">=4.0"
+      },
+      "peerDependenciesMeta": {
+        "debug": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/form-data": {
+      "version": "4.0.2",
+      "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.2.tgz",
+      "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==",
+      "dependencies": {
+        "asynckit": "^0.4.0",
+        "combined-stream": "^1.0.8",
+        "es-set-tostringtag": "^2.1.0",
+        "mime-types": "^2.1.12"
+      },
+      "engines": {
+        "node": ">= 6"
+      }
+    },
     "node_modules/fsevents": {
       "version": "2.3.3",
       "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz",
@@ -1084,12 +1252,107 @@
         "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
       }
     },
+    "node_modules/function-bind": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz",
+      "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/get-intrinsic": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
+      "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
+      "dependencies": {
+        "call-bind-apply-helpers": "^1.0.2",
+        "es-define-property": "^1.0.1",
+        "es-errors": "^1.3.0",
+        "es-object-atoms": "^1.1.1",
+        "function-bind": "^1.1.2",
+        "get-proto": "^1.0.1",
+        "gopd": "^1.2.0",
+        "has-symbols": "^1.1.0",
+        "hasown": "^2.0.2",
+        "math-intrinsics": "^1.1.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/get-proto": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmmirror.com/get-proto/-/get-proto-1.0.1.tgz",
+      "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
+      "dependencies": {
+        "dunder-proto": "^1.0.1",
+        "es-object-atoms": "^1.0.0"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/gopd": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz",
+      "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==",
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
     "node_modules/graceful-fs": {
       "version": "4.2.11",
       "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz",
       "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
       "dev": true,
       "optional": true
+    },
+    "node_modules/has-symbols": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.1.0.tgz",
+      "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==",
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/has-tostringtag": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
+      "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
+      "dependencies": {
+        "has-symbols": "^1.0.3"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/ljharb"
+      }
+    },
+    "node_modules/hasown": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz",
+      "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+      "dependencies": {
+        "function-bind": "^1.1.2"
+      },
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
+    "node_modules/hookable": {
+      "version": "5.5.3",
+      "resolved": "https://registry.npmmirror.com/hookable/-/hookable-5.5.3.tgz",
+      "integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ=="
     },
     "node_modules/iconv-lite": {
       "version": "0.6.3",
@@ -1217,6 +1480,14 @@
         "node": ">=6"
       }
     },
+    "node_modules/math-intrinsics": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmmirror.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
+      "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==",
+      "engines": {
+        "node": ">= 0.4"
+      }
+    },
     "node_modules/memoize-one": {
       "version": "6.0.0",
       "resolved": "https://registry.npmmirror.com/memoize-one/-/memoize-one-6.0.0.tgz",
@@ -1233,6 +1504,38 @@
       },
       "engines": {
         "node": ">=4"
+      }
+    },
+    "node_modules/mime-db": {
+      "version": "1.52.0",
+      "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
+      "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/mime-types": {
+      "version": "2.1.35",
+      "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz",
+      "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+      "dependencies": {
+        "mime-db": "1.52.0"
+      },
+      "engines": {
+        "node": ">= 0.6"
+      }
+    },
+    "node_modules/mitt": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmmirror.com/mitt/-/mitt-3.0.1.tgz",
+      "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw=="
+    },
+    "node_modules/moment": {
+      "version": "2.30.1",
+      "resolved": "https://registry.npmmirror.com/moment/-/moment-2.30.1.tgz",
+      "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==",
+      "engines": {
+        "node": "*"
       }
     },
     "node_modules/nanoid": {
@@ -1283,6 +1586,11 @@
         "node": ">= 0.10"
       }
     },
+    "node_modules/perfect-debounce": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmmirror.com/perfect-debounce/-/perfect-debounce-1.0.0.tgz",
+      "integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA=="
+    },
     "node_modules/picocolors": {
       "version": "1.1.1",
       "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.1.tgz",
@@ -1296,6 +1604,34 @@
       "optional": true,
       "engines": {
         "node": ">=6"
+      }
+    },
+    "node_modules/pinia": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmmirror.com/pinia/-/pinia-3.0.1.tgz",
+      "integrity": "sha512-WXglsDzztOTH6IfcJ99ltYZin2mY8XZCXujkYWVIJlBjqsP6ST7zw+Aarh63E1cDVYeyUcPCxPHzJpEOmzB6Wg==",
+      "dependencies": {
+        "@vue/devtools-api": "^7.7.2"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/posva"
+      },
+      "peerDependencies": {
+        "typescript": ">=4.4.4",
+        "vue": "^2.7.0 || ^3.5.11"
+      },
+      "peerDependenciesMeta": {
+        "typescript": {
+          "optional": true
+        }
+      }
+    },
+    "node_modules/pinia/node_modules/@vue/devtools-api": {
+      "version": "7.7.2",
+      "resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-7.7.2.tgz",
+      "integrity": "sha512-1syn558KhyN+chO5SjlZIwJ8bV/bQ1nOVTG66t2RbG66ZGekyiYNmRO7X9BJCXQqPsFHlnksqvPhce2qpzxFnA==",
+      "dependencies": {
+        "@vue/devtools-kit": "^7.7.2"
       }
     },
     "node_modules/postcss": {
@@ -1325,12 +1661,22 @@
         "node": "^10 || ^12 || >=14"
       }
     },
+    "node_modules/proxy-from-env": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+      "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
+    },
     "node_modules/prr": {
       "version": "1.0.1",
       "resolved": "https://registry.npmmirror.com/prr/-/prr-1.0.1.tgz",
       "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==",
       "dev": true,
       "optional": true
+    },
+    "node_modules/rfdc": {
+      "version": "1.4.1",
+      "resolved": "https://registry.npmmirror.com/rfdc/-/rfdc-1.4.1.tgz",
+      "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA=="
     },
     "node_modules/rollup": {
       "version": "4.34.8",
@@ -1412,6 +1758,55 @@
         "node": ">=0.10.0"
       }
     },
+    "node_modules/spark-md5": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmmirror.com/spark-md5/-/spark-md5-3.0.2.tgz",
+      "integrity": "sha512-wcFzz9cDfbuqe0FZzfi2or1sgyIrsDwmPwfZC4hiNidPdPINjeUwNfv5kldczoEAcjl9Y1L3SM7Uz2PUEQzxQw=="
+    },
+    "node_modules/speakingurl": {
+      "version": "14.0.1",
+      "resolved": "https://registry.npmmirror.com/speakingurl/-/speakingurl-14.0.1.tgz",
+      "integrity": "sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==",
+      "engines": {
+        "node": ">=0.10.0"
+      }
+    },
+    "node_modules/superjson": {
+      "version": "2.2.2",
+      "resolved": "https://registry.npmmirror.com/superjson/-/superjson-2.2.2.tgz",
+      "integrity": "sha512-5JRxVqC8I8NuOUjzBbvVJAKNM8qoVuH0O77h4WInc/qC2q5IreqKxYwgkga3PfA22OayK2ikceb/B26dztPl+Q==",
+      "dependencies": {
+        "copy-anything": "^3.0.2"
+      },
+      "engines": {
+        "node": ">=16"
+      }
+    },
+    "node_modules/superjson/node_modules/copy-anything": {
+      "version": "3.0.5",
+      "resolved": "https://registry.npmmirror.com/copy-anything/-/copy-anything-3.0.5.tgz",
+      "integrity": "sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==",
+      "dependencies": {
+        "is-what": "^4.1.8"
+      },
+      "engines": {
+        "node": ">=12.13"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/mesqueeb"
+      }
+    },
+    "node_modules/superjson/node_modules/is-what": {
+      "version": "4.1.16",
+      "resolved": "https://registry.npmmirror.com/is-what/-/is-what-4.1.16.tgz",
+      "integrity": "sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==",
+      "engines": {
+        "node": ">=12.13"
+      },
+      "funding": {
+        "url": "https://github.com/sponsors/mesqueeb"
+      }
+    },
     "node_modules/tslib": {
       "version": "2.8.1",
       "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
@@ -1419,9 +1814,9 @@
       "dev": true
     },
     "node_modules/vite": {
-      "version": "5.4.14",
-      "resolved": "https://registry.npmmirror.com/vite/-/vite-5.4.14.tgz",
-      "integrity": "sha512-EK5cY7Q1D8JNhSaPKVK4pwBFvaTmZxEnoKXLG/U9gmdDcihQGNzFlgIvaxezFR4glP1LsuiedwMBqCXH3wZccA==",
+      "version": "5.4.11",
+      "resolved": "https://registry.npmmirror.com/vite/-/vite-5.4.11.tgz",
+      "integrity": "sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==",
       "dev": true,
       "dependencies": {
         "esbuild": "^0.21.3",
@@ -1959,6 +2354,28 @@
       "resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-6.6.4.tgz",
       "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g=="
     },
+    "@vue/devtools-kit": {
+      "version": "7.7.2",
+      "resolved": "https://registry.npmmirror.com/@vue/devtools-kit/-/devtools-kit-7.7.2.tgz",
+      "integrity": "sha512-CY0I1JH3Z8PECbn6k3TqM1Bk9ASWxeMtTCvZr7vb+CHi+X/QwQm5F1/fPagraamKMAHVfuuCbdcnNg1A4CYVWQ==",
+      "requires": {
+        "@vue/devtools-shared": "^7.7.2",
+        "birpc": "^0.2.19",
+        "hookable": "^5.5.3",
+        "mitt": "^3.0.1",
+        "perfect-debounce": "^1.0.0",
+        "speakingurl": "^14.0.1",
+        "superjson": "^2.2.1"
+      }
+    },
+    "@vue/devtools-shared": {
+      "version": "7.7.2",
+      "resolved": "https://registry.npmmirror.com/@vue/devtools-shared/-/devtools-shared-7.7.2.tgz",
+      "integrity": "sha512-uBFxnp8gwW2vD6FrJB8JZLUzVb6PNRG0B0jBnHsOH8uKyva2qINY8PTF5Te4QlTbMDqU5K6qtJDr6cNsKWhbOA==",
+      "requires": {
+        "rfdc": "^1.4.1"
+      }
+    },
     "@vue/reactivity": {
       "version": "3.5.13",
       "resolved": "https://registry.npmmirror.com/@vue/reactivity/-/reactivity-3.5.13.tgz",
@@ -2046,6 +2463,43 @@
       "resolved": "https://registry.npmmirror.com/async-validator/-/async-validator-4.2.5.tgz",
       "integrity": "sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg=="
     },
+    "asynckit": {
+      "version": "0.4.0",
+      "resolved": "https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz",
+      "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="
+    },
+    "axios": {
+      "version": "1.8.2",
+      "resolved": "https://registry.npmmirror.com/axios/-/axios-1.8.2.tgz",
+      "integrity": "sha512-ls4GYBm5aig9vWx8AWDSGLpnpDQRtWAfrjU+EuytuODrFBkqesN2RkOQCBzrA1RQNHw1SmRMSDDDSwzNAYQ6Rg==",
+      "requires": {
+        "follow-redirects": "^1.15.6",
+        "form-data": "^4.0.0",
+        "proxy-from-env": "^1.1.0"
+      }
+    },
+    "birpc": {
+      "version": "0.2.19",
+      "resolved": "https://registry.npmmirror.com/birpc/-/birpc-0.2.19.tgz",
+      "integrity": "sha512-5WeXXAvTmitV1RqJFppT5QtUiz2p1mRSYU000Jkft5ZUCLJIk4uQriYNO50HknxKwM6jd8utNc66K1qGIwwWBQ=="
+    },
+    "call-bind-apply-helpers": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmmirror.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz",
+      "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==",
+      "requires": {
+        "es-errors": "^1.3.0",
+        "function-bind": "^1.1.2"
+      }
+    },
+    "combined-stream": {
+      "version": "1.0.8",
+      "resolved": "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz",
+      "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
+      "requires": {
+        "delayed-stream": "~1.0.0"
+      }
+    },
     "copy-anything": {
       "version": "2.0.6",
       "resolved": "https://registry.npmmirror.com/copy-anything/-/copy-anything-2.0.6.tgz",
@@ -2064,6 +2518,21 @@
       "version": "1.11.13",
       "resolved": "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.13.tgz",
       "integrity": "sha512-oaMBel6gjolK862uaPQOVTA7q3TZhuSvuMQAAglQDOWYO9A91IrAOUJEyKVlqJlHE0vq5p5UXxzdPfMH/x6xNg=="
+    },
+    "delayed-stream": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz",
+      "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="
+    },
+    "dunder-proto": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmmirror.com/dunder-proto/-/dunder-proto-1.0.1.tgz",
+      "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==",
+      "requires": {
+        "call-bind-apply-helpers": "^1.0.1",
+        "es-errors": "^1.3.0",
+        "gopd": "^1.2.0"
+      }
     },
     "element-plus": {
       "version": "2.9.5",
@@ -2100,6 +2569,35 @@
       "optional": true,
       "requires": {
         "prr": "~1.0.1"
+      }
+    },
+    "es-define-property": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmmirror.com/es-define-property/-/es-define-property-1.0.1.tgz",
+      "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g=="
+    },
+    "es-errors": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmmirror.com/es-errors/-/es-errors-1.3.0.tgz",
+      "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="
+    },
+    "es-object-atoms": {
+      "version": "1.1.1",
+      "resolved": "https://registry.npmmirror.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz",
+      "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==",
+      "requires": {
+        "es-errors": "^1.3.0"
+      }
+    },
+    "es-set-tostringtag": {
+      "version": "2.1.0",
+      "resolved": "https://registry.npmmirror.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz",
+      "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==",
+      "requires": {
+        "es-errors": "^1.3.0",
+        "get-intrinsic": "^1.2.6",
+        "has-tostringtag": "^1.0.2",
+        "hasown": "^2.0.2"
       }
     },
     "esbuild": {
@@ -2143,6 +2641,22 @@
       "resolved": "https://registry.npmmirror.com/estree-walker/-/estree-walker-2.0.2.tgz",
       "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w=="
     },
+    "follow-redirects": {
+      "version": "1.15.9",
+      "resolved": "https://registry.npmmirror.com/follow-redirects/-/follow-redirects-1.15.9.tgz",
+      "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ=="
+    },
+    "form-data": {
+      "version": "4.0.2",
+      "resolved": "https://registry.npmmirror.com/form-data/-/form-data-4.0.2.tgz",
+      "integrity": "sha512-hGfm/slu0ZabnNt4oaRZ6uREyfCj6P4fT/n6A1rGV+Z0VdGXjfOhVUpkn6qVQONHGIFwmveGXyDs75+nr6FM8w==",
+      "requires": {
+        "asynckit": "^0.4.0",
+        "combined-stream": "^1.0.8",
+        "es-set-tostringtag": "^2.1.0",
+        "mime-types": "^2.1.12"
+      }
+    },
     "fsevents": {
       "version": "2.3.3",
       "resolved": "https://registry.npmmirror.com/fsevents/-/fsevents-2.3.3.tgz",
@@ -2150,12 +2664,74 @@
       "dev": true,
       "optional": true
     },
+    "function-bind": {
+      "version": "1.1.2",
+      "resolved": "https://registry.npmmirror.com/function-bind/-/function-bind-1.1.2.tgz",
+      "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="
+    },
+    "get-intrinsic": {
+      "version": "1.3.0",
+      "resolved": "https://registry.npmmirror.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz",
+      "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==",
+      "requires": {
+        "call-bind-apply-helpers": "^1.0.2",
+        "es-define-property": "^1.0.1",
+        "es-errors": "^1.3.0",
+        "es-object-atoms": "^1.1.1",
+        "function-bind": "^1.1.2",
+        "get-proto": "^1.0.1",
+        "gopd": "^1.2.0",
+        "has-symbols": "^1.1.0",
+        "hasown": "^2.0.2",
+        "math-intrinsics": "^1.1.0"
+      }
+    },
+    "get-proto": {
+      "version": "1.0.1",
+      "resolved": "https://registry.npmmirror.com/get-proto/-/get-proto-1.0.1.tgz",
+      "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==",
+      "requires": {
+        "dunder-proto": "^1.0.1",
+        "es-object-atoms": "^1.0.0"
+      }
+    },
+    "gopd": {
+      "version": "1.2.0",
+      "resolved": "https://registry.npmmirror.com/gopd/-/gopd-1.2.0.tgz",
+      "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg=="
+    },
     "graceful-fs": {
       "version": "4.2.11",
       "resolved": "https://registry.npmmirror.com/graceful-fs/-/graceful-fs-4.2.11.tgz",
       "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
       "dev": true,
       "optional": true
+    },
+    "has-symbols": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmmirror.com/has-symbols/-/has-symbols-1.1.0.tgz",
+      "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ=="
+    },
+    "has-tostringtag": {
+      "version": "1.0.2",
+      "resolved": "https://registry.npmmirror.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz",
+      "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==",
+      "requires": {
+        "has-symbols": "^1.0.3"
+      }
+    },
+    "hasown": {
+      "version": "2.0.2",
+      "resolved": "https://registry.npmmirror.com/hasown/-/hasown-2.0.2.tgz",
+      "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+      "requires": {
+        "function-bind": "^1.1.2"
+      }
+    },
+    "hookable": {
+      "version": "5.5.3",
+      "resolved": "https://registry.npmmirror.com/hookable/-/hookable-5.5.3.tgz",
+      "integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ=="
     },
     "iconv-lite": {
       "version": "0.6.3",
@@ -2240,6 +2816,11 @@
         "semver": "^5.6.0"
       }
     },
+    "math-intrinsics": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmmirror.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz",
+      "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g=="
+    },
     "memoize-one": {
       "version": "6.0.0",
       "resolved": "https://registry.npmmirror.com/memoize-one/-/memoize-one-6.0.0.tgz",
@@ -2251,6 +2832,29 @@
       "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
       "dev": true,
       "optional": true
+    },
+    "mime-db": {
+      "version": "1.52.0",
+      "resolved": "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz",
+      "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="
+    },
+    "mime-types": {
+      "version": "2.1.35",
+      "resolved": "https://registry.npmmirror.com/mime-types/-/mime-types-2.1.35.tgz",
+      "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
+      "requires": {
+        "mime-db": "1.52.0"
+      }
+    },
+    "mitt": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmmirror.com/mitt/-/mitt-3.0.1.tgz",
+      "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw=="
+    },
+    "moment": {
+      "version": "2.30.1",
+      "resolved": "https://registry.npmmirror.com/moment/-/moment-2.30.1.tgz",
+      "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how=="
     },
     "nanoid": {
       "version": "3.3.8",
@@ -2279,6 +2883,11 @@
       "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==",
       "dev": true
     },
+    "perfect-debounce": {
+      "version": "1.0.0",
+      "resolved": "https://registry.npmmirror.com/perfect-debounce/-/perfect-debounce-1.0.0.tgz",
+      "integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA=="
+    },
     "picocolors": {
       "version": "1.1.1",
       "resolved": "https://registry.npmmirror.com/picocolors/-/picocolors-1.1.1.tgz",
@@ -2291,6 +2900,24 @@
       "dev": true,
       "optional": true
     },
+    "pinia": {
+      "version": "3.0.1",
+      "resolved": "https://registry.npmmirror.com/pinia/-/pinia-3.0.1.tgz",
+      "integrity": "sha512-WXglsDzztOTH6IfcJ99ltYZin2mY8XZCXujkYWVIJlBjqsP6ST7zw+Aarh63E1cDVYeyUcPCxPHzJpEOmzB6Wg==",
+      "requires": {
+        "@vue/devtools-api": "^7.7.2"
+      },
+      "dependencies": {
+        "@vue/devtools-api": {
+          "version": "7.7.2",
+          "resolved": "https://registry.npmmirror.com/@vue/devtools-api/-/devtools-api-7.7.2.tgz",
+          "integrity": "sha512-1syn558KhyN+chO5SjlZIwJ8bV/bQ1nOVTG66t2RbG66ZGekyiYNmRO7X9BJCXQqPsFHlnksqvPhce2qpzxFnA==",
+          "requires": {
+            "@vue/devtools-kit": "^7.7.2"
+          }
+        }
+      }
+    },
     "postcss": {
       "version": "8.5.3",
       "resolved": "https://registry.npmmirror.com/postcss/-/postcss-8.5.3.tgz",
@@ -2301,12 +2928,22 @@
         "source-map-js": "^1.2.1"
       }
     },
+    "proxy-from-env": {
+      "version": "1.1.0",
+      "resolved": "https://registry.npmmirror.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
+      "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
+    },
     "prr": {
       "version": "1.0.1",
       "resolved": "https://registry.npmmirror.com/prr/-/prr-1.0.1.tgz",
       "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==",
       "dev": true,
       "optional": true
+    },
+    "rfdc": {
+      "version": "1.4.1",
+      "resolved": "https://registry.npmmirror.com/rfdc/-/rfdc-1.4.1.tgz",
+      "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA=="
     },
     "rollup": {
       "version": "4.34.8",
@@ -2370,6 +3007,39 @@
       "resolved": "https://registry.npmmirror.com/source-map-js/-/source-map-js-1.2.1.tgz",
       "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA=="
     },
+    "spark-md5": {
+      "version": "3.0.2",
+      "resolved": "https://registry.npmmirror.com/spark-md5/-/spark-md5-3.0.2.tgz",
+      "integrity": "sha512-wcFzz9cDfbuqe0FZzfi2or1sgyIrsDwmPwfZC4hiNidPdPINjeUwNfv5kldczoEAcjl9Y1L3SM7Uz2PUEQzxQw=="
+    },
+    "speakingurl": {
+      "version": "14.0.1",
+      "resolved": "https://registry.npmmirror.com/speakingurl/-/speakingurl-14.0.1.tgz",
+      "integrity": "sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ=="
+    },
+    "superjson": {
+      "version": "2.2.2",
+      "resolved": "https://registry.npmmirror.com/superjson/-/superjson-2.2.2.tgz",
+      "integrity": "sha512-5JRxVqC8I8NuOUjzBbvVJAKNM8qoVuH0O77h4WInc/qC2q5IreqKxYwgkga3PfA22OayK2ikceb/B26dztPl+Q==",
+      "requires": {
+        "copy-anything": "^3.0.2"
+      },
+      "dependencies": {
+        "copy-anything": {
+          "version": "3.0.5",
+          "resolved": "https://registry.npmmirror.com/copy-anything/-/copy-anything-3.0.5.tgz",
+          "integrity": "sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==",
+          "requires": {
+            "is-what": "^4.1.8"
+          }
+        },
+        "is-what": {
+          "version": "4.1.16",
+          "resolved": "https://registry.npmmirror.com/is-what/-/is-what-4.1.16.tgz",
+          "integrity": "sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A=="
+        }
+      }
+    },
     "tslib": {
       "version": "2.8.1",
       "resolved": "https://registry.npmmirror.com/tslib/-/tslib-2.8.1.tgz",
@@ -2377,9 +3047,9 @@
       "dev": true
     },
     "vite": {
-      "version": "5.4.14",
-      "resolved": "https://registry.npmmirror.com/vite/-/vite-5.4.14.tgz",
-      "integrity": "sha512-EK5cY7Q1D8JNhSaPKVK4pwBFvaTmZxEnoKXLG/U9gmdDcihQGNzFlgIvaxezFR4glP1LsuiedwMBqCXH3wZccA==",
+      "version": "5.4.11",
+      "resolved": "https://registry.npmmirror.com/vite/-/vite-5.4.11.tgz",
+      "integrity": "sha512-c7jFQRklXua0mTzneGW9QVyxFjUgwcihC4bXEtujIo2ouWCe1Ajt/amn2PCxYnhYfd5k09JX3SB7OYWFKYqj8Q==",
       "dev": true,
       "requires": {
         "esbuild": "^0.21.3",
diff --git a/package.json b/package.json
index 3696301..2cd5334 100644
--- a/package.json
+++ b/package.json
@@ -11,16 +11,18 @@
   },
   "dependencies": {
     "@element-plus/icons-vue": "^2.3.1",
-    "element-plus": "^2.5.6",
-    "vue": "^3.4.21",
-    "vue-router": "^4.3.0",
     "axios": "^1.6.2",
-    "spark-md5": "^3.0.2"
+    "element-plus": "^2.5.6",
+    "moment": "^2.30.1",
+    "pinia": "^3.0.1",
+    "spark-md5": "^3.0.2",
+    "vue": "^3.4.21",
+    "vue-router": "^4.3.0"
   },
   "devDependencies": {
     "@vitejs/plugin-vue": "^5.0.4",
     "less": "^4.2.2",
     "less-loader": "^12.2.0",
-    "vite": "^5.1.6"
+    "vite": "5.4.11"
   }
 }
diff --git a/src/App.vue b/src/App.vue
index a03c67c..f344615 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -13,7 +13,7 @@
 </script>
 
 <template>
-  <el-config-provider :locale="zhCn">
+  <!-- <el-config-provider :locale="zhCn">
     <el-container class="common-layout">
       <el-header height="60px">
         <Header @selectMenu="handMenu" />
@@ -22,10 +22,10 @@
         <el-aside width="240px">
           <TreeMenu :menuItem="menuItem" />
         </el-aside>
-        <el-main>
-          <RouterView />
-        </el-main>
+        <el-main> -->
+  <RouterView />
+  <!-- </el-main>
       </el-container>
     </el-container>
-  </el-config-provider>
+  </el-config-provider> -->
 </template>
diff --git a/src/assets/images/about/Phone-.png b/src/assets/images/about/Phone-.png
new file mode 100644
index 0000000..27dcd38
--- /dev/null
+++ b/src/assets/images/about/Phone-.png
Binary files differ
diff --git a/src/assets/images/about/adress.png b/src/assets/images/about/adress.png
new file mode 100644
index 0000000..22cd3e5
--- /dev/null
+++ b/src/assets/images/about/adress.png
Binary files differ
diff --git a/src/assets/images/about/chuanzhen.png b/src/assets/images/about/chuanzhen.png
new file mode 100644
index 0000000..f9ca915
--- /dev/null
+++ b/src/assets/images/about/chuanzhen.png
Binary files differ
diff --git a/src/assets/images/about/custom-phone.png b/src/assets/images/about/custom-phone.png
new file mode 100644
index 0000000..ea558f0
--- /dev/null
+++ b/src/assets/images/about/custom-phone.png
Binary files differ
diff --git a/src/assets/images/about/dianhua.png b/src/assets/images/about/dianhua.png
new file mode 100644
index 0000000..3dbb74d
--- /dev/null
+++ b/src/assets/images/about/dianhua.png
Binary files differ
diff --git a/src/assets/images/about/email.png b/src/assets/images/about/email.png
new file mode 100644
index 0000000..a307d7b
--- /dev/null
+++ b/src/assets/images/about/email.png
Binary files differ
diff --git a/src/assets/images/about/guanyu_tu.png b/src/assets/images/about/guanyu_tu.png
new file mode 100644
index 0000000..075428b
--- /dev/null
+++ b/src/assets/images/about/guanyu_tu.png
Binary files differ
diff --git a/src/assets/images/about/guanyu_tu@2x.png b/src/assets/images/about/guanyu_tu@2x.png
new file mode 100644
index 0000000..2abf18b
--- /dev/null
+++ b/src/assets/images/about/guanyu_tu@2x.png
Binary files differ
diff --git a/src/assets/images/about/map-marker.png b/src/assets/images/about/map-marker.png
new file mode 100644
index 0000000..c611b1d
--- /dev/null
+++ b/src/assets/images/about/map-marker.png
Binary files differ
diff --git a/src/assets/images/about/phone.png b/src/assets/images/about/phone.png
new file mode 100644
index 0000000..2ad7357
--- /dev/null
+++ b/src/assets/images/about/phone.png
Binary files differ
diff --git a/src/assets/images/about/rongyu_bg.png b/src/assets/images/about/rongyu_bg.png
new file mode 100644
index 0000000..75a385b
--- /dev/null
+++ b/src/assets/images/about/rongyu_bg.png
Binary files differ
diff --git a/src/assets/images/about/rongyu_bg@2x.png b/src/assets/images/about/rongyu_bg@2x.png
new file mode 100644
index 0000000..1a89e18
--- /dev/null
+++ b/src/assets/images/about/rongyu_bg@2x.png
Binary files differ
diff --git a/src/assets/images/about/webpeizhi.png b/src/assets/images/about/webpeizhi.png
new file mode 100644
index 0000000..ec6ea06
--- /dev/null
+++ b/src/assets/images/about/webpeizhi.png
Binary files differ
diff --git a/src/assets/images/about/zuzhijiagou_bg.png b/src/assets/images/about/zuzhijiagou_bg.png
new file mode 100644
index 0000000..9c4a573
--- /dev/null
+++ b/src/assets/images/about/zuzhijiagou_bg.png
Binary files differ
diff --git a/src/assets/images/about/zuzhijiagou_bg@2x.png b/src/assets/images/about/zuzhijiagou_bg@2x.png
new file mode 100644
index 0000000..95edced
--- /dev/null
+++ b/src/assets/images/about/zuzhijiagou_bg@2x.png
Binary files differ
diff --git a/src/assets/images/book-cover.png b/src/assets/images/book-cover.png
new file mode 100644
index 0000000..bd40923
--- /dev/null
+++ b/src/assets/images/book-cover.png
Binary files differ
diff --git a/src/assets/images/bookStore/Collect.png b/src/assets/images/bookStore/Collect.png
new file mode 100644
index 0000000..c9c0346
--- /dev/null
+++ b/src/assets/images/bookStore/Collect.png
Binary files differ
diff --git a/src/assets/images/bookStore/audio.png b/src/assets/images/bookStore/audio.png
new file mode 100644
index 0000000..7df9620
--- /dev/null
+++ b/src/assets/images/bookStore/audio.png
Binary files differ
diff --git a/src/assets/images/bookStore/biaoqian.png b/src/assets/images/bookStore/biaoqian.png
new file mode 100644
index 0000000..cda31e4
--- /dev/null
+++ b/src/assets/images/bookStore/biaoqian.png
Binary files differ
diff --git a/src/assets/images/bookStore/cd.png b/src/assets/images/bookStore/cd.png
new file mode 100644
index 0000000..b519315
--- /dev/null
+++ b/src/assets/images/bookStore/cd.png
Binary files differ
diff --git a/src/assets/images/bookStore/close.png b/src/assets/images/bookStore/close.png
new file mode 100644
index 0000000..562b3bc
--- /dev/null
+++ b/src/assets/images/bookStore/close.png
Binary files differ
diff --git a/src/assets/images/bookStore/dangdang.png b/src/assets/images/bookStore/dangdang.png
new file mode 100644
index 0000000..65640d9
--- /dev/null
+++ b/src/assets/images/bookStore/dangdang.png
Binary files differ
diff --git a/src/assets/images/bookStore/done.png b/src/assets/images/bookStore/done.png
new file mode 100644
index 0000000..d674167
--- /dev/null
+++ b/src/assets/images/bookStore/done.png
Binary files differ
diff --git a/src/assets/images/bookStore/goumai.png b/src/assets/images/bookStore/goumai.png
new file mode 100644
index 0000000..c9cb2ae
--- /dev/null
+++ b/src/assets/images/bookStore/goumai.png
Binary files differ
diff --git a/src/assets/images/bookStore/jd.png b/src/assets/images/bookStore/jd.png
new file mode 100644
index 0000000..f9fd677
--- /dev/null
+++ b/src/assets/images/bookStore/jd.png
Binary files differ
diff --git a/src/assets/images/bookStore/last.png b/src/assets/images/bookStore/last.png
new file mode 100644
index 0000000..6b0a5df
--- /dev/null
+++ b/src/assets/images/bookStore/last.png
Binary files differ
diff --git a/src/assets/images/bookStore/next.png b/src/assets/images/bookStore/next.png
new file mode 100644
index 0000000..46d14a4
--- /dev/null
+++ b/src/assets/images/bookStore/next.png
Binary files differ
diff --git a/src/assets/images/bookStore/note.png b/src/assets/images/bookStore/note.png
new file mode 100644
index 0000000..2908fac
--- /dev/null
+++ b/src/assets/images/bookStore/note.png
Binary files differ
diff --git a/src/assets/images/bookStore/other.png b/src/assets/images/bookStore/other.png
new file mode 100644
index 0000000..d15c98c
--- /dev/null
+++ b/src/assets/images/bookStore/other.png
Binary files differ
diff --git a/src/assets/images/bookStore/paihangbang.png b/src/assets/images/bookStore/paihangbang.png
new file mode 100644
index 0000000..4358ff1
--- /dev/null
+++ b/src/assets/images/bookStore/paihangbang.png
Binary files differ
diff --git a/src/assets/images/bookStore/play.png b/src/assets/images/bookStore/play.png
new file mode 100644
index 0000000..daea0b8
--- /dev/null
+++ b/src/assets/images/bookStore/play.png
Binary files differ
diff --git a/src/assets/images/bookStore/play.svg b/src/assets/images/bookStore/play.svg
new file mode 100644
index 0000000..b19b002
--- /dev/null
+++ b/src/assets/images/bookStore/play.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="25.84" height="25.84" viewBox="0 0 25.84 25.84">
+  <g id="zanting" transform="translate(-88.218 -82.074)">
+    <path id="璺緞_420" data-name="璺緞 420" d="M101.138,107.914a12.92,12.92,0,1,1,12.92-12.92A12.934,12.934,0,0,1,101.138,107.914Zm0-23.995a11.074,11.074,0,1,0,11.074,11.074A11.087,11.087,0,0,0,101.138,83.92Z" fill="#d7000f"/>
+    <path id="璺緞_421" data-name="璺緞 421" d="M385.23,340.113a.924.924,0,0,1-.923-.923v-9.153a.923.923,0,0,1,1.846,0v9.153A.924.924,0,0,1,385.23,340.113Zm6.192,0a.924.924,0,0,1-.923-.923v-9.153a.923.923,0,0,1,1.846,0v9.153A.924.924,0,0,1,391.422,340.113Z" transform="translate(-287.194 -239.619)" fill="#d7000f"/>
+  </g>
+</svg>
diff --git a/src/assets/images/bookStore/search.png b/src/assets/images/bookStore/search.png
new file mode 100644
index 0000000..8cca82e
--- /dev/null
+++ b/src/assets/images/bookStore/search.png
Binary files differ
diff --git a/src/assets/images/bookStore/shujixiangq_di.png b/src/assets/images/bookStore/shujixiangq_di.png
new file mode 100644
index 0000000..6d9b4a3
--- /dev/null
+++ b/src/assets/images/bookStore/shujixiangq_di.png
Binary files differ
diff --git a/src/assets/images/bookStore/sp-mr.png b/src/assets/images/bookStore/sp-mr.png
new file mode 100644
index 0000000..22d20a2
--- /dev/null
+++ b/src/assets/images/bookStore/sp-mr.png
Binary files differ
diff --git a/src/assets/images/bookStore/suspend.png b/src/assets/images/bookStore/suspend.png
new file mode 100644
index 0000000..41454c5
--- /dev/null
+++ b/src/assets/images/bookStore/suspend.png
Binary files differ
diff --git a/src/assets/images/bookStore/suspend.svg b/src/assets/images/bookStore/suspend.svg
new file mode 100644
index 0000000..fa45a77
--- /dev/null
+++ b/src/assets/images/bookStore/suspend.svg
@@ -0,0 +1,6 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="25.84" height="25.84" viewBox="0 0 25.84 25.84">
+  <g id="zanting" transform="translate(-88.558 -82.074)">
+    <path id="璺緞_420" data-name="璺緞 420" d="M101.138,107.914a12.92,12.92,0,1,1,12.92-12.92A12.934,12.934,0,0,1,101.138,107.914Zm0-23.995a11.074,11.074,0,1,0,11.074,11.074A11.087,11.087,0,0,0,101.138,83.92Z" transform="translate(0.34)" fill="#d7000f"/>
+    <path id="璺緞_422" data-name="璺緞 422" d="M268.53,206.3l-6.406-5.338a1.3,1.3,0,0,0-2.127,1v10.676a1.3,1.3,0,0,0,2.127,1l6.406-5.338a1.3,1.3,0,0,0,0-1.992Z" transform="translate(-162.438 -112.59)" fill="#d7000f"/>
+  </g>
+</svg>
diff --git a/src/assets/images/bookStore/tmall.png b/src/assets/images/bookStore/tmall.png
new file mode 100644
index 0000000..e717daf
--- /dev/null
+++ b/src/assets/images/bookStore/tmall.png
Binary files differ
diff --git a/src/assets/images/bookStore/top-1.png b/src/assets/images/bookStore/top-1.png
new file mode 100644
index 0000000..c18c925
--- /dev/null
+++ b/src/assets/images/bookStore/top-1.png
Binary files differ
diff --git a/src/assets/images/bookStore/top-2.png b/src/assets/images/bookStore/top-2.png
new file mode 100644
index 0000000..8caa5ac
--- /dev/null
+++ b/src/assets/images/bookStore/top-2.png
Binary files differ
diff --git a/src/assets/images/bookStore/top-3.png b/src/assets/images/bookStore/top-3.png
new file mode 100644
index 0000000..422e084
--- /dev/null
+++ b/src/assets/images/bookStore/top-3.png
Binary files differ
diff --git a/src/assets/images/bookStore/vedio.png b/src/assets/images/bookStore/vedio.png
new file mode 100644
index 0000000..52ee0b9
--- /dev/null
+++ b/src/assets/images/bookStore/vedio.png
Binary files differ
diff --git a/src/assets/images/bookStore/video-bg.png b/src/assets/images/bookStore/video-bg.png
new file mode 100644
index 0000000..ef7692f
--- /dev/null
+++ b/src/assets/images/bookStore/video-bg.png
Binary files differ
diff --git a/src/assets/images/bookStore/weidian.png b/src/assets/images/bookStore/weidian.png
new file mode 100644
index 0000000..fe4ef24
--- /dev/null
+++ b/src/assets/images/bookStore/weidian.png
Binary files differ
diff --git a/src/assets/images/bookStore/word.png b/src/assets/images/bookStore/word.png
new file mode 100644
index 0000000..2d925cd
--- /dev/null
+++ b/src/assets/images/bookStore/word.png
Binary files differ
diff --git a/src/assets/images/bookStore/xuanzhong.png b/src/assets/images/bookStore/xuanzhong.png
new file mode 100644
index 0000000..fd8f4c3
--- /dev/null
+++ b/src/assets/images/bookStore/xuanzhong.png
Binary files differ
diff --git a/src/assets/images/bookStore/yishoucang.png b/src/assets/images/bookStore/yishoucang.png
new file mode 100644
index 0000000..3b5ad9a
--- /dev/null
+++ b/src/assets/images/bookStore/yishoucang.png
Binary files differ
diff --git a/src/assets/images/default-book-img.png b/src/assets/images/default-book-img.png
new file mode 100644
index 0000000..bd40923
--- /dev/null
+++ b/src/assets/images/default-book-img.png
Binary files differ
diff --git a/src/assets/images/default-bookFair.png b/src/assets/images/default-bookFair.png
new file mode 100644
index 0000000..754ed5a
--- /dev/null
+++ b/src/assets/images/default-bookFair.png
Binary files differ
diff --git a/src/assets/images/defaultImg/book.png b/src/assets/images/defaultImg/book.png
new file mode 100644
index 0000000..6ebe798
--- /dev/null
+++ b/src/assets/images/defaultImg/book.png
Binary files differ
diff --git a/src/assets/images/defaultImg/journal.png b/src/assets/images/defaultImg/journal.png
new file mode 100644
index 0000000..abd69d0
--- /dev/null
+++ b/src/assets/images/defaultImg/journal.png
Binary files differ
diff --git a/src/assets/images/defaultImg/news.png b/src/assets/images/defaultImg/news.png
new file mode 100644
index 0000000..4e3a403
--- /dev/null
+++ b/src/assets/images/defaultImg/news.png
Binary files differ
diff --git a/src/assets/images/header/Group.png b/src/assets/images/header/Group.png
new file mode 100644
index 0000000..f2c621f
--- /dev/null
+++ b/src/assets/images/header/Group.png
Binary files differ
diff --git a/src/assets/images/header/Slice.png b/src/assets/images/header/Slice.png
new file mode 100644
index 0000000..787ee79
--- /dev/null
+++ b/src/assets/images/header/Slice.png
Binary files differ
diff --git a/src/assets/images/header/bottom_1.png b/src/assets/images/header/bottom_1.png
new file mode 100644
index 0000000..bd135c4
--- /dev/null
+++ b/src/assets/images/header/bottom_1.png
Binary files differ
diff --git a/src/assets/images/header/check.gif b/src/assets/images/header/check.gif
new file mode 100644
index 0000000..14e2b94
--- /dev/null
+++ b/src/assets/images/header/check.gif
Binary files differ
diff --git a/src/assets/images/header/erCode.jpg b/src/assets/images/header/erCode.jpg
new file mode 100644
index 0000000..3868c7e
--- /dev/null
+++ b/src/assets/images/header/erCode.jpg
Binary files differ
diff --git a/src/assets/images/header/login_bg.png b/src/assets/images/header/login_bg.png
new file mode 100644
index 0000000..7e7af27
--- /dev/null
+++ b/src/assets/images/header/login_bg.png
Binary files differ
diff --git a/src/assets/images/header/logo.png b/src/assets/images/header/logo.png
new file mode 100644
index 0000000..8b62ce2
--- /dev/null
+++ b/src/assets/images/header/logo.png
Binary files differ
diff --git a/src/assets/images/header/mobile-phone-dianji.png b/src/assets/images/header/mobile-phone-dianji.png
new file mode 100644
index 0000000..9ff77ea
--- /dev/null
+++ b/src/assets/images/header/mobile-phone-dianji.png
Binary files differ
diff --git a/src/assets/images/header/mobile-phone-moren.png b/src/assets/images/header/mobile-phone-moren.png
new file mode 100644
index 0000000..87d646a
--- /dev/null
+++ b/src/assets/images/header/mobile-phone-moren.png
Binary files differ
diff --git a/src/assets/images/header/password-icon.png b/src/assets/images/header/password-icon.png
new file mode 100644
index 0000000..183feaf
--- /dev/null
+++ b/src/assets/images/header/password-icon.png
Binary files differ
diff --git a/src/assets/images/header/wechat-dianji.png b/src/assets/images/header/wechat-dianji.png
new file mode 100644
index 0000000..5edb939
--- /dev/null
+++ b/src/assets/images/header/wechat-dianji.png
Binary files differ
diff --git a/src/assets/images/header/wechat-moren.png b/src/assets/images/header/wechat-moren.png
new file mode 100644
index 0000000..d11ef5a
--- /dev/null
+++ b/src/assets/images/header/wechat-moren.png
Binary files differ
diff --git a/src/assets/images/home/icon_tushu.png b/src/assets/images/home/icon_tushu.png
new file mode 100644
index 0000000..fe0f45d
--- /dev/null
+++ b/src/assets/images/home/icon_tushu.png
Binary files differ
diff --git a/src/assets/images/home/icon_xinwen.png b/src/assets/images/home/icon_xinwen.png
new file mode 100644
index 0000000..f79796b
--- /dev/null
+++ b/src/assets/images/home/icon_xinwen.png
Binary files differ
diff --git a/src/assets/images/home/icon_ziyuan.png b/src/assets/images/home/icon_ziyuan.png
new file mode 100644
index 0000000..81b21a7
--- /dev/null
+++ b/src/assets/images/home/icon_ziyuan.png
Binary files differ
diff --git a/src/assets/images/home/tuijiantushu_bg.png b/src/assets/images/home/tuijiantushu_bg.png
new file mode 100644
index 0000000..5c93e79
--- /dev/null
+++ b/src/assets/images/home/tuijiantushu_bg.png
Binary files differ
diff --git a/src/assets/images/home/tuijianziyuan_bg.png b/src/assets/images/home/tuijianziyuan_bg.png
new file mode 100644
index 0000000..fd40cb7
--- /dev/null
+++ b/src/assets/images/home/tuijianziyuan_bg.png
Binary files differ
diff --git a/src/assets/images/math/Group 29.png b/src/assets/images/math/Group 29.png
new file mode 100644
index 0000000..2712563
--- /dev/null
+++ b/src/assets/images/math/Group 29.png
Binary files differ
diff --git a/src/assets/images/math/Group 29@2x.png b/src/assets/images/math/Group 29@2x.png
new file mode 100644
index 0000000..ceb6d14
--- /dev/null
+++ b/src/assets/images/math/Group 29@2x.png
Binary files differ
diff --git a/src/assets/images/math/Top_bg.png b/src/assets/images/math/Top_bg.png
new file mode 100644
index 0000000..5c2ea1c
--- /dev/null
+++ b/src/assets/images/math/Top_bg.png
Binary files differ
diff --git a/src/assets/images/math/Top_bg@2x.png b/src/assets/images/math/Top_bg@2x.png
new file mode 100644
index 0000000..51ffb6d
--- /dev/null
+++ b/src/assets/images/math/Top_bg@2x.png
Binary files differ
diff --git a/src/assets/images/math/am1.png b/src/assets/images/math/am1.png
new file mode 100644
index 0000000..dcc2789
--- /dev/null
+++ b/src/assets/images/math/am1.png
Binary files differ
diff --git a/src/assets/images/math/arrow_.png b/src/assets/images/math/arrow_.png
new file mode 100644
index 0000000..d238d03
--- /dev/null
+++ b/src/assets/images/math/arrow_.png
Binary files differ
diff --git a/src/assets/images/math/arrow_@2x.png b/src/assets/images/math/arrow_@2x.png
new file mode 100644
index 0000000..ccb9c95
--- /dev/null
+++ b/src/assets/images/math/arrow_@2x.png
Binary files differ
diff --git "a/src/assets/images/math/banner - \345\211\257\346\234\254.png" "b/src/assets/images/math/banner - \345\211\257\346\234\254.png"
new file mode 100644
index 0000000..03a5fe7
--- /dev/null
+++ "b/src/assets/images/math/banner - \345\211\257\346\234\254.png"
Binary files differ
diff --git a/src/assets/images/math/banner.png b/src/assets/images/math/banner.png
new file mode 100644
index 0000000..03a5fe7
--- /dev/null
+++ b/src/assets/images/math/banner.png
Binary files differ
diff --git a/src/assets/images/math/banner@2x.png b/src/assets/images/math/banner@2x.png
new file mode 100644
index 0000000..c4423f1
--- /dev/null
+++ b/src/assets/images/math/banner@2x.png
Binary files differ
diff --git a/src/assets/images/math/cd.png b/src/assets/images/math/cd.png
new file mode 100644
index 0000000..ad7ead2
--- /dev/null
+++ b/src/assets/images/math/cd.png
Binary files differ
diff --git a/src/assets/images/math/cd@2x.png b/src/assets/images/math/cd@2x.png
new file mode 100644
index 0000000..5572e5f
--- /dev/null
+++ b/src/assets/images/math/cd@2x.png
Binary files differ
diff --git a/src/assets/images/math/collect1e.png b/src/assets/images/math/collect1e.png
new file mode 100644
index 0000000..2b6d105
--- /dev/null
+++ b/src/assets/images/math/collect1e.png
Binary files differ
diff --git a/src/assets/images/math/collect1f.png b/src/assets/images/math/collect1f.png
new file mode 100644
index 0000000..4100535
--- /dev/null
+++ b/src/assets/images/math/collect1f.png
Binary files differ
diff --git a/src/assets/images/math/default-audio.png b/src/assets/images/math/default-audio.png
new file mode 100644
index 0000000..f0f3d10
--- /dev/null
+++ b/src/assets/images/math/default-audio.png
Binary files differ
diff --git a/src/assets/images/math/default-pub.png b/src/assets/images/math/default-pub.png
new file mode 100644
index 0000000..03acafe
--- /dev/null
+++ b/src/assets/images/math/default-pub.png
Binary files differ
diff --git a/src/assets/images/math/fengexian.png b/src/assets/images/math/fengexian.png
new file mode 100644
index 0000000..ae855bb
--- /dev/null
+++ b/src/assets/images/math/fengexian.png
Binary files differ
diff --git a/src/assets/images/math/fengexian@2x.png b/src/assets/images/math/fengexian@2x.png
new file mode 100644
index 0000000..28988c9
--- /dev/null
+++ b/src/assets/images/math/fengexian@2x.png
Binary files differ
diff --git a/src/assets/images/math/icon_pause.png b/src/assets/images/math/icon_pause.png
new file mode 100644
index 0000000..5c676b5
--- /dev/null
+++ b/src/assets/images/math/icon_pause.png
Binary files differ
diff --git a/src/assets/images/math/icon_play.png b/src/assets/images/math/icon_play.png
new file mode 100644
index 0000000..7ebbf78
--- /dev/null
+++ b/src/assets/images/math/icon_play.png
Binary files differ
diff --git a/src/assets/images/math/md-index.jpeg b/src/assets/images/math/md-index.jpeg
new file mode 100644
index 0000000..511b9fd
--- /dev/null
+++ b/src/assets/images/math/md-index.jpeg
Binary files differ
diff --git a/src/assets/images/math/md1.png b/src/assets/images/math/md1.png
new file mode 100644
index 0000000..ea0fdc6
--- /dev/null
+++ b/src/assets/images/math/md1.png
Binary files differ
diff --git a/src/assets/images/math/moxing.png b/src/assets/images/math/moxing.png
new file mode 100644
index 0000000..8acd82e
--- /dev/null
+++ b/src/assets/images/math/moxing.png
Binary files differ
diff --git a/src/assets/images/math/moxing@2x.png b/src/assets/images/math/moxing@2x.png
new file mode 100644
index 0000000..4b23288
--- /dev/null
+++ b/src/assets/images/math/moxing@2x.png
Binary files differ
diff --git a/src/assets/images/math/moxing_Top_bg.png b/src/assets/images/math/moxing_Top_bg.png
new file mode 100644
index 0000000..e7e5cb4
--- /dev/null
+++ b/src/assets/images/math/moxing_Top_bg.png
Binary files differ
diff --git a/src/assets/images/math/moxing_Top_bg@2x.png b/src/assets/images/math/moxing_Top_bg@2x.png
new file mode 100644
index 0000000..b0a6226
--- /dev/null
+++ b/src/assets/images/math/moxing_Top_bg@2x.png
Binary files differ
diff --git a/src/assets/images/math/shipin.png b/src/assets/images/math/shipin.png
new file mode 100644
index 0000000..f44e9f5
--- /dev/null
+++ b/src/assets/images/math/shipin.png
Binary files differ
diff --git a/src/assets/images/math/shipin@2x.png b/src/assets/images/math/shipin@2x.png
new file mode 100644
index 0000000..cf00ce2
--- /dev/null
+++ b/src/assets/images/math/shipin@2x.png
Binary files differ
diff --git a/src/assets/images/math/shipin_Top_bg.png b/src/assets/images/math/shipin_Top_bg.png
new file mode 100644
index 0000000..6624487
--- /dev/null
+++ b/src/assets/images/math/shipin_Top_bg.png
Binary files differ
diff --git a/src/assets/images/math/shipin_Top_bg@2x.png b/src/assets/images/math/shipin_Top_bg@2x.png
new file mode 100644
index 0000000..229975b
--- /dev/null
+++ b/src/assets/images/math/shipin_Top_bg@2x.png
Binary files differ
diff --git a/src/assets/images/math/shizhong.png b/src/assets/images/math/shizhong.png
new file mode 100644
index 0000000..cc622cf
--- /dev/null
+++ b/src/assets/images/math/shizhong.png
Binary files differ
diff --git a/src/assets/images/math/sp-index.jpg b/src/assets/images/math/sp-index.jpg
new file mode 100644
index 0000000..c484666
--- /dev/null
+++ b/src/assets/images/math/sp-index.jpg
Binary files differ
diff --git a/src/assets/images/math/tp-index.jpg b/src/assets/images/math/tp-index.jpg
new file mode 100644
index 0000000..93f2a56
--- /dev/null
+++ b/src/assets/images/math/tp-index.jpg
Binary files differ
diff --git a/src/assets/images/math/tp1.png b/src/assets/images/math/tp1.png
new file mode 100644
index 0000000..05a3db9
--- /dev/null
+++ b/src/assets/images/math/tp1.png
Binary files differ
diff --git a/src/assets/images/math/tupian.png b/src/assets/images/math/tupian.png
new file mode 100644
index 0000000..0bff01f
--- /dev/null
+++ b/src/assets/images/math/tupian.png
Binary files differ
diff --git a/src/assets/images/math/tupian@2x.png b/src/assets/images/math/tupian@2x.png
new file mode 100644
index 0000000..5e68f60
--- /dev/null
+++ b/src/assets/images/math/tupian@2x.png
Binary files differ
diff --git a/src/assets/images/math/tupian_Top_bg.png b/src/assets/images/math/tupian_Top_bg.png
new file mode 100644
index 0000000..a832a87
--- /dev/null
+++ b/src/assets/images/math/tupian_Top_bg.png
Binary files differ
diff --git a/src/assets/images/math/tupian_Top_bg@2x.png b/src/assets/images/math/tupian_Top_bg@2x.png
new file mode 100644
index 0000000..0fdb566
--- /dev/null
+++ b/src/assets/images/math/tupian_Top_bg@2x.png
Binary files differ
diff --git a/src/assets/images/math/yinpin.png b/src/assets/images/math/yinpin.png
new file mode 100644
index 0000000..1d81225
--- /dev/null
+++ b/src/assets/images/math/yinpin.png
Binary files differ
diff --git a/src/assets/images/math/yinpin@2x.png b/src/assets/images/math/yinpin@2x.png
new file mode 100644
index 0000000..e55fa23
--- /dev/null
+++ b/src/assets/images/math/yinpin@2x.png
Binary files differ
diff --git a/src/assets/images/math/yp-index.jpeg b/src/assets/images/math/yp-index.jpeg
new file mode 100644
index 0000000..25bad9d
--- /dev/null
+++ b/src/assets/images/math/yp-index.jpeg
Binary files differ
diff --git a/src/assets/images/personalCenter/Wechat.png b/src/assets/images/personalCenter/Wechat.png
new file mode 100644
index 0000000..b002659
--- /dev/null
+++ b/src/assets/images/personalCenter/Wechat.png
Binary files differ
diff --git a/src/assets/images/personalCenter/icon_cart.png b/src/assets/images/personalCenter/icon_cart.png
new file mode 100644
index 0000000..638d1e5
--- /dev/null
+++ b/src/assets/images/personalCenter/icon_cart.png
Binary files differ
diff --git a/src/assets/images/personalCenter/icon_cart_click.png b/src/assets/images/personalCenter/icon_cart_click.png
new file mode 100644
index 0000000..bd664ca
--- /dev/null
+++ b/src/assets/images/personalCenter/icon_cart_click.png
Binary files differ
diff --git a/src/assets/images/personalCenter/icon_dingdan.png b/src/assets/images/personalCenter/icon_dingdan.png
new file mode 100644
index 0000000..59bad2a
--- /dev/null
+++ b/src/assets/images/personalCenter/icon_dingdan.png
Binary files differ
diff --git a/src/assets/images/personalCenter/icon_dingdan_click.png b/src/assets/images/personalCenter/icon_dingdan_click.png
new file mode 100644
index 0000000..84b1c63
--- /dev/null
+++ b/src/assets/images/personalCenter/icon_dingdan_click.png
Binary files differ
diff --git a/src/assets/images/personalCenter/icon_geren.png b/src/assets/images/personalCenter/icon_geren.png
new file mode 100644
index 0000000..7d52cad
--- /dev/null
+++ b/src/assets/images/personalCenter/icon_geren.png
Binary files differ
diff --git a/src/assets/images/personalCenter/icon_geren_click.png b/src/assets/images/personalCenter/icon_geren_click.png
new file mode 100644
index 0000000..12375b0
--- /dev/null
+++ b/src/assets/images/personalCenter/icon_geren_click.png
Binary files differ
diff --git a/src/assets/images/personalCenter/icon_kecheng.png b/src/assets/images/personalCenter/icon_kecheng.png
new file mode 100644
index 0000000..6a4d1e1
--- /dev/null
+++ b/src/assets/images/personalCenter/icon_kecheng.png
Binary files differ
diff --git a/src/assets/images/personalCenter/icon_kecheng_click.png b/src/assets/images/personalCenter/icon_kecheng_click.png
new file mode 100644
index 0000000..adb71cc
--- /dev/null
+++ b/src/assets/images/personalCenter/icon_kecheng_click.png
Binary files differ
diff --git a/src/assets/images/personalCenter/icon_news.png b/src/assets/images/personalCenter/icon_news.png
new file mode 100644
index 0000000..9490e9a
--- /dev/null
+++ b/src/assets/images/personalCenter/icon_news.png
Binary files differ
diff --git a/src/assets/images/personalCenter/icon_news_click.png b/src/assets/images/personalCenter/icon_news_click.png
new file mode 100644
index 0000000..9cd6af9
--- /dev/null
+++ b/src/assets/images/personalCenter/icon_news_click.png
Binary files differ
diff --git a/src/assets/images/personalCenter/icon_shoucang.png b/src/assets/images/personalCenter/icon_shoucang.png
new file mode 100644
index 0000000..9256e18
--- /dev/null
+++ b/src/assets/images/personalCenter/icon_shoucang.png
Binary files differ
diff --git a/src/assets/images/personalCenter/icon_shoucang_click.png b/src/assets/images/personalCenter/icon_shoucang_click.png
new file mode 100644
index 0000000..5b5cc11
--- /dev/null
+++ b/src/assets/images/personalCenter/icon_shoucang_click.png
Binary files differ
diff --git a/src/assets/images/personalCenter/icon_tushu.png b/src/assets/images/personalCenter/icon_tushu.png
new file mode 100644
index 0000000..75a9e1d
--- /dev/null
+++ b/src/assets/images/personalCenter/icon_tushu.png
Binary files differ
diff --git a/src/assets/images/personalCenter/icon_tushu_click.png b/src/assets/images/personalCenter/icon_tushu_click.png
new file mode 100644
index 0000000..d7902e2
--- /dev/null
+++ b/src/assets/images/personalCenter/icon_tushu_click.png
Binary files differ
diff --git a/src/assets/images/personalCenter/icon_ziyuan.png b/src/assets/images/personalCenter/icon_ziyuan.png
new file mode 100644
index 0000000..a38ac18
--- /dev/null
+++ b/src/assets/images/personalCenter/icon_ziyuan.png
Binary files differ
diff --git a/src/assets/images/personalCenter/icon_ziyuan_click.png b/src/assets/images/personalCenter/icon_ziyuan_click.png
new file mode 100644
index 0000000..11c49f7
--- /dev/null
+++ b/src/assets/images/personalCenter/icon_ziyuan_click.png
Binary files differ
diff --git a/src/assets/images/personalCenter/jihuo.svg b/src/assets/images/personalCenter/jihuo.svg
new file mode 100644
index 0000000..4de6222
--- /dev/null
+++ b/src/assets/images/personalCenter/jihuo.svg
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="18.191" height="20.989" viewBox="0 0 18.191 20.989">
+  <g id="jihuo" transform="translate(-115 -64.101)">
+    <path id="璺緞_642" data-name="璺緞 642" d="M133.187,67.446a.387.387,0,0,0-.389-.377l-.511-.008a13.275,13.275,0,0,1-4.124-.859,18.49,18.49,0,0,1-3.527-1.812l-.309-.216a.41.41,0,0,0-.469,0l-.306.214a18.453,18.453,0,0,1-3.527,1.812,13.268,13.268,0,0,1-4.121.859l-.514.008a.387.387,0,0,0-.389.377v8.492c0,4.448,5.915,9.152,9.094,9.152s9.1-4.7,9.1-9.152Zm-4.3,13.708a8.557,8.557,0,0,1-4.792,2.536c-2.542,0-7.693-4.264-7.693-7.753v-7.5a14.819,14.819,0,0,0,4.137-.93,21.059,21.059,0,0,0,3.557-1.795,20.975,20.975,0,0,0,3.557,1.795,14.763,14.763,0,0,0,4.135.93l0,7.5C131.79,77.524,130.7,79.475,128.886,81.154Z"/>
+    <path id="璺緞_643" data-name="璺緞 643" d="M405.157,512.349h0a2.821,2.821,0,0,0-2.833,2.809v.008l.014,0a2.821,2.821,0,1,0,2.823-2.819Zm-.007,4.241a1.421,1.421,0,0,1-1.42-1.422h-.007v0a1.42,1.42,0,0,1,1.426-1.415h0a1.421,1.421,0,1,1,0,2.841Z" transform="translate(-280.585 -437.74)"/>
+    <path id="璺緞_644" data-name="璺緞 644" d="M493.02,279.141v-5.229a.7.7,0,0,1,1.4,0v5.229a.7.7,0,0,1-1.4,0Z" transform="translate(-369.159 -204.207)"/>
+    <path id="璺緞_645" data-name="璺緞 645" d="M495.848,274.614h-2.126a.7.7,0,1,1,0-1.4h2.126a.7.7,0,1,1,0,1.4Zm0,2.482h-2.126a.7.7,0,1,1,0-1.4h2.126a.7.7,0,1,1,0,1.4Z" transform="translate(-369.159 -204.207)"/>
+  </g>
+</svg>
diff --git a/src/assets/images/personalCenter/jihuo1.svg b/src/assets/images/personalCenter/jihuo1.svg
new file mode 100644
index 0000000..b6d02dd
--- /dev/null
+++ b/src/assets/images/personalCenter/jihuo1.svg
@@ -0,0 +1,8 @@
+<svg xmlns="http://www.w3.org/2000/svg" width="18.191" height="20.989" viewBox="0 0 18.191 20.989" style="fill:#fff">
+  <g id="jihuo" transform="translate(-115 -64.101)" >
+    <path id="璺緞_642" data-name="璺緞 642" d="M133.187,67.446a.387.387,0,0,0-.389-.377l-.511-.008a13.275,13.275,0,0,1-4.124-.859,18.49,18.49,0,0,1-3.527-1.812l-.309-.216a.41.41,0,0,0-.469,0l-.306.214a18.453,18.453,0,0,1-3.527,1.812,13.268,13.268,0,0,1-4.121.859l-.514.008a.387.387,0,0,0-.389.377v8.492c0,4.448,5.915,9.152,9.094,9.152s9.1-4.7,9.1-9.152Zm-4.3,13.708a8.557,8.557,0,0,1-4.792,2.536c-2.542,0-7.693-4.264-7.693-7.753v-7.5a14.819,14.819,0,0,0,4.137-.93,21.059,21.059,0,0,0,3.557-1.795,20.975,20.975,0,0,0,3.557,1.795,14.763,14.763,0,0,0,4.135.93l0,7.5C131.79,77.524,130.7,79.475,128.886,81.154Z"/>
+    <path id="璺緞_643" data-name="璺緞 643" d="M405.157,512.349h0a2.821,2.821,0,0,0-2.833,2.809v.008l.014,0a2.821,2.821,0,1,0,2.823-2.819Zm-.007,4.241a1.421,1.421,0,0,1-1.42-1.422h-.007v0a1.42,1.42,0,0,1,1.426-1.415h0a1.421,1.421,0,1,1,0,2.841Z" transform="translate(-280.585 -437.74)"/>
+    <path id="璺緞_644" data-name="璺緞 644" d="M493.02,279.141v-5.229a.7.7,0,0,1,1.4,0v5.229a.7.7,0,0,1-1.4,0Z" transform="translate(-369.159 -204.207)"/>
+    <path id="璺緞_645" data-name="璺緞 645" d="M495.848,274.614h-2.126a.7.7,0,1,1,0-1.4h2.126a.7.7,0,1,1,0,1.4Zm0,2.482h-2.126a.7.7,0,1,1,0-1.4h2.126a.7.7,0,1,1,0,1.4Z" transform="translate(-369.159 -204.207)"/>
+  </g>
+</svg>
diff --git a/src/assets/images/personalCenter/moxingku.png b/src/assets/images/personalCenter/moxingku.png
new file mode 100644
index 0000000..de20a13
--- /dev/null
+++ b/src/assets/images/personalCenter/moxingku.png
Binary files differ
diff --git a/src/assets/images/personalCenter/moxingku1.png b/src/assets/images/personalCenter/moxingku1.png
new file mode 100644
index 0000000..7dde305
--- /dev/null
+++ b/src/assets/images/personalCenter/moxingku1.png
Binary files differ
diff --git a/src/assets/images/personalCenter/notification.png b/src/assets/images/personalCenter/notification.png
new file mode 100644
index 0000000..acbde28
--- /dev/null
+++ b/src/assets/images/personalCenter/notification.png
Binary files differ
diff --git a/src/assets/images/personalCenter/shipinku.png b/src/assets/images/personalCenter/shipinku.png
new file mode 100644
index 0000000..3af5c23
--- /dev/null
+++ b/src/assets/images/personalCenter/shipinku.png
Binary files differ
diff --git a/src/assets/images/personalCenter/shipinku1.png b/src/assets/images/personalCenter/shipinku1.png
new file mode 100644
index 0000000..e75bd5a
--- /dev/null
+++ b/src/assets/images/personalCenter/shipinku1.png
Binary files differ
diff --git a/src/assets/images/personalCenter/tupianku.png b/src/assets/images/personalCenter/tupianku.png
new file mode 100644
index 0000000..e1c1bce
--- /dev/null
+++ b/src/assets/images/personalCenter/tupianku.png
Binary files differ
diff --git a/src/assets/images/personalCenter/tupianku1.png b/src/assets/images/personalCenter/tupianku1.png
new file mode 100644
index 0000000..988ac37
--- /dev/null
+++ b/src/assets/images/personalCenter/tupianku1.png
Binary files differ
diff --git a/src/assets/images/personalCenter/xuanzhong.png b/src/assets/images/personalCenter/xuanzhong.png
new file mode 100644
index 0000000..29b0c9a
--- /dev/null
+++ b/src/assets/images/personalCenter/xuanzhong.png
Binary files differ
diff --git a/src/assets/images/personalCenter/yinpinku.png b/src/assets/images/personalCenter/yinpinku.png
new file mode 100644
index 0000000..a2cb2d1
--- /dev/null
+++ b/src/assets/images/personalCenter/yinpinku.png
Binary files differ
diff --git a/src/assets/images/personalCenter/yinpinku1.png b/src/assets/images/personalCenter/yinpinku1.png
new file mode 100644
index 0000000..5b15299
--- /dev/null
+++ b/src/assets/images/personalCenter/yinpinku1.png
Binary files differ
diff --git a/src/assets/images/reader/FullScreen2.png b/src/assets/images/reader/FullScreen2.png
new file mode 100644
index 0000000..8cb17eb
--- /dev/null
+++ b/src/assets/images/reader/FullScreen2.png
Binary files differ
diff --git a/src/assets/images/reader/Listen.png b/src/assets/images/reader/Listen.png
new file mode 100644
index 0000000..17528a9
--- /dev/null
+++ b/src/assets/images/reader/Listen.png
Binary files differ
diff --git a/src/assets/images/reader/Listen2.png b/src/assets/images/reader/Listen2.png
new file mode 100644
index 0000000..655f210
--- /dev/null
+++ b/src/assets/images/reader/Listen2.png
Binary files differ
diff --git a/src/assets/images/reader/action@2x.png b/src/assets/images/reader/action@2x.png
new file mode 100644
index 0000000..769142f
--- /dev/null
+++ b/src/assets/images/reader/action@2x.png
Binary files differ
diff --git a/src/assets/images/reader/biji-dianji.png b/src/assets/images/reader/biji-dianji.png
new file mode 100644
index 0000000..198afa3
--- /dev/null
+++ b/src/assets/images/reader/biji-dianji.png
Binary files differ
diff --git a/src/assets/images/reader/biji-dianji2.png b/src/assets/images/reader/biji-dianji2.png
new file mode 100644
index 0000000..4ef2535
--- /dev/null
+++ b/src/assets/images/reader/biji-dianji2.png
Binary files differ
diff --git a/src/assets/images/reader/biji.png b/src/assets/images/reader/biji.png
new file mode 100644
index 0000000..3bc5369
--- /dev/null
+++ b/src/assets/images/reader/biji.png
Binary files differ
diff --git a/src/assets/images/reader/biji2.png b/src/assets/images/reader/biji2.png
new file mode 100644
index 0000000..623040e
--- /dev/null
+++ b/src/assets/images/reader/biji2.png
Binary files differ
diff --git a/src/assets/images/reader/bookmark.png b/src/assets/images/reader/bookmark.png
new file mode 100644
index 0000000..8534ed5
--- /dev/null
+++ b/src/assets/images/reader/bookmark.png
Binary files differ
diff --git a/src/assets/images/reader/danlan-dianji.png b/src/assets/images/reader/danlan-dianji.png
new file mode 100644
index 0000000..bcddc84
--- /dev/null
+++ b/src/assets/images/reader/danlan-dianji.png
Binary files differ
diff --git a/src/assets/images/reader/danlan.png b/src/assets/images/reader/danlan.png
new file mode 100644
index 0000000..c8cb238
--- /dev/null
+++ b/src/assets/images/reader/danlan.png
Binary files differ
diff --git a/src/assets/images/reader/fenxiang.png b/src/assets/images/reader/fenxiang.png
new file mode 100644
index 0000000..dc2e32c
--- /dev/null
+++ b/src/assets/images/reader/fenxiang.png
Binary files differ
diff --git a/src/assets/images/reader/fullScreen.png b/src/assets/images/reader/fullScreen.png
new file mode 100644
index 0000000..a0b9207
--- /dev/null
+++ b/src/assets/images/reader/fullScreen.png
Binary files differ
diff --git a/src/assets/images/reader/fuzhi.png b/src/assets/images/reader/fuzhi.png
new file mode 100644
index 0000000..d3b9e0b
--- /dev/null
+++ b/src/assets/images/reader/fuzhi.png
Binary files differ
diff --git a/src/assets/images/reader/gaoliang-dianji.png b/src/assets/images/reader/gaoliang-dianji.png
new file mode 100644
index 0000000..16e27c5
--- /dev/null
+++ b/src/assets/images/reader/gaoliang-dianji.png
Binary files differ
diff --git a/src/assets/images/reader/gaoliang-dianji2.png b/src/assets/images/reader/gaoliang-dianji2.png
new file mode 100644
index 0000000..00fa42f
--- /dev/null
+++ b/src/assets/images/reader/gaoliang-dianji2.png
Binary files differ
diff --git a/src/assets/images/reader/gaoliang.png b/src/assets/images/reader/gaoliang.png
new file mode 100644
index 0000000..22189ce
--- /dev/null
+++ b/src/assets/images/reader/gaoliang.png
Binary files differ
diff --git a/src/assets/images/reader/gaoliang2.png b/src/assets/images/reader/gaoliang2.png
new file mode 100644
index 0000000..d93130b
--- /dev/null
+++ b/src/assets/images/reader/gaoliang2.png
Binary files differ
diff --git a/src/assets/images/reader/halfScreen.png b/src/assets/images/reader/halfScreen.png
new file mode 100644
index 0000000..f3a391e
--- /dev/null
+++ b/src/assets/images/reader/halfScreen.png
Binary files differ
diff --git a/src/assets/images/reader/halfScreen2.png b/src/assets/images/reader/halfScreen2.png
new file mode 100644
index 0000000..1d445b1
--- /dev/null
+++ b/src/assets/images/reader/halfScreen2.png
Binary files differ
diff --git a/src/assets/images/reader/hangju1.png b/src/assets/images/reader/hangju1.png
new file mode 100644
index 0000000..b4f797a
--- /dev/null
+++ b/src/assets/images/reader/hangju1.png
Binary files differ
diff --git a/src/assets/images/reader/hangju2.png b/src/assets/images/reader/hangju2.png
new file mode 100644
index 0000000..5ace737
--- /dev/null
+++ b/src/assets/images/reader/hangju2.png
Binary files differ
diff --git a/src/assets/images/reader/hangju3.png b/src/assets/images/reader/hangju3.png
new file mode 100644
index 0000000..787cc31
--- /dev/null
+++ b/src/assets/images/reader/hangju3.png
Binary files differ
diff --git a/src/assets/images/reader/hangju4.png b/src/assets/images/reader/hangju4.png
new file mode 100644
index 0000000..ec68d8e
--- /dev/null
+++ b/src/assets/images/reader/hangju4.png
Binary files differ
diff --git a/src/assets/images/reader/hangjuActive1.png b/src/assets/images/reader/hangjuActive1.png
new file mode 100644
index 0000000..1f2e839
--- /dev/null
+++ b/src/assets/images/reader/hangjuActive1.png
Binary files differ
diff --git a/src/assets/images/reader/hangjuActive2.png b/src/assets/images/reader/hangjuActive2.png
new file mode 100644
index 0000000..ed7cea8
--- /dev/null
+++ b/src/assets/images/reader/hangjuActive2.png
Binary files differ
diff --git a/src/assets/images/reader/hangjuActive3.png b/src/assets/images/reader/hangjuActive3.png
new file mode 100644
index 0000000..a8839fa
--- /dev/null
+++ b/src/assets/images/reader/hangjuActive3.png
Binary files differ
diff --git a/src/assets/images/reader/hangjuActive4.png b/src/assets/images/reader/hangjuActive4.png
new file mode 100644
index 0000000..b89496a
--- /dev/null
+++ b/src/assets/images/reader/hangjuActive4.png
Binary files differ
diff --git a/src/assets/images/reader/huaxian-dianji.png b/src/assets/images/reader/huaxian-dianji.png
new file mode 100644
index 0000000..11a732b
--- /dev/null
+++ b/src/assets/images/reader/huaxian-dianji.png
Binary files differ
diff --git a/src/assets/images/reader/huaxian-dianji2.png b/src/assets/images/reader/huaxian-dianji2.png
new file mode 100644
index 0000000..6e0899a
--- /dev/null
+++ b/src/assets/images/reader/huaxian-dianji2.png
Binary files differ
diff --git a/src/assets/images/reader/huaxian.png b/src/assets/images/reader/huaxian.png
new file mode 100644
index 0000000..3910180
--- /dev/null
+++ b/src/assets/images/reader/huaxian.png
Binary files differ
diff --git a/src/assets/images/reader/huaxian2.png b/src/assets/images/reader/huaxian2.png
new file mode 100644
index 0000000..86d4767
--- /dev/null
+++ b/src/assets/images/reader/huaxian2.png
Binary files differ
diff --git a/src/assets/images/reader/jieshu-icon.png b/src/assets/images/reader/jieshu-icon.png
new file mode 100644
index 0000000..b80f1c0
--- /dev/null
+++ b/src/assets/images/reader/jieshu-icon.png
Binary files differ
diff --git a/src/assets/images/reader/kaishi.png b/src/assets/images/reader/kaishi.png
new file mode 100644
index 0000000..b65c9e4
--- /dev/null
+++ b/src/assets/images/reader/kaishi.png
Binary files differ
diff --git a/src/assets/images/reader/kuaijin.png b/src/assets/images/reader/kuaijin.png
new file mode 100644
index 0000000..d09c549
--- /dev/null
+++ b/src/assets/images/reader/kuaijin.png
Binary files differ
diff --git a/src/assets/images/reader/kuaijin@2x.png b/src/assets/images/reader/kuaijin@2x.png
new file mode 100644
index 0000000..f8dc14b
--- /dev/null
+++ b/src/assets/images/reader/kuaijin@2x.png
Binary files differ
diff --git a/src/assets/images/reader/kuaitui.png b/src/assets/images/reader/kuaitui.png
new file mode 100644
index 0000000..0651ddc
--- /dev/null
+++ b/src/assets/images/reader/kuaitui.png
Binary files differ
diff --git a/src/assets/images/reader/kuaitui@2x.png b/src/assets/images/reader/kuaitui@2x.png
new file mode 100644
index 0000000..0973c7c
--- /dev/null
+++ b/src/assets/images/reader/kuaitui@2x.png
Binary files differ
diff --git a/src/assets/images/reader/mulu-dianji.png b/src/assets/images/reader/mulu-dianji.png
new file mode 100644
index 0000000..63e3b95
--- /dev/null
+++ b/src/assets/images/reader/mulu-dianji.png
Binary files differ
diff --git a/src/assets/images/reader/mulu-dianji2.png b/src/assets/images/reader/mulu-dianji2.png
new file mode 100644
index 0000000..b2025bf
--- /dev/null
+++ b/src/assets/images/reader/mulu-dianji2.png
Binary files differ
diff --git a/src/assets/images/reader/mulu.png b/src/assets/images/reader/mulu.png
new file mode 100644
index 0000000..ec08cb2
--- /dev/null
+++ b/src/assets/images/reader/mulu.png
Binary files differ
diff --git a/src/assets/images/reader/mulu2.png b/src/assets/images/reader/mulu2.png
new file mode 100644
index 0000000..1dd663a
--- /dev/null
+++ b/src/assets/images/reader/mulu2.png
Binary files differ
diff --git a/src/assets/images/reader/page-blue.png b/src/assets/images/reader/page-blue.png
new file mode 100644
index 0000000..e7e8a85
--- /dev/null
+++ b/src/assets/images/reader/page-blue.png
Binary files differ
diff --git a/src/assets/images/reader/page-green.png b/src/assets/images/reader/page-green.png
new file mode 100644
index 0000000..983bc82
--- /dev/null
+++ b/src/assets/images/reader/page-green.png
Binary files differ
diff --git a/src/assets/images/reader/page-purple.png b/src/assets/images/reader/page-purple.png
new file mode 100644
index 0000000..5918536
--- /dev/null
+++ b/src/assets/images/reader/page-purple.png
Binary files differ
diff --git a/src/assets/images/reader/page-yellow.png b/src/assets/images/reader/page-yellow.png
new file mode 100644
index 0000000..417c6d8
--- /dev/null
+++ b/src/assets/images/reader/page-yellow.png
Binary files differ
diff --git a/src/assets/images/reader/page.png b/src/assets/images/reader/page.png
new file mode 100644
index 0000000..2484190
--- /dev/null
+++ b/src/assets/images/reader/page.png
Binary files differ
diff --git a/src/assets/images/reader/pattern.png b/src/assets/images/reader/pattern.png
new file mode 100644
index 0000000..090177d
--- /dev/null
+++ b/src/assets/images/reader/pattern.png
Binary files differ
diff --git a/src/assets/images/reader/pattern2.png b/src/assets/images/reader/pattern2.png
new file mode 100644
index 0000000..7dfe98c
--- /dev/null
+++ b/src/assets/images/reader/pattern2.png
Binary files differ
diff --git a/src/assets/images/reader/search-dianji.png b/src/assets/images/reader/search-dianji.png
new file mode 100644
index 0000000..ca68ef7
--- /dev/null
+++ b/src/assets/images/reader/search-dianji.png
Binary files differ
diff --git a/src/assets/images/reader/search.png b/src/assets/images/reader/search.png
new file mode 100644
index 0000000..e0f37a3
--- /dev/null
+++ b/src/assets/images/reader/search.png
Binary files differ
diff --git a/src/assets/images/reader/search2.png b/src/assets/images/reader/search2.png
new file mode 100644
index 0000000..e1851af
--- /dev/null
+++ b/src/assets/images/reader/search2.png
Binary files differ
diff --git a/src/assets/images/reader/serch-dianji2.png b/src/assets/images/reader/serch-dianji2.png
new file mode 100644
index 0000000..3234a9a
--- /dev/null
+++ b/src/assets/images/reader/serch-dianji2.png
Binary files differ
diff --git a/src/assets/images/reader/shuanglan-dianji.png b/src/assets/images/reader/shuanglan-dianji.png
new file mode 100644
index 0000000..efbbeb8
--- /dev/null
+++ b/src/assets/images/reader/shuanglan-dianji.png
Binary files differ
diff --git a/src/assets/images/reader/shuanglan.png b/src/assets/images/reader/shuanglan.png
new file mode 100644
index 0000000..5e4a3a1
--- /dev/null
+++ b/src/assets/images/reader/shuanglan.png
Binary files differ
diff --git a/src/assets/images/reader/shuqian-click.png b/src/assets/images/reader/shuqian-click.png
new file mode 100644
index 0000000..0ae8a1f
--- /dev/null
+++ b/src/assets/images/reader/shuqian-click.png
Binary files differ
diff --git a/src/assets/images/reader/shuqian-click2.png b/src/assets/images/reader/shuqian-click2.png
new file mode 100644
index 0000000..f8902df
--- /dev/null
+++ b/src/assets/images/reader/shuqian-click2.png
Binary files differ
diff --git a/src/assets/images/reader/shuqian.png b/src/assets/images/reader/shuqian.png
new file mode 100644
index 0000000..cb6da7b
--- /dev/null
+++ b/src/assets/images/reader/shuqian.png
Binary files differ
diff --git a/src/assets/images/reader/shuqian1.png b/src/assets/images/reader/shuqian1.png
new file mode 100644
index 0000000..4eae37d
--- /dev/null
+++ b/src/assets/images/reader/shuqian1.png
Binary files differ
diff --git a/src/assets/images/reader/shuqian2.png b/src/assets/images/reader/shuqian2.png
new file mode 100644
index 0000000..6b49a87
--- /dev/null
+++ b/src/assets/images/reader/shuqian2.png
Binary files differ
diff --git a/src/assets/images/reader/tingshu.png b/src/assets/images/reader/tingshu.png
new file mode 100644
index 0000000..bb1bd96
--- /dev/null
+++ b/src/assets/images/reader/tingshu.png
Binary files differ
diff --git a/src/assets/images/reader/tingshu2.png b/src/assets/images/reader/tingshu2.png
new file mode 100644
index 0000000..9d2172d
--- /dev/null
+++ b/src/assets/images/reader/tingshu2.png
Binary files differ
diff --git a/src/assets/images/reader/tuichu.png b/src/assets/images/reader/tuichu.png
new file mode 100644
index 0000000..78dc7d5
--- /dev/null
+++ b/src/assets/images/reader/tuichu.png
Binary files differ
diff --git a/src/assets/images/reader/yangshi-click.png b/src/assets/images/reader/yangshi-click.png
new file mode 100644
index 0000000..49e6d3e
--- /dev/null
+++ b/src/assets/images/reader/yangshi-click.png
Binary files differ
diff --git a/src/assets/images/reader/yangshi-click2.png b/src/assets/images/reader/yangshi-click2.png
new file mode 100644
index 0000000..9d5e134
--- /dev/null
+++ b/src/assets/images/reader/yangshi-click2.png
Binary files differ
diff --git a/src/assets/images/reader/zanting.png b/src/assets/images/reader/zanting.png
new file mode 100644
index 0000000..ed8ac15
--- /dev/null
+++ b/src/assets/images/reader/zanting.png
Binary files differ
diff --git a/src/assets/images/reader/zanting@2x.png b/src/assets/images/reader/zanting@2x.png
new file mode 100644
index 0000000..787aab2
--- /dev/null
+++ b/src/assets/images/reader/zanting@2x.png
Binary files differ
diff --git a/src/assets/images/reader/zihao-da.png b/src/assets/images/reader/zihao-da.png
new file mode 100644
index 0000000..b69bcbd
--- /dev/null
+++ b/src/assets/images/reader/zihao-da.png
Binary files differ
diff --git a/src/assets/images/reader/zihao-xiao.png b/src/assets/images/reader/zihao-xiao.png
new file mode 100644
index 0000000..f707657
--- /dev/null
+++ b/src/assets/images/reader/zihao-xiao.png
Binary files differ
diff --git a/src/assets/images/standard/biaozhun_bg.png b/src/assets/images/standard/biaozhun_bg.png
new file mode 100644
index 0000000..92191d1
--- /dev/null
+++ b/src/assets/images/standard/biaozhun_bg.png
Binary files differ
diff --git a/src/assets/images/standard/biaozhun_bg@2x.png b/src/assets/images/standard/biaozhun_bg@2x.png
new file mode 100644
index 0000000..8d70250
--- /dev/null
+++ b/src/assets/images/standard/biaozhun_bg@2x.png
Binary files differ
diff --git a/src/assets/images/standard/jianjie_tu.png b/src/assets/images/standard/jianjie_tu.png
new file mode 100644
index 0000000..bb3a994
--- /dev/null
+++ b/src/assets/images/standard/jianjie_tu.png
Binary files differ
diff --git a/src/assets/images/standard/jianjie_tu@2x.png b/src/assets/images/standard/jianjie_tu@2x.png
new file mode 100644
index 0000000..d982053
--- /dev/null
+++ b/src/assets/images/standard/jianjie_tu@2x.png
Binary files differ
diff --git a/src/assets/js/canvas2image.js b/src/assets/js/canvas2image.js
deleted file mode 100644
index 26dd8d0..0000000
--- a/src/assets/js/canvas2image.js
+++ /dev/null
@@ -1,266 +0,0 @@
-/**
- * covert canvas to image
- * and save the image file
- */
- 
-var Canvas2Image = function () {
- 
-	// check if support sth.
-	var $support = function () {
-		var canvas = document.createElement('canvas'),
-			ctx = canvas.getContext('2d');
- 
-		return {
-			canvas: !!ctx,
-			imageData: !!ctx.getImageData,
-			dataURL: !!canvas.toDataURL,
-			btoa: !!window.btoa
-		};
-	}();
- 
-	var downloadMime = 'image/octet-stream';
- 
-	function scaleCanvas (canvas, width, height) {
-		var w = canvas.width,
-			h = canvas.height;
-		if (width == undefined) {
-			width = w;
-		}
-		if (height == undefined) {
-			height = h;
-		}
- 
-		var retCanvas = document.createElement('canvas');
-		var retCtx = retCanvas.getContext('2d');
-		retCanvas.width = width;
-		retCanvas.height = height;
-		retCtx.drawImage(canvas, 0, 0, w, h, 0, 0, width, height);
-		return retCanvas;
-	}
- 
-	function getDataURL (canvas, type, width, height) {
-		canvas = scaleCanvas(canvas, width, height);
-		return canvas.toDataURL(type);
-	}
- 
-	function saveFile (strData) {
-		document.location.href = strData;
-	}
- 
-	function genImage(strData) {
-		var img = document.createElement('img');
-		img.src = strData;
-		return img;
-	}
-	function fixType (type) {
-		type = type.toLowerCase().replace(/jpg/i, 'jpeg');
-		var r = type.match(/png|jpeg|bmp|gif/)[0];
-		return 'image/' + r;
-	}
-	function encodeData (data) {
-		if (!window.btoa) { throw 'btoa undefined' }
-		var str = '';
-		if (typeof data == 'string') {
-			str = data;
-		} else {
-			for (var i = 0; i < data.length; i ++) {
-				str += String.fromCharCode(data[i]);
-			}
-		}
- 
-		return btoa(str);
-	}
-	function getImageData (canvas) {
-		var w = canvas.width,
-			h = canvas.height;
-		return canvas.getContext('2d').getImageData(0, 0, w, h);
-	}
-	function makeURI (strData, type) {
-		return 'data:' + type + ';base64,' + strData;
-	}
- 
- 
-	/**
-	 * create bitmap image
-	 * 鎸夌収瑙勫垯鐢熸垚鍥剧墖鍝嶅簲澶村拰鍝嶅簲浣�
-	 */
-	var genBitmapImage = function (oData) {
- 
-		//
-		// BITMAPFILEHEADER: http://msdn.microsoft.com/en-us/library/windows/desktop/dd183374(v=vs.85).aspx
-		// BITMAPINFOHEADER: http://msdn.microsoft.com/en-us/library/dd183376.aspx
-		//
- 
-		var biWidth  = oData.width;
-		var biHeight	= oData.height;
-		var biSizeImage = biWidth * biHeight * 3;
-		var bfSize  = biSizeImage + 54; // total header size = 54 bytes
- 
-		//
-		//  typedef struct tagBITMAPFILEHEADER {
-		//  	WORD bfType;
-		//  	DWORD bfSize;
-		//  	WORD bfReserved1;
-		//  	WORD bfReserved2;
-		//  	DWORD bfOffBits;
-		//  } BITMAPFILEHEADER;
-		//
-		var BITMAPFILEHEADER = [
-			// WORD bfType -- The file type signature; must be "BM"
-			0x42, 0x4D,
-			// DWORD bfSize -- The size, in bytes, of the bitmap file
-			bfSize & 0xff, bfSize >> 8 & 0xff, bfSize >> 16 & 0xff, bfSize >> 24 & 0xff,
-			// WORD bfReserved1 -- Reserved; must be zero
-			0, 0,
-			// WORD bfReserved2 -- Reserved; must be zero
-			0, 0,
-			// DWORD bfOffBits -- The offset, in bytes, from the beginning of the BITMAPFILEHEADER structure to the bitmap bits.
-			54, 0, 0, 0
-		];
- 
-		//
-		//  typedef struct tagBITMAPINFOHEADER {
-		//  	DWORD biSize;
-		//  	LONG  biWidth;
-		//  	LONG  biHeight;
-		//  	WORD  biPlanes;
-		//  	WORD  biBitCount;
-		//  	DWORD biCompression;
-		//  	DWORD biSizeImage;
-		//  	LONG  biXPelsPerMeter;
-		//  	LONG  biYPelsPerMeter;
-		//  	DWORD biClrUsed;
-		//  	DWORD biClrImportant;
-		//  } BITMAPINFOHEADER, *PBITMAPINFOHEADER;
-		//
-		var BITMAPINFOHEADER = [
-			// DWORD biSize -- The number of bytes required by the structure
-			40, 0, 0, 0,
-			// LONG biWidth -- The width of the bitmap, in pixels
-			biWidth & 0xff, biWidth >> 8 & 0xff, biWidth >> 16 & 0xff, biWidth >> 24 & 0xff,
-			// LONG biHeight -- The height of the bitmap, in pixels
-			biHeight & 0xff, biHeight >> 8  & 0xff, biHeight >> 16 & 0xff, biHeight >> 24 & 0xff,
-			// WORD biPlanes -- The number of planes for the target device. This value must be set to 1
-			1, 0,
-			// WORD biBitCount -- The number of bits-per-pixel, 24 bits-per-pixel -- the bitmap
-			// has a maximum of 2^24 colors (16777216, Truecolor)
-			24, 0,
-			// DWORD biCompression -- The type of compression, BI_RGB (code 0) -- uncompressed
-			0, 0, 0, 0,
-			// DWORD biSizeImage -- The size, in bytes, of the image. This may be set to zero for BI_RGB bitmaps
-			biSizeImage & 0xff, biSizeImage >> 8 & 0xff, biSizeImage >> 16 & 0xff, biSizeImage >> 24 & 0xff,
-			// LONG biXPelsPerMeter, unused
-			0,0,0,0,
-			// LONG biYPelsPerMeter, unused
-			0,0,0,0,
-			// DWORD biClrUsed, the number of color indexes of palette, unused
-			0,0,0,0,
-			// DWORD biClrImportant, unused
-			0,0,0,0
-		];
- 
-		var iPadding = (4 - ((biWidth * 3) % 4)) % 4;
- 
-		var aImgData = oData.data;
- 
-		var strPixelData = '';
-		var biWidth4 = biWidth<<2;
-		var y = biHeight;
-		var fromCharCode = String.fromCharCode;
- 
-		do {
-			var iOffsetY = biWidth4*(y-1);
-			var strPixelRow = '';
-			for (var x = 0; x < biWidth; x++) {
-				var iOffsetX = x<<2;
-				strPixelRow += fromCharCode(aImgData[iOffsetY+iOffsetX+2]) +
-							   fromCharCode(aImgData[iOffsetY+iOffsetX+1]) +
-							   fromCharCode(aImgData[iOffsetY+iOffsetX]);
-			}
- 
-			for (var c = 0; c < iPadding; c++) {
-				strPixelRow += String.fromCharCode(0);
-			}
- 
-			strPixelData += strPixelRow;
-		} while (--y);
- 
-		var strEncoded = encodeData(BITMAPFILEHEADER.concat(BITMAPINFOHEADER)) + encodeData(strPixelData);
- 
-		return strEncoded;
-	};
- 
-	/**
-	 * saveAsImage
-	 * @param canvasElement
-	 * @param {String} image type
-	 * @param {Number} [optional] png width
-	 * @param {Number} [optional] png height
-	 */
-	var saveAsImage = function (canvas, width, height, type) {
-		if ($support.canvas && $support.dataURL) {
-			if (typeof canvas == "string") { canvas = document.getElementById(canvas); }
-			if (type == undefined) { type = 'png'; }
-			type = fixType(type);
-			if (/bmp/.test(type)) {
-				var data = getImageData(scaleCanvas(canvas, width, height));
-				var strData = genBitmapImage(data);
-				saveFile(makeURI(strData, downloadMime));
-			} else {
-				var strData = getDataURL(canvas, type, width, height);
-				saveFile(strData.replace(type, downloadMime));
-			}
-		}
-	};
- 
-	var convertToImage = function (canvas, width, height, type) {
-		if ($support.canvas && $support.dataURL) {
-			if (typeof canvas == "string") { canvas = document.getElementById(canvas); }
-			if (type == undefined) { type = 'png'; }
-			type = fixType(type);
- 
-			if (/bmp/.test(type)) {
-				var data = getImageData(scaleCanvas(canvas, width, height));
-				var strData = genBitmapImage(data);
-				return genImage(makeURI(strData, 'image/bmp'));
-			} else {
-				var strData = getDataURL(canvas, type, width, height);
-				return genImage(strData);
-			}
-		}
-	};
- 
- 
- 
-	return {
-		saveAsImage: saveAsImage,
-		saveAsPNG: function (canvas, width, height) {
-			return saveAsImage(canvas, width, height, 'png');
-		},
-		saveAsJPEG: function (canvas, width, height) {
-			return saveAsImage(canvas, width, height, 'jpeg');
-		},
-		saveAsGIF: function (canvas, width, height) {
-			return saveAsImage(canvas, width, height, 'gif');
-		},
-		saveAsBMP: function (canvas, width, height) {
-			return saveAsImage(canvas, width, height, 'bmp');
-		},
- 
-		convertToImage: convertToImage,
-		convertToPNG: function (canvas, width, height) {
-			return convertToImage(canvas, width, height, 'png');
-		},
-		convertToJPEG: function (canvas, width, height) {
-			return convertToImage(canvas, width, height, 'jpeg');
-		},
-		convertToGIF: function (canvas, width, height) {
-			return convertToImage(canvas, width, height, 'gif');
-		},
-		convertToBMP: function (canvas, width, height) {
-			return convertToImage(canvas, width, height, 'bmp');
-		}
-	};
- 
-}();
-export default Canvas2Image;
\ No newline at end of file
diff --git a/src/assets/js/config.js b/src/assets/js/config.js
index 0c29171..50d67b6 100644
--- a/src/assets/js/config.js
+++ b/src/assets/js/config.js
@@ -1,19 +1,71 @@
-// export const requestCtx = "http://182.92.203.7:3001"; // 璇锋眰鍦板潃
-// export const appId = 27;
-export const requestCtx = 'https://jsek.bnuic.com' // 璇锋眰鍦板潃
-export const appId = 3
+export const requestCtx = 'http://182.92.203.7:5001' // 璇锋眰鍦板潃
+// export const appId = 36
+// export const requestCtx = "http://47.95.43.11"; // 璇锋眰鍦板潃
+// export const requestCtx = "https://www.jlstp.cn"
+export const appId = 1;
 export const requestTimeOut = 300000 // 璇锋眰瓒呮椂鏃堕棿
-export const tokenKey = 'jsek-token'
-export const userInfoKey = 'jesk-userInfo' // 鐢ㄦ埛淇℃伅key
-export const appRefCode = 'jingshieke'
+export const tokenKey = 'jilin-token'
+export const userInfoKey = 'jilin-userInfo' // 鐢ㄦ埛淇℃伅key
+export const appRefCode = 'jilinWebsite'
 export const goodsStore = `defaultGoodsStore${appId}` // 榛樿鍟嗗搧搴�(涔﹀煄)
 export const publicStore = `defaultPublicStore${appId}` // 榛樿璧勬簮寮�鏀句粨鍌�
 export const publicRepository = `defaultPublicRepository${appId}` // 榛樿璧勬簮寮�鏀惧簱
-export const digitalCourses = 'jsek_digitalCourses' //鏁板瓧璇剧▼
-export const digitalTextbooks = 'jsek_digitalTextbooks' //鏁板瓧鏁欐潗
-export const seminar = 'jsek_seminar' //涓撻鐮旇
 
+export const reg_tel =
+  /^(13[0-9]|14[01456879]|15[0-35-9]|16[2567]|17[0-8]|18[0-9]|19[0-35-9])\d{8}$/ // 鐢佃瘽鍙锋鍒�
 
+// refcode
+const refCode = {
+  // 鏀惰棌璧勬簮搴�
+  FavoriteMathVideo: 'FavoriteMathVideo',
+  FavoriteMathPicture: 'FavoriteMathPicture',
+  FavoriteMathAudio: 'FavoriteMathAudio',
+  FavoriteMathModel: 'FavoriteMathModel',
+  // 杞挱鍥�
+  bannerCode: 'jilin_banner\\jilin_digitalResource',
+  // 鏍囧噯
+  criterion: 'jilin_criterion',
+  // 璧勮
+  information: 'jilin_information',
+  // 鍏充簬鎴戜滑
+  aboutUs: 'jilin_aboutUs',
+  // 鑽h獕濂栧姳
+  honorAwards: 'jilin_honorAwards',
+  // 鑱旂郴鎴戜滑
+  contactUs: 'jilin_contactUs',
+  // 浠撳簱搴�
+  pictureCode: 'jilin_imgResourceLibrary',
+  audioCode: 'jilin_audiosResourceLibrary',
+  videoCode: 'jilin_videosResourceLibrary',
+  modelCode: 'jilin_modelsResourceLibrary',
+  // 鍟嗗搧搴�
+  imageStore: 'jilin_imgLibrary\\jilin_imageStore',
+  videoStore: 'jilin_videosLibrary\\jilin_videosStore',
+  audiosStore: 'jilin_audiosLibrary\\jilin_audiosStore',
+  modelStore: 'jilin_modelsLibrary\\jilin_modelsStore',
+  // 浼氬憳鍟嗗搧搴�
+  memberImage: 'jilin_imgLibrary\\jilin_memberImage',
+  memberAudios: 'jilin_audiosLibrary\\jilin_memberAudios',
+  memberVideos: 'jilin_videosLibrary\\jilin_memberVideos',
+  memberModels: 'jilin_modelsLibrary\\jilin_memberModels',
+  // 鏈�鏂拌祫婧愬簱
+  newImageStore: 'jilin_imgLibrary\\jilin_newImageStore',
+  newaudiosStore: 'jilin_audiosLibrary\\jilin_newaudiosStore',
+  newVideosStore: 'jilin_videosLibrary\\jilin_newVideosStore',
+  newModelsStore: 'jilin_modelsLibrary\\jilin_newModelsStore',
+  // 棣栭〉鎺ㄨ崘璧勬簮
+  recommendImgStore:'jilin_imgLibrary\\jilin_recommendedImage',
+  recommendAudioStore:'jilin_audiosLibrary\\jilin_recommendedAudio',
+  recommendVideoStore:'jilin_videosLibrary\\jilin_recommendedVideo',
+  recommendModelStore:'jilin_modelsLibrary\\jilin_recommendedModel',
+}
+
+const wxLogin = {
+  appid: 'wx2b9d4a6308fd03d6',
+  scope: 'snsapi_login',
+  logInRedirectURL: encodeURIComponent(requestCtx + '/website'),
+  authenRedirectURL:encodeURIComponent(requestCtx + '/website/#/userInfo')
+}
 
 const config = {
   requestCtx,
@@ -22,10 +74,9 @@
   userInfoKey,
   appRefCode,
   goodsStore,
-  digitalCourses,
-  digitalTextbooks,
-  seminar,
-  appId
+  reg_tel,
+  appId,
+  refCode,
+  wxLogin
 }
 export default config
-
diff --git a/src/assets/js/middleGround/WebMiddleGroundApi.js b/src/assets/js/middleGround/WebMiddleGroundApi.js
index 31439a8..6b5ba0c 100644
--- a/src/assets/js/middleGround/WebMiddleGroundApi.js
+++ b/src/assets/js/middleGround/WebMiddleGroundApi.js
@@ -9,6 +9,7 @@
 import file from "./api/file.js";
 import job from "./api/job.js";
 import edu from "./api/edu.js";
+import dps5 from "./api/dps5.js";
 
 const WebMiddleGroundApi = {
   resource,
@@ -18,7 +19,8 @@
   app,
   file,
   job,
-  edu
+  edu,
+  dps5
 };
 
-export default WebMiddleGroundApi;
+export default WebMiddleGroundApi;
\ No newline at end of file
diff --git a/src/assets/js/middleGround/api/app.js b/src/assets/js/middleGround/api/app.js
index 7ed584e..98821c3 100644
--- a/src/assets/js/middleGround/api/app.js
+++ b/src/assets/js/middleGround/api/app.js
@@ -1,82 +1,57 @@
-import request from '@/plugin/axios/index.ts'
+import request from "@/plugin/axios/index.ts";
 const appApi = {
   // 鑾峰彇鐢ㄦ埛娑堟伅鍒楄〃
   getAppMessageList(data) {
     return request({
-      url: '/app/api/ApiGetAppMessageList',
-      method: 'post',
+      url: "/app/api/ApiGetAppMessageList",
+      method: "post",
       data
-    })
+    });
   },
   // 鑾峰彇鐢ㄦ埛娑堟伅璇︽儏
   getMessage(data) {
     return request({
-      url: '/app/api/ApiGetMessage',
-      method: 'post',
+      url: "/app/api/ApiGetMessage",
+      method: "post",
       data
-    })
+    });
   },
 
   //鑾峰彇鍑瘉
   getTicketResult(data) {
     return request({
-      url: '/app/api/ApiGetTicketResult',
-      method: 'post',
+      url: "/app/api/ApiGetTicketResult",
+      method: "post",
       data
-    })
+    });
   },
-
+  
   //浣跨敤鍑瘉
   useTicket(data) {
     return request({
-      url: '/app/api/ApiUseTicket',
-      method: 'post',
+      url:   "/app/api/ApiUseTicket",
+      method: "post",
       data
-    })
+    });
   },
 
   // 鑾峰彇CmsItem鎸夌収Event缁熻
   getEventRankList(data) {
     return request({
-      url: '/app/api/ApiGetEventRankList',
-      method: 'post',
+      url: "/app/api/ApiGetEventRankList",
+      method: "post",
       data
-    })
+    });
   },
 
   // 鑾峰彇瀛︿範鏃堕暱鎸夌収Event缁熻
   getStaticsSum(data) {
     return request({
-      url: '/app/api/ApiGetUserStaticsSum',
-      method: 'post',
+      url: "/app/api/ApiGetUserStaticsSum",
+      method: "post",
       data
-    })
+    });
   },
-  // 鏂板缓鐢ㄦ埛琛屼负
-  creatUserBehavior(data) {
-    return request({
-      url: '/app/api/NewUserBehavior',
-      method: 'post',
-      data
-    })
-  },
-  // 鑾峰彇鐢ㄦ埛琛屼负璁板綍
-  getUserBehaviorList(data) {
-    return request({
-      url: '/app/api/GetUserBehaviorList',
-      method: 'post',
-      data
-    })
-  },
+};
 
-  //鑾峰彇灏忕▼搴忎簩缁寸爜
-  getWeChatAppQrCode(data) {
-    return request({
-      url: '/app/api/GetWeChatAppQrCode',
-      method: 'post',
-      data
-    })
-  }
-}
-
-export default appApi
+export default appApi;
diff --git a/src/assets/js/middleGround/api/dps5.js b/src/assets/js/middleGround/api/dps5.js
new file mode 100644
index 0000000..5a33c15
--- /dev/null
+++ b/src/assets/js/middleGround/api/dps5.js
@@ -0,0 +1,42 @@
+import request from '@/plugin/axios/index.ts'
+
+
+
+
+const dps5Api = {
+    // 閫氳繃鐢ㄦ埛鍚嶅瘑鐮佺櫥褰�
+    LoginByLoginNameAndPassword(data) {
+        return request({
+            url: "/identity/Login/LoginByLoginNameAndPassword",
+            method: "post",
+            data
+        });
+    },
+    // 鑾峰彇鐢ㄦ埛淇℃伅
+    GetCurrentUser(data) {
+        return request({
+            url: "/identity/User/GetCurrentUser",
+            method: "post",
+            data
+        });
+    },
+
+    //鐢ㄦ埛鑾峰緱App涓嬫墍鏈夋暟鎹粨搴撳垪琛�
+    GetStoreList(data) {
+        return request({
+            url: "/resource/ResourceStore/GetStoreList",
+            method: "post",
+            data
+        });
+    },
+    //鑾峰緱璧勬簮浠撳簱涓嬫墍鏈夎祫婧愬簱鍒楄〃
+    GetStoreRepositoryList(data) {
+        return request({
+            url: "/resource/ResourceRepository/GetStoreRepositoryList",
+            method: "post",
+            data
+        });
+    }
+}
+
+export default dps5Api;
\ No newline at end of file
diff --git a/src/assets/js/middleGround/api/edu.js b/src/assets/js/middleGround/api/edu.js
index 14978b4..1ed71f2 100644
--- a/src/assets/js/middleGround/api/edu.js
+++ b/src/assets/js/middleGround/api/edu.js
@@ -6,7 +6,7 @@
     return request({
       url: '/edu/api/ApiGetQuizConfigListByProduct',
       method: 'post',
-      data
+      data,
     })
   },
   // 鑾峰彇缁勫嵎缁撴灉
@@ -14,7 +14,7 @@
     return request({
       url: '/edu/api/ApiGetEduQuizConfigResult',
       method: 'post',
-      data
+      data,
     })
   },
 
@@ -23,16 +23,7 @@
     return request({
       url: '/edu/api/ApiApplyNewCourse',
       method: 'post',
-      data
-    })
-  },
-
-  //鏇存柊璇剧▼淇℃伅
-  updateCourse(data) {
-    return request({
-      url: '/edu/api/ApiUpdateCourse',
-      method: 'post',
-      data
+      data,
     })
   },
 
@@ -41,7 +32,7 @@
     return request({
       url: '/edu/api/ApiUpdateCourseApply',
       method: 'post',
-      data
+      data,
     })
   },
 
@@ -50,7 +41,7 @@
     return request({
       url: '/edu/api/ApiGetAppCourseList',
       method: 'post',
-      data
+      data,
     })
   },
 
@@ -59,7 +50,7 @@
     return request({
       url: '/edu/api/ApiGetCourseById',
       method: 'post',
-      data
+      data,
     })
   },
 
@@ -68,7 +59,7 @@
     return request({
       url: '/edu/api/ApiGetCourseClassList',
       method: 'post',
-      data
+      data,
     })
   },
 
@@ -77,7 +68,7 @@
     return request({
       url: '/edu/api/ApiNewCourseClass',
       method: 'post',
-      data
+      data,
     })
   },
 
@@ -86,7 +77,7 @@
     return request({
       url: '/edu/api/ApiDelCourseClass',
       method: 'post',
-      data
+      data,
     })
   },
 
@@ -95,25 +86,7 @@
     return request({
       url: '/edu/api/ApiUpdateCourseClass',
       method: 'post',
-      data
-    })
-  },
-
-  // 鑾峰彇鐝骇璇︽儏
-  getCourseClass(data) {
-    return request({
-      url: '/edu/api/ApiGetCourseClass',
-      method: 'post',
-      data
-    })
-  },
-
-  // 鑾峰彇topic淇℃伅
-  getClassTopic(data) {
-    return request({
-      url: '/edu/api/ApiGetClassTopic',
-      method: 'post',
-      data
+      data,
     })
   },
 
@@ -122,7 +95,7 @@
     return request({
       url: '/store/api/CreateCourseOrder',
       method: 'post',
-      data
+      data,
     })
   },
 
@@ -131,7 +104,7 @@
     return request({
       url: '/store/api/MakeFreeOrderPay',
       method: 'post',
-      data
+      data,
     })
   },
 
@@ -140,7 +113,7 @@
     return request({
       url: '/edu/api/ApiGetRankingList',
       method: 'post',
-      data
+      data,
     })
   },
 
@@ -149,7 +122,7 @@
     return request({
       url: '/edu/api/ApiGetTopRanking',
       method: 'post',
-      data
+      data,
     })
   },
 
@@ -158,7 +131,7 @@
     return request({
       url: '/edu/api/ApiNewRanking',
       method: 'post',
-      data
+      data,
     })
   },
 
@@ -167,7 +140,7 @@
     return request({
       url: '/edu/admin/DelQuizConfig',
       method: 'post',
-      data
+      data,
     })
   },
 
@@ -176,7 +149,7 @@
     return request({
       url: '/edu/admin/UpdateQuizConfig',
       method: 'post',
-      data
+      data,
     })
   },
 
@@ -185,135 +158,9 @@
     return request({
       url: '/edu/admin/GetQuizConfig',
       method: 'post',
-      data
+      data,
     })
   },
-
-  // 涓虹彮绾ф柊寤轰换鍔�
-  newTask(data) {
-    return request({
-      url: '/edu/api/ApiNewTask',
-      method: 'post',
-      data
-    })
-  },
-
-  // 鏇存柊浠诲姟
-  updateTask(data) {
-    return request({
-      url: '/edu/api/ApiUpdateTask',
-      method: 'post',
-      data
-    })
-  },
-
-  // 鑾峰彇鐝骇浠诲姟鍒楄〃
-  getTaskList(data) {
-    return request({
-      url: '/edu/api/ApiGetTaskList',
-      method: 'post',
-      data
-    })
-  },
-
-  // 鍒犻櫎鐝骇浠诲姟鍒楄〃
-  delTask(data) {
-    return request({
-      url: '/edu/api/ApiDelTask',
-      method: 'post',
-      data
-    })
-  },
-
-  // 涓轰换鍔℃柊寤鸿祫婧�
-  newTaskCmsItem(data) {
-    return request({
-      url: '/edu/api/ApiNewTaskCmsItem',
-      method: 'post',
-      data
-    })
-  },
-
-  // 鑾峰彇浠诲姟涓嬬殑璧勬簮鍒楄〃
-  getTaskCmsItem(data) {
-    return request({
-      url: '/edu/api/ApiGetTaskCmsItem',
-      method: 'post',
-      data
-    })
-  },
-
-  // 鍒犻櫎浠诲姟涓嬬殑璧勬簮鍒楄〃
-  removeTaskCmsItemList(data) {
-    return request({
-      url: '/edu/api/ApiRemoveTaskCmsItemList',
-      method: 'post',
-      data
-    })
-  },
-
-  // 涓轰换鍔℃坊鍔犺祫婧�
-  addTaskCmsItemList(data) {
-    return request({
-      url: '/edu/api/ApiAddTaskCmsItemList',
-      method: 'post',
-      data
-    })
-  },
-
-  // 鑾峰彇浠诲姟鎻愪氦鍒楄〃
-  getTaskSubmitList(data) {
-    return request({
-      url: '/edu/api/ApiGetTaskSubmitList',
-      method: 'post',
-      data
-    })
-  },
-
-  // 鑾峰彇鏈彁浜や换鍔″垪琛�
-  getUnSubmitList(data) {
-    return request({
-      url: '/edu/api/ApiGetUnSubmitList',
-      method: 'post',
-      data
-    })
-  },
-
-  // 涓轰换鍔℃柊寤烘彁浜�
-  newTaskSubmit(data) {
-    return request({
-      url: '/edu/api/ApiNewTaskSubmit',
-      method: 'post',
-      data
-    })
-  },
-
-  // 鏇存柊浠诲姟鎻愪氦
-  updateTaskSubmit(data) {
-    return request({
-      url: '/edu/api/ApiUpdateTaskSubmit',
-      method: 'post',
-      data
-    })                                                                                                                                
-  },      
-  
-  // 鑾峰彇浠诲姟鎻愪氦缁熻
-  getTaskStatistics(data) {
-    return request({
-      url: '/edu/api/ApiGetTaskStatistics',
-      method: 'post',
-      data
-    })                                                                                                                                
-  },   
-  
-  // 鑾峰彇鐢ㄦ埛鎻愪氦缁熻鍒楄〃
-  getUserTaskList(data) {
-    return request({
-      url: '/edu/api/ApiGetUserTaskList',
-      method: 'post',
-      data
-    })                                                                                                                                
-  }
 }
 
 export default eduApi
diff --git a/src/assets/js/middleGround/api/identity.js b/src/assets/js/middleGround/api/identity.js
index 1929326..bdd37e4 100644
--- a/src/assets/js/middleGround/api/identity.js
+++ b/src/assets/js/middleGround/api/identity.js
@@ -1,225 +1,181 @@
-import request from '@/plugin/axios/index.ts'
+import request from "@/plugin/axios/index.ts";
 const identityApi = {
   // 鑾峰彇鍥惧舰楠岃瘉鐮�
   getImgCode() {
     return request({
-      url: '/identity/NewCaptcha',
-      method: 'post'
-    })
+      url: "/identity/NewCaptcha",
+      method: "post",
+    });
   },
 
   // 楠岃瘉鍥惧舰楠岃瘉鐮�
   verificationImgCode(data) {
     return request({
-      url: '/identity/ValidCaptcha',
-      method: 'post',
-      data
-    })
+      url: "/identity/ValidCaptcha",
+      method: "post",
+      data,
+    });
   },
 
   // 鑾峰彇鐭俊楠岃瘉鐮�
   getPhoneCode(data) {
     return request({
-      url: '/identity/NewSms',
-      method: 'post',
-      data
-    })
+      url: "/identity/NewSms",
+      method: "post",
+      data,
+    });
   },
   // 楠岃瘉鐭俊楠岃瘉鐮�
   verificationPhoneCode(data) {
     return request({
-      url: '/identity/api/ApiValidMobilePhone',
-      method: 'post',
-      data
-    })
+      url: "/identity/api/ApiValidMobilePhone",
+      method: "post",
+      data,
+    });
   },
 
   // 閫氳繃鎵嬫満鍙锋敞鍐岀敤鎴�
   registerAppUserWithPhone(data) {
     return request({
-      url: '/identity/api/RegisterAppUserWithPhone',
-      method: 'post',
-      data
-    })
+      url: "/identity/api/RegisterAppUserWithPhone",
+      method: "post",
+      data,
+    });
   },
 
   // 璐﹀彿瀵嗙爜鐧诲綍
   loginByPassword(data) {
     return request({
-      url: '/identity/api/LoginByPassword',
-      method: 'post',
-      data
-    })
+      url: "/identity/api/LoginByPassword",
+      method: "post",
+      data,
+    });
   },
 
   // 鐭俊楠岃瘉鐮佺櫥褰�
   loginByMobilePhone(data) {
     return request({
-      url: '/identity/api/LoginByMobilePhone',
-      method: 'post',
-      data
-    })
+      url: "/identity/api/LoginByMobilePhone",
+      method: "post",
+      data,
+    });
   },
 
   // 璁剧疆鐢ㄦ埛key
   setUserKey(data) {
     return request({
-      url: '/identity/api/ApiAppUserSetKey',
-      method: 'post',
-      data
-    })
+      url: "/identity/api/ApiAppUserSetKey",
+      method: "post",
+      data,
+    });
   },
 
   // 鑾峰彇鐢ㄦ埛key
   getUserKey(data) {
     return request({
-      url: '/identity/api/ApiGetAppUserKey',
-      method: 'post',
-      data
-    })
+      url: "/identity/api/ApiGetAppUserKey",
+      method: "post",
+      data,
+    });
   },
 
   // 鍒犻櫎鐢ㄦ埛key
   delUserKey(data) {
     return request({
-      url: '/identity/api/ApiDelAppUserKey',
-      method: 'post',
-      data
-    })
+      url: "/identity/api/ApiDelAppUserKey",
+      method: "post",
+      data,
+    });
   },
 
   // 鑾峰彇鍘诲綋鍓嶇敤鎴蜂俊鎭�
   getCurrentAppUser() {
     return request({
-      url: '/identity/api/GetCurrentAppUser',
-      method: 'post'
-    })
+      url: "/identity/api/GetCurrentAppUser",
+      method: "post",
+    });
   },
 
   // 娣诲姞鐢ㄦ埛淇℃伅
   setAppUserInfo(data) {
     return request({
-      url: '/identity/api/SetAppUserInfoRequest',
-      method: 'post',
-      data
-    })
+      url: "/identity/api/SetAppUserInfoRequest",
+      method: "post",
+      data,
+    });
   },
 
   // 鐢ㄦ埛鏇存崲缁戝畾鎵嬫満鍙凤紝濡傛病鏈夌粦瀹氭墜鏈哄垯鑷姩鍒涘缓
   userSetPhoneNumber(data) {
     return request({
-      url: '/identity/api/ApiUserSetPhoneNumber',
-      method: 'post',
-      data
-    })
+      url: "/identity/api/ApiUserSetPhoneNumber",
+      method: "post",
+      data,
+    });
   },
 
   // 妫�娴嬬敤鎴锋槸鍚︾粦瀹氬井淇�
   checkBuildingWeChat(data) {
     return request({
-      url: '/identity/api/ApiCheckBuildingWeChat',
-      method: 'post',
-      data
-    })
+      url: "/identity/api/ApiCheckBuildingWeChat",
+      method: "post",
+      data,
+    });
   },
+
 
   // 閫氳繃鎵嬫満鍙烽噸缃瘑鐮�
   changePasswordByMobilePhone(data) {
     return request({
-      url: '/identity/api/ChangePasswordByMobilePhone',
-      method: 'post',
-      data
-    })
+      url: "/identity/api/ChangePasswordByMobilePhone",
+      method: "post",
+      data,
+    });
   },
 
   // 寰俊寮�鏀惧钩鍙版壂鐮佺櫥褰�
   loginByWeChatOpenCode(data) {
     return request({
-      url: '/identity/api/LoginByWeChatOpenCode',
-      method: 'post',
-      data
-    })
+      url: "/identity/api/LoginByWeChatOpenCode",
+      method: "post",
+      data,
+    });
   },
 
   // 鐢ㄦ埛缁戝畾寰俊鍙�
   bindingWeChat(data) {
     return request({
-      url: '/identity/api/ApiBindingWeChat',
-      method: 'post',
-      data
-    })
+      url: "/identity/api/ApiBindingWeChat",
+      method: "post",
+      data,
+    });
   },
 
   // 璁剧疆鐧诲綍鐨勭敤鎴峰悕鍜屽瘑鐮侊紝鐢ㄦ埛鍚嶅拰瀵嗙爜鑷冲皯6浣�
   setLoginNameAndPassword(data) {
     return request({
-      url: '/identity/api/ApiUserSetLoginNameAndPassword',
-      method: 'post',
-      data
-    })
+      url: "/identity/api/ApiUserSetLoginNameAndPassword",
+      method: "post",
+      data,
+    });
   },
 
   // 鑾峰彇閭楠岃瘉鐮�
   getEmailCode(data) {
     return request({
-      url: '/identity/api/SendVerifyEMail',
-      method: 'post',
-      data
-    })
+      url: "/identity/api/SendVerifyEMail",
+      method: "post",
+      data,
+    });
   },
   // 鐢ㄦ埛缁戝畾閭
   bindingEmail(data) {
     return request({
-      url: '/identity/api/ApiBindEMail',
-      method: 'post',
-      data
-    })
+      url: "/identity/api/ApiBindEMail",
+      method: "post",
+      data,
+    });
   },
+};
 
-  // 閫氳繃refcode鍔犲叆鐝骇/缁�
-  joinGroupByRefCode(data) {
-    return request({
-      url: '/identity/api/ApiJoinGroupByRefCode',
-      method: 'post',
-      data
-    })
-  },
-
-  // 鑾峰彇鍔犲叆缁勭殑鍒楄〃淇℃伅
-  joinedGroupByList(data) {
-    return request({
-      url: '/identity/api/ApiGetJoinedGroupByList',
-      method: 'post',
-      data
-    })
-  },
-
-  // 鑾峰彇缁勬垨鐝骇鎴愬憳
-  getGroupUserList(data) {
-    return request({
-      url: '/identity/api/ApiGetGroupUserList',
-      method: 'post',
-      data
-    })
-  },
-
-  // 鏇存柊缁勬垚鍛樻垨鐝骇鎴愬憳鐘舵��
-  updateAppUserGroupLink(data) {
-    return request({
-      url: '/identity/api/ApiUpdateAppUserGroupLink',
-      method: 'post',
-      data
-    })
-  },
-
-  // 鍒犻櫎缁勬垚鍛樻垨鐝骇鎴愬憳鐘舵��
-  removeAppUserFromGroup(data) {
-    return request({
-      url: '/identity/api/ApiRemoveAppUserFromGroup',
-      method: 'post',
-      data
-    })
-  }
-}
-
-export default identityApi
+export default identityApi;
\ No newline at end of file
diff --git a/src/assets/js/middleGround/api/store.js b/src/assets/js/middleGround/api/store.js
index d00caf0..bbe8f32 100644
--- a/src/assets/js/middleGround/api/store.js
+++ b/src/assets/js/middleGround/api/store.js
@@ -180,7 +180,7 @@
         Icon: [],
         TypeId: [],
         RefCode: [],
-        Description: [],
+        Description:[],
         ChildrenCount: [],
         ChildrenFolderCount: [],
         CreateDate: [],
@@ -210,7 +210,7 @@
         Icon: [],
         TypeId: [],
         RefCode: [],
-        Description: [],
+        Description:[],
         ChildrenCount: [],
         ChildrenFolderCount: [],
         CreateDate: [],
@@ -235,7 +235,7 @@
           Icon: [],
           TypeId: [],
           RefCode: [],
-          Description: [],
+          Description:[],
           LinkTypes: [linkType.linkType],
           PageQuery: {
             Start: 0,
@@ -276,7 +276,7 @@
       Name: [],
       Icon: [],
       RefCode: [],
-      Description: [],
+      Description:[],
       TypeId: [],
       SysType: [],
       State: [],
@@ -312,43 +312,44 @@
       method: 'post',
       data: body,
       cancelToken: source?.token
-    }).then((resp) => {
-      if (resp.length > 0) {
-        const data = resp[0]
-        if (data.datas.length) {
-          data.datas[0].subDatas = data.datas[0].cmsDatas
-          const datas = handleDetailQueryRequestData({
-            productId,
-            item: data.datas[0],
-            fields,
-            itemFields: {
-              ...itemFields,
-              ...linkFields
-            },
-            path,
-            coverSize,
-            handelEBooK
-          })
-          return {
-            datas,
-            total: data.totalCount
-          }
-        } else {
-          return {
-            datas: [],
-            total: 0
+    })
+      .then((resp) => {
+        if (resp.length > 0) {
+          const data = resp[0]
+          if (data.datas.length) {
+            data.datas[0].subDatas = data.datas[0].cmsDatas
+            const datas = handleDetailQueryRequestData({
+              item: data.datas[0],
+              fields,
+              itemFields: {
+                ...itemFields,
+                ...linkFields
+              },
+              path,
+              coverSize,
+              handelEBooK,
+
+            })
+            return {
+              datas,
+              total: data.totalCount
+            }
+          } else {
+            return {
+              datas: [],
+              total: 0
+            }
           }
         }
-      }
-      return {
-        datas: [],
-        total: 0
-      }
-    })
+        return {
+          datas: [],
+          total: 0
+        }
+      })
   },
-  // 鑾峰彇鍟嗗搧璇︽儏锛屼笉杩斿洖 ChildrenCount,ChildrenFolderCount
+  // 鑾峰彇鍟嗗搧璇︽儏锛屼笉杩斿洖 ChildrenCount,ChildrenFolderCount  
   // (姝ゆ帴鍙d负浜嗘弧瓒充笉杩斿洖 ChildrenCount,ChildrenFolderCount鑰屽悗缁坊鍔犵殑) 涓嶆槸涓彴鍘熸湁鐨�
-  getProductDetailNoChildren: ({
+  getProductDetailNoChildren:({
     path = '',
     storeInfo = goodsStore,
     channelInfo = '',
@@ -379,7 +380,7 @@
         Icon: [],
         TypeId: [],
         RefCode: [],
-        Description: [],
+        Description:[],
         // ChildrenCount: [],
         // ChildrenFolderCount: [],
         CreateDate: [],
@@ -409,7 +410,7 @@
         Icon: [],
         TypeId: [],
         RefCode: [],
-        Description: [],
+        Description:[],
         ChildrenCount: [],
         ChildrenFolderCount: [],
         CreateDate: [],
@@ -434,7 +435,7 @@
           Icon: [],
           TypeId: [],
           RefCode: [],
-          Description: [],
+          Description:[],
           LinkTypes: [linkType.linkType],
           PageQuery: {
             Start: 0,
@@ -475,7 +476,7 @@
       Name: [],
       Icon: [],
       RefCode: [],
-      Description: [],
+      Description:[],
       TypeId: [],
       SysType: [],
       State: [],
@@ -511,39 +512,40 @@
       method: 'post',
       data: body,
       cancelToken: source?.token
-    }).then((resp) => {
-      if (resp.length > 0) {
-        const data = resp[0]
-        if (data.datas.length) {
-          data.datas[0].subDatas = data.datas[0].cmsDatas
-          const datas = handleDetailQueryRequestData({
-            productId,
-            item: data.datas[0],
-            fields,
-            itemFields: {
-              ...itemFields,
-              ...linkFields
-            },
-            path,
-            coverSize,
-            handelEBooK
-          })
-          return {
-            datas,
-            total: data.totalCount
-          }
-        } else {
-          return {
-            datas: [],
-            total: 0
+    })
+      .then((resp) => {
+        if (resp.length > 0) {
+          const data = resp[0]
+          if (data.datas.length) {
+            data.datas[0].subDatas = data.datas[0].cmsDatas
+            const datas = handleDetailQueryRequestData({
+              item: data.datas[0],
+              fields,
+              itemFields: {
+                ...itemFields,
+                ...linkFields
+              },
+              path,
+              coverSize,
+              handelEBooK,
+
+            })
+            return {
+              datas,
+              total: data.totalCount
+            }
+          } else {
+            return {
+              datas: [],
+              total: 0
+            }
           }
         }
-      }
-      return {
-        datas: [],
-        total: 0
-      }
-    })
+        return {
+          datas: [],
+          total: 0
+        }
+      })
   },
   // 鑾峰彇浼樻儬鍒稿垪琛�
   getChannelPromoteCodeList(data) {
@@ -868,32 +870,6 @@
   getProductBySaleMethod(data) {
     return request({
       url: '/store/api/ApiGetProductBySaleMethod',
-      method: 'post',
-      data
-    })
-  },
-  // 绉垎鍏戞崲
-  newOrderPay(data) {
-    return request({
-      url: '/store/api/NewOrderPay',
-      method: 'post',
-      data
-    })
-  },
-
-  // 鍒犻櫎绉垎璁㈠崟
-  delOrderPay(data) {
-    return request({
-      url: '/store/api/DelOrderPay',
-      method: 'post',
-      data
-    })
-  },
-
-  // 鏇存柊绉垎璁㈠崟
-  UpdateOrderPay(data) {
-    return request({
-      url: '/store/api/UpdateOrderPay',
       method: 'post',
       data
     })
diff --git a/src/assets/js/middleGround/api/ugc.js b/src/assets/js/middleGround/api/ugc.js
index a3d5491..a277fe6 100644
--- a/src/assets/js/middleGround/api/ugc.js
+++ b/src/assets/js/middleGround/api/ugc.js
@@ -1,108 +1,89 @@
-import request from '@/plugin/axios/index.ts'
-import { tokenKey } from '@/assets/js/config.js'
-import toolClass from '@/assets/js/toolClass.js'
+import request from "@/plugin/axios/index.ts";
+import { tokenKey } from "@/assets/js/config.js";
+import toolClass from "@/assets/js/toolClass.js";
 const ugcApi = {
   // 鑾峰彇鍟嗗搧鐐硅禐Topic
   getProductLikesTopic(data) {
     return request({
       url: localStorage.getItem(tokenKey)
-        ? '/ugc/api/ApiAppUserGetProductLikesTopic'
-        : '/ugc/api/ApiGetProductLikesTopic',
-      method: 'post',
-      data
-    })
+        ? "/ugc/api/ApiAppUserGetProductLikesTopic"
+        : "/ugc/api/ApiGetProductLikesTopic",
+      method: "post",
+      data,
+    });
   },
 
   // 鑾峰彇鍟嗗搧璇勮Topic
   getProductCommentTopic(data) {
     return request({
       url: localStorage.getItem(tokenKey)
-        ? '/ugc/api/ApiAppUserGetProductCommentTopic'
-        : '/ugc/api/ApiGetProductCommentTopic',
-      method: 'post',
-      data
-    })
+        ? "/ugc/api/ApiAppUserGetProductCommentTopic"
+        : "/ugc/api/ApiGetProductCommentTopic",
+      method: "post",
+      data,
+    });
   },
 
   // 鑾峰彇MessageList
   getTopicMessageList(data) {
     return request({
       url: localStorage.getItem(tokenKey)
-        ? '/ugc/api/ApiAppUserGetTopicMessageList'
-        : '/ugc/api/ApiGetTopicMessageList',
-      method: 'post',
-      data
-    })
-  },
-
-  // 鑾峰彇瀛怣essageList
-  getTopicMessageSubList(data) {
-    return request({
-      url:'/ugc/api/ApiAppUserGetSubMessageList',
-      method: 'post',
-      data
-    })
-  },
-
-
-  // 鑾峰彇MessageList瀛恗essage
-  getChildTopicMessageList(data) {
-    return request({
-      url: '/ugc/api/ApiAppUserGetSubMessageList',
-      method: 'post',
-      data
-    })
+        ? "/ugc/api/ApiAppUserGetTopicMessageList"
+        : "/ugc/api/ApiGetTopicMessageList",
+      method: "post",
+      data,
+    });
   },
   // 鐢ㄦ埛鏍规嵁娑堟伅绫诲瀷鑾峰彇鍒楄〃
   getMessageList(data) {
     return request({
-      url: '/ugc/api/ApiGetMessageList',
-      method: 'post',
-      data
-    })
+      url: "/ugc/api/ApiGetMessageList",
+      method: "post",
+      data,
+    });
   },
 
   // 鏂板缓Message
   newTopicMessage(data) {
     return request({
-      url: '/ugc/api/ApiNewTopicMessage',
-      method: 'post',
-      data
-    })
+      url: "/ugc/api/ApiNewTopicMessage",
+      method: "post",
+      data,
+    });
   },
 
   // 鍒犻櫎Message
   delTopicMessage(data) {
     return request({
-      url: '/ugc/api/ApiDelTopicMessage',
-      method: 'post',
-      data
-    })
+      url: "/ugc/api/ApiDelTopicMessage",
+      method: "post",
+      data,
+    });
   },
   // 鏇存柊message
   updateTopicMessage(data) {
     return request({
-      url: '/ugc/api/ApiUpdateTopicMessage',
-      method: 'post',
+      url:'/ugc/api/ApiUpdateTopicMessage',
+      method:'post',
       data
     })
   },
   // 鑾峰彇cms璇勮
   getCmsItemCommentTopic(data) {
     return request({
-      url: '/ugc/api/ApiGetCmsItemCommentTopic',
-      method: 'post',
-      data
-    })
+      url: "/ugc/api/ApiGetCmsItemCommentTopic",
+      method: "post",
+      data,
+    });
   },
   // 鑾峰彇鐢ㄦ埛鎻愪氦鐨勬暀瀛﹁祫婧�
   getProductUserSubmitTopic(data) {
     return request({
-      url: '/ugc/api/ApiGetProductUserSubmitTopic',
-      method: 'post',
-      data
-    })
-  }
+      url: "/ugc/api/ApiGetProductUserSubmitTopic",
+      method: "post",
+      data,
+    });
+  },
 
   //鏇存柊TOPICMESSAGE
   // updateTopicMessage(data) {
@@ -112,6 +93,6 @@
   //     data,
   //   });
   // },
-}
+};
 
-export default ugcApi
+export default ugcApi;
diff --git a/src/assets/js/middleGround/tool.js b/src/assets/js/middleGround/tool.js
index 0f5fbfa..838b23b 100644
--- a/src/assets/js/middleGround/tool.js
+++ b/src/assets/js/middleGround/tool.js
@@ -1,10 +1,10 @@
-import { requestCtx, appId } from "@/assets/js/config.js";
-import defaultImg from "@/assets/images/default-book-img.png";
-import defaultBookFair from "@/assets/images/default-bookFair.png"
-import bookCover from "@/assets/images/book-cover.png";
-import courseIcon from "@/assets/images/courseIcon.png";
-import textBookIcon from "@/assets/images/textBookIcon.png";
-import moment from "moment";
+import { requestCtx, appId } from '@/assets/js/config.js'
+import defaultImg from '@/assets/images/default-book-img.png'
+import defaultBookFair from '@/assets/images/default-bookFair.png'
+import bookCover from '@/assets/images/book-cover.png'
+import defaultPub from '@/assets/images/math/default-pub.png'
+import defaultAudio from '@/assets/images/math/default-audio.png'
+import moment from 'moment'
 // 澶勭悊鍒楄〃鏌ヨ缁撴灉
 export function handleQueryResourceListData({
   datas,
@@ -13,34 +13,34 @@
   storeInfo,
   repositoryInfo,
   coverSize,
-  handelEBooK,
+  handelEBooK
 }) {
-  const dataList = [];
+  const dataList = []
   for (let i = 0; i < datas.length; i++) {
-    const item = datas[i];
+    const item = datas[i]
     // 澶勭悊瀛楁
-    const _fields = {};
+    const _fields = {}
     if (fields != null) {
       for (let fieldKey in fields) {
         if (item.datas[fieldKey]) {
-          const values = JSON.parse(item.datas[fieldKey]);
+          const values = JSON.parse(item.datas[fieldKey])
           if (values.length > 0) {
             // 鐢ㄥ瓧娈靛悕澶勭悊杩斿洖鐨勫瓧娈靛��
             if (values[0].Value) {
-              _fields[fieldKey] = values[0].Value;
+              _fields[fieldKey] = values[0].Value
             } else if (values[0].Data) {
-              _fields[fieldKey] = values[0].Data.Value;
+              _fields[fieldKey] = values[0].Data.Value
             }
-            item.datas[fieldKey] = values[0];
+            item.datas[fieldKey] = values[0]
           }
         }
       }
     }
-    const subDatas = {};
+    const subDatas = {}
     if (item.subDatas) {
       for (let subData of item.subDatas) {
-        const tag = subData.queryTag.replace("Query", "");
-        subDatas[tag] = subData.datas;
+        const tag = subData.queryTag.replace('Query', '')
+        subDatas[tag] = subData.datas
       }
     }
 
@@ -48,113 +48,105 @@
       ...item,
       id: item.id,
       name: item.datas.Name,
-      icon: getPublicImage(
-        item.datas.Icon,
-        coverSize?.width,
-        coverSize?.height,
-        storeInfo
-      ),
+      icon: getPublicImage(item.datas.Icon, coverSize?.width, coverSize?.height, storeInfo),
       repositoryInfo: repositoryInfo,
-      refCode: item.datas.RefCode === "[]" ? null : item.datas.RefCode,
+      refCode: item.datas.RefCode === '[]' ? null : item.datas.RefCode,
       state: item.datas.State,
       type: item.datas.Type,
       tag: item.datas.Tag,
       creator: item.datas.Creator ? JSON.parse(item.datas.Creator) : undefined,
       storeInfo: storeInfo,
       linkType: item.datas.LinkType,
-      childrenCount: parseInt(item.datas.ChildrenCount ?? "0"),
-      childrenFolderCount: parseInt(item.datas.ChildrenFolderCount ?? "0"),
-      childrenChannelCount: parseInt(item.datas.ChildrenChannelCount ?? "0"),
-      createDate: moment(item.datas.CreateDate).format("YYYY-MM-DD"),
-      beginDate: moment(item.datas.BeginDate).format("YYYY-MM-DD"),
-      endDate: moment(item.datas.EndDate).format("YYYY-MM-DD"),
+      childrenCount: parseInt(item.datas.ChildrenCount ?? '0'),
+      childrenFolderCount: parseInt(item.datas.ChildrenFolderCount ?? '0'),
+      childrenChannelCount: parseInt(item.datas.ChildrenChannelCount ?? '0'),
+      createDate: moment(item.datas.CreateDate).format('YYYY-MM-DD'),
+      beginDate: moment(item.datas.BeginDate).format('YYYY-MM-DD'),
+      endDate: moment(item.datas.EndDate).format('YYYY-MM-DD'),
       description: item.datas.Description,
       sysType: item.datas.SysType,
-      idPath: path + "\\" + item.id,
+      idPath: path + '\\' + item.id,
       typeId: parseInt(item.datas.TypeId),
-      linkFile: JSON.parse(item.datas.LinkFile ?? "[]"),
+      linkFile: JSON.parse(item.datas.LinkFile ?? '[]'),
       cmsItemType: item.datas.CmsItemType,
-      allowDonate: item.datas.AllowDonate == "True",
+      allowDonate: item.datas.AllowDonate == 'True',
       // donatePriceList: JSON.parse(item.datas.DonatePriceList ?? "[]"),
-      productLinkInfo: item.datas.ProductLinkInfo ?? "[]",
-      storeEvent: JSON.parse(item.datas.StoreEvent ?? "[]"),
-      linkInfo: JSON.parse(item.datas.LinkInfo ?? "[]"),
-      saleMethod: JSON.parse(item.datas.SaleMethod ?? "[]"),
+      productLinkInfo: item.datas.ProductLinkInfo ?? '[]',
+      storeEvent: JSON.parse(item.datas.StoreEvent ?? '[]'),
+      linkInfo: JSON.parse(item.datas.LinkInfo ?? '[]'),
+      saleMethod: JSON.parse(item.datas.SaleMethod ?? '[]'),
       subProductCount: parseInt(item.datas.SubProductCount),
       ..._fields,
       datas: item.datas,
-      subDatas,
-    };
+      subDatas
+    }
 
     // 缁熶竴澶勭悊浠锋牸
     if (obj.defaultSaleMethod) {
       if (handelEBooK) {
         // 鑾峰彇闅忎功璧勬簮鐨勯攢鍞柟寮�
-        let saleMethod = [];
+        let saleMethod = []
         try {
           saleMethod = obj.cmsDatas[0].datas.find(
-            (item) => item.datas.RefCode == "tourism_accompanyingResources"
-          ).datas.SaleMethod;
-          saleMethod = JSON.parse(saleMethod);
+            (item) => item.datas.RefCode == 'tourism_accompanyingResources'
+          ).datas.SaleMethod
+          saleMethod = JSON.parse(saleMethod)
         } catch (error) {
-          saleMethod = [];
+          saleMethod = []
         }
         if (saleMethod.length) {
           Object.keys(saleMethod[0]).map((key) => {
-            let newKey = key.replace(key[0], key[0].toLowerCase());
-            saleMethod[0][newKey] = saleMethod[0][key];
-            delete saleMethod[0][key];
-          });
-          obj.defaultSaleMethod = saleMethod[0];
-          obj.defaultSaleMethodId = saleMethod[0].id;
-          obj.alreadyBuy =
-            obj.purchasedSaleMethodIdList.indexOf(obj.defaultSaleMethodId) > -1;
+            let newKey = key.replace(key[0], key[0].toLowerCase())
+            saleMethod[0][newKey] = saleMethod[0][key]
+            delete saleMethod[0][key]
+          })
+          obj.defaultSaleMethod = saleMethod[0]
+          obj.defaultSaleMethodId = saleMethod[0].id
+          obj.alreadyBuy = obj.purchasedSaleMethodIdList.indexOf(obj.defaultSaleMethodId) > -1
         }
       }
       if (obj.defaultSaleMethod.allowEvent && obj.storeEvent.length) {
         // 宸插弬鍔犳椿鍔紝鑾峰彇鏈夋晥娲诲姩骞惰绠椾环鏍�
-        let time = new Date().getTime();
+        let time = new Date().getTime()
         // 杩囨护杩囨湡娲诲姩
         let event = obj.storeEvent.filter((item) => {
-          let endTime = new Date(item.EndDate).getTime();
-          return endTime > time;
-        });
+          let endTime = new Date(item.EndDate).getTime()
+          return endTime > time
+        })
 
         // 鍙鐞嗕竴鏉℃湁鏁堟椿鍔�
         if (event.length) {
-          obj.price = (obj.defaultSaleMethod.price * event[0].Value).toFixed(2);
-          obj.oldPrice = obj.defaultSaleMethod.price;
-          obj.storeEventId = event[0].Id;
+          obj.price = (obj.defaultSaleMethod.price * event[0].Value).toFixed(2)
+          obj.oldPrice = obj.defaultSaleMethod.price
+          obj.storeEventId = event[0].Id
           if (
-            moment().format("YYYY-MM-DD") <
-            moment(obj.defaultSaleMethod.endDate).format("YYYY-MM-DD")
+            moment().format('YYYY-MM-DD') <
+            moment(obj.defaultSaleMethod.endDate).format('YYYY-MM-DD')
           ) {
-            obj.defaultSaleMethodState = "Normal";
+            obj.defaultSaleMethodState = 'Normal'
           } else {
-            obj.defaultSaleMethodState = "Beyond";
+            obj.defaultSaleMethodState = 'Beyond'
           }
         }
       } else {
         if (
-          moment().format("YYYY-MM-DD") <
-          moment(obj.defaultSaleMethod.endDate).format("YYYY-MM-DD")
+          moment().format('YYYY-MM-DD') < moment(obj.defaultSaleMethod.endDate).format('YYYY-MM-DD')
         ) {
-          obj.defaultSaleMethodState = "Normal";
+          obj.defaultSaleMethodState = 'Normal'
         } else {
-          obj.defaultSaleMethodState = "Beyond";
+          obj.defaultSaleMethodState = 'Beyond'
         }
-        obj.price = obj.defaultSaleMethod.price;
-        obj.oldPrice = obj.defaultSaleMethod.virtualPrice;
+        obj.price = obj.defaultSaleMethod.price
+        obj.oldPrice = obj.defaultSaleMethod.virtualPrice
       }
     }
-    dataList.push(obj);
+    dataList.push(obj)
   }
-  return dataList;
+  return dataList
 }
 
 // 澶勭悊璇︽儏鏌ヨ缁撴灉
 export function handleDetailQueryRequestData({
-  productId,
   item,
   fields,
   path,
@@ -262,11 +254,11 @@
           }
         }
         if (subItem.productLinkInfo && subItem.productLinkInfo.length) {
-          let itemProductLinkInfo = subItem.productLinkInfo.find(citem => citem.ProductId == productId)
+          let itemProductLinkInfo = subItem.productLinkInfo.find(citem => citem.Name == item.datas.Name)
           subItem.productLinkPath =
-            itemProductLinkInfo?.LinkPath +
+            itemProductLinkInfo.LinkPath +
             "\\" +
-            itemProductLinkInfo?.CmsItemId;
+            itemProductLinkInfo.CmsItemId;
         }
         if (subItem.linkInfo && subItem.linkInfo.length)
           subItem.linkPath =
@@ -282,9 +274,9 @@
 }
 
 const handleLinkFileInfo = (linkList) => {
-  let linkFileMap = {};
+  let linkFileMap = {}
   for (let z = 0; z < linkList.length; z++) {
-    const linkItem = linkList[z];
+    const linkItem = linkList[z]
     linkFileMap[linkItem.Md5] = {
       linkType: linkItem.LinkType,
       extension: linkItem.Extension,
@@ -295,154 +287,144 @@
       size: linkItem.Size,
       // metaData: JSON.parse(linkItem.MetaData ?? "{}"),
       order: linkItem.Order,
-      protectType: linkItem.ProtectType,
-    };
+      protectType: linkItem.ProtectType
+    }
   }
-  return linkFileMap;
-};
+  return linkFileMap
+}
 
 const convertCmsItemBase = (item, coverSize, handelEBooK) => {
-  item.name = item.datas.Name;
-  item.description = item.datas.Description;
-  item.refCode = item.datas.RefCode;
-  item.state = item.datas.State;
-  item.type = item.datas.Type;
-  item.tag = item.datas.Tag;
-  item.typeId = parseInt(item.datas.TypeId);
-  item.icon = item.datas.Icon,
-  // item.icon = getPublicImage(
-  //   item.datas.Icon,
-  //   coverSize?.width,
-  //   coverSize?.height
-  // );
-  item.sysType = item.datas.SysType;
-  item.linkFile = JSON.parse(item.datas.LinkFile ?? "[]");
-  item.linkType = item.datas.LinkType;
-  item.linkAppId = parseInt(item.datas.LinkAppId);
-  item.linkStoreId = parseInt(item.datas.LinkStore);
-  item.linkRepoId = item.datas.LinkRepository;
-  item.childrenCount = parseInt(item.datas.ChildrenCount ?? "0");
-  (item.childrenFolderCount = parseInt(item.datas.ChildrenFolderCount ?? "0")),
-    (item.childrenChannelCount = parseInt(
-      item.datas.ChildrenChannelCount ?? "0"
-    )),
-    (item.linkId = parseInt(item.datas.LinkId));
-  item.linkOrg = JSON.parse(item.datas.LinkOrg ?? "[]")[0];
-  item.linkDepartment = JSON.parse(item.datas.LinkDepartment ?? "[]")[0];
-  item.linkInfo = JSON.parse(item.datas.LinkInfo ?? "[]");
-  item.productLinkInfo = JSON.parse(item.datas.ProductLinkInfo ?? "[]");
-  item.saleMethod = JSON.parse(item.datas.SaleMethod ?? "[]");
-  item.allowDonate = item.datas.AllowDonate == "True";
+  item.name = item.datas.Name
+  item.description = item.datas.Description
+  item.refCode = item.datas.RefCode
+  item.state = item.datas.State
+  item.type = item.datas.Type
+  item.tag = item.datas.Tag
+  item.typeId = parseInt(item.datas.TypeId)
+  item.icon = getPublicImage(item.datas.Icon, coverSize?.width, coverSize?.height)
+  item.sysType = item.datas.SysType
+  item.linkFile = JSON.parse(item.datas.LinkFile ?? '[]')
+  item.linkType = item.datas.LinkType
+  item.linkAppId = parseInt(item.datas.LinkAppId)
+  item.linkStoreId = parseInt(item.datas.LinkStore)
+  item.linkRepoId = item.datas.LinkRepository
+  item.childrenCount = parseInt(item.datas.ChildrenCount ?? '0')
+  ;(item.childrenFolderCount = parseInt(item.datas.ChildrenFolderCount ?? '0')),
+    (item.childrenChannelCount = parseInt(item.datas.ChildrenChannelCount ?? '0')),
+    (item.linkId = parseInt(item.datas.LinkId))
+  item.linkOrg = JSON.parse(item.datas.LinkOrg ?? '[]')[0]
+  item.linkDepartment = JSON.parse(item.datas.LinkDepartment ?? '[]')[0]
+  item.linkInfo = JSON.parse(item.datas.LinkInfo ?? '[]')
+  item.productLinkInfo = JSON.parse(item.datas.ProductLinkInfo ?? '[]')
+  item.saleMethod = JSON.parse(item.datas.SaleMethod ?? '[]')
+  item.allowDonate = item.datas.AllowDonate == 'True'
   // item.donatePriceList = JSON.parse(item.datas.DonatePriceList ?? "[]");
-  item.createDate = moment(item.datas.CreateDate).format("YYYY-MM-DD");
-  item.beginDate = moment(item.datas.BeginDate).format("YYYY-MM-DD");
-  item.endDate = moment(item.datas.EndDate).format("YYYY-MM-DD");
-  item.storeEvent = JSON.parse(item.datas.StoreEvent ?? "[]");
+  item.createDate = moment(item.datas.CreateDate).format('YYYY-MM-DD')
+  item.beginDate = moment(item.datas.BeginDate).format('YYYY-MM-DD')
+  item.endDate = moment(item.datas.EndDate).format('YYYY-MM-DD')
+  item.storeEvent = JSON.parse(item.datas.StoreEvent ?? '[]')
   // 缁熶竴澶勭悊浠锋牸
   if (item.defaultSaleMethod) {
     if (handelEBooK) {
       // 鑾峰彇闅忎功璧勬簮鐨勯攢鍞柟寮�
       let saleMethod = item.cmsDatas[0].datas.find(
-        (item) => item.refCode == "tourism_accompanyingResources"
-      ).saleMethod;
+        (item) => item.refCode == 'tourism_accompanyingResources'
+      ).saleMethod
       if (saleMethod && saleMethod.length > 0) {
         Object.keys(saleMethod[0]).map((key) => {
-          let newKey = key.replace(key[0], key[0].toLowerCase());
-          saleMethod[0][newKey] = saleMethod[0][key];
-          delete saleMethod[0][key];
-        });
-        item.defaultSaleMethod = saleMethod[0];
-        item.defaultSaleMethodId = saleMethod[0].id;
-        item.alreadyBuy =
-          item.purchasedSaleMethodIdList.indexOf(item.defaultSaleMethodId) > -1;
+          let newKey = key.replace(key[0], key[0].toLowerCase())
+          saleMethod[0][newKey] = saleMethod[0][key]
+          delete saleMethod[0][key]
+        })
+        item.defaultSaleMethod = saleMethod[0]
+        item.defaultSaleMethodId = saleMethod[0].id
+        item.alreadyBuy = item.purchasedSaleMethodIdList.indexOf(item.defaultSaleMethodId) > -1
       }
     }
     if (item.defaultSaleMethod.allowEvent && item.storeEvent.length) {
       // 宸插弬鍔犳椿鍔紝鑾峰彇鏈夋晥娲诲姩骞惰绠椾环鏍�
-      let time = new Date().getTime();
+      let time = new Date().getTime()
       // 杩囨护杩囨湡娲诲姩
       let event = item.storeEvent.filter((item) => {
-        let endTime = new Date(item.EndDate).getTime();
-        return endTime > time;
-      });
+        let endTime = new Date(item.EndDate).getTime()
+        return endTime > time
+      })
       // 鍙鐞嗕竴鏉℃湁鏁堟椿鍔�
       if (event.length) {
-        item.price = (item.defaultSaleMethod.price * event[0].Value).toFixed(2);
-        item.oldPrice = item.defaultSaleMethod.price;
+        item.price = (item.defaultSaleMethod.price * event[0].Value).toFixed(2)
+        item.oldPrice = item.defaultSaleMethod.price
         if (
-          moment().format("YYYY-MM-DD") <
-          moment(item.defaultSaleMethod.endDate).format("YYYY-MM-DD")
+          moment().format('YYYY-MM-DD') <
+          moment(item.defaultSaleMethod.endDate).format('YYYY-MM-DD')
         ) {
-          item.defaultSaleMethodState = "Normal";
+          item.defaultSaleMethodState = 'Normal'
         } else {
-          item.defaultSaleMethodState = "Beyond";
+          item.defaultSaleMethodState = 'Beyond'
         }
-        item.storeEventId = event[0].Id;
+        item.storeEventId = event[0].Id
       }
     } else {
-      item.price = item.defaultSaleMethod.price;
-      item.oldPrice = item.defaultSaleMethod.virtualPrice;
+      item.price = item.defaultSaleMethod.price
+      item.oldPrice = item.defaultSaleMethod.virtualPrice
       if (
-        moment().format("YYYY-MM-DD") <
-        moment(item.defaultSaleMethod.endDate).format("YYYY-MM-DD")
+        moment().format('YYYY-MM-DD') < moment(item.defaultSaleMethod.endDate).format('YYYY-MM-DD')
       ) {
-        item.defaultSaleMethodState = "Normal";
+        item.defaultSaleMethodState = 'Normal'
       } else {
-        item.defaultSaleMethodState = "Beyond";
+        item.defaultSaleMethodState = 'Beyond'
       }
     }
   }
-};
+}
 
 export function getTopicMsgCmsItemFile(fileType, fileList) {
-  let obj = {};
+  let obj = {}
   fileType.forEach((item) => {
-    item.sequenceNum = item.config ? JSON.parse(item.config).uuid : "";
+    item.sequenceNum = item.config ? JSON.parse(item.config).uuid : ''
     fileList.forEach((e) => {
       if (item.sequenceNum == e.sequenceNum) {
         try {
           if (e.fileLinkList.length > 0) {
             for (let i = 0; i < e.fileLinkList.length; i++) {
-              const ele = e.fileLinkList[i];
-              ele.name = ele.file.fileName;
-              ele.md5 = ele.file.md5;
-              ele.status = "success";
+              const ele = e.fileLinkList[i]
+              ele.name = ele.file.fileName
+              ele.md5 = ele.file.md5
+              ele.status = 'success'
             }
-            obj[item.typeField.refCode] = e.fileLinkList;
+            obj[item.typeField.refCode] = e.fileLinkList
           } else {
-            const val = JSON.parse(e.value);
-            obj[item.typeField.refCode] = val;
+            const val = JSON.parse(e.value)
+            obj[item.typeField.refCode] = val
           }
         } catch (error) {
-          obj[item.typeField.refCode] = e.value;
+          obj[item.typeField.refCode] = e.value
         }
       }
-    });
-  });
-  return obj;
+    })
+  })
+  return obj
 }
 
 // 鑾峰彇涓嶅彈淇濇姢鐨勫浘鐗�
-export function getPublicImage(md5, width, height,storeInfo) {
-  let src = null;
+export function getPublicImage(md5, width, height, storeInfo) {
+  let src = null
   if (md5) {
-    src = requestCtx + `/file/GetPreViewImage?md5=${md5}`;
+    src = requestCtx + `/file/GetPreViewImage?md5=${md5}`
   } else {
-    if(storeInfo == 'jsek_bookFair') {
+    if (storeInfo == 'jsek_bookFair') {
       // return defaultBookFair;
       return
-    }else if(storeInfo == `defaultGoodsStore${appId}`){
-      return bookCover;
-    }else if(storeInfo == 'jsek_digitalCourses'){
-      return courseIcon;
-    }else if(storeInfo == 'jsek_digitalTextbooks'){
-      return textBookIcon;
-    }else{
-      return ""
+    } else if (storeInfo == 'jilin_imgResourceLibrary') {
+      return defaultPub
+    } else if (storeInfo == 'jilin_audiosResourceLibrary') {
+      return defaultAudio
+    } else if (storeInfo == 'jilin_videosResourceLibrary') {
+      return defaultPub
+    } else if (storeInfo == 'jilin_modelsResourceLibrary') {
+      return defaultPub
     }
-    
   }
-  if (width) src += `&width=${width}`;
-  if (height) src += `&height=${height}`;
-  return src;
+  if (width && src) src += `&width=${width}`
+  if (height && src) src += `&height=${height}`
+  return src
 }
diff --git a/src/assets/js/toolClass.js b/src/assets/js/toolClass.js
index de71bbc..2cac55a 100644
--- a/src/assets/js/toolClass.js
+++ b/src/assets/js/toolClass.js
@@ -1,5 +1,6 @@
 import SparkMD5 from 'spark-md5'
 import { getPublicImage } from '@/assets/js/middleGround/tool.js'
+import config from './config'
 // import moment from "moment";
 
 var tool = {
@@ -159,9 +160,7 @@
       nrr.push({
         linkProtectType: e.linkProtectType,
         linkType: e.linkType,
-        md5: e.md5,
-        fileName: e.fileName ?? '',
-        extension: e.extension ?? ''
+        md5: e.md5
       })
     )
   }
@@ -354,6 +353,23 @@
   })
 }
 
+// 鑾峰彇鏂囦欢
+export function getPublicFile(md5, isToken) {
+  const { tokenKey, requestCtx } = config
+  let src = null
+  let token = localStorage.getItem(tokenKey)
+  if (md5) {
+    if (isToken) {
+      src = requestCtx + `/file/api/ApiDownloadForAuthorize?md5=${md5}&token=${token}`
+    } else {
+      src = requestCtx + `/file/api/ApiDownload?md5=${md5}`
+    }
+  } else {
+    return ''
+  }
+  return src
+}
+
 // 澶勭悊鏃堕棿锛岀敤浜庢樉绀洪煶瑙嗛褰撳墠鏃堕棿
 // export function realFormatSecond(time) {
 //   let duration = parseInt(time);
@@ -462,6 +478,7 @@
   worksDataBytool,
   UpdateworksDataBytool,
   getPublicImage,
-  worksData
+  worksData,
+  getPublicFile
   // parseHtml,
 }
diff --git a/src/main.js b/src/main.js
index cb6d167..cc1c9be 100644
--- a/src/main.js
+++ b/src/main.js
@@ -5,10 +5,17 @@
 import * as ElementPlusIconsVue from "@element-plus/icons-vue";
 import router from "./router";
 import "./styles/global.less";
+import pinia from '@/store/index'
 
-
-
+import MG from "@/assets/js/middleGround/WebMiddleGroundApi.js"
+import toolClass from '@/assets/js/toolClass.js'
+import config from "@/assets/js/config.js"
 const app = createApp(App);
+
+
+app.provide('config', config)
+app.provide('MG', MG)
+app.provide('toolClass', toolClass)
 
 // 娉ㄥ唽鎵�鏈夊浘鏍�
 for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
@@ -16,6 +23,7 @@
 }
 
 // 浣跨敤 Element Plus
+app.use(pinia)
 app.use(ElementPlus);
 
 app.use(router);
diff --git a/src/plugin/axios/index.ts b/src/plugin/axios/index.ts
index 36703ce..968942c 100644
--- a/src/plugin/axios/index.ts
+++ b/src/plugin/axios/index.ts
@@ -1,85 +1,89 @@
-import axios from 'axios'
-import myConfig from '@/assets/js/config.js'
-import toolClass from '@/assets/js/toolClass.js'
-import router from '@/router'
+import axios from "axios";
+import myConfig from "@/assets/js/config.js";
+import toolClass from "@/assets/js/toolClass.js";
+import router from "@/router";
 // 鍒涘缓 axios 瀹炰緥
 const service = axios.create({
   baseURL: myConfig.requestCtx,
-  timeout: myConfig.requestTimeOut // 璇锋眰瓒呮椂鏃堕棿
-})
+  timeout: myConfig.requestTimeOut, // 璇锋眰瓒呮椂鏃堕棿
+});
 
 // 璇锋眰鎷︽埅鍣�
 service.interceptors.request.use(
   (config) => {
-    let token = localStorage.getItem(myConfig.tokenKey)
-    if (token) config.headers['Authorization'] = `bearer ${token}`
-    return config
+    let token = localStorage.getItem(myConfig.tokenKey);
+    if (token) config.headers["Authorization"] = `bearer ${token}`;
+    return config;
   },
   (error) => {
     // 鍙戦�佸け璐�
-    Promise.reject(error)
+    Promise.reject(error);
   }
-)
+);
 
 // 鍝嶅簲鎷︽埅鍣�
 service.interceptors.response.use(
   (response) => {
+    console.log(response);
     // dataAxios 鏄� axios 杩斿洖鏁版嵁涓殑 data
-    const dataAxios = response.data
-    if (typeof dataAxios.data === 'boolean') {
-      return dataAxios.data
+    const dataAxios = response.data;
+    if (typeof dataAxios.data === "boolean") {
+      return dataAxios.data;
     }
-    if (response.config.responseType == 'blob') {
-      return dataAxios
+    if (response.config.responseType == "blob") {
+      return dataAxios;
     }
-    const { success } = dataAxios
+    const { success } = dataAxios;
     if (dataAxios.currentDate) {
-      sessionStorage.currentDate = new Date(dataAxios.currentDate).getTime()
+      sessionStorage.currentDate = new Date(dataAxios.currentDate).getTime();
     }
     // 鏍规嵁 code 杩涜鍒ゆ柇
-    if (success) {
-      return dataAxios.data ? dataAxios.data : dataAxios
+    if (response.status == 200 && response.statusText == "OK") {
+      return dataAxios.data ? dataAxios.data : dataAxios;
     } else {
       // 鎻愮ず閿欒
     }
   },
   (error) => {
-    if ((error.response && error.response.status == 401) || error.code == 'ERR_NETWORK') {
-      localStorage.removeItem(myConfig.tokenKey)
-      localStorage.removeItem('jesk-userInfo')
-      localStorage.removeItem('alreadyElectronicBook')
-      localStorage.removeItem('alreadyPaperBook')
-      localStorage.removeItem('electronicBookList')
-      localStorage.removeItem('paperBookList')
-      sessionStorage.removeItem('cartNumber')
+    if (
+      (error.response && error.response.status == 401) ||
+      error.code == "ERR_NETWORK"
+    ) {
+      localStorage.removeItem(myConfig.tokenKey);
+      localStorage.removeItem("jesk-userInfo");
+      localStorage.removeItem("alreadyElectronicBook");
+      localStorage.removeItem("alreadyPaperBook");
+      localStorage.removeItem("electronicBookList");
+      localStorage.removeItem("paperBookList");
+      sessionStorage.removeItem("cartNumber");
       // router.replace({
       //   path: '/home',
       //   query: {
       //     showLogin: '1'
       //   }
       // })
-      const url = window.location.hash.slice(1)
-      console.log(url, 'url')
-      if (url.includes('showLogin=1')) {
-        router.push(url)
+      const url = window.location.hash.slice(1);
+      console.log(url, "url");
+      if (url.includes("showLogin=1")) {
+        router.push(url);
       } else {
         // router.push(url)
-        if (url.includes('?')) {
-          console.log(url.includes('?'))
-          router.push(url)
+        if (url.includes("?")) {
+          console.log(url.includes("?"));
+          router.push(url);
         } else {
-          router.push(url + '?showLogin=1')
+          router.push(url + "?showLogin=1");
         }
       }
     } else {
       if (error.response && error.response.data && error.response.data.error) {
-        console.error(error.response.data.error.msg)
+        console.error(error.response.data.error.msg);
       } else {
-        console.error('璇锋眰鍙戠敓閿欒')
+        console.error("璇锋眰鍙戠敓閿欒");
       }
     }
-    return Promise.reject(error)
+    return Promise.reject(error);
   }
-)
+);
 
-export default service
+export default service;
diff --git a/src/router/index.ts b/src/router/index.ts
index a5a6f34..6356de5 100644
--- a/src/router/index.ts
+++ b/src/router/index.ts
@@ -1,58 +1,63 @@
-import { createRouter, createWebHistory } from 'vue-router'
+import { createRouter, createWebHistory } from "vue-router";
 
 const router = createRouter({
   history: createWebHistory(),
   routes: [
     {
-      path: '/',
-      redirect: '/model'
+      path: "/",
+      redirect: "/model",
     },
     {
-      path: '/model',
-      name: 'model',
-      redirect: '/model/landerModel',
-      component: () => import('../views/model/index.vue'),
+      path: "/model",
+      name: "model",
+      redirect: "/model/landerModel",
+      component: () => import("../views/model/index.vue"),
       children: [
         {
-          path: '/model/landerModel',
-          name: 'landerModel',
-          component: () => import('../views/model/children/landerModel.vue')
+          path: "/model/landerModel",
+          name: "landerModel",
+          component: () => import("@/views/model/children/landerModel.vue"),
         },
         {
-          path: '/model/roverModel',
-          name: 'roverModel',
-          component: () => import('../views/model/children/roverModel.vue')
+          path: "/model/roverModel",
+          name: "roverModel",
+          component: () => import("../views/model/children/roverModel.vue"),
         },
         {
-          path: '/model/leapMachineModel',
-          name: 'leapMachineModel',
-          component: () => import('../views/model/children/leapMachineModel.vue')
+          path: "/model/leapMachineModel",
+          name: "leapMachineModel",
+          component: () =>
+            import("../views/model/children/leapMachineModel.vue"),
         },
-      ]
+        {
+          path: "/simulation-config",
+          name: "simulationConfig",
+          component: () => import("../views/simulation/component/Config.vue"),
+        },
+        {
+          path: "/simulation-result",
+          name: "simulationResult",
+          component: () => import("../views/simulation/component/Result.vue"),
+        },
+        {
+          path: "/simulation-test",
+          name: "simulationTest",
+          component: () => import("../views/simulation/component/test.vue"),
+        },
+        {
+          path: "/system/user",
+          name: "systemUser",
+          component: () => import("../views/system/User.vue"),
+        },
+      ],
     },
 
     {
-      path: '/simulation-config',
-      name: 'simulationConfig',
-      component: () => import('../views/simulation/Config.vue')
+      path: "/login",
+      name: "login",
+      component: () => import("../views/login/index.vue"),
     },
-    {
-      path: '/simulation-result',
-      name: 'simulationResult',
-      component: () => import('../views/simulation/Result.vue')
-    },
-    {
-      path: '/simulation-test',
-      name: 'simulationTest',
-      component: () => import('../views/simulation/test.vue')
-    },
-    {
-      path: '/system/user',
-      name: 'systemUser',
-      component: () => import('../views/system/User.vue')
-    },
+  ],
+});
 
-  ]
-})
-
-export default router 
\ No newline at end of file
+export default router;
diff --git a/src/store/index.Ts b/src/store/index.Ts
new file mode 100644
index 0000000..c207d36
--- /dev/null
+++ b/src/store/index.Ts
@@ -0,0 +1,8 @@
+import { createPinia } from "pinia";
+
+// 鍒涘缓pinia瀹炰緥
+const pinia = createPinia()
+
+export default pinia
+
+export * from './modules/user'
\ No newline at end of file
diff --git a/src/store/modules/user.ts b/src/store/modules/user.ts
new file mode 100644
index 0000000..e79654f
--- /dev/null
+++ b/src/store/modules/user.ts
@@ -0,0 +1,41 @@
+// 鐢ㄦ埛淇℃伅
+import {tokenKey,userInfoKey} from '@/assets/js/config.js'
+import { defineStore } from 'pinia'
+import { ref } from 'vue'
+interface userInfoState {
+  name:string
+}
+export const useUserStore = defineStore('user', () => {
+  const token = localStorage.getItem(tokenKey) ? ref<string>(localStorage.getItem(tokenKey) as string) : ref<string>()
+  const setToken = (value: string) => {
+    token.value = value
+    localStorage.setItem(tokenKey, value)
+  }
+  const userInfo = localStorage.getItem(userInfoKey) ? ref<userInfoState>(JSON.parse(localStorage.getItem(userInfoKey) as string)) : ref<userInfoState>()
+  const setUserInfo = (value: userInfoState) => {
+    userInfo.value = value
+    localStorage.setItem(userInfoKey, JSON.stringify(value))
+  }
+  // 閫�鍑虹櫥褰�
+  const delteUserInfo = () => {
+    token.value = '',
+    userInfo.value = { name:''}
+    localStorage.removeItem(tokenKey)
+    localStorage.removeItem(userInfoKey)
+  }
+
+  // 璐墿杞�
+  const shopCarNum = ref<number>(0)
+  const updateShopCar = (num:number) => {
+    shopCarNum.value = num
+  }
+  return {
+    token,
+    setToken,
+    userInfo,
+    setUserInfo,
+    delteUserInfo,
+    shopCarNum,
+    updateShopCar
+  }
+})
diff --git a/src/views/login/index.vue b/src/views/login/index.vue
new file mode 100644
index 0000000..cf893eb
--- /dev/null
+++ b/src/views/login/index.vue
@@ -0,0 +1,142 @@
+<template>
+  <div class="login-container">
+    <el-card class="login-box">
+      <h2 class="title">鐢ㄦ埛鐧诲綍</h2>
+      <el-form
+        :model="formData"
+        :rules="formRules"
+        ref="loginForm"
+        @submit.prevent="handleSubmit"
+      >
+        <el-form-item prop="username">
+          <el-input
+            v-model="formData.username"
+            placeholder="璇疯緭鍏ョ敤鎴峰悕"
+            prefix-icon="User"
+          />
+        </el-form-item>
+
+        <el-form-item prop="password">
+          <el-input
+            v-model="formData.password"
+            type="password"
+            placeholder="璇疯緭鍏ュ瘑鐮�"
+            prefix-icon="Lock"
+            show-password
+          />
+        </el-form-item>
+
+        <el-form-item>
+          <el-button
+            type="primary"
+            native-type="submit"
+            class="submit-btn"
+            :loading="isSubmitting"
+          >
+            绔嬪嵆鐧诲綍
+          </el-button>
+        </el-form-item>
+      </el-form>
+    </el-card>
+  </div>
+</template>
+
+<script setup lang="ts">
+import { inject, reactive, ref } from "vue";
+import { useRouter } from "vue-router";
+import { ElMessage } from "element-plus";
+import type { FormInstance, FormRules } from "element-plus";
+const MG: any = inject("MG");
+import { useUserStore } from "@/store/index";
+
+const userStore = useUserStore();
+
+interface LoginForm {
+  username: string;
+  password: string;
+}
+
+const router = useRouter();
+const isSubmitting = ref(false);
+const loginForm = ref<FormInstance>();
+
+const formData = reactive<LoginForm>({
+  username: "",
+  password: "",
+});
+
+const formRules = reactive<FormRules<LoginForm>>({
+  username: [
+    { required: true, message: "鐢ㄦ埛鍚嶄笉鑳戒负绌�", trigger: "blur" },
+    { min: 4, message: "鐢ㄦ埛鍚嶄笉鑳藉皯浜�4涓瓧绗�", trigger: "blur" },
+  ],
+  password: [
+    { required: true, message: "瀵嗙爜涓嶈兘涓虹┖", trigger: "blur" },
+    { min: 6, message: "瀵嗙爜涓嶈兘灏戜簬6涓瓧绗�", trigger: "blur" },
+  ],
+});
+
+// 鑾峰彇褰撳墠鐧诲綍鐢ㄦ埛
+const fetchUserInfo = async () => {
+  const msg = await MG.dps5.GetCurrentUser();
+  return msg;
+};
+const handleSubmit = async () => {
+  if (!loginForm.value) return;
+
+  try {
+    await loginForm.value.validate();
+
+    isSubmitting.value = true;
+    MG.dps5
+      .LoginByLoginNameAndPassword({
+        loginName: formData.username,
+        password: formData.password,
+        platform: "WebPc",
+        appId: "1051",
+      })
+      .then(async (res) => {
+        if (res.status == "Ok" && res.token) {
+          ElMessage.success("鐧诲綍鎴愬姛");
+          userStore.setToken(res.token);
+          const currentUser = await fetchUserInfo();
+          console.log(currentUser, "currentUser");
+          userStore.setUserInfo({
+            ...currentUser,
+          });
+          router.push("/model");
+        }
+      })
+      .catch(() => {});
+  } catch (error) {
+    ElMessage.error("鐢ㄦ埛鍚嶆垨瀵嗙爜閿欒");
+  } finally {
+    isSubmitting.value = false;
+  }
+};
+</script>
+
+<style scoped>
+.login-container {
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  min-height: 100vh;
+  background: #f0f2f5;
+}
+
+.login-box {
+  width: 400px;
+  padding: 20px;
+}
+
+.title {
+  text-align: center;
+  color: #333;
+  margin-bottom: 30px;
+}
+
+.submit-btn {
+  width: 100%;
+}
+</style>
diff --git a/src/views/model/children/landerModel.vue b/src/views/model/children/landerModel.vue
index e8d3bae..010d88b 100644
--- a/src/views/model/children/landerModel.vue
+++ b/src/views/model/children/landerModel.vue
@@ -1,7 +1,7 @@
 <template>
   <div class="landerBox">
     <div class="landerTopBox">
-      <el-button :icon="Plus">鏂板缓</el-button>
+      <el-button :icon="Plus" @click="dialogFormVisible = true">鏂板缓</el-button>
       <el-input
         v-model="input4"
         style="width: 300px"
@@ -23,28 +23,53 @@
         class="landerTable"
       >
         <el-table-column type="selection" width="55" />
-        <el-table-column prop="index" label="搴忓彿" width="70" />
-        <el-table-column prop="date" label="Date" width="180" />
-        <el-table-column prop="name" label="Name" width="180" />
-        <el-table-column prop="address" label="Address" />
+        <el-table-column prop="id" label="搴忓彿" width="70" />
+        <el-table-column prop="name" label="妯″瀷鍚嶇О" width="180" />
+        <el-table-column prop="joint" label="鍏宠妭鏁版嵁閲�" width="180" />
+        <el-table-column prop="isSimulate" label="鏄惁鍙豢鐪�" width="180" />
+        <el-table-column prop="createTime" label="鍒涘缓鏃堕棿" width="180" />
+        <el-table-column prop="creator" label="鍒涘缓浜�" />
       </el-table>
+      <div class="lander-pagination-block">
+        <el-pagination
+          style="width: 100%"
+          v-model:current-page="currentPage"
+          :page-size="pageSize"
+          :size="size"
+          :background="background"
+          layout="total, prev, pager, next"
+          :total="100"
+          @current-change="handleCurrentChange"
+        />
+      </div>
     </div>
-    <div class="lander-pagination-block">
-      <el-pagination
-        v-model:current-page="currentPage"
-        :page-size="pageSize"
-        :size="size"
-        :background="background"
-        layout="total, prev, pager, next"
-        :total="100"
-        @current-change="handleCurrentChange"
-      />
-    </div>
+
+    <el-dialog v-model="dialogFormVisible" title="Shipping address">
+      <el-form :model="form">
+        <el-form-item label="Promotion name" :label-width="formLabelWidth">
+          <el-input v-model="form.name" autocomplete="off" />
+        </el-form-item>
+        <el-form-item label="Zones" :label-width="formLabelWidth">
+          <el-select v-model="form.region" placeholder="Please select a zone">
+            <el-option label="Zone No.1" value="shanghai" />
+            <el-option label="Zone No.2" value="beijing" />
+          </el-select>
+        </el-form-item>
+      </el-form>
+      <template #footer>
+        <span class="dialog-footer">
+          <el-button @click="dialogFormVisible = false">Cancel</el-button>
+          <el-button type="primary" @click="dialogFormVisible = false">
+            Confirm
+          </el-button>
+        </span>
+      </template>
+    </el-dialog>
   </div>
 </template>
 
 <script setup lang="ts">
-import { ref } from "vue";
+import { reactive, ref } from "vue";
 import { Plus } from "@element-plus/icons-vue";
 import type { ComponentSize, TableInstance } from "element-plus";
 
@@ -54,53 +79,65 @@
 // 琛ㄦ牸
 const multipleTableRef = ref<TableInstance>();
 const multipleSelection = ref<any[]>([]);
-
+const dialogTableVisible = ref(false);
+const dialogFormVisible = ref(false);
+const formLabelWidth = "140px";
 // 鍒嗛〉
 const currentPage = ref(4);
 const pageSize = ref(20);
 const size = ref<ComponentSize>("default");
 const background = ref(true);
+const form = reactive({
+  name: "",
+  region: "",
+  date1: "",
+  date2: "",
+  delivery: false,
+  type: [],
+  resource: "",
+  desc: "",
+});
 
 const tableData = [
   {
     id: 1,
-    date: "2016-05-03",
+    createTime: "2016-05-03",
     name: "Tom",
     address: "No. 189, Grove St, Los Angeles",
   },
   {
     id: 2,
-    date: "2016-05-02",
+    createTime: "2016-05-02",
     name: "Tom",
     address: "No. 189, Grove St, Los Angeles",
   },
   {
     id: 3,
-    date: "2016-05-04",
+    createTime: "2016-05-04",
     name: "Tom",
     address: "No. 189, Grove St, Los Angeles",
   },
   {
     id: 4,
-    date: "2016-05-01",
+    createTime: "2016-05-01",
     name: "Tom",
     address: "No. 189, Grove St, Los Angeles",
   },
   {
     id: 5,
-    date: "2016-05-08",
+    createTime: "2016-05-08",
     name: "Tom",
     address: "No. 189, Grove St, Los Angeles",
   },
   {
     id: 6,
-    date: "2016-05-06",
+    createTime: "2016-05-06",
     name: "Tom",
     address: "No. 189, Grove St, Los Angeles",
   },
   {
     id: 7,
-    date: "2016-05-07",
+    createTime: "2016-05-07",
     name: "Tom",
     address: "No. 189, Grove St, Los Angeles",
   },
diff --git a/src/views/model/index.vue b/src/views/model/index.vue
index 7ee031c..650ad02 100644
--- a/src/views/model/index.vue
+++ b/src/views/model/index.vue
@@ -1,10 +1,72 @@
 <template>
   <div class="modelContainer">
-    <RouterView />
+    <el-config-provider :locale="zhCn">
+      <el-container class="common-layout">
+        <el-header height="60px">
+          <Header @selectMenu="handMenu" />
+        </el-header>
+        <el-container>
+          <el-aside width="240px">
+            <TreeMenu :menuItem="menuItem" />
+          </el-aside>
+          <el-main>
+            <RouterView />
+          </el-main>
+        </el-container>
+      </el-container>
+    </el-config-provider>
   </div>
 </template>
 
 <script setup lang="ts">
+import Header from "@/layout/Header.vue";
+import TreeMenu from "@/components/TreeMenu.vue";
+import { ElConfigProvider } from "element-plus";
+import zhCn from "element-plus/es/locale/lang/zh-cn";
+import { inject, onMounted, ref } from "vue";
+const MG: any = inject("MG");
+const menuItem = ref("/");
+const storeList = ref([]);
+const handMenu = (key: string) => {
+  menuItem.value = key;
+};
+
+onMounted(async () => {
+  MG.dps5.GetStoreList().then(async (res: any) => {
+    if (res && res.length > 0) {
+      const curList = res.map((item) => {
+        return {
+          ...item,
+          ...item.resourceStoreLinkDto.resourceStore,
+          storeId: item.resourceStoreLinkDto.resourceStore.id,
+        };
+      });
+      const RepositoryList = await MG.dps5.GetStoreRepositoryList({
+        storeIds: [curList[0].storeId],
+      });
+      for (let i = 0; i < curList.length; i++) {
+        const storeItem = curList[i];
+        const dataList = RepositoryList[i];
+        const datas = dataList.map((item) => {
+          return {
+            ...item.resourceStoreAndRepositoryLinkDto.repository,
+            icon: item.resourceStoreAndRepositoryLinkDto.repository.icon,
+            storeId: item.resourceStoreAndRepositoryLinkDto.store.id,
+            linkId: item.resourceStoreAndRepositoryLinkDto.id,
+            linkType: item.resourceStoreAndRepositoryLinkDto.linkType,
+            linkOrder: item.resourceStoreAndRepositoryLinkDto.order,
+            childrenCount:
+              item.resourceStoreAndRepositoryLinkDto.repository.rootChannel
+                .childrenCount,
+          };
+        });
+        storeItem.repositoryList = datas;
+      }
+      console.log(curList, "curList");
+      storeList.value = curList;
+    }
+  });
+});
 </script>
 
 <style lang="less" scoped>
@@ -13,4 +75,4 @@
   height: 100%;
   background-color: #fff;
 }
-</style> 
\ No newline at end of file
+</style>
diff --git a/src/views/simulation/Config.vue b/src/views/simulation/component/Config.vue
similarity index 100%
rename from src/views/simulation/Config.vue
rename to src/views/simulation/component/Config.vue
diff --git a/src/views/simulation/Result.vue b/src/views/simulation/component/Result.vue
similarity index 100%
rename from src/views/simulation/Result.vue
rename to src/views/simulation/component/Result.vue
diff --git a/src/views/simulation/Test.vue b/src/views/simulation/component/Test.vue
similarity index 100%
rename from src/views/simulation/Test.vue
rename to src/views/simulation/component/Test.vue
diff --git a/src/views/simulation/index.vue b/src/views/simulation/index.vue
new file mode 100644
index 0000000..5ccdeaf
--- /dev/null
+++ b/src/views/simulation/index.vue
@@ -0,0 +1,31 @@
+<template>
+  <el-config-provider :locale="zhCn">
+    <el-container class="common-layout">
+      <el-header height="60px">
+        <Header @selectMenu="handMenu" />
+      </el-header>
+      <el-container>
+        <el-aside width="240px">
+          <TreeMenu :menuItem="menuItem" />
+        </el-aside>
+        <el-main>
+          <RouterView />
+        </el-main>
+      </el-container>
+    </el-container>
+  </el-config-provider>
+</template>
+
+<script setup lang="ts">
+import Header from "@/layout/Header.vue";
+import TreeMenu from "@/components/TreeMenu.vue";
+import { ElConfigProvider } from "element-plus";
+import zhCn from "element-plus/es/locale/lang/zh-cn";
+import { ref } from "vue";
+const menuItem = ref("/");
+const handMenu = (key: string) => {
+  menuItem.value = key;
+};
+</script>
+
+<style lang="less" scoped></style>

--
Gitblit v1.9.1