diff --git a/README.md b/README.md index 2a5ff70..e69de29 100644 --- a/README.md +++ b/README.md @@ -1,109 +0,0 @@ -

- logo -

-

RuoYi v3.8.8

-

基于SpringBoot+Vue3前后端分离的Java快速开发框架

-

- - - -

- -## 平台简介 - -* 本仓库为前端技术栈 [Vue3](https://v3.cn.vuejs.org) + [Element Plus](https://element-plus.org/zh-CN) + [Vite](https://cn.vitejs.dev) 版本。 -* 配套后端代码仓库地址[RuoYi-Vue](https://gitee.com/y_project/RuoYi-Vue) 或 [RuoYi-Vue-fast](https://github.com/yangzongzhuan/RuoYi-Vue-fast) 版本。 -* 前端技术栈([Vue2](https://cn.vuejs.org) + [Element](https://github.com/ElemeFE/element) + [Vue CLI](https://cli.vuejs.org/zh)),请移步[RuoYi-Vue](https://gitee.com/y_project/RuoYi-Vue/tree/master/ruoyi-ui)。 -* 阿里云折扣场:[点我进入](http://aly.ruoyi.vip),腾讯云秒杀场:[点我进入](http://txy.ruoyi.vip)   -* 阿里云优惠券:[点我领取](https://www.aliyun.com/minisite/goods?userCode=brki8iof&share_source=copy_link),腾讯云优惠券:[点我领取](https://cloud.tencent.com/redirect.php?redirect=1025&cps_key=198c8df2ed259157187173bc7f4f32fd&from=console)   - -## 前端运行 - -```bash -# 克隆项目 -git clone https://github.com/yangzongzhuan/RuoYi-Vue3.git - -# 进入项目目录 -cd RuoYi-Vue3 - -# 安装依赖 -yarn --registry=https://registry.npmmirror.com - -# 启动服务 -yarn dev - -# 构建测试环境 yarn build:stage -# 构建生产环境 yarn build:prod -# 前端访问地址 http://localhost:80 -``` - -## 内置功能 - -1. 用户管理:用户是系统操作者,该功能主要完成系统用户配置。 -2. 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。 -3. 岗位管理:配置系统用户所属担任职务。 -4. 菜单管理:配置系统菜单,操作权限,按钮权限标识等。 -5. 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。 -6. 字典管理:对系统中经常使用的一些较为固定的数据进行维护。 -7. 参数管理:对系统动态配置常用参数。 -8. 通知公告:系统通知公告信息发布维护。 -9. 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。 -10. 登录日志:系统登录日志记录查询包含登录异常。 -11. 在线用户:当前系统中活跃用户状态监控。 -12. 定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。 -13. 代码生成:前后端代码的生成(java、html、xml、sql)支持CRUD下载 。 -14. 系统接口:根据业务代码自动生成相关的api接口文档。 -15. 服务监控:监视当前系统CPU、内存、磁盘、堆栈等相关信息。 -16. 缓存监控:对系统的缓存信息查询,命令统计等。 -17. 在线构建器:拖动表单元素生成相应的HTML代码。 -18. 连接池监视:监视当前系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈。 - -## 在线体验 - -- admin/admin123 -- 陆陆续续收到一些打赏,为了更好的体验已用于演示服务器升级。谢谢各位小伙伴。 - -演示地址:http://vue.ruoyi.vip -文档地址:http://doc.ruoyi.vip - -## 演示图 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- - -## 若依前后端分离交流群 - -QQ群: [![加入QQ群](https://img.shields.io/badge/已满-937441-blue.svg)](https://jq.qq.com/?_wv=1027&k=5bVB1og) [![加入QQ群](https://img.shields.io/badge/已满-887144332-blue.svg)](https://jq.qq.com/?_wv=1027&k=5eiA4DH) [![加入QQ群](https://img.shields.io/badge/已满-180251782-blue.svg)](https://jq.qq.com/?_wv=1027&k=5AxMKlC) [![加入QQ群](https://img.shields.io/badge/已满-104180207-blue.svg)](https://jq.qq.com/?_wv=1027&k=51G72yr) [![加入QQ群](https://img.shields.io/badge/已满-186866453-blue.svg)](https://jq.qq.com/?_wv=1027&k=VvjN2nvu) [![加入QQ群](https://img.shields.io/badge/已满-201396349-blue.svg)](https://jq.qq.com/?_wv=1027&k=5vYAqA05) [![加入QQ群](https://img.shields.io/badge/已满-101456076-blue.svg)](https://jq.qq.com/?_wv=1027&k=kOIINEb5) [![加入QQ群](https://img.shields.io/badge/已满-101539465-blue.svg)](https://jq.qq.com/?_wv=1027&k=UKtX5jhs) [![加入QQ群](https://img.shields.io/badge/已满-264312783-blue.svg)](https://jq.qq.com/?_wv=1027&k=EI9an8lJ) [![加入QQ群](https://img.shields.io/badge/已满-167385320-blue.svg)](https://jq.qq.com/?_wv=1027&k=SWCtLnMz) [![加入QQ群](https://img.shields.io/badge/已满-104748341-blue.svg)](https://jq.qq.com/?_wv=1027&k=96Dkdq0k) [![加入QQ群](https://img.shields.io/badge/已满-160110482-blue.svg)](https://jq.qq.com/?_wv=1027&k=0fsNiYZt) [![加入QQ群](https://img.shields.io/badge/已满-170801498-blue.svg)](https://jq.qq.com/?_wv=1027&k=7xw4xUG1) [![加入QQ群](https://img.shields.io/badge/已满-108482800-blue.svg)](https://jq.qq.com/?_wv=1027&k=eCx8eyoJ) [![加入QQ群](https://img.shields.io/badge/已满-101046199-blue.svg)](https://jq.qq.com/?_wv=1027&k=SpyH2875) [![加入QQ群](https://img.shields.io/badge/已满-136919097-blue.svg)](https://jq.qq.com/?_wv=1027&k=tKEt51dz) [![加入QQ群](https://img.shields.io/badge/已满-143961921-blue.svg)](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=0vBbSb0ztbBgVtn3kJS-Q4HUNYwip89G&authKey=8irq5PhutrZmWIvsUsklBxhj57l%2F1nOZqjzigkXZVoZE451GG4JHPOqW7AW6cf0T&noverify=0&group_code=143961921) [![加入QQ群](https://img.shields.io/badge/已满-174951577-blue.svg)](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=ZFAPAbp09S2ltvwrJzp7wGlbopsc0rwi&authKey=HB2cxpxP2yspk%2Bo3WKTBfktRCccVkU26cgi5B16u0KcAYrVu7sBaE7XSEqmMdFQp&noverify=0&group_code=174951577) [![加入QQ群](https://img.shields.io/badge/已满-161281055-blue.svg)](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=Fn2aF5IHpwsy8j6VlalNJK6qbwFLFHat&authKey=uyIT%2B97x2AXj3odyXpsSpVaPMC%2Bidw0LxG5MAtEqlrcBcWJUA%2FeS43rsF1Tg7IRJ&noverify=0&group_code=161281055) [![加入QQ群](https://img.shields.io/badge/已满-138988063-blue.svg)](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=XIzkm_mV2xTsUtFxo63bmicYoDBA6Ifm&authKey=dDW%2F4qsmw3x9govoZY9w%2FoWAoC4wbHqGal%2BbqLzoS6VBarU8EBptIgPKN%2FviyC8j&noverify=0&group_code=138988063) [![加入QQ群](https://img.shields.io/badge/151450850-blue.svg)](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=DkugnCg68PevlycJSKSwjhFqfIgrWWwR&authKey=pR1Pa5lPIeGF%2FFtIk6d%2FGB5qFi0EdvyErtpQXULzo03zbhopBHLWcuqdpwY241R%2F&noverify=0&group_code=151450850) 点击按钮入群。 \ No newline at end of file diff --git a/package.json b/package.json index 97f37c5..c265d92 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "@iconify-json/carbon": "^1.2.5", "@iconify/vue": "^4.2.0", "@vitejs/plugin-vue": "5.0.5", - "sass": "1.77.5", + "sass-embedded": "^1.83.4", "unplugin-auto-import": "0.17.6", "unplugin-vue-setup-extend-plus": "1.0.1", "vite": "5.3.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ab7ec20..1a45423 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -52,7 +52,7 @@ importers: version: 3.1.5 unocss: specifier: ^0.65.1 - version: 0.65.1(postcss@5.2.18)(rollup@4.28.0)(vite@5.3.2(@types/node@22.10.1)(sass@1.77.5))(vue@3.4.31) + version: 0.65.1(postcss@5.2.18)(rollup@4.28.0)(vite@5.3.2(@types/node@22.10.1)(sass@1.79.5))(vue@3.4.31) vue: specifier: 3.4.31 version: 3.4.31 @@ -74,10 +74,13 @@ importers: version: 4.2.0(vue@3.4.31) '@vitejs/plugin-vue': specifier: 5.0.5 - version: 5.0.5(vite@5.3.2(@types/node@22.10.1)(sass@1.77.5))(vue@3.4.31) + version: 5.0.5(vite@5.3.2(@types/node@22.10.1)(sass@1.79.5))(vue@3.4.31) sass: - specifier: 1.77.5 - version: 1.77.5 + specifier: 1.79.5 + version: 1.79.5 + sass-embedded: + specifier: ^1.83.4 + version: 1.83.4 unplugin-auto-import: specifier: 0.17.6 version: 0.17.6(@vueuse/core@10.11.0(vue@3.4.31))(rollup@4.28.0) @@ -86,13 +89,13 @@ importers: version: 1.0.1 vite: specifier: 5.3.2 - version: 5.3.2(@types/node@22.10.1)(sass@1.77.5) + version: 5.3.2(@types/node@22.10.1)(sass@1.79.5) vite-plugin-compression: specifier: 0.5.1 - version: 0.5.1(vite@5.3.2(@types/node@22.10.1)(sass@1.77.5)) + version: 0.5.1(vite@5.3.2(@types/node@22.10.1)(sass@1.79.5)) vite-plugin-svg-icons: specifier: 2.0.1 - version: 2.0.1(vite@5.3.2(@types/node@22.10.1)(sass@1.77.5)) + version: 2.0.1(vite@5.3.2(@types/node@22.10.1)(sass@1.79.5)) packages: @@ -123,6 +126,9 @@ packages: resolution: {integrity: sha512-vN5p+1kl59GVKMvTHt55NzzmYVxprfJD+ql7U9NFIfKCBkYE55LYtS+WtPlaYOyzydrKI8Nezd+aZextrd+FMA==} engines: {node: '>=6.9.0'} + '@bufbuild/protobuf@2.2.3': + resolution: {integrity: sha512-tFQoXHJdkEOSwj5tRIZSPNUuXK3RaR7T1nUrPgbYX1pUbvqqaaZAsfo+NXBPsz5rZMSKVFrgK1WL8Q/MSLvprg==} + '@ctrl/tinycolor@3.6.1': resolution: {integrity: sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==} engines: {node: '>=10'} @@ -470,6 +476,94 @@ packages: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==, tarball: https://r2.cnpmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz} engines: {node: '>= 8'} + '@parcel/watcher-android-arm64@2.5.0': + resolution: {integrity: sha512-qlX4eS28bUcQCdribHkg/herLe+0A9RyYC+mm2PXpncit8z5b3nSqGVzMNR3CmtAOgRutiZ02eIJJgP/b1iEFQ==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [android] + + '@parcel/watcher-darwin-arm64@2.5.0': + resolution: {integrity: sha512-hyZ3TANnzGfLpRA2s/4U1kbw2ZI4qGxaRJbBH2DCSREFfubMswheh8TeiC1sGZ3z2jUf3s37P0BBlrD3sjVTUw==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [darwin] + + '@parcel/watcher-darwin-x64@2.5.0': + resolution: {integrity: sha512-9rhlwd78saKf18fT869/poydQK8YqlU26TMiNg7AIu7eBp9adqbJZqmdFOsbZ5cnLp5XvRo9wcFmNHgHdWaGYA==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [darwin] + + '@parcel/watcher-freebsd-x64@2.5.0': + resolution: {integrity: sha512-syvfhZzyM8kErg3VF0xpV8dixJ+RzbUaaGaeb7uDuz0D3FK97/mZ5AJQ3XNnDsXX7KkFNtyQyFrXZzQIcN49Tw==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [freebsd] + + '@parcel/watcher-linux-arm-glibc@2.5.0': + resolution: {integrity: sha512-0VQY1K35DQET3dVYWpOaPFecqOT9dbuCfzjxoQyif1Wc574t3kOSkKevULddcR9znz1TcklCE7Ht6NIxjvTqLA==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + libc: [glibc] + + '@parcel/watcher-linux-arm-musl@2.5.0': + resolution: {integrity: sha512-6uHywSIzz8+vi2lAzFeltnYbdHsDm3iIB57d4g5oaB9vKwjb6N6dRIgZMujw4nm5r6v9/BQH0noq6DzHrqr2pA==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + libc: [musl] + + '@parcel/watcher-linux-arm64-glibc@2.5.0': + resolution: {integrity: sha512-BfNjXwZKxBy4WibDb/LDCriWSKLz+jJRL3cM/DllnHH5QUyoiUNEp3GmL80ZqxeumoADfCCP19+qiYiC8gUBjA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + libc: [glibc] + + '@parcel/watcher-linux-arm64-musl@2.5.0': + resolution: {integrity: sha512-S1qARKOphxfiBEkwLUbHjCY9BWPdWnW9j7f7Hb2jPplu8UZ3nes7zpPOW9bkLbHRvWM0WDTsjdOTUgW0xLBN1Q==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + libc: [musl] + + '@parcel/watcher-linux-x64-glibc@2.5.0': + resolution: {integrity: sha512-d9AOkusyXARkFD66S6zlGXyzx5RvY+chTP9Jp0ypSTC9d4lzyRs9ovGf/80VCxjKddcUvnsGwCHWuF2EoPgWjw==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + libc: [glibc] + + '@parcel/watcher-linux-x64-musl@2.5.0': + resolution: {integrity: sha512-iqOC+GoTDoFyk/VYSFHwjHhYrk8bljW6zOhPuhi5t9ulqiYq1togGJB5e3PwYVFFfeVgc6pbz3JdQyDoBszVaA==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + libc: [musl] + + '@parcel/watcher-win32-arm64@2.5.0': + resolution: {integrity: sha512-twtft1d+JRNkM5YbmexfcH/N4znDtjgysFaV9zvZmmJezQsKpkfLYJ+JFV3uygugK6AtIM2oADPkB2AdhBrNig==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [win32] + + '@parcel/watcher-win32-ia32@2.5.0': + resolution: {integrity: sha512-+rgpsNRKwo8A53elqbbHXdOMtY/tAtTzManTWShB5Kk54N8Q9mzNWV7tV+IbGueCbcj826MfWGU3mprWtuf1TA==} + engines: {node: '>= 10.0.0'} + cpu: [ia32] + os: [win32] + + '@parcel/watcher-win32-x64@2.5.0': + resolution: {integrity: sha512-lPrxve92zEHdgeff3aiu4gDOIt4u7sJYha6wbdEZDCDUhtjTsOMiaJzG5lMY4GkWH8p0fMmO2Ppq5G5XXG+DQw==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [win32] + + '@parcel/watcher@2.5.0': + resolution: {integrity: sha512-i0GV1yJnm2n3Yq1qw6QrUrd/LI9bE8WEBOTtOkpCXHHdyN3TAGgqAK/DAT05z4fq2x04cARXt2pDmjWjL92iTQ==} + engines: {node: '>= 10.0.0'} + '@polka/url@1.0.0-next.28': resolution: {integrity: sha512-8LduaNlMZGwdZ6qWrKlfa+2M4gahzFkprZiAt2TF8uS0qQgBizKXpXURqvTJ4WtmupWxaLqjRb2UCTe72mu+Aw==} @@ -875,6 +969,9 @@ packages: resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} engines: {node: '>=8'} + buffer-builder@0.2.0: + resolution: {integrity: sha512-7VPMEPuYznPSoR21NE1zvd2Xna6c/CloiZCfcMXR1Jny6PjX0N4Nsa38zcBFo/FMK+BlA+FLKbJCQ0i2yxp+Xg==} + bundle-require@5.0.0: resolution: {integrity: sha512-GuziW3fSSmopcx4KRymQEJVbZUfqlCqcq7dvs6TYwKRZiegK/2buMxQTPs6MGlNv50wms1699qYO54R8XfRX4w==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -905,6 +1002,10 @@ packages: resolution: {integrity: sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==} engines: {node: '>= 8.10.0'} + chokidar@4.0.3: + resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} + engines: {node: '>= 14.16.0'} + class-utils@0.3.6: resolution: {integrity: sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==, tarball: https://r2.cnpmjs.org/class-utils/-/class-utils-0.3.6.tgz} engines: {node: '>=0.10.0'} @@ -927,6 +1028,9 @@ packages: colorette@2.0.20: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + colorjs.io@0.5.2: + resolution: {integrity: sha512-twmVoizEW7ylZSN32OgKdXRmo1qg+wT5/6C3xu5b9QsWzSFAhHLn2xd8ro0diCsKfCj1RdaTP/nrcW+vAoQPIw==} + combined-stream@1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==, tarball: https://r2.cnpmjs.org/combined-stream/-/combined-stream-1.0.8.tgz} engines: {node: '>= 0.8'} @@ -1045,6 +1149,11 @@ packages: destr@2.0.3: resolution: {integrity: sha512-2N3BOUU4gYMpTP24s5rF5iP7BDr7uNTCs4ozw3kf/eKfvWSIu93GEBi5m427YoyJoeOzQ5smuu4nNAPGb8idSQ==} + detect-libc@1.0.3: + resolution: {integrity: sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==} + engines: {node: '>=0.10'} + hasBin: true + dom-serializer@0.2.2: resolution: {integrity: sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==, tarball: https://r2.cnpmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz} @@ -1350,6 +1459,9 @@ packages: immutable@4.3.7: resolution: {integrity: sha512-1hqclzwYwjRDFLjcFxOM5AYkkG0rpFPpr1RLPMEuGczoS7YA8gLhy8SWXYRAA/XwfEHpfo3cw5JGioS32fnMRw==} + immutable@5.0.3: + resolution: {integrity: sha512-P8IdPQHq3lA1xVeBRi5VPqUm5HDgKnx0Ru51wZz5mjxHr5n3RWhjIpOFU7ybkUxfB+5IToy+OLaHYDBIWsv+uw==} + importx@0.4.4: resolution: {integrity: sha512-Lo1pukzAREqrBnnHC+tj+lreMTAvyxtkKsMxLY8H15M/bvLl54p3YuoTI70Tz7Il0AsgSlD7Lrk/FaApRcBL7w==} @@ -1381,7 +1493,7 @@ packages: engines: {node: '>= 0.4'} is-binary-path@2.1.0: - resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==, tarball: https://r2.cnpmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz} + resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} is-boolean-object@1.2.0: @@ -1679,11 +1791,14 @@ packages: resolution: {integrity: sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==, tarball: https://r2.cnpmjs.org/nanomatch/-/nanomatch-1.2.13.tgz} engines: {node: '>=0.10.0'} + node-addon-api@7.1.1: + resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} + node-fetch-native@1.6.4: resolution: {integrity: sha512-IhOigYzAKHd244OC0JIMIUrjzctirCmPkaIfhDeGcEETWof5zKYUW7e7MYvChGWh/4CJeXEgsRyGzuF334rOOQ==} normalize-path@3.0.0: - resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==, tarball: https://r2.cnpmjs.org/normalize-path/-/normalize-path-3.0.0.tgz} + resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} normalize-wheel-es@1.2.0: @@ -1838,9 +1953,13 @@ packages: engines: {node: '>= 6'} readdirp@3.6.0: - resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==, tarball: https://r2.cnpmjs.org/readdirp/-/readdirp-3.6.0.tgz} + resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} + readdirp@4.1.1: + resolution: {integrity: sha512-h80JrZu/MHUZCyHu5ciuoI0+WxsCxzxJTILn6Fs8rxSnFPh+UVHYfeIxK1nVGugMqkfC4vJcBOYbkfkwYK0+gw==} + engines: {node: '>= 14.18.0'} + reflect.getprototypeof@1.0.7: resolution: {integrity: sha512-bMvFGIUKlc/eSfXNX+aZ+EL95/EgZzuwA0OBPTbZZDEJw/0AkentjMuM1oiRfwHrshqk4RzdgiTg5CcDalXN5g==} engines: {node: '>= 0.4'} @@ -1884,6 +2003,9 @@ packages: run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==, tarball: https://r2.cnpmjs.org/run-parallel/-/run-parallel-1.2.0.tgz} + rxjs@7.8.1: + resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + safe-array-concat@1.1.2: resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} engines: {node: '>=0.4'} @@ -1898,8 +2020,133 @@ packages: safe-regex@1.1.0: resolution: {integrity: sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg==, tarball: https://r2.cnpmjs.org/safe-regex/-/safe-regex-1.1.0.tgz} - sass@1.77.5: - resolution: {integrity: sha512-oDfX1mukIlxacPdQqNb6mV2tVCrnE+P3nVYioy72V5tlk56CPNcO4TCuFcaCRKKfJ1M3lH95CleRS+dVKL2qMg==} + sass-embedded-android-arm64@1.83.4: + resolution: {integrity: sha512-tgX4FzmbVqnQmD67ZxQDvI+qFNABrboOQgwsG05E5bA/US42zGajW9AxpECJYiMXVOHmg+d81ICbjb0fsVHskw==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [android] + + sass-embedded-android-arm@1.83.4: + resolution: {integrity: sha512-9Z4pJAOgEkXa3VDY/o+U6l5XvV0mZTJcSl0l/mSPHihjAHSpLYnOW6+KOWeM8dxqrsqTYcd6COzhanI/a++5Gw==} + engines: {node: '>=14.0.0'} + cpu: [arm] + os: [android] + + sass-embedded-android-ia32@1.83.4: + resolution: {integrity: sha512-RsFOziFqPcfZXdFRULC4Ayzy9aK6R6FwQ411broCjlOBX+b0gurjRadkue3cfUEUR5mmy0KeCbp7zVKPLTK+5Q==} + engines: {node: '>=14.0.0'} + cpu: [ia32] + os: [android] + + sass-embedded-android-riscv64@1.83.4: + resolution: {integrity: sha512-EHwh0nmQarBBrMRU928eTZkFGx19k/XW2YwbPR4gBVdWLkbTgCA5aGe8hTE6/1zStyx++3nDGvTZ78+b/VvvLg==} + engines: {node: '>=14.0.0'} + cpu: [riscv64] + os: [android] + + sass-embedded-android-x64@1.83.4: + resolution: {integrity: sha512-0PgQNuPWYy1jEOEPDVsV89KfqOsMLIp9CSbjBY7jRcwRhyVAcigqrUG6bDeNtojHUYKA1kU+Eh/85WxOHUOgBw==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [android] + + sass-embedded-darwin-arm64@1.83.4: + resolution: {integrity: sha512-rp2ywymWc3nymnSnAFG5R/8hvxWCsuhK3wOnD10IDlmNB7o4rzKby1c+2ZfpQGowlYGWsWWTgz8FW2qzmZsQRw==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [darwin] + + sass-embedded-darwin-x64@1.83.4: + resolution: {integrity: sha512-kLkN2lXz9PCgGfDS8Ev5YVcl/V2173L6379en/CaFuJJi7WiyPgBymW7hOmfCt4uO4R1y7CP2Uc08DRtZsBlAA==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [darwin] + + sass-embedded-linux-arm64@1.83.4: + resolution: {integrity: sha512-E0zjsZX2HgESwyqw31EHtI39DKa7RgK7nvIhIRco1d0QEw227WnoR9pjH3M/ZQy4gQj3GKilOFHM5Krs/omeIA==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [linux] + + sass-embedded-linux-arm@1.83.4: + resolution: {integrity: sha512-nL90ryxX2lNmFucr9jYUyHHx21AoAgdCL1O5Ltx2rKg2xTdytAGHYo2MT5S0LIeKLa/yKP/hjuSvrbICYNDvtA==} + engines: {node: '>=14.0.0'} + cpu: [arm] + os: [linux] + + sass-embedded-linux-ia32@1.83.4: + resolution: {integrity: sha512-ew5HpchSzgAYbQoriRh8QhlWn5Kw2nQ2jHoV9YLwGKe3fwwOWA0KDedssvDv7FWnY/FCqXyymhLd6Bxae4Xquw==} + engines: {node: '>=14.0.0'} + cpu: [ia32] + os: [linux] + + sass-embedded-linux-musl-arm64@1.83.4: + resolution: {integrity: sha512-IzMgalf6MZOxgp4AVCgsaWAFDP/IVWOrgVXxkyhw29fyAEoSWBJH4k87wyPhEtxSuzVHLxKNbc8k3UzdWmlBFg==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [linux] + + sass-embedded-linux-musl-arm@1.83.4: + resolution: {integrity: sha512-0RrJRwMrmm+gG0VOB5b5Cjs7Sd+lhqpQJa6EJNEaZHljJokEfpE5GejZsGMRMIQLxEvVphZnnxl6sonCGFE/QQ==} + engines: {node: '>=14.0.0'} + cpu: [arm] + os: [linux] + + sass-embedded-linux-musl-ia32@1.83.4: + resolution: {integrity: sha512-LLb4lYbcxPzX4UaJymYXC+WwokxUlfTJEFUv5VF0OTuSsHAGNRs/rslPtzVBTvMeG9TtlOQDhku1F7G6iaDotA==} + engines: {node: '>=14.0.0'} + cpu: [ia32] + os: [linux] + + sass-embedded-linux-musl-riscv64@1.83.4: + resolution: {integrity: sha512-zoKlPzD5Z13HKin1UGR74QkEy+kZEk2AkGX5RelRG494mi+IWwRuWCppXIovor9+BQb9eDWPYPoMVahwN5F7VA==} + engines: {node: '>=14.0.0'} + cpu: [riscv64] + os: [linux] + + sass-embedded-linux-musl-x64@1.83.4: + resolution: {integrity: sha512-hB8+/PYhfEf2zTIcidO5Bpof9trK6WJjZ4T8g2MrxQh8REVtdPcgIkoxczRynqybf9+fbqbUwzXtiUao2GV+vQ==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [linux] + + sass-embedded-linux-riscv64@1.83.4: + resolution: {integrity: sha512-83fL4n+oeDJ0Y4KjASmZ9jHS1Vl9ESVQYHMhJE0i4xDi/P3BNarm2rsKljq/QtrwGpbqwn8ujzOu7DsNCMDSHA==} + engines: {node: '>=14.0.0'} + cpu: [riscv64] + os: [linux] + + sass-embedded-linux-x64@1.83.4: + resolution: {integrity: sha512-NlnGdvCmTD5PK+LKXlK3sAuxOgbRIEoZfnHvxd157imCm/s2SYF/R28D0DAAjEViyI8DovIWghgbcqwuertXsA==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [linux] + + sass-embedded-win32-arm64@1.83.4: + resolution: {integrity: sha512-J2BFKrEaeSrVazU2qTjyQdAk+MvbzJeTuCET0uAJEXSKtvQ3AzxvzndS7LqkDPbF32eXAHLw8GVpwcBwKbB3Uw==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [win32] + + sass-embedded-win32-ia32@1.83.4: + resolution: {integrity: sha512-uPAe9T/5sANFhJS5dcfAOhOJy8/l2TRYG4r+UO3Wp4yhqbN7bggPvY9c7zMYS0OC8tU/bCvfYUDFHYMCl91FgA==} + engines: {node: '>=14.0.0'} + cpu: [ia32] + os: [win32] + + sass-embedded-win32-x64@1.83.4: + resolution: {integrity: sha512-C9fkDY0jKITdJFij4UbfPFswxoXN9O/Dr79v17fJnstVwtUojzVJWKHUXvF0Zg2LIR7TCc4ju3adejKFxj7ueA==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [win32] + + sass-embedded@1.83.4: + resolution: {integrity: sha512-Hf2burRA/y5PGxsg6jB9UpoK/xZ6g/pgrkOcdl6j+rRg1Zj8XhGKZ1MTysZGtTPUUmiiErqzkP5+Kzp95yv9GQ==} + engines: {node: '>=16.0.0'} + hasBin: true + + sass@1.79.5: + resolution: {integrity: sha512-W1h5kp6bdhqFh2tk3DsI771MoEJjvrSY/2ihJRJS4pjIyfJCw0nTsxqhnrUzaLMOJjFchj8rOvraI/YUVjtx5g==} engines: {node: '>=14.0.0'} hasBin: true @@ -2014,6 +2261,10 @@ packages: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==, tarball: https://r2.cnpmjs.org/supports-color/-/supports-color-7.2.0.tgz} engines: {node: '>=8'} + supports-color@8.1.1: + resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} + engines: {node: '>=10'} + svg-baker@1.7.0: resolution: {integrity: sha512-nibslMbkXOIkqKVrfcncwha45f97fGuAOn1G99YwnwTj8kF9YiM6XexPcUso97NxOm6GsP0SIvYVIosBis1xLg==, tarball: https://r2.cnpmjs.org/svg-baker/-/svg-baker-1.7.0.tgz} @@ -2022,6 +2273,14 @@ packages: engines: {node: '>=10.13.0'} hasBin: true + sync-child-process@1.0.2: + resolution: {integrity: sha512-8lD+t2KrrScJ/7KXCSyfhT3/hRq78rC0wBFqNJXv3mZyn6hW2ypM05JmlSvtqRbeq6jqA94oHbxAr2vYsJ8vDA==} + engines: {node: '>=16.0.0'} + + sync-message-port@1.1.3: + resolution: {integrity: sha512-GTt8rSKje5FilG+wEdfCkOcLL7LWqpMlr2c3LRuKt/YXxcJ52aGSbGBAdI4L3aaqfrBt6y711El53ItyH1NWzg==} + engines: {node: '>=16.0.0'} + tinyexec@0.3.1: resolution: {integrity: sha512-WiCJLEECkO18gwqIp6+hJg0//p23HXp4S+gGtAKu3mI2F2/sXC4FvHvXvB0zJVVaTPhx1/tOwdbRsa1sOBIKqQ==} @@ -2150,6 +2409,9 @@ packages: util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==, tarball: https://r2.cnpmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz} + varint@6.0.0: + resolution: {integrity: sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==} + vary@1.1.2: resolution: {integrity: sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==, tarball: https://r2.cnpmjs.org/vary/-/vary-1.1.2.tgz} engines: {node: '>= 0.8'} @@ -2273,6 +2535,8 @@ snapshots: '@babel/helper-string-parser': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 + '@bufbuild/protobuf@2.2.3': {} + '@ctrl/tinycolor@3.6.1': {} '@element-plus/icons-vue@2.3.1(vue@3.4.31)': @@ -2487,6 +2751,66 @@ snapshots: '@nodelib/fs.scandir': 2.1.5 fastq: 1.17.1 + '@parcel/watcher-android-arm64@2.5.0': + optional: true + + '@parcel/watcher-darwin-arm64@2.5.0': + optional: true + + '@parcel/watcher-darwin-x64@2.5.0': + optional: true + + '@parcel/watcher-freebsd-x64@2.5.0': + optional: true + + '@parcel/watcher-linux-arm-glibc@2.5.0': + optional: true + + '@parcel/watcher-linux-arm-musl@2.5.0': + optional: true + + '@parcel/watcher-linux-arm64-glibc@2.5.0': + optional: true + + '@parcel/watcher-linux-arm64-musl@2.5.0': + optional: true + + '@parcel/watcher-linux-x64-glibc@2.5.0': + optional: true + + '@parcel/watcher-linux-x64-musl@2.5.0': + optional: true + + '@parcel/watcher-win32-arm64@2.5.0': + optional: true + + '@parcel/watcher-win32-ia32@2.5.0': + optional: true + + '@parcel/watcher-win32-x64@2.5.0': + optional: true + + '@parcel/watcher@2.5.0': + dependencies: + detect-libc: 1.0.3 + is-glob: 4.0.3 + micromatch: 4.0.8 + node-addon-api: 7.1.1 + optionalDependencies: + '@parcel/watcher-android-arm64': 2.5.0 + '@parcel/watcher-darwin-arm64': 2.5.0 + '@parcel/watcher-darwin-x64': 2.5.0 + '@parcel/watcher-freebsd-x64': 2.5.0 + '@parcel/watcher-linux-arm-glibc': 2.5.0 + '@parcel/watcher-linux-arm-musl': 2.5.0 + '@parcel/watcher-linux-arm64-glibc': 2.5.0 + '@parcel/watcher-linux-arm64-musl': 2.5.0 + '@parcel/watcher-linux-x64-glibc': 2.5.0 + '@parcel/watcher-linux-x64-musl': 2.5.0 + '@parcel/watcher-win32-arm64': 2.5.0 + '@parcel/watcher-win32-ia32': 2.5.0 + '@parcel/watcher-win32-x64': 2.5.0 + '@polka/url@1.0.0-next.28': {} '@pureadmin/utils@2.5.0(echarts@5.5.1)(vue@3.4.31)': @@ -2580,13 +2904,13 @@ snapshots: '@types/web-bluetooth@0.0.20': {} - '@unocss/astro@0.65.1(rollup@4.28.0)(vite@5.3.2(@types/node@22.10.1)(sass@1.77.5))(vue@3.4.31)': + '@unocss/astro@0.65.1(rollup@4.28.0)(vite@5.3.2(@types/node@22.10.1)(sass@1.79.5))(vue@3.4.31)': dependencies: '@unocss/core': 0.65.1 '@unocss/reset': 0.65.1 - '@unocss/vite': 0.65.1(rollup@4.28.0)(vite@5.3.2(@types/node@22.10.1)(sass@1.77.5))(vue@3.4.31) + '@unocss/vite': 0.65.1(rollup@4.28.0)(vite@5.3.2(@types/node@22.10.1)(sass@1.79.5))(vue@3.4.31) optionalDependencies: - vite: 5.3.2(@types/node@22.10.1)(sass@1.77.5) + vite: 5.3.2(@types/node@22.10.1)(sass@1.79.5) transitivePeerDependencies: - rollup - supports-color @@ -2715,7 +3039,7 @@ snapshots: dependencies: '@unocss/core': 0.65.1 - '@unocss/vite@0.65.1(rollup@4.28.0)(vite@5.3.2(@types/node@22.10.1)(sass@1.77.5))(vue@3.4.31)': + '@unocss/vite@0.65.1(rollup@4.28.0)(vite@5.3.2(@types/node@22.10.1)(sass@1.79.5))(vue@3.4.31)': dependencies: '@ampproject/remapping': 2.3.0 '@rollup/pluginutils': 5.1.3(rollup@4.28.0) @@ -2725,15 +3049,15 @@ snapshots: chokidar: 3.6.0 magic-string: 0.30.14 tinyglobby: 0.2.10 - vite: 5.3.2(@types/node@22.10.1)(sass@1.77.5) + vite: 5.3.2(@types/node@22.10.1)(sass@1.79.5) transitivePeerDependencies: - rollup - supports-color - vue - '@vitejs/plugin-vue@5.0.5(vite@5.3.2(@types/node@22.10.1)(sass@1.77.5))(vue@3.4.31)': + '@vitejs/plugin-vue@5.0.5(vite@5.3.2(@types/node@22.10.1)(sass@1.79.5))(vue@3.4.31)': dependencies: - vite: 5.3.2(@types/node@22.10.1)(sass@1.77.5) + vite: 5.3.2(@types/node@22.10.1)(sass@1.79.5) vue: 3.4.31 '@vue/compiler-core@3.4.31': @@ -2970,6 +3294,8 @@ snapshots: dependencies: fill-range: 7.1.1 + buffer-builder@0.2.0: {} + bundle-require@5.0.0(esbuild@0.21.5): dependencies: esbuild: 0.21.5 @@ -3022,6 +3348,10 @@ snapshots: optionalDependencies: fsevents: 2.3.3 + chokidar@4.0.3: + dependencies: + readdirp: 4.1.1 + class-utils@0.3.6: dependencies: arr-union: 3.1.0 @@ -3044,6 +3374,8 @@ snapshots: colorette@2.0.20: {} + colorjs.io@0.5.2: {} + combined-stream@1.0.8: dependencies: delayed-stream: 1.0.0 @@ -3159,6 +3491,8 @@ snapshots: destr@2.0.3: {} + detect-libc@1.0.3: {} + dom-serializer@0.2.2: dependencies: domelementtype: 2.3.0 @@ -3577,6 +3911,8 @@ snapshots: immutable@4.3.7: {} + immutable@5.0.3: {} + importx@0.4.4: dependencies: bundle-require: 5.0.0(esbuild@0.21.5) @@ -3906,6 +4242,8 @@ snapshots: transitivePeerDependencies: - supports-color + node-addon-api@7.1.1: {} + node-fetch-native@1.6.4: {} normalize-path@3.0.0: {} @@ -4070,6 +4408,8 @@ snapshots: dependencies: picomatch: 2.3.1 + readdirp@4.1.1: {} + reflect.getprototypeof@1.0.7: dependencies: call-bind: 1.0.7 @@ -4132,6 +4472,10 @@ snapshots: dependencies: queue-microtask: 1.2.3 + rxjs@7.8.1: + dependencies: + tslib: 2.3.0 + safe-array-concat@1.1.2: dependencies: call-bind: 1.0.7 @@ -4151,9 +4495,102 @@ snapshots: dependencies: ret: 0.1.15 - sass@1.77.5: + sass-embedded-android-arm64@1.83.4: + optional: true + + sass-embedded-android-arm@1.83.4: + optional: true + + sass-embedded-android-ia32@1.83.4: + optional: true + + sass-embedded-android-riscv64@1.83.4: + optional: true + + sass-embedded-android-x64@1.83.4: + optional: true + + sass-embedded-darwin-arm64@1.83.4: + optional: true + + sass-embedded-darwin-x64@1.83.4: + optional: true + + sass-embedded-linux-arm64@1.83.4: + optional: true + + sass-embedded-linux-arm@1.83.4: + optional: true + + sass-embedded-linux-ia32@1.83.4: + optional: true + + sass-embedded-linux-musl-arm64@1.83.4: + optional: true + + sass-embedded-linux-musl-arm@1.83.4: + optional: true + + sass-embedded-linux-musl-ia32@1.83.4: + optional: true + + sass-embedded-linux-musl-riscv64@1.83.4: + optional: true + + sass-embedded-linux-musl-x64@1.83.4: + optional: true + + sass-embedded-linux-riscv64@1.83.4: + optional: true + + sass-embedded-linux-x64@1.83.4: + optional: true + + sass-embedded-win32-arm64@1.83.4: + optional: true + + sass-embedded-win32-ia32@1.83.4: + optional: true + + sass-embedded-win32-x64@1.83.4: + optional: true + + sass-embedded@1.83.4: dependencies: - chokidar: 3.6.0 + '@bufbuild/protobuf': 2.2.3 + buffer-builder: 0.2.0 + colorjs.io: 0.5.2 + immutable: 5.0.3 + rxjs: 7.8.1 + supports-color: 8.1.1 + sync-child-process: 1.0.2 + varint: 6.0.0 + optionalDependencies: + sass-embedded-android-arm: 1.83.4 + sass-embedded-android-arm64: 1.83.4 + sass-embedded-android-ia32: 1.83.4 + sass-embedded-android-riscv64: 1.83.4 + sass-embedded-android-x64: 1.83.4 + sass-embedded-darwin-arm64: 1.83.4 + sass-embedded-darwin-x64: 1.83.4 + sass-embedded-linux-arm: 1.83.4 + sass-embedded-linux-arm64: 1.83.4 + sass-embedded-linux-ia32: 1.83.4 + sass-embedded-linux-musl-arm: 1.83.4 + sass-embedded-linux-musl-arm64: 1.83.4 + sass-embedded-linux-musl-ia32: 1.83.4 + sass-embedded-linux-musl-riscv64: 1.83.4 + sass-embedded-linux-musl-x64: 1.83.4 + sass-embedded-linux-riscv64: 1.83.4 + sass-embedded-linux-x64: 1.83.4 + sass-embedded-win32-arm64: 1.83.4 + sass-embedded-win32-ia32: 1.83.4 + sass-embedded-win32-x64: 1.83.4 + + sass@1.79.5: + dependencies: + '@parcel/watcher': 2.5.0 + chokidar: 4.0.3 immutable: 4.3.7 source-map-js: 1.2.1 @@ -4292,6 +4729,10 @@ snapshots: dependencies: has-flag: 4.0.0 + supports-color@8.1.1: + dependencies: + has-flag: 4.0.0 + svg-baker@1.7.0: dependencies: bluebird: 3.7.2 @@ -4320,6 +4761,12 @@ snapshots: picocolors: 1.1.1 stable: 0.1.8 + sync-child-process@1.0.2: + dependencies: + sync-message-port: 1.1.3 + + sync-message-port@1.1.3: {} + tinyexec@0.3.1: {} tinyglobby@0.2.10: @@ -4453,9 +4900,9 @@ snapshots: universalify@2.0.1: {} - unocss@0.65.1(postcss@5.2.18)(rollup@4.28.0)(vite@5.3.2(@types/node@22.10.1)(sass@1.77.5))(vue@3.4.31): + unocss@0.65.1(postcss@5.2.18)(rollup@4.28.0)(vite@5.3.2(@types/node@22.10.1)(sass@1.79.5))(vue@3.4.31): dependencies: - '@unocss/astro': 0.65.1(rollup@4.28.0)(vite@5.3.2(@types/node@22.10.1)(sass@1.77.5))(vue@3.4.31) + '@unocss/astro': 0.65.1(rollup@4.28.0)(vite@5.3.2(@types/node@22.10.1)(sass@1.79.5))(vue@3.4.31) '@unocss/cli': 0.65.1(rollup@4.28.0) '@unocss/core': 0.65.1 '@unocss/postcss': 0.65.1(postcss@5.2.18) @@ -4471,9 +4918,9 @@ snapshots: '@unocss/transformer-compile-class': 0.65.1 '@unocss/transformer-directives': 0.65.1 '@unocss/transformer-variant-group': 0.65.1 - '@unocss/vite': 0.65.1(rollup@4.28.0)(vite@5.3.2(@types/node@22.10.1)(sass@1.77.5))(vue@3.4.31) + '@unocss/vite': 0.65.1(rollup@4.28.0)(vite@5.3.2(@types/node@22.10.1)(sass@1.79.5))(vue@3.4.31) optionalDependencies: - vite: 5.3.2(@types/node@22.10.1)(sass@1.77.5) + vite: 5.3.2(@types/node@22.10.1)(sass@1.79.5) transitivePeerDependencies: - postcss - rollup @@ -4517,18 +4964,20 @@ snapshots: util-deprecate@1.0.2: {} + varint@6.0.0: {} + vary@1.1.2: {} - vite-plugin-compression@0.5.1(vite@5.3.2(@types/node@22.10.1)(sass@1.77.5)): + vite-plugin-compression@0.5.1(vite@5.3.2(@types/node@22.10.1)(sass@1.79.5)): dependencies: chalk: 4.1.2 debug: 4.3.7 fs-extra: 10.1.0 - vite: 5.3.2(@types/node@22.10.1)(sass@1.77.5) + vite: 5.3.2(@types/node@22.10.1)(sass@1.79.5) transitivePeerDependencies: - supports-color - vite-plugin-svg-icons@2.0.1(vite@5.3.2(@types/node@22.10.1)(sass@1.77.5)): + vite-plugin-svg-icons@2.0.1(vite@5.3.2(@types/node@22.10.1)(sass@1.79.5)): dependencies: '@types/svgo': 2.6.4 cors: 2.8.5 @@ -4538,11 +4987,11 @@ snapshots: pathe: 0.2.0 svg-baker: 1.7.0 svgo: 2.8.0 - vite: 5.3.2(@types/node@22.10.1)(sass@1.77.5) + vite: 5.3.2(@types/node@22.10.1)(sass@1.79.5) transitivePeerDependencies: - supports-color - vite@5.3.2(@types/node@22.10.1)(sass@1.77.5): + vite@5.3.2(@types/node@22.10.1)(sass@1.79.5): dependencies: esbuild: 0.21.5 postcss: 8.4.49 @@ -4550,7 +4999,7 @@ snapshots: optionalDependencies: '@types/node': 22.10.1 fsevents: 2.3.3 - sass: 1.77.5 + sass: 1.79.5 vue-cropper@1.1.1: {} diff --git a/src/assets/icons/svg/light.svg b/src/assets/icons/svg/light.svg new file mode 100644 index 0000000..8c34d19 --- /dev/null +++ b/src/assets/icons/svg/light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/rain.svg b/src/assets/icons/svg/rain.svg new file mode 100644 index 0000000..ef0d15b --- /dev/null +++ b/src/assets/icons/svg/rain.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/temperature.svg b/src/assets/icons/svg/temperature.svg new file mode 100644 index 0000000..15bb7be --- /dev/null +++ b/src/assets/icons/svg/temperature.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/icons/svg/temperature2.svg b/src/assets/icons/svg/temperature2.svg new file mode 100644 index 0000000..415ff6e --- /dev/null +++ b/src/assets/icons/svg/temperature2.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/assets/images/devices/weather.png b/src/assets/images/devices/weather.png new file mode 100644 index 0000000..6d6ce5d Binary files /dev/null and b/src/assets/images/devices/weather.png differ diff --git a/src/assets/images/devices/worm.png b/src/assets/images/devices/worm.png new file mode 100644 index 0000000..75d7edd Binary files /dev/null and b/src/assets/images/devices/worm.png differ diff --git a/src/dict/index.js b/src/dict/index.js new file mode 100644 index 0000000..363d4ae --- /dev/null +++ b/src/dict/index.js @@ -0,0 +1,98 @@ +export const pestDeviceParamsDict = { + insecticideTem: { + name: "杀虫仓温度", + svg: "temperature", + }, + dryingTem: { + name: "干燥仓温度", + svg: "temperature2", + }, + rain: { + name: "降雨状态", + svg: "rain", + }, + illum: { + name: "光照强度", + svg: "light", + }, + mode: { + name: "运行模式", + svg: "", + status: { + 0: "手动", + 1: "自动", + }, + }, + attractWorm: { + name: "诱虫灯", + svg: "", + status: { + 0: "关闭", + 1: "开启", + }, + }, + rainFlap: { + name: "虫雨挡板", + svg: "", + status: { + 0: "关闭", + 1: "打开", + }, + }, + wormFlap: { + name: "杀虫挡板", + svg: "", + status: { + 0: "关闭", + 1: "打开", + }, + }, + dryingFlap: { + name: "烘干挡板", + svg: "", + status: { + 0: "关闭", + 1: "打开", + }, + }, + moveWorm: { + name: "移虫装置", + svg: "", + status: { + 0: "关闭", + 1: "打开", + }, + }, + shake: { + name: "震动装置", + svg: "", + status: { + 0: "关闭", + 1: "启动", + }, + }, + fillLight: { + name: "补光灯", + svg: "", + status: { + 0: "关闭", + 1: "启动", + }, + }, + insecticide: { + name: "杀虫控制", + svg: "", + status: { + 0: "关闭", + 1: "启动", + }, + }, + drying: { + name: "烘干控制", + svg: "", + status: { + 0: "关闭", + 1: "启动", + }, + }, +}; diff --git a/src/permission.js b/src/permission.js index 7e3b5bf..baf6001 100644 --- a/src/permission.js +++ b/src/permission.js @@ -1,69 +1,79 @@ -import router from './router' -import { ElMessage } from 'element-plus' -import NProgress from 'nprogress' -import 'nprogress/nprogress.css' -import { getToken } from '@/utils/auth' -import { isHttp, isPathMatch } from '@/utils/validate' -import { isRelogin } from '@/utils/request' -import useUserStore from '@/store/modules/user' -import useSettingsStore from '@/store/modules/settings' -import usePermissionStore from '@/store/modules/permission' +import router from "./router"; +import { ElMessage } from "element-plus"; +import NProgress from "nprogress"; +import "nprogress/nprogress.css"; +import { getToken } from "@/utils/auth"; +import { isHttp, isPathMatch } from "@/utils/validate"; +import { isRelogin } from "@/utils/request"; +import useUserStore from "@/store/modules/user"; +import useSettingsStore from "@/store/modules/settings"; +import usePermissionStore from "@/store/modules/permission"; -NProgress.configure({ showSpinner: false }) +NProgress.configure({ showSpinner: false }); -const whiteList = ['/login', '/register'] +const whiteList = ["/login", "/register"]; const isWhiteList = (path) => { - return whiteList.some(pattern => isPathMatch(pattern, path)) -} + return whiteList.some((pattern) => isPathMatch(pattern, path)); +}; router.beforeEach((to, from, next) => { - NProgress.start() + // TODO 测试,先跳过 + next(); + return; + NProgress.start(); if (getToken()) { - to.meta.title && useSettingsStore().setTitle(to.meta.title) + to.meta.title && useSettingsStore().setTitle(to.meta.title); /* has token*/ - if (to.path === '/login') { - next({ path: '/' }) - NProgress.done() + if (to.path === "/login") { + next({ path: "/" }); + NProgress.done(); } else if (isWhiteList(to.path)) { - next() + next(); } else { if (useUserStore().roles.length === 0) { - isRelogin.show = true + isRelogin.show = true; // 判断当前用户是否已拉取完user_info信息 - useUserStore().getInfo().then(() => { - isRelogin.show = false - usePermissionStore().generateRoutes().then(accessRoutes => { - // 根据roles权限生成可访问的路由表 - accessRoutes.forEach(route => { - if (!isHttp(route.path)) { - router.addRoute(route) // 动态添加可访问路由表 - } - }) - next({ ...to, replace: true }) // hack方法 确保addRoutes已完成 + useUserStore() + .getInfo() + .then(() => { + isRelogin.show = false; + usePermissionStore() + .generateRoutes() + .then((accessRoutes) => { + // 根据roles权限生成可访问的路由表 + accessRoutes.forEach((route) => { + if (!isHttp(route.path)) { + router.addRoute(route); // 动态添加可访问路由表 + } + }); + next({ ...to, replace: true }); // hack方法 确保addRoutes已完成 + }); }) - }).catch(err => { - useUserStore().logOut().then(() => { - ElMessage.error(err) - next({ path: '/' }) - }) - }) + .catch((err) => { + useUserStore() + .logOut() + .then(() => { + ElMessage.error(err); + next({ path: "/" }); + }); + }); } else { - next() + next(); } } } else { // 没有token if (isWhiteList(to.path)) { // 在免登录白名单,直接进入 - next() + next(); } else { - next(`/login?redirect=${to.fullPath}`) // 否则全部重定向到登录页 - NProgress.done() + next(`/login?redirect=${to.fullPath}`); // 否则全部重定向到登录页 + NProgress.done(); } } -}) +}); router.afterEach(() => { - NProgress.done() -}) + NProgress.done(); +}); diff --git a/src/views/index.vue b/src/views/index.vue index c1b5e1f..3a73c68 100644 --- a/src/views/index.vue +++ b/src/views/index.vue @@ -1,19 +1,7 @@ @@ -46,6 +34,7 @@ + @@ -55,86 +44,19 @@ diff --git a/src/views/indexComponents/deviceOverview.vue b/src/views/indexComponents/deviceOverview.vue new file mode 100644 index 0000000..345a971 --- /dev/null +++ b/src/views/indexComponents/deviceOverview.vue @@ -0,0 +1,179 @@ + + + + + diff --git a/src/views/indexComponents/liveData.vue b/src/views/indexComponents/liveData.vue index e69de29..2a5aa41 100644 --- a/src/views/indexComponents/liveData.vue +++ b/src/views/indexComponents/liveData.vue @@ -0,0 +1,195 @@ + + + + + + + diff --git a/src/views/login.vue b/src/views/login.vue index 685102d..83de43b 100644 --- a/src/views/login.vue +++ b/src/views/login.vue @@ -105,6 +105,10 @@ watch(route, (newRoute) => { }, { immediate: true }); function handleLogin() { + // TODO 测试: 跳过登录 + router.push({ path: "/" }); + return; + proxy.$refs.loginRef.validate(valid => { if (valid) { loading.value = true; @@ -161,8 +165,9 @@ function getCookie() { }; } -getCode(); -getCookie(); +// TODO: 测试,先注释 +// getCode(); +// getCookie();