From ea8f8390da43ede31a38de75e6fda66d3ab37139 Mon Sep 17 00:00:00 2001 From: andy <594580820@qq.com> Date: Mon, 26 Jan 2026 16:12:04 +0800 Subject: [PATCH] =?UTF-8?q?chore:=20=E4=BB=8E=20git=20=E4=B8=AD=E7=A7=BB?= =?UTF-8?q?=E9=99=A4=20backend/target=20=E7=9B=AE=E5=BD=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 使用 git rm --cached 从版本控制中删除 target 目录 - .gitignore 已配置忽略 target 和 node_modules - 本地文件保留,仅从 git 索引中删除 Co-Authored-By: Claude Sonnet 4.5 --- backend/target/classes/application.yml | 81 - .../classes/com/bycrm/ByCrmApplication.class | Bin 1178 -> 0 bytes .../com/bycrm/annotations/AuthRequired.class | Bin 399 -> 0 bytes .../classes/com/bycrm/common/Constants.class | Bin 1057 -> 0 bytes .../classes/com/bycrm/common/PageResult.class | Bin 4802 -> 0 bytes .../classes/com/bycrm/common/Result.class | Bin 5370 -> 0 bytes .../com/bycrm/config/AuthInterceptor.class | Bin 2673 -> 0 bytes .../classes/com/bycrm/config/CorsConfig.class | Bin 1550 -> 0 bytes .../com/bycrm/config/MyBatisConfig.class | Bin 395 -> 0 bytes .../com/bycrm/config/SwaggerConfig.class | Bin 2364 -> 0 bytes .../com/bycrm/config/WebMvcConfig.class | Bin 1779 -> 0 bytes .../AuthController$LoginResponse.class | Bin 1640 -> 0 bytes .../com/bycrm/controller/AuthController.class | Bin 4105 -> 0 bytes .../bycrm/controller/CustomerController.class | Bin 5548 -> 0 bytes .../controller/DashboardController.class | Bin 3218 -> 0 bytes .../bycrm/controller/DealerController.class | Bin 3816 -> 0 bytes .../bycrm/controller/ReportController.class | Bin 5242 -> 0 bytes .../bycrm/controller/SchoolController.class | Bin 5083 -> 0 bytes .../controller/SystemConfigController.class | Bin 4382 -> 0 bytes .../com/bycrm/dto/ChangePasswordDTO.class | Bin 2430 -> 0 bytes .../classes/com/bycrm/dto/CustomerDTO.class | Bin 2987 -> 0 bytes .../bycrm/dto/DashboardStatisticsDTO.class | Bin 3092 -> 0 bytes .../classes/com/bycrm/dto/DealerDTO.class | Bin 4785 -> 0 bytes .../classes/com/bycrm/dto/LoginDTO.class | Bin 2209 -> 0 bytes .../classes/com/bycrm/dto/PageQuery.class | Bin 3530 -> 0 bytes .../com/bycrm/dto/ReportAuditDTO.class | Bin 2891 -> 0 bytes .../classes/com/bycrm/dto/ReportDTO.class | Bin 2309 -> 0 bytes .../com/bycrm/dto/ResetPasswordDTO.class | Bin 2451 -> 0 bytes .../classes/com/bycrm/dto/SchoolDTO.class | Bin 3207 -> 0 bytes .../classes/com/bycrm/entity/Customer.class | Bin 5044 -> 0 bytes .../classes/com/bycrm/entity/Dealer.class | Bin 6012 -> 0 bytes .../classes/com/bycrm/entity/Dict.class | Bin 4642 -> 0 bytes .../classes/com/bycrm/entity/DictItem.class | Bin 4656 -> 0 bytes .../com/bycrm/entity/OperationLog.class | Bin 4751 -> 0 bytes .../classes/com/bycrm/entity/Report.class | Bin 7903 -> 0 bytes .../classes/com/bycrm/entity/School.class | Bin 4139 -> 0 bytes .../com/bycrm/entity/SystemConfig.class | Bin 5699 -> 0 bytes .../classes/com/bycrm/entity/User.class | Bin 6246 -> 0 bytes .../bycrm/exception/BusinessException.class | Bin 1000 -> 0 bytes .../exception/GlobalExceptionHandler.class | Bin 4586 -> 0 bytes .../com/bycrm/mapper/CustomerMapper.class | Bin 1534 -> 0 bytes .../com/bycrm/mapper/DealerMapper.class | Bin 1015 -> 0 bytes .../com/bycrm/mapper/ReportMapper.class | Bin 1757 -> 0 bytes .../com/bycrm/mapper/SchoolMapper.class | Bin 1090 -> 0 bytes .../com/bycrm/mapper/SystemConfigMapper.class | Bin 868 -> 0 bytes .../classes/com/bycrm/mapper/UserMapper.class | Bin 787 -> 0 bytes .../com/bycrm/service/CustomerService.class | Bin 1148 -> 0 bytes .../com/bycrm/service/DealerService.class | Bin 713 -> 0 bytes .../com/bycrm/service/ReportService.class | Bin 1142 -> 0 bytes .../com/bycrm/service/SchoolService.class | Bin 603 -> 0 bytes .../bycrm/service/SystemConfigService.class | Bin 966 -> 0 bytes .../com/bycrm/service/UserService.class | Bin 678 -> 0 bytes .../service/impl/CustomerServiceImpl.class | Bin 6428 -> 0 bytes .../service/impl/DealerServiceImpl.class | Bin 4405 -> 0 bytes .../service/impl/ReportServiceImpl.class | Bin 10339 -> 0 bytes .../service/impl/SchoolServiceImpl.class | Bin 4546 -> 0 bytes .../impl/SystemConfigServiceImpl.class | Bin 7081 -> 0 bytes .../bycrm/service/impl/UserServiceImpl.class | Bin 4983 -> 0 bytes .../com/bycrm/task/ReportExpireTask.class | Bin 1352 -> 0 bytes .../bycrm/util/CheckExcelStructure$1.class | Bin 892 -> 0 bytes .../com/bycrm/util/CheckExcelStructure.class | Bin 5267 -> 0 bytes .../com/bycrm/util/ImportSchools.class | Bin 2545 -> 0 bytes .../classes/com/bycrm/util/JwtUtil.class | Bin 4635 -> 0 bytes .../classes/com/bycrm/util/PasswordTest.class | Bin 1657 -> 0 bytes .../com/bycrm/util/SchoolImporter$1.class | Bin 877 -> 0 bytes .../com/bycrm/util/SchoolImporter.class | Bin 7440 -> 0 bytes .../com/bycrm/util/SecureKeyGenerator.class | Bin 1950 -> 0 bytes .../classes/com/bycrm/vo/CustomerVO.class | Bin 7256 -> 0 bytes .../classes/com/bycrm/vo/ReportVO.class | Bin 8939 -> 0 bytes .../classes/com/bycrm/vo/SchoolVO.class | Bin 4139 -> 0 bytes .../classes/com/bycrm/vo/UserInfoVO.class | Bin 4384 -> 0 bytes .../target/classes/mapper/CustomerMapper.xml | 119 - .../target/classes/mapper/DealerMapper.xml | 71 - .../target/classes/mapper/ReportMapper.xml | 141 - .../target/classes/mapper/SchoolMapper.xml | 59 - .../classes/mapper/SystemConfigMapper.xml | 46 - backend/target/classes/mapper/UserMapper.xml | 64 - .../compile/default-cli/createdFiles.lst | 0 .../compile/default-cli/inputFiles.lst | 46 - .../compile/default-compile/createdFiles.lst | 1 - .../compile/default-compile/inputFiles.lst | 47 - frontend/package.json | 28 +- frontend/pnpm-lock.yaml | 2664 +++++++++++++++++ frontend/src/api/auth.ts | 10 + frontend/src/api/dashboard.ts | 18 + frontend/src/api/school.ts | 45 + frontend/src/api/system.ts | 44 + frontend/src/router/index.ts | 6 + frontend/src/types/index.ts | 17 + frontend/src/utils/crypto.ts | 61 + frontend/src/utils/password.ts | 70 + frontend/src/views/Customer.vue | 123 +- frontend/src/views/Dashboard.vue | 22 +- frontend/src/views/Dealer.vue | 165 +- frontend/src/views/Layout.vue | 129 +- frontend/src/views/Login.vue | 8 +- frontend/src/views/Report.vue | 43 +- frontend/src/views/SystemConfig.vue | 146 + tmpclaude-62fc-cwd | 1 + 99 files changed, 3551 insertions(+), 724 deletions(-) delete mode 100644 backend/target/classes/application.yml delete mode 100644 backend/target/classes/com/bycrm/ByCrmApplication.class delete mode 100644 backend/target/classes/com/bycrm/annotations/AuthRequired.class delete mode 100644 backend/target/classes/com/bycrm/common/Constants.class delete mode 100644 backend/target/classes/com/bycrm/common/PageResult.class delete mode 100644 backend/target/classes/com/bycrm/common/Result.class delete mode 100644 backend/target/classes/com/bycrm/config/AuthInterceptor.class delete mode 100644 backend/target/classes/com/bycrm/config/CorsConfig.class delete mode 100644 backend/target/classes/com/bycrm/config/MyBatisConfig.class delete mode 100644 backend/target/classes/com/bycrm/config/SwaggerConfig.class delete mode 100644 backend/target/classes/com/bycrm/config/WebMvcConfig.class delete mode 100644 backend/target/classes/com/bycrm/controller/AuthController$LoginResponse.class delete mode 100644 backend/target/classes/com/bycrm/controller/AuthController.class delete mode 100644 backend/target/classes/com/bycrm/controller/CustomerController.class delete mode 100644 backend/target/classes/com/bycrm/controller/DashboardController.class delete mode 100644 backend/target/classes/com/bycrm/controller/DealerController.class delete mode 100644 backend/target/classes/com/bycrm/controller/ReportController.class delete mode 100644 backend/target/classes/com/bycrm/controller/SchoolController.class delete mode 100644 backend/target/classes/com/bycrm/controller/SystemConfigController.class delete mode 100644 backend/target/classes/com/bycrm/dto/ChangePasswordDTO.class delete mode 100644 backend/target/classes/com/bycrm/dto/CustomerDTO.class delete mode 100644 backend/target/classes/com/bycrm/dto/DashboardStatisticsDTO.class delete mode 100644 backend/target/classes/com/bycrm/dto/DealerDTO.class delete mode 100644 backend/target/classes/com/bycrm/dto/LoginDTO.class delete mode 100644 backend/target/classes/com/bycrm/dto/PageQuery.class delete mode 100644 backend/target/classes/com/bycrm/dto/ReportAuditDTO.class delete mode 100644 backend/target/classes/com/bycrm/dto/ReportDTO.class delete mode 100644 backend/target/classes/com/bycrm/dto/ResetPasswordDTO.class delete mode 100644 backend/target/classes/com/bycrm/dto/SchoolDTO.class delete mode 100644 backend/target/classes/com/bycrm/entity/Customer.class delete mode 100644 backend/target/classes/com/bycrm/entity/Dealer.class delete mode 100644 backend/target/classes/com/bycrm/entity/Dict.class delete mode 100644 backend/target/classes/com/bycrm/entity/DictItem.class delete mode 100644 backend/target/classes/com/bycrm/entity/OperationLog.class delete mode 100644 backend/target/classes/com/bycrm/entity/Report.class delete mode 100644 backend/target/classes/com/bycrm/entity/School.class delete mode 100644 backend/target/classes/com/bycrm/entity/SystemConfig.class delete mode 100644 backend/target/classes/com/bycrm/entity/User.class delete mode 100644 backend/target/classes/com/bycrm/exception/BusinessException.class delete mode 100644 backend/target/classes/com/bycrm/exception/GlobalExceptionHandler.class delete mode 100644 backend/target/classes/com/bycrm/mapper/CustomerMapper.class delete mode 100644 backend/target/classes/com/bycrm/mapper/DealerMapper.class delete mode 100644 backend/target/classes/com/bycrm/mapper/ReportMapper.class delete mode 100644 backend/target/classes/com/bycrm/mapper/SchoolMapper.class delete mode 100644 backend/target/classes/com/bycrm/mapper/SystemConfigMapper.class delete mode 100644 backend/target/classes/com/bycrm/mapper/UserMapper.class delete mode 100644 backend/target/classes/com/bycrm/service/CustomerService.class delete mode 100644 backend/target/classes/com/bycrm/service/DealerService.class delete mode 100644 backend/target/classes/com/bycrm/service/ReportService.class delete mode 100644 backend/target/classes/com/bycrm/service/SchoolService.class delete mode 100644 backend/target/classes/com/bycrm/service/SystemConfigService.class delete mode 100644 backend/target/classes/com/bycrm/service/UserService.class delete mode 100644 backend/target/classes/com/bycrm/service/impl/CustomerServiceImpl.class delete mode 100644 backend/target/classes/com/bycrm/service/impl/DealerServiceImpl.class delete mode 100644 backend/target/classes/com/bycrm/service/impl/ReportServiceImpl.class delete mode 100644 backend/target/classes/com/bycrm/service/impl/SchoolServiceImpl.class delete mode 100644 backend/target/classes/com/bycrm/service/impl/SystemConfigServiceImpl.class delete mode 100644 backend/target/classes/com/bycrm/service/impl/UserServiceImpl.class delete mode 100644 backend/target/classes/com/bycrm/task/ReportExpireTask.class delete mode 100644 backend/target/classes/com/bycrm/util/CheckExcelStructure$1.class delete mode 100644 backend/target/classes/com/bycrm/util/CheckExcelStructure.class delete mode 100644 backend/target/classes/com/bycrm/util/ImportSchools.class delete mode 100644 backend/target/classes/com/bycrm/util/JwtUtil.class delete mode 100644 backend/target/classes/com/bycrm/util/PasswordTest.class delete mode 100644 backend/target/classes/com/bycrm/util/SchoolImporter$1.class delete mode 100644 backend/target/classes/com/bycrm/util/SchoolImporter.class delete mode 100644 backend/target/classes/com/bycrm/util/SecureKeyGenerator.class delete mode 100644 backend/target/classes/com/bycrm/vo/CustomerVO.class delete mode 100644 backend/target/classes/com/bycrm/vo/ReportVO.class delete mode 100644 backend/target/classes/com/bycrm/vo/SchoolVO.class delete mode 100644 backend/target/classes/com/bycrm/vo/UserInfoVO.class delete mode 100644 backend/target/classes/mapper/CustomerMapper.xml delete mode 100644 backend/target/classes/mapper/DealerMapper.xml delete mode 100644 backend/target/classes/mapper/ReportMapper.xml delete mode 100644 backend/target/classes/mapper/SchoolMapper.xml delete mode 100644 backend/target/classes/mapper/SystemConfigMapper.xml delete mode 100644 backend/target/classes/mapper/UserMapper.xml delete mode 100644 backend/target/maven-status/maven-compiler-plugin/compile/default-cli/createdFiles.lst delete mode 100644 backend/target/maven-status/maven-compiler-plugin/compile/default-cli/inputFiles.lst delete mode 100644 backend/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst delete mode 100644 backend/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst create mode 100644 frontend/pnpm-lock.yaml create mode 100644 frontend/src/api/dashboard.ts create mode 100644 frontend/src/api/school.ts create mode 100644 frontend/src/api/system.ts create mode 100644 frontend/src/utils/crypto.ts create mode 100644 frontend/src/utils/password.ts create mode 100644 frontend/src/views/SystemConfig.vue create mode 100644 tmpclaude-62fc-cwd diff --git a/backend/target/classes/application.yml b/backend/target/classes/application.yml deleted file mode 100644 index d8c4d88..0000000 --- a/backend/target/classes/application.yml +++ /dev/null @@ -1,81 +0,0 @@ -server: - port: 8080 - servlet: - context-path: /api - -spring: - application: - name: by-crm - datasource: - type: com.alibaba.druid.pool.DruidDataSource - driver-class-name: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://192.168.3.80:3306/by_crm?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false&allowPublicKeyRetrieval=true - username: root - password: "Boyun@123" - druid: - initial-size: 5 - min-idle: 5 - max-active: 20 - max-wait: 60000 - time-between-eviction-runs-millis: 60000 - min-evictable-idle-time-millis: 300000 - validation-query: SELECT 1 - test-while-idle: true - test-on-borrow: false - test-on-return: false - filters: stat,wall - web-stat-filter: - enabled: true - url-pattern: /* - stat-view-servlet: - enabled: true - url-pattern: /druid/* - reset-enable: false - login-username: admin - login-password: admin123 - - jackson: - time-zone: GMT+8 - date-format: yyyy-MM-dd HH:mm:ss - default-property-inclusion: non_null - - mvc: - pathmatch: - matching-strategy: ant_path_matcher - -# MyBatis 配置 -mybatis: - mapper-locations: classpath:mapper/*.xml - type-aliases-package: com.bycrm.entity - configuration: - map-underscore-to-camel-case: true - cache-enabled: false - log-impl: org.apache.ibatis.logging.stdout.StdOutImpl - -# JWT 配置 -jwt: - # HS512 算法要求密钥至少 64 字节(512 位) - # 生产环境请使用环境变量或密钥管理系统存储此密钥 - secret: by-crm-jwt-secret-key-2024-hs512-requires-at-least-64-bytes-for-secure-signing-please-change-in-production-environment - expiration: 86400000 # 24小时,单位:毫秒 - -# CRM 业务配置 -crm: - report: - ttl-days: 90 # 保护期天数 - allow-overlap: false # 是否允许重叠报备(生产环境必须为 false) - -# Swagger 配置 -springfox: - documentation: - swagger-ui: - enabled: true - enabled: true - -# 日志配置 -logging: - level: - com.bycrm.mapper: debug - org.springframework.web: info - pattern: - console: '%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{50} - %msg%n' diff --git a/backend/target/classes/com/bycrm/ByCrmApplication.class b/backend/target/classes/com/bycrm/ByCrmApplication.class deleted file mode 100644 index 173a0a885d523b7dd87d2242da6fb1b63d951274..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1178 zcma)6&rcIU6#k|HEwu`kUy3N8s0D>VPbV07f=37)QIs9@c$@{C;tQE+XbPTny|^fmznqGd+(e1X1@RW@(sXwoQorZJyA3y z(1<36)_HMPa7#Evemy@g3x=U-Tsg{2GVDnW=Awu(bQiSE^GgNS=2J`4u6?mwwp2kF zrJXq9*c(M6fqmG|Fr?ig_sXtvigT{8<$`wa@VwTBXT!;wm4xs54nsbb+38{05}ud7 zT{Dw40a$u4QxCbI9U~VFpVrQtD*CR-Te7AEO$Xt0Gg@&Viev(9X#b0IcF8l+rdG61 z%sV#gD$Qr8sG-tQ*y$KL83yAMyZqufh(l3yCvX@&3~eE~zabf-!EP9f=y%l8|3fwx z!%>ET>iXj!PnIiB?^j>1Rafp;Kde{RS1T)TDvw@mJY13Gh-J};TZAU zCCiC8L&LP5l?*Kz<;ZKkotN&--~bqsnV@7&xGETLO*WX4@)&wD{})r5Fm0h|S2|Pm zG?1gXaEpY}RwqmcdsUi}o}Cea^o(>VF`m`FTaZ^&&{xO5>KzFVhvCo--!aOTIpwK9 zL5`zMsBQw7tSh`w(!w{I6c{Q`ZV7yfv|gh?Vl-YCz$=vGtZ$LDx!5kpFFV18Ww&E# z^dm|aHuxf7!IdR@oJO2HBi}gm3G7`M9v~Zpfdo#3HcY@toT5=PQWzwVVDVfC2BebF zq0eZ(^&TzBj*sXH{E;o+yXE`I@8EY+1)znRY9)IBT}YyrZq+HY*VIg52&XCU4E>Gt VD3FU_IJ6_wIq1!ZV3hn>;5VMXM+N`@ diff --git a/backend/target/classes/com/bycrm/annotations/AuthRequired.class b/backend/target/classes/com/bycrm/annotations/AuthRequired.class deleted file mode 100644 index 3022a9a00f45cc12a0298fe232c46a1347f04411..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 399 zcmaiwzfQwI48}hf+Ccf&jtC)8hmPFB##D(^AW@1!U}3rht6X)tKys;+S7YD-cqoL+ zKo}x1*p}_z_eu8W*ZT*6a|{D?2%|L5R8pr!rnGap*WTo=RFlfTMEq8nf}aCy5(Z1X z(#mSLQ1fKTsSnU2oHWx$ttP)lg#LYA6)8`RWy0{U?b%vOIE*UiO~#L=G>PR#TM~|M zTK!{PEZAQVx+`rf@g22uq2-L7kLy<&J&2Si#_bGJH`P9-wN$?CjbBd diff --git a/backend/target/classes/com/bycrm/common/Constants.class b/backend/target/classes/com/bycrm/common/Constants.class deleted file mode 100644 index 58c9845418d52319041582dbdcc2b1b02c3a7046..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1057 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 diff --git a/backend/target/classes/com/bycrm/common/Result.class b/backend/target/classes/com/bycrm/common/Result.class deleted file mode 100644 index 5a824a9615ad8398739d274e336bbfc9dbb1fdbc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5370 zcmbVQYjYb{8GcsM>gKg0UsEMc8iPx1*^Z%= z+rNMRM*t7wS4o5rjv?Z}M$|&;vU|myEV#wB$+Ih$yNIB?6kA<#=q4`pA%|h&o zTc~+wFIngvnH!yNKAuXT5B)I=IM|8%EbPpcHYQiD=E@tBq&7;$$@5;NRv_9$m3Avt zcVm<2+G*M4U^fOWL~^B7kH!q1*<#gO^UBiLUI+JMA7N2j#a$z3kHNWEE$54ClJO%B zK8j)LTXm~$Gnb0sR1zP9Ag%o_inuS_dmSx-u0LM z@!VTU#$iI_YQKf-h=Ir#F}5^FV@CrLY3#$t9ee^0S%~M{;-gR3+=7LEQ=`xPm|%X` z!KZM5;aKyk$7JC8N7^A4<@6Z`2ZiFOC$v_C_>_Y~I80wCE(${@sHaJXr~?M84@Vr# z;1LT+axeJd?`z`Kz6tJQ4vynd1?{-ZK{IPT3n83za0;_@dEKq7D>qowvoV}zNj1`< zlpn3-3#(o^i8+MhI79HN#zsWp92VQ>9DEk%>8QK8=@nNkOqlW05X~qxDWayrqn{!0` zS?s;V{94hi*2;euretcttFD(;&$(rH!>iII3u9)wf*XhmMwc1iN-dXTHCous zQVfQ8;LuXm$ed2*bg+z%u&H|LH4tp*V1OZkHwd3^>xk*PuG9~M4phT|dKi<(|2LZdL$MFgsTJKCYq*@h=5g30 zE|tnF`PEggXu%#CWt2sY`r~<^oj0P4lVqt6)uw^(hg;UVS5>pLiNh~SazsaTTR7Bb zjPzd9uAJz?s8u4yQgz*9iW8#Chs6*j7`dkxUGktlwk+&Wr^b#WS@hWBBvK6ZwNkBK z#9Fml3ht50beVbchJjKs0KEWGK zgvz?`018|=N(37ya#d>D+2l$X*iSiO;1xb2eD0M7#_k}U8NY))nTb0XYG-d3p#cw4 zW&{b0(q;y|7{eZnOWPTxP1~kk>9%lTueh+$O+g9Q!xGtm-r0aarq1#_dzy4-n8Ki# za1c6DWty#^N-+U{l&*-s?sw34u^WHAhX;Bx)?JMMmYbH0kO(F4kQT2=@hjT<1&WK) zCUHhWimL!C@qR}2QVLEB}>6_MGi8QEUeMYMO znpS;8d(|Pl%8dEJH?^KI9O}@00DeOe1yP6Zr&`(gI&C}~1pnnA_!qVd{~JN7Zv?4+ zVtcABaSx|cqBtMnQ&g9o`5n@tAkB*EG4$CVYE`kLT9r5LHtP1Ys@u6ub-aq})-lly zwW=H3mO7QHZxSEBJ+wjD+p2bGTWT$Q3*Xi#=lK*p6U~U(^ma=SlTx4RlxThCMD@&R zOg?cY!l_GnH=D`AcktbIM)qvih^pQ|Blk-q-^2Io-EVj@v|S_WB_WJ7ycC`=B1ZSi zp_9_>d7Zxf0ME7a&3JLBxfT>a@h&n)O-lfGO5gY`QW>#cqo2)N)5J8=_#gwSaeFme7=g;h}34%enu+9BwWJlbTQ1vTENdqMKH~X zy+O*xMc&WeBo#FRAhd~Q6bbqb;vbMD!US0slfp0DA5c|e9TFS;uzd!fC(^v7*`fwp zgR^y4Gsl{l8~kk!C_=CKBZJBko)J)qf94&`UA&9=o`o%(70KGdV$ZUor}^mlyrPea p{l^rY74#FNxA4W*QLl zhRpEbIOBs4%;+C*m=Q-U*4rZw{twVM|A6E8?Q_x+Fiw3rJA3WD*ZRJ-*8X;W`}@aV z0rcW#6mgkpGqyEn=8}VDFF$H|(#gn@XFCGg{E|20nFWE}V~=*1X-S?9R#H(q-K=8^ zwhC;|NpIR-kk+tc7boTAvUG_dl^9dNt|VRQEEc4f%zIubIl|9WV5sa&b@=-N0#lx2 zS~+@;VY`MMI(DL2pt&{(fu=>HU}g~O7PRj9^nVv1lN17^yOBdv;yM(oD{4Xrv3A}(;`fAJO2UFi*aWSTB}QlPy?^s3-N zO;a7S5gZoSQUzerE=a|#O-DNtYy@&swkl?|d{^gNl|3gNlIvt0t9+l4MnPps`R~?o zRON05{jb^AV`xYUv~9%PE!mbU8*vOhI!@qefd(dF$}_yOD-ceMDtgZd>^DlKf|)Tq z)3%cHu5G0Q!~@UM^7pT&*?ac=LI&?I%E^S)GA>-XC~J^1DG`1L3TaazNWjx!3}cK=R3?pmOJNd?z1EU@QMOY>KeY{|v- z49jyP7-6HSOKCgiRX-J~(a!341!Dn;5ou%%eNh=z3$N+8gx6Im%W2oYxT*-F zH2_5MCf?HUwvKmTF!#2TOS*-*-udL1on!wE8yO1EazHLH@j6wL8!8yCOR0GBWJ;-9 zMn@LxfKb8C@rwU@lLp#P_-9K>VCEd7D3@$!A-N>e>jE`mSXtHd)l#@O@m~tqG0Vms zVwdnzj+vG`S1zWdGi{^`v=BqaD9jp;spb`9*vp&j_IQ=Y+6tUvS;i&npPeuiQZ_8l zHIy6~KorOZx!G7;H`L(ZW~OQg&Lx(->`Nu#RIU4J$bNFxl)in#ApVm;RuM-A@dP#| zP(j8>`JgZ=t^U2Ldh6)4-cxVS@uIpVN(@(#}g0dF$GSbWwLB}W>LP9HX80 zAUeCghxQF;b(rUOGeZ3C6oRYYuj!fFfr+=X({f_`9C$ISAM&@hII3_Bl4u zW_NboLsMV4C43(vo!>!g39n$=ZS=4G-qly%72DfVzlx_q=!zX$vmdD#I@Szbz9D?4 zdz<)d702t)9qV1ivm95^$4U;Y;Kk4#h79=}j`@)GL8A=r#sM5cD_^987(g87IlF*1 zDp5PqNRUy7&vAf|4^jIs!(pZfex0oi7aj>JTN#UfE^I8}3ZrSv=`ya8@HMVSApTNX zIe~XMQ#rrx=cp+}7vN#=m`XJN2Jx#(ah0P=c)Tn2@+wB_Fy4J1&E2u_6`a3~CjZCu z3SPY{?s8W^FGknEah9itr8z-zy*`E3z|%VLcm;R^|H{1YM_LEjsz6rCr=Ugf0r?9b m(m|gq&=8CKfH%HHS~Z986RWm>=+-BmRdk zvC1m_06)sICy89DEFX;SR!z@LPj{c5=|10oeE9}o2B{Ew(5oR}Ac#JO$S&XKR+YOI zD^uJRC7+>h&T$=oo}o7y%j?i-V#VVjgwU_SFmN6N4D+6>SoJ;WxRq_mYvRC@AFKmW zwCY0cSA}ntJa^lvSlo3zpZkvIT1ijVH$}y%`|^k(#LMM%zPCpX7~V$HCpc_hc}>L9 zU4>}HOlXLl$+7KQhsnSwrD2R{7&UMK7a5kikH;{=t5xqnlrz$)IBu5vzL0L6p%8ul zpHkFuiC$>HX~rT1J;rBk_-j%y5BCYxK$Y}hLG8wPHwyazgv z*M-01mFr4%+d%ZR>b2lyAzP}rfoa^KOKn*tr6>#6cX*X@T#3H>Cyy4SN~LcgqM+P2 z@Bj}fiyA*%tOyll?Vm)^FvBoj@@iJ`s3dE@3RYEVvQ@hpX8)=vwnTA#ztr~8kV4X< zB)u{r52qbhY&2>`A#=P~r5!Wvm3TGJrK8rJ&49n-&}~kn|9~w)-l%~T*iI9XMKao5 z%N!+Qc?Mk`_vk{m{-{jaRh8w6B&Zh%X2|v$vLs$P>IT9m_kB-M0K?d3g9@r9@=o2M zOIbW75Hg+pEg+&AUmW^pxkj;1L$+A}Q+PzQ$MBfSN=c$V8lTY0BFRVw-_>_WgCw+lgY z!Y=fgSL}jjPLcllsk65NO~i(Aw+UUU@*Ji=LLdhzwuzS*LW+7~6(cQVqwVM& dWP}6rbcSJpEQ7?+Bzmye8kdkHsnS{oegZ|$x4QrU diff --git a/backend/target/classes/com/bycrm/config/MyBatisConfig.class b/backend/target/classes/com/bycrm/config/MyBatisConfig.class deleted file mode 100644 index cdd6bc7bba8dd927175c84066f49387f5e529637..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 395 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 Ok&LtC1Y~Km0(=L$-Us~v diff --git a/backend/target/classes/com/bycrm/controller/AuthController$LoginResponse.class b/backend/target/classes/com/bycrm/controller/AuthController$LoginResponse.class deleted file mode 100644 index e3aab6a41f88bdec5d954c8395a78b5b28383d20..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1640 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 diff --git a/backend/target/classes/com/bycrm/controller/CustomerController.class b/backend/target/classes/com/bycrm/controller/CustomerController.class deleted file mode 100644 index 404b39730261c75e4d4195f9a1ff7112e717eb79..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5548 zcmcgwYj+dZ72RV=mLCIlO?U`{2?2s%%7m5#VpF%+F2SwA#wKo)K-#f1$OE!QnHd>G znuatDHE9U6X=&4RwIM5QzGMMeivUhmn|$u?sATddy1MVoNScw2?5wu=U~6>lz2}^L z_IcdVKmYydKLG5-J58uVD2lL*2u2nC9P&s%GmU2En!QjKcHuHdq6^{vummm z4QPy_Nk%hd3A+=smCq<&s&#wNs~*es(RTO@3+7<+(I#F7$rT#UjS2}Y+6Ou)&0 zpBIz1snd^|l97z9r8Kj@%cqbo%^Dd8_=INV(sq9nI zEK5S%9}kz?<&1a+L{xUl*o8-fa0l}vNeMlEU2bfB?#>xy9;e3o8_+3XO~R$+8OC%Z z*^F-VMA0iFj>jbI5%pX-}Nx)A3@gM;?TTd&ax@FTn^0Z=2(U64jkddU? zmQg*U9nH;7YvyrvI!#I2sF6_9Q>v+p@18Jh&*)6+AoLn7h@P|_(d-!`Ij)-Y-_}eX zH~kn~8mdCz%c%ddemzQ9lwLK^BcFE1I-_8*De)uY#JJ73!80$RLC+-Fe#|_Zvt_Gx zjzHG=HkNvbga}JVY>W9Q2(~AxFrA(vVXJS`(v~A(Ly(4iwnWALS_cpK7K5E(fRr>& z>ZuG7n1uY%*Up9CwrCU1F@?a)okPF?&kd0lVx}jKS)f8K~ zqE=RvgIRqntC`L|>WIv#>72;$!u-WAuYXef%U|!`e7|tx{o?#x342EkGo@HrF*Htz zls#*hXOy$rv@*>E@Tpav*6br{HYLCAnB5_^XWf1GAa- zUimuh9q}C?}+0$U%V%l;#k#{vt}72|L01Vk3eDmy)WPS zpcH|9t4_IL=dxEB3xWH8`LH*#!{JcoO#z2|E(_W(p46%R5~a8;abVO7l~CW z7m2dT?XK?JC|>>3;_dPnjq=SxTwD2mIBDd}gmy?5m&%Q$3wGr#^)ZnZ61LQsi8K|q z)f8jmO{&Ek*B7r|l(2u*#Bf;H6`NG}RgOB{v_fj5Qeug(0u6kX7elg5yqohW%I64% zDg7S59pa~0Z|c4ask`SBL_g-YI?92y5c72l!q|#NzF9oYZyVg*IE)c~<2gsGgzxh? z!YRNH_G|M0<)yL|4?w~bR-+KoSb>BubRv(XrW03`HjG!+X zi{8W5TRaeQJlMeFKo70=qJ^)8>!Dyb9(O#Ma21z5iDMK;Xq?7ylurUx9Ag-FP{eVJ zPhm$kfl2CZ#7-Q?GpMJ=dQ9PmjLeU?E>njqd6p7^Ykh>OL8YKNP!TY}zvuW@hv#vE zpBwpfk_TU~@MHW$JUkD{f{JM_Y7wp`+|?vBKAf_Us>o(aGQA=@?a0nNhjc|YyNoPT zk@0>B!;AX_PYLo`MTmPAu%iw~dcDxP0``Q^ z7mkGkPP-X7M2?0LV}gl{-0P|+JH8EhoTnM8#Y^}p?aNq)PJ#*XOg+K8%sdca8tb?f z+*AVeGY3!$k9b_Zf(u*}9CELOSNR|i?8DDJ1m~zqAn1r!5cGu|2)(iJ0-gxt9-a~j z?Jucg{K07go0*0c03Brj9bV+A)qx^->TsZh#IITo6c@mn5VxWV#B0^8`~t7jXEz~T zRyKu}vQok}fQufsGYpt0nD*t^IS^V7*a^n^B#Yq%2UxdzybP?p46MD(OpC{i$A^GZ z;p3OpQ08%|3QC)3UtVpw2_^^{#2X%nB$xe#@LgXaxIM-#gcJ*5<^hEudWdLk5&Q~o zQeUY{xRT41c%>n_gIgMJReOHLR~lEBl!mBwks`l#{{O}~+(EzJrrqBp* diff --git a/backend/target/classes/com/bycrm/controller/DashboardController.class b/backend/target/classes/com/bycrm/controller/DashboardController.class deleted file mode 100644 index f61ed69fbc8160c9a6e351852e251d143c18efae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3218 zcmbtWTT>KQ5dID<%%SS+As44r4sD6gKcyf-A^tJbSnipK;NIYz;DykWyRWu}d}hTRfT8w!i~+RIcl zqDdfLq|A)jRrAdron?1Lv7FY@MaMBLPtyA`HCTyN3LaOn8fyevB)n%dX*Fkf+L-4R zw1fN^E)j-|lSRWN=4#gPx;@V^Q$>#+Z)i;hc^M|z%67GdNTpPDDOgLK1IeUqWoxh= zEebZM*oanv74t9;{AaALkz>w#Ci*f0ZDFJGD4Gnk8KLP-Xi}SY+XdDKyo_fDH8AYy zp6PmK+TD9(AdWUv)}RAh6lf~8;t7G(f#QN?AP`I2Mavu1vxK5A>{S_x5EAn#eU@ir z>0}r$KN{)FHkEhaDVDu!cr(S{RfKicWM1Gz6Z9;1E!ly&*eC zZyQ>}W@lW9<5}!hut&vn=oVNKWUMS95H&4tM9&p@2CrS8G~BCVFZK!4@bprx%PiH; zvEchzg9A9IpijjiJU<6tS$DhwbE{pT&d0ZBA~<#J{NO_%&%)QQ;;@9TmhhEskPn`8 zU{J*i()zMe?hGr#q76()@P}0#k=k|C9xMrz)kpB6f|pbrlku(!P%hU;_@)a~`4;4X z$5p&C<4#G&KQE4Eyr$xHyus9*lAsQZ%KRP*=cXJ}3TXuy6$U8M7+B^mZ(9V;E#_Dp zid#&l4c8Uu2qRU#hv9oNN0Bvit~GRt7OeNK`2yj9!|Vm~85SrT2<~`S+lWA<*Uqr8 z>XN2q94_WlhI2$u$#Shv+G#yEqC2MiE)yf(n8`rfLvB5|*E7n+{f0MYX9jgg&l{fM zP=682Hs}QcJtg2C+6?D(o%_+O$@op*PcyCFU!zQvGt*Kx`pk!$;{^+Ka27!*?$9k~ zkX0^Q8zb8glKA)5M+H6&r6;iLZ?xpSyv8-9H>%7~3!&>kJ>r%=(XSWE8Ho*>Sxfhd z4pTP%zhT_CMl)}Wn6AkJ>9#Cec6Zw%3N1;~*4)#2md#ev1CG{RFbDYH z`*IRB{{{*)-TnOL@0YLK`~J$kYmDP>U2-!-(+j2PCU z7V9`stw#ba7$;|Y=_H&$j$cwUQ`q$lV%+s~R#R?CqIw$pE6}M>OqoJ*hBiQ2l(gs+hRS;1qKVu^(>N;7 z86z(?g_nPTnux@1;Z^Pvkz3Gj(8EedpbimyaH>(Ug|TcUWZSsoWFhAT{`GKPIEdXi ziamUxx~bEH0`}oe?8kXNmKVvrj6Qsgqz~*UqdyOYGA9W* z4}c+Lo8f~$h(HJpXq3=)QMs(h8AVUaFLO_mQmeO)2bQib5`XoEh7u4NHf~8 zE{Kj0I_7l173!xta#7U_cwajyE4NhNN!geqF#p^{Z z3mi96EUs`&)74Y?Y(h29D2WU$Yhp%H$;1^?6Ys7uU`=aG)lLu5WokIWvoWSx(?)7S zF_kPSn{=M^(p_1REmaH*LnponOJdZ+FjcYlLDL$&}1{Kl_ zof`DSG(*l^QPMo!vQnOrkIrc0GpcE?BSynzC6i|~>k2>q`s9zF3)ij|ez>;q_{P(3 zug-t>rG%lFVW#EWjA$hnL=9Xq%uDhWH6bT7J>@}`Ppa0KGBYDu4q@et-H^6bQY@8G z1=sFnxY`~B43{{~-@Lx?`#lN!>Si{new0EQ+|F8;Dvs2|F`)Y57_+| zzW%##^^0dUqRK`g!Kblzxy5IHP3+c1IHxk1uqBI2!icw=YI}A#a1KYOkI^E2z`0$x(w{xKfZx z1Y3}DyQrL8vRk_+$QD0tXsL)eCgJ(7ZqGk{R0>+c-nvU?!pM25x_&>m8spAz<)~T20q*S?;|)cxN8op z12`1u3OvNxd$jxQjl?Y*=;4Mt>`jIopVB7nyo&E7E^)ArBeA+2`*DE&tqkZO4so9d zts$;*EW@-2Qmg%R2Hijh;4pta9KmaRc5?JO9ggO349CUbJfs|=I3X7LIXmLap2Qm* zjGn`rW!qbe*kWZHuZkFRMVO?QP_oSyVGdnBj19U1I7&ML$dqr7Ex=Z1eMx{eoWeLM zv=DIur-|q4eM&Ip&xgtCkfuB#ov}k|7bpM# diff --git a/backend/target/classes/com/bycrm/controller/ReportController.class b/backend/target/classes/com/bycrm/controller/ReportController.class deleted file mode 100644 index 68aa9c8305becdb61037a4cc235c50ce8a9d0e94..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5242 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 HMy3A%pllA8 diff --git a/backend/target/classes/com/bycrm/dto/DashboardStatisticsDTO.class b/backend/target/classes/com/bycrm/dto/DashboardStatisticsDTO.class deleted file mode 100644 index b0c9379c5d6f20262c5d1fcc04fcc9fcdb519104..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3092 zcma)8TW=dh6#mBE^{$;w;yO)Jw*eY(n|lqV6lymmH0dQJX+zV7w%oe0x3OE>8`f(i z5YLDwB%Y9vc%>5R15}VoAR%}u62FO3zS;F<*IJ}R@yywCzVpqT%gpZI|Nip`V{pMi|j8#`8`Ty1Q34f_p@dJbjFthKpQbQm*m5Lp4eWH!!!+%jtd zqf>zu{lJRTwLthG|+41R!lw2Btf1%fT38m^CnmdB#v-N|)@i<)wc`LtbF4m%I(vVMfli zsd@xf!eKDAZ(27M#@rI;0-RIfK zaUg+VPaQ?(Ywk#(*b6!qn5elU!9r8{rUwiZnYyid|ke9kXt^+&uF{-#`O0n^Xkb&W8k=jiK5CnLwS|r4vwXw_-Uo$^deq-Vqq_ zjQ!fQ2MyFzV4n{R>pWPn%v{CCg_S;Ep!8k7kZzFoP3iucxzkR$x_)hCjZGm|*x8QN zY}I(_4E1l;$b~jFm;DVS-0H27wE_QV-!0Rw!R) z=fv8JAbgESv*L{kp#l~Pu>OF8UOZbnn4_ev=n zrAwLdDBq2y9N8>tqA=4N(r zzDpb|1sNMu!sNjyR30S2>bHW2{j3K~JV zf}YhRNN+{7)0KZ@^g zo2Ms+9KOPP)WtD_FY!Jl1s8E2A5c=+Ulu;3lt7I~`y)yk94z7vB^_V$*qfA+_y&iu zMJa_6_i+ltn*I-lH0V!pKtqiGx_F9%zL@+UvD1w=SrkQn&iF;aX>M3HxGJk5;|v~Z zKTf~D)oz?BqmyyA`}?+6W`0~y#UmrWAcaPvopkYxvfveSJYB4?lzMvh0krvD%-oUs ziGm^xS*2~!Wr2NDuAq7**4A^&uWf_1Ft~@0FwliD@;k<_2_um24`A^(9KZD#FK1ra#jCP3yLdfQ m@Z||9pYi3Kl+XI|q?8va@8Vql^%;C+EVgqjm|59Iwf_Jc-#U>1 diff --git a/backend/target/classes/com/bycrm/dto/DealerDTO.class b/backend/target/classes/com/bycrm/dto/DealerDTO.class deleted file mode 100644 index a9e64302e0f4ee687c2b9aa6254acffd94a4d11e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4785 zcmbVQ-E$jP75}ZQ)vn}~tthdRZ4zpOY2uGWU^4Yp&F)FtJs8+mIhktJ7J zr%m~2Orf-ekOCtyRjxvdKb^uvm4=T%{~2n=Nb+2Hl%? zizNZQ$HG=@o3+cYz)mlR`$JFuPUeifQ5Sn)m(6EwWli8nH1Um7Cwj%QCV=y zN1j}COB#B1h8(DPg!4SMYp9t`vg(2ZO;R(Mr;b6qV zF6`D|(7~h()utAD5G(=xh=q^Vp@$eRq5GJ{!y`RI`k`>hgz*y=?ia@HkWoZU*dDOp z2%AaU5fM0{+-G6GPCk&@4Sg|hHRuyq|JU4lMH|u zgi?muDNfzgij7lwoVyt5lc~bdNuJzDpGp(Cu4%EZN86TDKk?A1wlC)tgErDvPa}H% zyasJh?DUHkz9a+fR}{&>;~F-}s1+-@6JE9GmWt1~r%Q}#rY48e%=%)b{K(j0dSR5( zJX$WY>`%L;MNenNiXTmbeSER(7w5g{Vy#FA50=XnCLyUz`W2nveK&GqV%hmuits&wN}%8|8onI zi=`5GkX?Og`R^B&TG?@xsomqnvNyRnf7+{_R8h{3R|;-v+GXS!v_Kj6=ZcJ)J^nte zOvI^HuhEu^IL-5$@cg;T%#>SYqWe5WMN$jl;kMQ&^E0Fp3CiT8M%E)UlVZK6 z^oGl$-crPjodnfOmB~_RZM8w>vN=}#Ij>5%*yVsqc=l4MZ48srs2X-knbbfTM6qcI z3~G>-jF!SYp+HAHJsgx-RloiVLDnu|!OH;kdG;}FzQ;}x83TG$Wh2T*2 zspDf4M;MnewwkI}TP*P+Ga4J#2h{%b0kxejzC%5Ph1XE1wIv3El_Uq6lcr8o7OMsC zXi-#fSEJeO7A1~;w$&Ike3|ci;Nmpp0*g0>8UFF|M|H`6Qph48p7ODFLX#=ZGB{yZLM-zX{_SjWIOIJ&|PIn-S!6 zJ9%p)nHOvXInz$=k0kQ~jv#MrC+~@A@M;?fARca0S*bJHCvab;Piv6Ef^1Y+Yay?;?8zX}~m?@+SvR~*H6DW&l@ewVmNsf+!+AK#`XE{$?e8~&S-~mQMbSYhAmIz|_LQz3fO-io^ zkzrZlavLeTBvY2(k*H$di~WW!QgrlACciJfUnb_ZOn#1OX=aA6z}U5n1CI;+uoD*s zJ04g}k*vy;b98B9o=TEw>vhwplaQuF!^G@WtUZn)O-$T?WzFtvU}NyjP7 zF#BHOhA*k}be@eziAVy>YyS<$wD$p5CO4H6&zmHUm0f3`%M1A6Lx?9JK# z8-h-FeEgoO@|RU9KC=QdH*xUP4IIuMS;j*mUHQs>M#(uLPbhg*$j6ktN64R5@?IgI lQ1ZYs9?5=A$$6oFjE`k};aX(DiTi-_2PvlEXA<@E{{Rqikxl>r diff --git a/backend/target/classes/com/bycrm/dto/LoginDTO.class b/backend/target/classes/com/bycrm/dto/LoginDTO.class deleted file mode 100644 index e8fd1eb204e9f062d775743f57791139c43f6e0f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2209 zcma)7O>Y}j6g|(Lu_wv6anmHNn-rQh5a+8d5J0t?K-;7=Az$PR!HS7Jil=pE!pyi( zb_fZvslS%*5 z(4BWSGwXNq?q;UoJDFK$!?Gt=76i1iXS%krX$o}A9$+r}u4QlJB+4-z?Gi%UGCc1+ z$1Su{d0a;aPEeUQ?5TIlMoFM6UFRRmbznp0pEEPgtU^8zOiS97&&l?tZYigSo+ zcvco1(vYr_FfKRKItDSs_{P?jX%_@W>njTrJ(_z6pVKhHQb*2K=^EE?K|l;j=!-g@ zlXYmm6X3-0fiG0P@($$%x%IKD#}b=!nlTI`(9?=@vpL% zZsi2xo2KU(8;swz|Jhf6ezN=M)4LDv-~H>OpB~=d+y8n`;7ntjl{;IFu{s`o^YQ){ zA2vEE!RfTmTDCb~-ds1`m7q!i9*|CEGHS{%U^+9INQ-6oEnYuxkbfio~*S zJVG{51d<o)4M{N+4c#yAxTh!Z$aMdbZHYCCb%b^T*Wo6_z>YF$42Mx5&xE(_0FA5o%sedaZVg| zKHb!L5>pHzBWF2BILC&De?Yu>-ra#kn76D+5-M<=ek!{NNiJS%4w?ABkdpTrWP1gY zFJGAD-<;!&RvaGs5~{L2{42E2p+>ide}OhPGPHwaWl5oPeuP6-8T}1yDdho<--AAy zQg(2vYSEKbY0{I8rBrDXdw`C6NTk$MtZJleGgkD-`P~R|sPRz54NNoXE-Yh)XBt62 zChDP(}y`qD#sqoQ;K1M_-FY|(*D7*IJC#;jw8Zd$Nk$NGaitCW+-%Z*#)N0@N^#DDUDT-e63X_j8F-1g*G8 z@+4vB+0QGKlnOaBP@YhskQ^aM2;cN4G&)#Eq@oLI)u3vlG^%LEc>KKG2>9x1crfgNNHU#I$uoDS;}Sgjnw+JCdjpX2}l diff --git a/backend/target/classes/com/bycrm/dto/PageQuery.class b/backend/target/classes/com/bycrm/dto/PageQuery.class deleted file mode 100644 index 2c2429b169ea71e04a0683c8c2219f881ee7e48e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3530 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 K5jY>T_`-kiw>r20 diff --git a/backend/target/classes/com/bycrm/dto/ReportDTO.class b/backend/target/classes/com/bycrm/dto/ReportDTO.class deleted file mode 100644 index a4b185d2adf5d7dd76ef6247f72373413db74d88..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2309 zcma)7TXPd-7=FHFH`%6}9?}zmqEsuUCxQwp382t|1be`?L_sgyCOgeyvRijIjCkvf zH~s-Hy^wK+VRS|dgQKH2IOA{d5)VJXOA()MH%)i3&e&nj48THEuTmg!dN^t!m~cG0mn%hFAsj(!XX^wv$U=2~06 z<=6tbi0Yc}T2#(ZIj3U?!vb2(u+P2UHktw>g@|ehwmfxJDv#Z|VB`u@ z5t9IjOn<+Q1JZZOl#V^=;h>Hu@T5Q=JuF1w4aZz`0VXh^<0(8%fDOZI%sX{6;H#3x zGh}Hu`_STS+iKQLH-kweH58ajm$||&Z>Qw>w2m3f5}dKMW!mI&E}C`+Ks2pb1adct zBhp3jG0PpoB80>(H9W`sXAecHb4tSt0%A%!J+9+L$<dpgEO}6 z_=fBcPvCHX_=Dngx~~VqVokbn4a@eu;*R+i2YM1}3@nqIrf z*P}P)S)Yt~$gDYSw`QKVWRvuD@4yk+MVR0{OhDizB(WbSP~y7G{z%{?e|&y8p60%n z@>lqK)x#N_r63D2gk4cWJ~I^eP={|E$9e9GoCRlf`VPcbTqLl-Q65W|=Q!%20?y+# z?s$!{k7L~UYox#AVbpkdPh&nOdl+XQH_q>Ad;t}PkdaHA6P#1iGv6S+H}26;qk~)K zB*_xENIR7kAsYg(V{tE++5hWOa@utnZup3HT>i;9&1j98>Cd4mw`P8X_9@ilt(hO7 zEzM4EV=&lqF|s_%p`^_Hgxic&*hbExosSJSIWmriaf|GofAzG z%cJqV2|E^g?Z8O#=3PdWF;yJLn_MN3!BM93e;uAMr<2 z+TAClU diff --git a/backend/target/classes/com/bycrm/dto/ResetPasswordDTO.class b/backend/target/classes/com/bycrm/dto/ResetPasswordDTO.class deleted file mode 100644 index ed1c6671f7382ce7a57d2a14ed6ccb08ece82f4e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2451 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 E184$R+yDRo diff --git a/backend/target/classes/com/bycrm/entity/Customer.class b/backend/target/classes/com/bycrm/entity/Customer.class deleted file mode 100644 index ebe5520298b9e09b4271fd8d4b54ddc62c5628ab..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5044 zcmb_g`*Ryt75-MzYFF~wmK8hc#wNIl3w~B9HIS?lgX`MF!A?V*7*bwcOIursB^hZ| z>hdU19!)6kcX_`WU^2sFs5?A{DL+tV_>p0T;qeQ91~ZiK-FtVXwX+5PfXCLJd(QWr zd+)jD+@tj${{73}0GP%Pvq&ImAZ0;ET0`!N`-ofEbZhH{2iC55C0|4ORHat&XEY>7 z$5t~ikui|9&;?6_U8+|LYulwpwcyqKioac$Yc>6P)oW--RLbnUz|ZQ#ZDS za?rvMUdE+2eb;X_H5`acu~_rHb*~{;@^TBqxKl%>)bL#2E6;Mjw!-?As#jR5m)y5~Ey2$*s-5tL1KL7#NMrsbX0idr*MKElgmN8(a7M zMaC#UIu?P-D2Y?K+d@J3Onbs%Q!wwb@G9KP<&wD)Y;9l{JKUT=zuLlU@LGn8=yNjC z{kyP1tOfL>1xG+lLeGnE3*{*br-d?0<*bUhP`}Q?>xH_D>ct@FLVuryIoz+oqJFLu z&cSfbn1Bk}f`vDPv`d|sCa`GXEZ)d9ZMe;ixq6wI!VFwAu&m)wC#%#h?rT*x%U&ak zB_vIp=PJTP9Icd33-tvHE4avTx?5XbjbWdP9#9aA=t1mqTof)=g^M@uVTMN=Il|pc z6PI}glfxp}Pn&ovcQiRHbDE>KGrW_-K|XW*PR4a|ILu`#T%Pviu*zc&OWfJya64P6 zVOXeXXCpQ18niL7-in1Q@>Ko0T9N@KX1|PGrCwO^8Wnf5@|e4}Nhi6c9IkqeW~E-c zw8)dx&T8nMtJgSt&0lplTb|BKL;PqglM5|YeAQd6G%Iv4TdUQXk)*QRrk2FL@UYwT zy~d-}&B7J8bhTNp72GzcaF*kRdZX(4MMh`K^$D%9P`CLrwY)r4E)SnM<5a6olm1fb z_P=OA2clUZYj13o!C3bE zje7aK+u)&bWprndpsHwBWrvAFl1YRt9-b-1pk#QUVyd7}c$yrAwR(L%!UZih`63jsgYurRH{Vd0+b;fW~5PF*I8u> z2GSt2nHyD>U}Q;CklIWnW$cWlIm~noJ<1+YNI*N)HS{V(MAIW7?c8reBARZ-x^#8f z-3pRJKYw9yd7eR9Z&2>yv&lcdi54BPO~n}osAQ|>=Og44_|*8+$Df1tQ|a*C{1j$zA&<&W z3BWcU<46;|i=Vs6KZo%X8WZS{`(w#$NHOH@y<|I<%oY_x?%PW~5=&+)iy`;#B_E3= zv*E>%5A7w7#**2xW5|d1lBZ(HY^gEiBYVmB#**1sW5`GMl268x--Gw^K*c#bd?xrz zk54=cBR)$GDnyVaB7;OCYj_`dI>=`*kU5qU}-*J`nG+Z@(@@d9_`t z!3X1A_V3rFsMNMgHTY1x%R~EhDT==BQVpKKhvQ;-c)u>i{n2(gB>jH`A4T%^6F;(F zm+C4CPJEayZ@ZN=d@O#Bqx+ph-D<%cBk^gL36VLlB# zd2`} zt=s7cXxcFdns!Xv5Fj%E8MYY#op3S)op7>tMu4&bC}U?MprX@7P|>mME&;Lv5Tyuc z#_1+##_6%U1*j(gb=y4=(5%x-(5#cQdj%*LfO_p*1T^pT5j5}Q?LGm@2cSMXAA(Xh zSDEMKOS)9zwd{0gN$Z32UMno=HL<-XQ1Xqf*(j{);V95j&N zuc^I=JCvCDKZxO7_$0G7CEgcRlHw$TC9YRpWT%L6w2i75tJ_r%W6Y>s=gQmVdtH_< z-a9&a#pjbu6kR~R7z%oM9jAKfZ**38x6l>PWNE53eU}Zwnypxrt zY}>>dA!{f;8MoBFgFq$m7kmw0XH<0j8Q-9kVEX(K-(>KTIEG)~Ta;3mq3zq0bX>+0 z_ztBsd~D#mlnkciGQLO2#Eh^ik1+%k^EOI{6>kfO{LhctAo0;(x!;ud$56aE zpl4sg-kJTsAp$2|FYTn`=YN3ciaEh|V^uG_2E_MqVCz>{y8Il@ESFE(-Y_N}dt&LrOj_xNAzD6>?e0^Fn@@@(wokei4g);ob^zSi=o@ HCH&w&Nuz~l diff --git a/backend/target/classes/com/bycrm/entity/Dealer.class b/backend/target/classes/com/bycrm/entity/Dealer.class deleted file mode 100644 index 779591ba5da3d6dedd1d70cbcb914bcdd5ebb27e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6012 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 diff --git a/backend/target/classes/com/bycrm/entity/Dict.class b/backend/target/classes/com/bycrm/entity/Dict.class deleted file mode 100644 index a60cf8a12f77b8ef9e20d7cde9936fedba2da795..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4642 zcmb7IYjYb{8GcsQYFF~gahy1=lC*VO1HP$Bic4UX1agmyorX9uq!j2{+S;4y;!3O1 zlzUqWZMn2uOSuihO!Fl(z)b7T0K>qSGQ&qcF~cW5@h4Ks^X^&guACjlc;wx8-}5~0 zIp;mkdyZCr`_J$H1YiNbEFgm+16d0?avDajIZrv2hSOTFJiKqN4=KkAJ;H6 zJ+qpJiM)Y=g<)74#%t|nW$k*c)2z5H-}A3mPJ6=1cy-2Fii0h+TkBOJk674+Q4MCD zz*FtIt6?mGTk$(yh#a%9CqiCuny%2tE$kELaNX_JI^L%5wOiu9!$JxBHRNj@*YVx@ z2@ay9;`(0Gtt_=`PUAFNF7qiE$UzHt28`ZjT`?ri-4-Tsj|ScI-DWqML(lgbl_jt1 zR|^E)XJHEO;~Z*E>&%lqr@=%_CnljXSDkr8z#p(MjTuHO2b4f1~urDJ+D!B zI|ZD?kcqQo$t0(}`Y~~xx3GwZm=9-j(`_+t+_h2PecyMDIF`!CJ}Km>AS)-&QC`2qvw->Cz2OES2@Y~$v|41q=`>k zcod(ZQ?#K37s(@*oQcnA&}L*xj)gT@OVe+wQ5#@t_6Di-+LaZz<2eoQ8E37*x*F{U zkE?E{%PP6Dc$!g|(c-CgtLr;0f7NO9T%Fs1{AsM0OFh(^K`ROx#rZK=(bxGCjwO-;`7;dr|I}r4aTP96WY?S=Q{t&%gg0@ee(Qy zyV>u{W9wHDEYj|P3+wyQ{js>c~StCY2C$!ob6dd)Srb6HJzEU5BT zhe_c0Luc0C@Yvx*dQgU|^wqxO0q9*-%6pQM3@UkMm1$pg{f&10qSK*Rm;-h`OhR12 z1A9eZ$t3nsA~Fh0II+U0B{~vCdNAxfrAB2Gf{tpFg5hJRu>Po{=~e~5Z!mY)H~aZJ z6!sIr|M&7pEUi7bsfRVkJ+SR>xE-oP)?`Y~2s7{mW-)N~%Z>?9O|c^egc*tf$}y@U zB$Ku~#3X$q0W7Li4Z9R5;ZcyNbR$T@Q(W;`1Ix~4s5AZIrN!kloctm;t&ZF6HFyLK z1vAS}#gkCB8m~2#*g`ZErV=A4OeOj%th9TbntRrhvd)W=?w69sJ={Yw&`{%jKU_Rc zd!5Cc!3O_%LI*a_+u+XAG`RBs4emTJiN8jBnD;06-{_)ABG1LNhG*qyWJ4=pw|P2q zMUmrmlb#Ci8t?k-+t7X&K%V4Pnt>uZyjlu?E_^;|axU^ZNPZK>Z`qhZOdd}q^Jq*V z7q^r5r;>S4rjU1UC*Pe)=4qNj-n*SVl}hG$n?j!0PM%FA^VCftAJ|SlluG7F!?bQP zx$#oHiMzIwA50;u74Na{r||hOh|PP3!E&>6Z^1}k@O=sqF1Uz6G^ycf@^o%^6rzUf zcqT1mai<|g-cd;P@P+h{yLTE=DkTc39=@0!a_>$4M3fU0(ppsGDmDhg;M1Qkmo zeNgshYKmV|d5OyI7M{n~nY(fP8!vG0&G7Z*ANU4+Lzuofo5D-@7A+I6@~HSWtvr6rBj-D`3fRI~e3#ZR{>V3gS7=%ICl8BPX%+D= z9KiQzjo|wn?-Irh^A<)7nD1hrfeb&U_Ac&FX8!*&`&-HL6iHUz%9J?xTEmx6cBYFe zBumKyB`HKb%9769NR~pezrctZCv$>VZkn0%43TG`H%6;Rv&RBa9UQH0P*UdT+zlAz zEgXML{AD{U4W(?@Vv5jI(_vc=ny9gWWR~=P(}JA~nsQMSm8V!oY$Ir*=t7p!Z>rj6 z&}2qUlpOFL?Os^#(UCP^Y8n@m?-lPcSp1w3$2jypppVH8x2b1jqQ4hLB?3Mu}PJZ6T4rfv5=*pZo;#&B{+C>CL1w-+YHts$%)b_cx&a z2b{e6HcpS7*}^#y*A_lLc0t)x*155Z%04XiC1o#&eOcK@1iz~6s@R`W_9J3{mi87N U+kVm~zm(NOO=$ReP%OXrF9Ww_;{X5v diff --git a/backend/target/classes/com/bycrm/entity/DictItem.class b/backend/target/classes/com/bycrm/entity/DictItem.class deleted file mode 100644 index fba6e0bd8c669528a6627dbb05e7d734c7826b58..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4656 zcmbVQTXP&o75-*-XJ>XbE3IWo&O}aPVF9{&O%UMB+Bl9K#|n~dEL*|hmeKB58fP!c z?kL3Jl9-SS;hJy>gv%qYqFlwLh+G9!ioAp>o_T^Neg!X>@OAgh?5sRcDpb<+>2tpC zboc3Vx@Yv4fB*h%01Nn85gB9+x})_PSq7_=}X z*!j8u*M(}2g<^qU9ocl5xPogk)@O z))k}3F%Mdp#QQavHMjNfQ(G?QJUW#aQ$?^k{kQ;s(83g^HR$Ue*UZ&TO(&o-HexSk zEzAj@c~3a(3g#gT6~Qc!DZ^VA+7DT{A0O6WQM=Mx^Jt&jXw`!75epy1#}q;AP#EQr zK0+90fq%e)lf=tV3&T+h$H06LBcJR=a6EF95<@|I(87s`cBvP}3{F}&g@+l&4Y#{- zvR(INsx2CLM8m#b`lzWrwBNCYeE7O~wFMJR+m!w<{}N$9Eh4v+i1hQ7w06 zch&23{dVip;wgGz1WPB|t#0790y!t0=YsgrSQ8hvSkz5#)$jUraH7>}2W~)Wm!Vk_ zrGLfk243fxW}|Y|tv%Uow<>N7syxd6>2{~-22~BlrW+92VpU$_&;0W8e7%0)%o(TI zbh`AHQyV|Do|TB3CJ zhq#o=iO_MyaL?NPXJeR{TyQ(s5a*sDqBALuUsGzNI3SfOH#q@ih`NK)7-yk|A!Sc! z6eLdO7?RNRAYnK{F9H&36eLdW*h@mAAaS^i!1G|PR%>*i&`qlMB%~?iCW|B zVDj+RP-A;HJY1o?&ML}agMYj$rOaDTw!G?O%X>_=yt!n{TZz1@ln2;8$-hPyO*-J^ zlV;dUC9iEhTjW&OYHanHThM+Z9k%%tW^mw5`IG=Wg${d~xRLnmC;tw{uW8JnM;=Kf z^HNG7mv)lvR5Guk6moed`QB7A@1+#-$WHRXR5EYP6!N~E z6!LvL$qT9EE&}d}*eZu@hHZXk_AMCc8$G5F;YN!j5ILw}i#%Opr_9dN=`KsVbt%$0 zb~z+negV&<&9b~(m!dLam&4NKwRD#wyLBmwEOt32T|SF1rp0{it+cDHB5{@yEJ_cVtRcJD2*zVyWF)=&y3+TC< zv+uxs6MFXM?4MvR&&_P(eX>j8183*>aB}m1#(Ixtpx1Y~r+3N9|1& zyr=@T2|S1AnKh%Dh3hynzQPTMW`d7S2DUSx;!b_A4 zvVMh^DVcZ;-^DAG3U~vr;_H-(*yfG#Dy0GZkvGscC|USB-x0q_sf2&vL41qSAa8&P ze4Emcmd7~0L#a$}z+Dd;61wS^)o^-3Oxcum|VXqgyj>k9&)EP1RMR}9zMkoQp`IjJyyCcB=VmbYJtQj zf8}~};(s0K=8#_eFZSN({|iAU+&+H5sr+SCig!q${s)}Cd<$oW7q{^Vk;dCNH+(_K z%;9sx7nQugW_VS}M}+(-B_9@;$CX?a@@JHMT*#lJyp1PzzI7yD5bI%zY50jO%b)%S Dc?(To diff --git a/backend/target/classes/com/bycrm/entity/OperationLog.class b/backend/target/classes/com/bycrm/entity/OperationLog.class deleted file mode 100644 index 92274d78aa513d4178e6b3a02779c91d9fe702b4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4751 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 Jkr&%v{|koj;4J_E diff --git a/backend/target/classes/com/bycrm/entity/School.class b/backend/target/classes/com/bycrm/entity/School.class deleted file mode 100644 index 5f07b2d058656323bb027f61dc86921d9b772f15..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4139 zcmb7HU2_{(8GcsU)vlzK?I?EAZPMa41}xjELQ@D`C!wj6G!9l8;>4t-Fj-66Xj4h+ zN~_Y8uk!u{wExnhPZuJ{uvLuX(k$*S%GHe*3oHh&1F*1>GPzqanLk z*~-I0-bBGh5w?cIjj&VOzSHP+YJN8gqC2(CMk@^48ZtqX-ZsYWHp1?$RY9M!F^w4w zg}#KYg-u^WIf2}adO?gW+c=oOUiLb^a4~1&kWgFgu;E2P*cHl$Y&dvWL%z}Ty~uB# z<=P$PHVQg^ZG+hMIa;o9Bv*3O#v_t3*l8+8fqp(TA>K@G+&KU(LG%Zrr+RPI?s_`^09h0mNX9QFls$;L8PG?d6xK~s^Ko$wIH zLJ*#?QJW-)a0tssY&Ly}VG*>C+jx3NyFQLg z2CFts;WQ)D^7<{cTGqt6iBGT+#+g=Yes&PFn|`l=Gss$amibn@Tnw70h4P$@^SHo} zcso0Om!YdBgBTQ3}G^rr!&^cJPL` z-DdUA^yP5N@Aa9w>+9#}6;x{co#-u6@Gk_S1BxoaPl*1&V?2a1(C`9GJdDraCCZ;= z9?X)oDHCG$Q=As^UF zel(TLDjWLPJLv?LD$0O-;@ZCx!Fr)K1%|+Z_ zUV00LesB4&uzmp}dvEzKu<9#IyLeO%DLj68g3xyi-VkPPj#a zPPn#H6d*eWQA&VLx+Q{6x>HU`fTm(l$(b60^n2WY_JLFD=PE9vPPmUgA{N9P{(}Ke zvJB6$f8sUjvRJ}D@Oer)p2ORCosxk%euF!da%`8M;0;P9bNfAffs%!vvZKC8DUY9V z<}XnyU>6tgWlBZ-3D4jwlx+NqnR=5_3IE0se3jA^zQ*-#V9vDeW6Ff}9uAqv@ZZwj z!$V5U|6k&;yZfvbUA)Z4-TgGTD-H}pRE3CA@_1HfyE-q7QIrhEMnoyDzk%!_z64Xn zBPer`F7kBr*39ZD{j@Bqqcf{5mXtNKd>3YQ7w%1=ueiD}IC^ZcM4>5D)itDvH6}@x zV+>8l-JCS#MkZFCVx4eJX=2gEEOTf&=~~icjZ7>>vW}(~#!G4k@s_jrHNK8-aDN7V zg>O>IFqOZ=w-|;jj?wmQN;=PoR%nR?}ney3Ptcl{<#dGCLO0Mux-cT~D qY^{7*$;X9!Mad@w{;HBs3i%r4U2N^WXp^rsH{v?b@B`T(Kl~ppN$p$! diff --git a/backend/target/classes/com/bycrm/entity/SystemConfig.class b/backend/target/classes/com/bycrm/entity/SystemConfig.class deleted file mode 100644 index 51c4e73f811c17821493a0387500e71ed2d3ece4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5699 zcmb_gS#um$75;kG)=ZBy8cBBAyRl5PSQ&@|PFl7=v20nk#sVkrt92vt1s;3s&2AHWMm6-5=neD~h&nVxYw(F3Z{^yzcH z@ASR*Ecf>O@xQ6FErS^1X(S9JkerH($Ct9PFd)0GhhmR zM&Zw_tw{J*1KT9L0Seeg-MJ{Jw-%GSdJJt8jz-1ffA-;24-;FA6jeqw+2It2!No?8kh@cXIn9d;XVVW z@D|2k*={T!u9X;erua-6^BOj{QdUj&-c`3;a_SkJMqI}NvpSsVLvHDiFul#d{dj;O zuvb=`Dnm6E4ywOw;o!A79~Um(AzZw(gBhelDD3S_9q;DC?AxVMo*_G=!)80nxf0eY5~?n$X9lsLrXn@XRHvq3i+yS3uHQ+MsMdr8$_z9DZHoO*+0dUj@tUKsiulcnL=RZq?*$rdL5G}hqh zRra5Xv*0#d7Vu=XTJvmC;SH|jtmsnbY&NF)Bb9RTg1vOHQL7g1Ca8Fv_eX2>itUYS zNUzu)p;dN)HU5pw&5e~xyN(^RDiy0ie+iW<1WAK#; zZ`mbjryRsBTO}WxY^dt)3#W`M?qQK`bB?!ME1k0IcE#c7=+Yn|RHAMDBSM;32y;@(sN~M z-m+6?V8l`miY-N#8Y%WDWvIF3ePc+~EkVuV(9okWAx%C6@fWH$4Dxkhn7@2&Fkh!e zrQEAU^+(mFl8+2knFilio6aA6YgvQAw=@dUEW76XLYmyX$Go4jSNyz8o;p1K&pxU^lyX3>q59U<+39Fy;5K?qhg_|2&9Dna2rvqc{Y$&o(1HU zo4>qrvzJ%yZ_spJ`n-|r`<$g9R{a^yv5&r63N;I}Y? z1Nxx+mH>PRALgAV_Hcf;lV3pkIT~YVk^3Xb+>|58xlXbfN#+h6LGJA&?}#LG504=C zcarx+lDW%AkT-Xdha$;52t<&#bdtv+$vpQ&khgb|?~Ek#oDo6Z-ATSXlFZXa1bJ^K zc_Nbh7(T*m5J_V38sjxJGI|Z^=oH(e5Pph@^b^&f;iKdwd17YDYxo#G9_2E(QJ12y znl9DNC!$^UZq%iy(WXmv^T}wJ{Tp>D%Dw4Q-8>%ca`Q%Aiq6q=sct?M?Q+XTU5X~u zbg6DWjn71dXZuE7ihkB~xl{W8EIx<$%}KO-qb^lz^pj{0UEb6sHGDq$8GASS4Ao`* zXWSnB48G2&rHTEC*8w)si=!jYAep#2`a9@PAsN3q`djF8`$pC=ByTC~JGqZvR$}ZA z$eM|l(0c{On3-6|>jK1nD@n+HD`h4HCiM~uSCBK4W-0_aV5JE}HuVr_ z-0C7|+{&0;0+jJVU1lZ(ny|72O<0DR6(GY0Q3`=3tsFs2j8ZY*Y@&d@;j7zwNbu{ewR`~JI?dO_bBygr?3^@r__&UIM)hx zr1k%xI}QD1Y)T`>kFLFp+mzV#{}qE4{RA^VA$|++d%!(hOVRa{BEv-p!bbxY0@d`B zK?u00mpO@M3%D#>0N-q>;yx08k}kvv>0kNrgNZ}3K(^(_msuWqe)I~`W9vBipwREP z62f36e2XrMMwt#+NoiueNRnp{i6!QCGpoVj(_3`e!vAw;ve`S zr5F?M?|7E$8s`r_*YP7t2~6M@xJoI>SM;axV@fG_cnm+Glx9C%W`c?|ein0hj#3wX z&!1$TrjX zLS9tzgpf;0o)q#qB~J-?S;_l_p9@N!7IIn1Cxl$3ypEO56KeQ1=25>?H2hpPr5FAO DaG@ZQ diff --git a/backend/target/classes/com/bycrm/entity/User.class b/backend/target/classes/com/bycrm/entity/User.class deleted file mode 100644 index 51d23245c650408b6c0269c7f78063dbe51282d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6246 zcmcIoS$G^r5w6~Ic6U}J4!;!IeY^}YAvPWVk zKp+Xn$7#S^0m6|u<}i>zB9jC{!r?%k^8_#O#v9Lk5X@iQGqa=hB-RW1wAkRc@Uv9BtYSL7{R9zUDg4=IXVRlT7Z>sh2W> zv^Ib>t7;3%`fx{Djk1Hx>eMfh%T}{_PrXrM`hZS@QrWPr$^p<>d4o;{&qgajX*Xsh za)VAA=?#J+jd}%x^!o;xskQ8rc0^uCsM56q0=q&Zb5PA56fT;tn%rGi?O?Ox|OjBV2{X%v39pkduXrn z%n6{@HMh!(v$71|uhWbRKj))f(oU1?VtS{>i=yV$$6r^L&>CT#LaQz3Y3eyhj zbi}0{br*&WM|E1@anfEOcx^ap@6+jaI);^4vYJcN^%4>XSw9n}_X}Fr$!7H|x3OmhL z@~Q)xyQRjV2rq+%Wtit$(CB_aVuT<4<2pSc zZLPX`x;Q-~C?}VoTrV848)d6fzSla=wVgrO(Os|`&2qhVbY?fa%wqiMdJS`~wHB;O z+m2$t<3E97KHSD;Rkat&%`zP9s@3X9Wl)=l^&D?$C#+`6Zk(xB3a6~a)6IIVV0oaz zEc$!vjjGj}M39!P7NCe<|5^M^6pIt3($N0>X0>WI;V+`HsCTYhvk$bZ$L+?vnsiof zBMTO0jyX8WNNcGK(mFYbYxY$P7j3Gl@AoH@Ec%fJ1fpoSmg=R0Rs;ErS;18bgicAW z+E&~g1d&m0C90lVf2!wh7kFME)h03MpMtwb@GKI5sJ#JM0ohlw8y!wS#WIu8UZr9I z(N!aJeIilNmx+S)t*<^eoT@;8>a8U{f#Mv=JRd`v)JQQcm2Q>`>QSbSA|V0l#7HWm z>ZGJWRRHFxOm0`Xb?eP@+fgWhTYny)qfh|19zB3hA;(az(Ei61AMZh-2f1-Q~3S@dIhusZFKZ9i6Zwn;jW)eW&+)chYkc|6D0C{US`IbO3?l1x5;coJDAQ>lb z0C}vNyg!iq6*`YReSgp=Hy_*|EQz6xFx=L&`lrFy$>~hmuUGmQAxg3%%AEED3_}V1eyjGWLlXjA53tV2aUkmzP@EBXy zI)>WsoiT0<9^?DLIWfG}G5F~4LZdoA2zEKPR+oGVc`j84KL%A!gmY-u;gC5uHu^Y4 zBbUZrB<*2}hA)l1Kw5EpbcJq`T?pF_jN{9UOuR%XBXWiME|NZBL{{jXE@HbG1!TJ! zGop-%U7_qnN*hrl<^xTcae$^w&4@Edb3k!J^MQ7n34nH*Nh86aqytJANgrt1OaU}) z>PCt|x&wmb1MM@@0PQn-j5LFK98lWm@quQ|UVvuJjM2-Wj05U5GCokz>;tH1W{o}u zWgSqTk@bNNnf(AAGIK^hgK`e2-^lqu^X33R^X8y2z@R|~G++$6pvWa`hv92(2LDiN zK6xTCtZe=6LnnNeg$bjv~gK_ z2GSrsi|0Q>o8#Jls3%U^t27v=5dJmsD&3&O#Q#ln52Hs>IT3yv<7}YY5o$i)qFg1s zLjLQQy1S|4E$XfiVtxV7rCp$HvT+%@ep zHEGg36G~IDX3c~&p(-6#!Zj7mq%yLY4;R4SXd7LDl%jv5_+Emfb8?1`QSK@fkvM5WAR+N8 z;VK60^h2x|pr{LQF_G0O2Nv_eI>>IV1CFl-cklrQhoW6W>9B%r4iWEn)dK?W|Ci4j z;n%;xW`~}94SQ$w*F!i?Qm^f#QRujjDib4^gVMLy$om)aqa z%lwO$==^hZ$L*Kt1KAI*(4D+dtWYU?QpwY3vSlUjWBIg_XIZW)c{}6lN}gi*E+y|| uxvAtL%WWkeV)-5=&!fqnRq}l-e-vLU^s(;W2mYV0=baiA^e4Gd{`r4gonD{- diff --git a/backend/target/classes/com/bycrm/exception/BusinessException.class b/backend/target/classes/com/bycrm/exception/BusinessException.class deleted file mode 100644 index c3944df615604e2b52f99fad4684a8cb2607038e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1000 zcma)4OK;Oa5dOxEW0JT{+|;2BkCsP8>L7gK7Q_JrQYG_jRn8lCNsM9}Id*}61ri9v zfgix{;f$EI-NX_>LY8-TW@o?0?Ed`y{Re=%*l$9^nt_@L9d$zgjW`qTOhgm+WfrAD zC?CD|<=ZrfBSQUN5C!Rdf<5q-bw_CuM3d3MNfQ^)Fwiv7f=RHJC5KTeCo&-zXJVGg zXRisp!Qnv#q^uYBYx$_7&0h!G9QBGb*g>BoK8;Jb%(z#0trG`|P{&m+QzS2V zRv<0swjvp>!0&ST7Mieg{Jo-lf#1rtlY+>Zw4AA-aT*IYyJUOChZURU44JO`Z%^CY zg&o%3uW(umPOJ39K-k3|gDZE;sod@IPu$$=JSvAS&q|)|e8&1mUKG8n=gC%%Zx#h5 KKH)}Qb@LBh{>9V) diff --git a/backend/target/classes/com/bycrm/exception/GlobalExceptionHandler.class b/backend/target/classes/com/bycrm/exception/GlobalExceptionHandler.class deleted file mode 100644 index 0c18c6f30d40ede278060f5bde8c659ba989ee56..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4586 zcmcIn{dXKy8Gdfkbdv4RWEa}nR-q}SP1?Ye4+*ld(1Zqp+ZLO+ir~lW?#*VB*_mZ_ zHf=>jsvy+X76rv>E%gHw5Q>~5N$F94_V{O*w*JI_;PJULlik_wCaDKa&hFl?_kExD z``*9*`{G{!+=KTMXhXY(RXRGbTA*jzoHY&Gbc)8o+_cR50;`8C$MW|GwDX) z4GA4YVY`MMI{MHrFcj!nRwkJA%#u9pdNamhnKN>hQ!w^Rf66WF^@`P! zbo>LZpEYf(5VLC!^%~|$k}o3MO$A#qomHe}5DX0zwEQj%Xt-U+9WVq2{u^R}wL~y# zNxQI5d8fiyS~PIgw`?P0ReVag6L)F2TW4^8mL!4mYuk+GitkCYB(S-GHe5AmQf{VG z%#A@E_u+F41+!eXj|$w)h%rA@m`Vu$H>Z#<|*rc7^K zK2?=YUZz`!tg#5R8`JS9zQ6#_hnxj=$CZd+)@kCI7iEfu{S7sS_9m)M9HhY(P93}a z>V?a%pa0ieCmO227ja0#xQ+>YiDjam%~47a5aX>X4^9fK?;DFtT}+w;zKpMEcwEO< z@r1zbipLQn7NsMuL-?lU_*u)fgUF3V{)Ql-+}O~v2W1#YN&gc~Uc z40gh#qE{}yarx}ItA9PaaOz}C(N5$A^eZ2HbmgOS;j*ezQk4m6wlnUx&}`{gEtr_{ z+{0$hrW>=Jm=frXGy3?_iL38@c=fqg)Z)A6ubh5i;pNv<9hz3$XK0ZY+?T5>B{&*f z9c4U4g|4liqoxWw=1dn27uI-|@3@E&+pJU=ao19&1y+T%vpd7OexO>)NpC{w6*P{# zX=hE(QuAnWl|NI;g5{-y5HcSOQsYUY`?rX`Z=_Ii)Rdodf(e8-t*AX@I zVLF7B_c2q|WM8Vf)-`Sw9n-IRWHj-K5e>!SB()a1#yBS=R2JGAkNZRPR4<)y8_U|C1(`DCnFSxSo+iB!yp zQThqY{J*fbblKL>qRZE+N5eF`?&`Lz{ft2A>*po#gDCArK;EF*0G+=N!QS4&ti{&NA~Ni{zG`9RFkdR&tMO_AKgG{9yr$#lI3uvNuASw~x--(qn5A67 zB!xM-ShClY;0>Xr^Y|FUrOtl~R74nF0RI25&>-ok* za?<4GJ$iqH0YI0z_H5Y1lI)0$XL|5kfd^U_lGqKUe(z;$*Bu!dySoc-tihY=x%7L1 zZEAm|tnI;Dtn}BHuB}A!t}^C0(hFL-tZ4WnYknPAgIgPeMZ+&M4-P(uV-bwwgwf73LlnAg9yuDX}Rw}=Zp!fvj|DD(ofZh_yiA+I>#Q8m<+Rm%y z_whVcYJ&el3;2rU2Y4}p|9k|0knpqfcv2z%#*)atxe{`Nw%Uz##N3O!Fo3&b$Omi4 z2Z{V8!suNZ`SBLW70C~AB0@e!W*6nG=-cZc#$r_F%ahxR6 zCcFKph4hmQ=2NxM?IoG|>q>Rb!Ttc63SSWm-y~t4=2{zG4w$K!|1sx3;YWqvD}?_G YoW*aV(eLmFyv@A?&%J|paRD3u1MNU)!2kdN diff --git a/backend/target/classes/com/bycrm/mapper/CustomerMapper.class b/backend/target/classes/com/bycrm/mapper/CustomerMapper.class deleted file mode 100644 index 71362f3fe7ae29afdadbe18943a1cdf6ccf98906..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1534 zcmcgsU2oGc6us%^TDG#$4j3OBlnreUBQLxaAq@~xrHld+3^XvDSsJdTVC zxjs&(b*fmje!<4f4w&@qlfeadjYZ9f2MC@``kqCH`%Zyyl=OQCPQlBi5oR*w?Sb!@ zo1yYfnPwq3Tt^m_1bDh{VqimlE+R1q`1Jpgl*%w8lmv3mQQEiJh`B>idMyq7@-MbT!ij&<%Nv6hK06g5BQ@=4*F=9n_Ce{@yKHa_oeBY5{N+qeSZq;1(D+=vofms8AcgB%y<`iIF8$E9 zzhmB_TX_}M%5!>?YIMtmj9-hpO?LpxYjl^A=XZN?X@~ADDK~!K$EGFf(gS>JAl)VU E27j`I?EnA( diff --git a/backend/target/classes/com/bycrm/mapper/DealerMapper.class b/backend/target/classes/com/bycrm/mapper/DealerMapper.class deleted file mode 100644 index a205076ee03fcea8cae8b1760626757dc880e207..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1015 zcmb_bU2oGc6us_8x|Oc19bbcu!6c?m2>ilZ5fUFls+0*tCEne{$~+}@~< z;71`&+(0t1YA-xEzP>*9_+0zs=dY_DMD&K9_o&6_FftimtRkE7Oe~ku@=sEv(w_N6 zk2;KYFT|zbsn7}kvbd0uW7N-Oir~X)7BhM|32Q`XbTT~+YgVb9a;u7U3br%p&Q1JP zSdmF5ZO*8rz;gVp05X%`RjwAP{JZ~NYvY7dMg#dGG&bR4DWY@9)dK09iyFXv6%OfM zinNf727h#ZG%=R1no8%+s#~;nB41W@8>$?w&u-vo^k1}cEpqaa6v1=`!5t3)HTNXGx`oVObv;~gXfO6Ss|uY<`(-02Ls*xLd@v5bX-zXt4bs248+Qt}^m_EjxoVEZO&`u2+-T)c`beDF)TQcpmX@sc+ zjxqKyT6E7dAGd4fQ5_EJa15&Z^Z*}| z{s4cJ@l0E`-7Nv0e307dEc3H2-rFq7C zzEsE2rb0!7YM1PanJ)7j^K<8tTgsqnz+D&z{Uh6;?afw-X!)Mg+-jv!xu=BcCsCV- zcFfgpt#|KEF_ub2|P2jqIomyXGL%(~#F=-@ao zSqd;CFC-~lF*oD}Eyg_0nJesr{)aG7ewRy4x@u)NG3=B%@R6Gt_O|j7)Zt%3F8j^V zIy3vWk^+_AdUE6`?r;ftBE3Q-T(cztr3ru62@D#uIdc<+v3UZS44S;A8*j@2BnctN zcw0CgObN`-|4w`_qtx&{@1v%1%g2?*qJGQu$gN7{)f~|->c*(o3@QsR;1XTAoE2c0 z&(;xeGU{v?Vb5j?idAj2vEp$X&*ms&09WO@F7DI@~Mb5kQ^)}0{4cm?MIZPROf J%P4$@=pSqHt+)UH diff --git a/backend/target/classes/com/bycrm/mapper/SchoolMapper.class b/backend/target/classes/com/bycrm/mapper/SchoolMapper.class deleted file mode 100644 index 20a2a3c69cadf5b781b3aef54ee802fa23a8b261..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1090 zcma)5T~8B16g^XE*S4rY(TY+~1X3PgUVN+3fQdECS!%>fn8*vG;XCz9RWeC2FAM z+{W}#DIpl~!hfJb9dMupBEoyrUkkxoh#H3H;Ub^5YO zPYI9kINhi8C-kf(s1tY{8wI#A2XEd0HwgR`&qyd&ZW4G=u}Prk*dqB^%olWiiS0Z> mwS*RtcIHubGl6EQu+%EHJH&m3*90zMFMGeiKCNlK2f$zRI2G*x diff --git a/backend/target/classes/com/bycrm/mapper/SystemConfigMapper.class b/backend/target/classes/com/bycrm/mapper/SystemConfigMapper.class deleted file mode 100644 index 51f35bdbd0042e405622db1c107ea36ef95f232e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 868 zcmah{O;5r=5S>K<`A`v5#E*+c0vGonH;f6Im>5emHgaFeT9#~E(r!um*F5+G{87f) zwviwvJ#2Po_sx56X6Nhs;}ZaSa8`sIfeXuX=s2=`hdOLN=RP%~Kyl~ZbKiwMjIWBY zNuV}k3q~b#ZTdW(aZ3>>1zh4`ASHo%r)$KBPzgy55vV=_OkulBg+3>6y#}~3mfGA^ zLPaau{aa+HBocSg6OS}Uq7l0=l`mYo-_2k_=R>Zh-sFY(%;Adr0UER7@?z5S*AT@W zJ`#Z#Oa2QRxUQ#|5}u0*mxkxtl+Bqn~#8=9bOdZBOe z2O-g4bA42wlFS18BZ1cN}!6{ zHm<79*}=6NKvmBy>}7-M(7=q8X&>~gAHX3>r&moRPIQmfM4Cw7!uK2;!wK%%<0-%o D)0^oF diff --git a/backend/target/classes/com/bycrm/mapper/UserMapper.class b/backend/target/classes/com/bycrm/mapper/UserMapper.class deleted file mode 100644 index 24801cca2e2167c0c98e1e9deaf0bf705cfda386..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 787 zcmaiy%Sr<=6oyY~JFWFnZM|PMg3=Ah>mHuN+m|yeiU*q^-ah_F&at3Z)0gL^JA6DjFuk6qu_zi zLw@BwNZ-N~%K(R7nxR^RlF?z?Ex5ilN)Njox6qc_Dx2ooT?kxCdmjz1g@Ln`CT3Ji zCR%$p3FuJXsaSb|oKR<4M^;!BY4H1QWQJUfgnuu&@?eg+C;*;&;j7A{2oeNX|A_fw zz^L;%S~vPL){=t5ySJ-iq~C0J#>pmD1w6CipV__|YGD(T7vn2%@=GaB;pr%i)SZf_oKx4@>~Vr8%0}>vQ9DDoG$ZJbr1fj z?sz`B4kJc0m?k0zqf#Ms(If`($7#hTBUI@VlFH9+&UP(X`6K#PDHv;>c3yq2hm idy7_Ze^*|mY%bTno7QRLA89;q=Av7)jopFh4$&L^j>W?O diff --git a/backend/target/classes/com/bycrm/service/CustomerService.class b/backend/target/classes/com/bycrm/service/CustomerService.class deleted file mode 100644 index 8ecdb264d961ade66b2420e3f3b3a861572c8beb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1148 zcmcgr$!^p@5Pj{;l1VZX0tri40)j&#Bz)mEC=ww;L>idDK<-Yv;)u{?2hVazDZoG{+N-@hoc%lFck{6uLMnjzDAPiC6<$DZ~gGNe<1_BWeQpcS)9U|GdJ*JCxE)OaRi zm)=ALF@I{dfB(OnUo{GvB^Rwe84vfloMuZ8@*`j1`EH|gqlEj`Y{}&a0*+$HKx*;~ zRihDjceTXIbohDP9K%9*ij6Y)1xY5jD$Ctqs6bz4TC>v^-W*GIke&ONGVd?2Zt9MPwc=UTZ5JY9@fZ&pzN!`4#rw45H~ALcvotO+XDZ?EWUW>n~oRBD&$^*^{Z z=XbR|c7oe-O7d&P*QP(r&O;@+EdpDAOTctjCP}6xy;UJQZC2p&{9f4lIsyVqe6~QB zud$5|9CZ0_qlIOD^;lL|R$10q9Q4_3fOUphw>F;&>>Y35W~u5qxW$&uxq1t?OLc$A ndNxdVaJNQSQ-QdL?UDk=w&{zs_c_M{Jgn1NlfWZ>I@tLG-JeGx diff --git a/backend/target/classes/com/bycrm/service/DealerService.class b/backend/target/classes/com/bycrm/service/DealerService.class deleted file mode 100644 index 4ebb95419833fc2fd5c1102571edfa9b3e400b73..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 713 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 diff --git a/backend/target/classes/com/bycrm/service/impl/ReportServiceImpl.class b/backend/target/classes/com/bycrm/service/impl/ReportServiceImpl.class deleted file mode 100644 index 5d2cf39fe68a672dbd2aebbbb2610c1108f0f1f1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10339 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 diff --git a/backend/target/classes/com/bycrm/service/impl/SchoolServiceImpl.class b/backend/target/classes/com/bycrm/service/impl/SchoolServiceImpl.class deleted file mode 100644 index cc7ecd8efabf6c1872f9943733f9a8b6c25b3382..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4546 zcma)AX?Gk)6}>fDS{}6)WLt_7ud!@vG?GU+30cN*BFUC5Wh5JGF;3z@Yo;Z&HPb!x zv}6kiB!CkjK-dB?3E;4V05)+p$+B3#@PWhMaNtL9INa*)nW?ds=~s`;;@DXbPDky5?-^;fRoKqgN|FEUpyyp(606TQX1)le^|#Oc$A?}2NMYN zsu)8QWgAsNf$WJbi6a^w*Kt(pudS?vjOT<>JvM$ypkc=J0=W-38B+@ANgaLY7l=+< zcBX$(HVgEutBvxkrtMkYVmNV9!!d#VO7Eq#nfHU#KVPtHvrsr*Y^lSbz&*FGzy0ym zw?4l5@_*ia>EBmhyuJMX?dz}Ke)F9u25?g5_K?8#^&m`Yc&dV41&}C)Q5D4~PH8x; z!fBVfzv#Ggi7C^t3yFUIPB5z&uEw;JUp(zPOm@#Q*>F%@J#?~? zE@4Y-GKz6bXqeP-7N04K&$Du7BITrw>@mYL$N5I_+0I2JOV$oy42SWwj%VbW9;lJz6%CESO3OR7DtLLvkup$23^5 zYN(W@FFiXH;@lci z_6_|~6dRJGKd-|D1Efj0_GMYBO90D5HOx~$Wu6Pg9GE;6g(r8AORVYT{$l;9*a!sf zS8LRIWj{8_!X9KyQ;I?#ozG2~?zl0PWyD*21xy;QCEvrwYH!ve`mVb#e%wt)OmEi7 zoHnF>JyVt!ZO&Yzl4W=lRkGYt=1F!3yB7yGEAIEbD9~DoYcXHM7QbWc5d~yLo+XcR zjfOGLNY8Qq3z=;hvu13=n|De5aW#8FRBB# zj3Wfv71)&~0(IskF70o~>aa?7a#!2)`C*1sTOxeu|DnC3oJV0&Lnr9!)hoi9UfC6rcNRd zSztihHtgP(HF8rKqeF31N3X!h#^q9(s*<3Jp%NXp#xZB!O`C(3OzYN)A|X$UhvZ3s zr^|KqP+-EEj>jxZga=GIzPaCVJnrj8K1l6CQ!RcI#oPF;hIe%Q4!>vd@y{2&ye)gd znd6S)lcj|*O@TQsPf_(O2<5kbsc9D)1q+-s>`c}ybfg?-Za$w>x*<(^>C63RZjfENj@13U3me2t*K&QW@)hs7YDF$Du;FE15qyIKzlm>! zoc_#vHQP^w=pS3b6B0ccu43R^%kgEL`0FZ$$uKn<@41N)USmr*7u?QEvz`@vE`qZ? zOUOuORX(!=^fJ&xW``K91U-J3h#x?VUk1J8_b~tZd8U^Py8;L$h9~d}zD<~ocog5k zcL};FzjGSNG|A}c z@fFMpTtQ9MHPRX3>mGsbTd>v!Yc!;ojo=#1)wmr+1D-$=d2HpOd^e5}=Tl@iqOeMq zSS9fqqs32Eo(Iq3$Ar^MiOC37`4J4%C`bK-qk_K6A>(R98cMo+jWB{(zPH6FOlrCOFZuo}UNW%1CgnfiI&Oqd@8Lr%u`kMT%PbJ9X#YQ< C)4wMG diff --git a/backend/target/classes/com/bycrm/service/impl/SystemConfigServiceImpl.class b/backend/target/classes/com/bycrm/service/impl/SystemConfigServiceImpl.class deleted file mode 100644 index 3e6bead29e258d92b9b771197ab4b68fc2876f60..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7081 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 diff --git a/backend/target/classes/com/bycrm/service/impl/UserServiceImpl.class b/backend/target/classes/com/bycrm/service/impl/UserServiceImpl.class deleted file mode 100644 index 9f1c9aff0252c7a2918ee6914842772c687ad9a7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4983 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 diff --git a/backend/target/classes/com/bycrm/util/CheckExcelStructure.class b/backend/target/classes/com/bycrm/util/CheckExcelStructure.class deleted file mode 100644 index 538f1b66154a35edbdf8c4240122afd9a51d387a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5267 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 diff --git a/backend/target/classes/com/bycrm/util/ImportSchools.class b/backend/target/classes/com/bycrm/util/ImportSchools.class deleted file mode 100644 index f7622d7ef9e80d4c5cc5792ce7f5ff59cddcc4c5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2545 zcmaJ@*>@9F82{a7nKVo(gcc~9VJW69ZIDf+1!a|Jx?n0$7G;_Y?Ld-=lSx_JP=U5= zMS>uERPd+fQJmER|kQ5sC9dd88En3?buPFV3L|Pb=}(4R zRW(|*E1DGGW)MwFMfI;%qOu$L5V^|&hGJiE$Z1H|lz2;Z**dOKC}Ir8QUrOIlGKxC zgpK(ahav&RBF1AvPC}vGNnMVSmaJ*y*78aL8_1-0 z&4nopV>8|D_im-{T|Z)6`oj3~;$knCO%w4Pyp)fWNXYRBL*>&_f1;YK_iA3!3=uOi ziy&%|^<~XTHJZ}p21##aDDss(VM!(vFqOL}fpQ}im(zqMzuwK9h5lz@g-8j^*fw(TWaQKBbDVmb&w=s;*jhoe=)>(_qBDV0>DWC)` z{#K|Fx_oQ#j)<+fk~%47N}5H4xnvaC1l6#lD=Otv23f>5v{3V#jYV;5ol*H==#>U+-K~+ zV02uu*fVY(cVP!Zb*7`cfA9W#x9|RO;-c3oF(hkkN?5LHmh^C|)vvxXZ>IZ3=Eswn z&KvjJyDVn{XjWL4$K-g`uCSco)w-Y(`Pqo)ulE0RfnSa&-W8#7WZZ;It(;6sEd*E; zx`-4XjfEyKAzcdZXw;;zEMOy{Y*{DP%|Obv=(wQ?kNeA zkf%$GSP`->2pNsf#b|e80H=x(xzs$flBMLPz@)5JN|-1M_&oPfF&`uWhv>9c)?3v` zgQU?_p&3XCyF+S93(NdTBhGTjt>Tv!)6qr`DF4X=jSe_z-9=x1+8OPR@?Nm3rg%54 zTnvoH9$H090q@~``pU-#_>i2Cao!RL^b1y8e&-C_<+gdj9ymQh@D}o$Dta-hc1{|j zPs4i+o?DpM)Qd@;$!Scb)9JLOQJRMD>NQjj2wWVbDH6g!IT=dh}>*l`23dH5M?7dyFXNVtu>CR?$?zV$lZ3N_hF zoM~(dH97eHcBsk8cPW%cWc@w|>v?>W8?};uzHg_!2eT-x!J^_ktuzvY`Oru5D#2ER zKk*k`O*=TK+fYL5I6}XOK%Ia>OrnQmGQA^HXoycG?djNn88j+qVlQT+gWlT{@Zk(i zz3)+uo2bCAwEsqDzY}x)m`nZ_QiOT<8}r#1EMP_SXmZjv6H)oF;Un_I$l8yO@d?p- z3ITkIeU!r%9LIhfAe|GW-A-qA^5UhaopeT|;vf!@r$Xk;dYOoSaTrI4{G)Wv+rskE zMf%6+qzZ!g5P1SVdx$v#@*iQNfNIA6!J5bL@c-V9lZ*sl0-|1uOMS;E3`N69TJzBT EAMVJ?l>h($ diff --git a/backend/target/classes/com/bycrm/util/JwtUtil.class b/backend/target/classes/com/bycrm/util/JwtUtil.class deleted file mode 100644 index 87a22e896aa84919b1aaaa0ecd89a981cf8d17ee..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4635 zcmbVQ3tJS|8Gg_1;=nQptVo2aK|>S}-DokfStSZegn*`UtJ=m6yW{S_?#y;}R>WM| zruX~(mfq59da+GoQuI=E|*MqG}DMCY}L@LqXn%3O=}vIrm13?mXGy}SHqe2gdWmEk z1+yO81!As~=iNhG&zMGDa)_e?of_VyV<&bAw5Odya&9T@7Ltnk*rGR07f3E^+NNuG z=9IHw+5(RRw3HO-ros#+J=e0cDGd(`Y+du}G}YtSji~(DtK$)L3usx>o3aX~3f))( z>Fm?7A3Xwb^Lo)Dq~#E=CFJ0^L*sGu;edvI9S5ZuA4cUwz7}Z6^D<-P%L+0nQ}-An z&@ltCR&;iNz#t&EmRWixY%6>=zSN5+`B zxQC%39mCR46AhiIL|N9t866{dTIJiDw6Zqy_>8$kuNVWF$?M6qyHxa?d+jb!R7!9zG(_y@BaQY32HP9na#uEZh>U z&C-a#bl`W%OqXePDJjX^kG*?_XHv%$rda~)hN2<+yDf0v@A{y=WgX4xcpok@UPZ%Y zs|7Vd$7vux>lFNih12pxtr*nwZ=E59Z0MLnnz>Mg zF0kwWQKp88s~WO8aC=%VUee*AERdiXe|5xl3c+0Kzb~r38rc@HsN*_F zB}!`otN93f8k$_xE0xxb$_nS_*X=8QkTkrwx{)Y@qqb*eO;^HxSjR{3QNK^uI+#wa z7OEP|Y8uFC`!O9K$0xY+%$Zjmm&0~j;OClH?a_zowAtd=Fuq~`8`YAu!C z%R_N|7vIzHeH}l*57`gZB@`YswAPd>80pEJ!Lc*qaGTiKb9rdfA<2%pP_{j8bTd}T zn#-G~Y}@hF=0;Nk@-v2O$>(4(=H)E% z+A&`HJV5M=;k2tAd1G=zD?#aok1k57#<77lSVNIzlnyq|X8(2N=)rDZ@554Y)sLg= zMURIJ2L%{f33_pm-nC4aUe3vIXfhd|=`t2k+gYrfL)O}6^_;RKdyN}>W&aWw4fhz& zNcV|eGbDBDXyOm8X?1!G4Xy5QE-LeNt&vrvWj3oTI+$Y|q-+vtRvr~YhWFjWaDc_I zQ2zoCmm%H#_t0If2p{}(a2^dA5De$`PjsrHbJkU(F}<|{GlrsJ`clEXX&IJRkfDeU1`i}0f$!hf7? z5O|eOjlBMde?KnaCw#%v>&6#9RZ{$Z;H#feC&{bewXW|r#2dVc;OG36uYoqa#$VkR zz%TGiK5@X{SCo>7u;b#wf^$oWOScn)c+~ zLwp;fwE^73Z+P(jEmx&8{>tlIk=U&WX2e0lV!Yo zb0T(=xdz%R# z<$#*iXmwql|5~ADQ&pB#tEBenSD?jSLo9l8BI+~Ze|S_FZB>FLu6Sr>W5}M9_0=5W z&|2Zp8sgA^sD4tMtfCQ-U#|39R`*%jkUq3eNX?8Zh6^N4qpF0qjyrObY=!4LCJzd0}iX@wT?ttk+b2 zqY^@uS|OyC7la5xNR`S%1Om5epilIL-+`0z7kHqYStm`>Sbf1-&+Obg_uPBVo!LMC zy?qD3VVnuV1Fr^O2!3=4^q-TTNWCO0i~7mjIV0}~bR97(rgK!l8ym}N2nZar>_xp+ zwav=nN46{*7cBd{UNiD_+jJUw-fmPKOV7EpK9f|-d0DG*SK)XiZxswX2o2rv8ly=7WxK5{$7~A5=II5CFH+CbeVIYJ(h-_n$ zY1AB}OafM&d?M{o)6(Y|=P=rk<%EVIfuYT8ZP1yzS#s+gRP{b4(AWB6sdfEwYx(oF z?=HrpK@4JF2%~tMRm*DCs1yYDZ>@U0xSjQ`LnjnOG=wMd6xDF7_I`mqv7I5@`wX7d z@LUMbBPKB5mb;yZfTkMblqzJ}sgP^{;{xG!U!tw6ms+>3v_AbU9t~iU{Qkai<=*ne zwUw)@-+rU`X*dvqju(hqmQKEC)E*+Ztt~sdGImxGoKhMc64)0zyOY+25&^s@FdAID zwzPWb%hnHH|8?uegYs5?y?k%^t9Sq}v5>aa75^0l99O`zj{-g-;86^DiUVzi@u-Gl z0wZ~=tmhheyR6q8v!rhv)CHr)qvA{QvnH6KMUd|czg3Og@38$>QEM=u_s`a|j z=M+tR3;&b^g1r46TO73QV-QaFaqs)HG; zZs&~?rjl~^2DFm=fTGO1@EX5L>gNIVKo`f?xzafc&i?V65I?!@8IH;g1d!wyYHz?B zIL=i!PT);~Fj!PwAmHu_v@M56j!s&1bC4<*mH=Kufz diff --git a/backend/target/classes/com/bycrm/util/SchoolImporter$1.class b/backend/target/classes/com/bycrm/util/SchoolImporter$1.class deleted file mode 100644 index 5dc27da1e94c45ebcc248b96cfd49f684bdac1ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 877 zcma)4T~8B16g|_HZd(_rfPx@`x|Y@tR*d?hF)6i>hJF|p@PVi4cG50RcbeHPhF|2f zniyjYKfs^hk1^g^iH(UdBzx!Fb24}DnYr`*=hrg;Pq0})3TX=&8&k+KI7;_jKH~mB zxFZ#~QRI#zp@*s`q+1hG?w^hXL-vHrv4|Kd<;qd>A~nzR$RTf`VB->OhE-n;-R`Nc zhweBIr0e+urDS6`QaTpe*<^4X?_Ci4gBBkdSI%!&4!Lro$ob>SnYck-5VagY#Uj}#5w7Dgo)SJo6|V^Ecnyy*jWXHDCT4!1LV1ef j9>p>WZ!Fr;`o}_L_miy;@Q^Tr4O$;j6q0jNQq27VzA?z6 diff --git a/backend/target/classes/com/bycrm/util/SchoolImporter.class b/backend/target/classes/com/bycrm/util/SchoolImporter.class deleted file mode 100644 index ce914e6d804ec5e5d9b7dcf112994b616dfec523..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7440 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 KU=jht$o~(v$~K?? diff --git a/backend/target/classes/com/bycrm/vo/CustomerVO.class b/backend/target/classes/com/bycrm/vo/CustomerVO.class deleted file mode 100644 index 3f7c3ad44548bce2a902f3e814318902afc1f041..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7256 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 diff --git a/backend/target/classes/com/bycrm/vo/UserInfoVO.class b/backend/target/classes/com/bycrm/vo/UserInfoVO.class deleted file mode 100644 index f706abcaa7ef80a5391b4aa29ea50ce4291af9b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4384 zcmbVPTXP&&5&mX1vopJzmDX!Z$~YoeAcC&h5C=>~mPum8iGt)9D^_s0Wwbk%)>-X3 zyDO8J`z72j3D+tfc*IqdtGE=AtAI+8mr%tsPw>RA-~|)DK4)fjR!k@rE_qI$?yvit z?(?0V*}wez_pbwZ5I-p*hanrL3k!Jz<*UKh*T@Qa9|Zwyv}{pQ6{EOzMod)(^SXZf!3~h!Gc~ zC>wAD)e3e)1CV?~3NA2jHE>7rm2wMrewIV~l%f-7f&2?%)>#-O1f~JA7nN$E> zqNUkq1$?iI_hQCCVLR-pN-+7#%xns-(wBnIxtN!@`A~v(#e31ked0Y#@0BPk(ckal zeR#ltP5nic!Pr2|I0wN#=;HnOfQ}(M(1krVfR9Qm@DI9pD288*sw?^>7pFyEO12`k z6w4VGA4)uuI_2<)i$`&mb=nEKJ7?Q<)|q5kwec7!(m#H^_M>}^W>FN)gkKif34_g%f@1QFWQ8ws1md$H~WZgs5m#e8PY+E1Ue3 zi|3@MPOq)^VPng{F;%ukySfo}8bPyhBiIu9mboWRH^WZ1(QaK@U15|bx%Am~tJ@1& zz0IJx7h1g9^3Nda^=XW*HCo~Mz1^*_^Ry0BS!>rACtx%Nj+AC^r_nXwt-Z~)ULw1@ zeRdyBABZCN>?XIk9`<(H^$S6Vwd--C%sg_^gdDg+@j22_P%#hnEWQX#kTyLNF0!zK zRo7uWy@~iX$UaoKsNSqnd$7esEHGfTdplu=aLIjI^Ur{*w8^xjjPY?B7}4gwqM!h} z#T2zsPqb%DrNpzZ(14g)381eSO|7kyFQ-@6swhg5ZnQz!gETW1aHAL0o?j2HMMrI2 zxVXB`>uId=hIPX3UX!ifP7*Fm_j9wRbt(mA)n{0k?r(57!s?ySk}O)>Xzz7u;kkxT zcl46nZFSA>6LMpU9VG_?0mtL0p-wp@ZF9K7|9rnFnePcT@-3i7Hhwj-*Q=4uU5)JC z9FH;vUu1mla8~7LaJ1%b!}yJYHTV=WP{dU}T@AqVXmVyq3+Hpt`FF5?O=Avy=SrqC zyKjbb>7esOrZanShVzkw&XbwWe0O9xA3NwgmFdiGpW!@l(D~j>XTF^>oR1%Lp3ijV z+a$yJo`cT!XFBhq#WRtk@;T->=I7>LgPncQ;~Ehiw2(j;W}rnnpWQ8mp zHl&a>38^QY?2tze8&Y_mgw&I6cH+kl8&a-N5^`L{?`7|D;;HKp*L^9y|V=Hj0*?3r)k$W6G5p1F_N7_s16ge>@Z&k{`jO;m28-JYymkD$o8BR=%imD=%iot3IZxdpn_LSflm3u1fB9-Z&*NX1frAz`F@EY-yiWx z0vd@xC2u4JTJ}c?TK3D{sDR25Xw)mmAoCV)%uuQq>PC7?7cahF#uQ$}ORV;o;o=6H zYmSA!gU?VmggN{ZpQU8tar_ORqhw(nf5qo1<%xX_U!Y{8gJ0o`lpMT@SMViD1^g7> z!j~x(vCp->LTMO(=WoJZ+{eSuiGIO1#o(Ed z#SyY|81sj@xZ@BNs_;f@3KNeEc4ItJxV6dkQCpiWZ^Q4^a`as zdZgE@lx$iazz--n_$4OrLrMi9gRzZ~x2P~}IEFz2@Z - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - INSERT INTO crm_customer (name, phone, address, industry, status) - VALUES (#{name}, #{phone}, #{address}, #{industry}, #{status}) - - - - UPDATE crm_customer - - name = #{name}, - phone = #{phone}, - address = #{address}, - industry = #{industry}, - status = #{status}, - - WHERE id = #{id} - - - - DELETE FROM crm_customer WHERE id = #{id} - - - - - diff --git a/backend/target/classes/mapper/DealerMapper.xml b/backend/target/classes/mapper/DealerMapper.xml deleted file mode 100644 index 52fe218..0000000 --- a/backend/target/classes/mapper/DealerMapper.xml +++ /dev/null @@ -1,71 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - INSERT INTO crm_dealer (name, code, contact_person, contact_phone, email, status) - VALUES (#{name}, #{code}, #{contactPerson}, #{contactPhone}, #{email}, #{status}) - - - - UPDATE crm_dealer - - name = #{name}, - code = #{code}, - contact_person = #{contactPerson}, - contact_phone = #{contactPhone}, - email = #{email}, - status = #{status}, - - WHERE id = #{id} - - - - DELETE FROM crm_dealer WHERE id = #{id} - - - - - diff --git a/backend/target/classes/mapper/ReportMapper.xml b/backend/target/classes/mapper/ReportMapper.xml deleted file mode 100644 index ca15377..0000000 --- a/backend/target/classes/mapper/ReportMapper.xml +++ /dev/null @@ -1,141 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - INSERT INTO crm_report (dealer_id, customer_id, description, status, protect_start_date, protect_end_date) - VALUES (#{dealerId}, #{customerId}, #{description}, #{status}, #{protectStartDate}, #{protectEndDate}) - - - - UPDATE crm_report - - status = #{status}, - reject_reason = #{rejectReason}, - protect_start_date = #{protectStartDate}, - protect_end_date = #{protectEndDate}, - - WHERE id = #{id} - - - - DELETE FROM crm_report WHERE id = #{id} - - - - - - UPDATE crm_report - SET status = 3 - WHERE id IN - - #{id} - - - - - - - - diff --git a/backend/target/classes/mapper/SchoolMapper.xml b/backend/target/classes/mapper/SchoolMapper.xml deleted file mode 100644 index 05826e2..0000000 --- a/backend/target/classes/mapper/SchoolMapper.xml +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - - - - - - - - - INSERT INTO crm_school (school_code, school_name, location, created_at, updated_at) - VALUES (#{schoolCode}, #{schoolName}, #{location}, #{createdAt}, #{updatedAt}) - - - - INSERT INTO crm_school (school_code, school_name, location, created_at, updated_at) - VALUES - - (#{item.schoolCode}, #{item.schoolName}, #{item.location}, #{item.createdAt}, #{item.updatedAt}) - - - - - - - - - - - - - - diff --git a/backend/target/classes/mapper/SystemConfigMapper.xml b/backend/target/classes/mapper/SystemConfigMapper.xml deleted file mode 100644 index d0545e3..0000000 --- a/backend/target/classes/mapper/SystemConfigMapper.xml +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - UPDATE crm_system_config - SET config_value = #{configValue}, - updated_at = NOW() - WHERE config_key = #{configKey} - - - - - UPDATE crm_system_config - SET config_value = #{config.configValue}, - updated_at = NOW() - WHERE config_key = #{config.configKey} - - - - diff --git a/backend/target/classes/mapper/UserMapper.xml b/backend/target/classes/mapper/UserMapper.xml deleted file mode 100644 index efc1d3c..0000000 --- a/backend/target/classes/mapper/UserMapper.xml +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - INSERT INTO crm_user (username, password, real_name, dealer_id, role, status) - VALUES (#{username}, #{password}, #{realName}, #{dealerId}, #{role}, #{status}) - - - - UPDATE crm_user - - password = #{password}, - real_name = #{realName}, - dealer_id = #{dealerId}, - role = #{role}, - status = #{status}, - - WHERE id = #{id} - - - - DELETE FROM crm_user WHERE id = #{id} - - - diff --git a/backend/target/maven-status/maven-compiler-plugin/compile/default-cli/createdFiles.lst b/backend/target/maven-status/maven-compiler-plugin/compile/default-cli/createdFiles.lst deleted file mode 100644 index e69de29..0000000 diff --git a/backend/target/maven-status/maven-compiler-plugin/compile/default-cli/inputFiles.lst b/backend/target/maven-status/maven-compiler-plugin/compile/default-cli/inputFiles.lst deleted file mode 100644 index 9bec953..0000000 --- a/backend/target/maven-status/maven-compiler-plugin/compile/default-cli/inputFiles.lst +++ /dev/null @@ -1,46 +0,0 @@ -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\dto\DealerDTO.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\controller\DealerController.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\dto\ReportAuditDTO.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\service\impl\ReportServiceImpl.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\dto\LoginDTO.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\controller\AuthController.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\util\JwtUtil.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\dto\PageQuery.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\common\Result.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\entity\Dict.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\exception\BusinessException.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\config\WebMvcConfig.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\vo\UserInfoVO.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\mapper\DealerMapper.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\mapper\UserMapper.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\entity\Report.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\common\Constants.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\common\PageResult.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\config\CorsConfig.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\controller\ReportController.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\entity\Customer.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\service\UserService.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\config\SwaggerConfig.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\ByCrmApplication.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\service\ReportService.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\entity\User.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\entity\Dealer.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\service\DealerService.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\mapper\ReportMapper.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\service\impl\DealerServiceImpl.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\entity\OperationLog.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\vo\CustomerVO.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\entity\DictItem.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\exception\GlobalExceptionHandler.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\vo\ReportVO.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\service\CustomerService.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\config\MyBatisConfig.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\dto\CustomerDTO.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\dto\ReportDTO.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\mapper\CustomerMapper.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\controller\CustomerController.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\service\impl\CustomerServiceImpl.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\annotations\AuthRequired.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\config\AuthInterceptor.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\service\impl\UserServiceImpl.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\task\ReportExpireTask.java diff --git a/backend/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst b/backend/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst deleted file mode 100644 index 28731ab..0000000 --- a/backend/target/maven-status/maven-compiler-plugin/compile/default-compile/createdFiles.lst +++ /dev/null @@ -1 +0,0 @@ -com\bycrm\util\PasswordTest.class diff --git a/backend/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst b/backend/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst deleted file mode 100644 index 0f5e831..0000000 --- a/backend/target/maven-status/maven-compiler-plugin/compile/default-compile/inputFiles.lst +++ /dev/null @@ -1,47 +0,0 @@ -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\dto\DealerDTO.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\controller\DealerController.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\dto\ReportAuditDTO.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\service\impl\ReportServiceImpl.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\dto\LoginDTO.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\controller\AuthController.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\util\JwtUtil.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\dto\PageQuery.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\common\Result.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\entity\Dict.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\exception\BusinessException.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\config\WebMvcConfig.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\vo\UserInfoVO.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\mapper\DealerMapper.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\mapper\UserMapper.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\entity\Report.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\common\Constants.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\common\PageResult.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\config\CorsConfig.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\controller\ReportController.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\util\PasswordTest.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\entity\Customer.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\service\UserService.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\config\SwaggerConfig.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\ByCrmApplication.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\service\ReportService.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\entity\User.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\entity\Dealer.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\service\DealerService.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\mapper\ReportMapper.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\service\impl\DealerServiceImpl.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\entity\OperationLog.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\vo\CustomerVO.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\entity\DictItem.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\exception\GlobalExceptionHandler.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\vo\ReportVO.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\service\CustomerService.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\config\MyBatisConfig.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\dto\CustomerDTO.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\dto\ReportDTO.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\mapper\CustomerMapper.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\controller\CustomerController.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\service\impl\CustomerServiceImpl.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\annotations\AuthRequired.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\config\AuthInterceptor.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\service\impl\UserServiceImpl.java -E:\boyun-workspace\by-crm\backend\src\main\java\com\bycrm\task\ReportExpireTask.java diff --git a/frontend/package.json b/frontend/package.json index fcb49da..34eb543 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -10,27 +10,29 @@ "lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore" }, "dependencies": { - "vue": "^3.4.0", - "vue-router": "^4.2.0", + "@element-plus/icons-vue": "^2.3.0", + "axios": "^1.6.0", + "bcryptjs": "^3.0.3", + "dayjs": "^1.11.0", + "element-plus": "^2.5.0", "pinia": "^2.1.0", "pinia-plugin-persistedstate": "^3.2.0", - "axios": "^1.6.0", - "element-plus": "^2.5.0", - "@element-plus/icons-vue": "^2.3.0", - "dayjs": "^1.11.0" + "vue": "^3.4.0", + "vue-router": "^4.2.0" }, "devDependencies": { - "@vitejs/plugin-vue": "^5.0.0", - "vite": "^5.0.0", - "vue-tsc": "^1.8.0", - "typescript": "^5.3.0", + "@types/bcryptjs": "^3.0.0", "@types/node": "^20.10.0", + "@typescript-eslint/eslint-plugin": "^6.15.0", + "@typescript-eslint/parser": "^6.15.0", + "@vitejs/plugin-vue": "^5.0.0", "eslint": "^8.55.0", "eslint-plugin-vue": "^9.19.0", - "@typescript-eslint/parser": "^6.15.0", - "@typescript-eslint/eslint-plugin": "^6.15.0", "prettier": "^3.1.0", - "sass": "^1.69.0" + "sass": "^1.69.0", + "typescript": "^5.3.0", + "vite": "^5.0.0", + "vue-tsc": "^1.8.0" }, "engines": { "node": ">=16.0.0", diff --git a/frontend/pnpm-lock.yaml b/frontend/pnpm-lock.yaml new file mode 100644 index 0000000..0cd75f7 --- /dev/null +++ b/frontend/pnpm-lock.yaml @@ -0,0 +1,2664 @@ +lockfileVersion: '9.0' + +settings: + autoInstallPeers: true + excludeLinksFromLockfile: false + +importers: + + .: + dependencies: + '@element-plus/icons-vue': + specifier: ^2.3.0 + version: 2.3.2(vue@3.5.27(typescript@5.9.3)) + axios: + specifier: ^1.6.0 + version: 1.13.2 + bcryptjs: + specifier: ^3.0.3 + version: 3.0.3 + dayjs: + specifier: ^1.11.0 + version: 1.11.19 + element-plus: + specifier: ^2.5.0 + version: 2.13.1(vue@3.5.27(typescript@5.9.3)) + pinia: + specifier: ^2.1.0 + version: 2.3.1(typescript@5.9.3)(vue@3.5.27(typescript@5.9.3)) + pinia-plugin-persistedstate: + specifier: ^3.2.0 + version: 3.2.3(pinia@2.3.1(typescript@5.9.3)(vue@3.5.27(typescript@5.9.3))) + vue: + specifier: ^3.4.0 + version: 3.5.27(typescript@5.9.3) + vue-router: + specifier: ^4.2.0 + version: 4.6.4(vue@3.5.27(typescript@5.9.3)) + devDependencies: + '@types/bcryptjs': + specifier: ^3.0.0 + version: 3.0.0 + '@types/node': + specifier: ^20.10.0 + version: 20.19.30 + '@typescript-eslint/eslint-plugin': + specifier: ^6.15.0 + version: 6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) + '@typescript-eslint/parser': + specifier: ^6.15.0 + version: 6.21.0(eslint@8.57.1)(typescript@5.9.3) + '@vitejs/plugin-vue': + specifier: ^5.0.0 + version: 5.2.4(vite@5.4.21(@types/node@20.19.30)(sass@1.97.3))(vue@3.5.27(typescript@5.9.3)) + eslint: + specifier: ^8.55.0 + version: 8.57.1 + eslint-plugin-vue: + specifier: ^9.19.0 + version: 9.33.0(eslint@8.57.1) + prettier: + specifier: ^3.1.0 + version: 3.8.1 + sass: + specifier: ^1.69.0 + version: 1.97.3 + typescript: + specifier: ^5.3.0 + version: 5.9.3 + vite: + specifier: ^5.0.0 + version: 5.4.21(@types/node@20.19.30)(sass@1.97.3) + vue-tsc: + specifier: ^1.8.0 + version: 1.8.27(typescript@5.9.3) + +packages: + + '@babel/helper-string-parser@7.27.1': + resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} + engines: {node: '>=6.9.0'} + + '@babel/helper-validator-identifier@7.28.5': + resolution: {integrity: sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==} + engines: {node: '>=6.9.0'} + + '@babel/parser@7.28.6': + resolution: {integrity: sha512-TeR9zWR18BvbfPmGbLampPMW+uW1NZnJlRuuHso8i87QZNq2JRF9i6RgxRqtEq+wQGsS19NNTWr2duhnE49mfQ==} + engines: {node: '>=6.0.0'} + hasBin: true + + '@babel/types@7.28.6': + resolution: {integrity: sha512-0ZrskXVEHSWIqZM/sQZ4EV3jZJXRkio/WCxaqKZP1g//CEWEPSfeZFcms4XeKBCHU0ZKnIkdJeU/kF+eRp5lBg==} + engines: {node: '>=6.9.0'} + + '@ctrl/tinycolor@3.6.1': + resolution: {integrity: sha512-SITSV6aIXsuVNV3f3O0f2n/cgyEDWoSqtZMYiAmcsYHydcKrOz3gUxB/iXd/Qf08+IZX4KpgNbvUdMBmWz+kcA==} + engines: {node: '>=10'} + + '@element-plus/icons-vue@2.3.2': + resolution: {integrity: sha512-OzIuTaIfC8QXEPmJvB4Y4kw34rSXdCJzxcD1kFStBvr8bK6X1zQAYDo0CNMjojnfTqRQCJ0I7prlErcoRiET2A==} + peerDependencies: + vue: ^3.2.0 + + '@esbuild/aix-ppc64@0.21.5': + resolution: {integrity: sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [aix] + + '@esbuild/android-arm64@0.21.5': + resolution: {integrity: sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [android] + + '@esbuild/android-arm@0.21.5': + resolution: {integrity: sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==} + engines: {node: '>=12'} + cpu: [arm] + os: [android] + + '@esbuild/android-x64@0.21.5': + resolution: {integrity: sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==} + engines: {node: '>=12'} + cpu: [x64] + os: [android] + + '@esbuild/darwin-arm64@0.21.5': + resolution: {integrity: sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==} + engines: {node: '>=12'} + cpu: [arm64] + os: [darwin] + + '@esbuild/darwin-x64@0.21.5': + resolution: {integrity: sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==} + engines: {node: '>=12'} + cpu: [x64] + os: [darwin] + + '@esbuild/freebsd-arm64@0.21.5': + resolution: {integrity: sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==} + engines: {node: '>=12'} + cpu: [arm64] + os: [freebsd] + + '@esbuild/freebsd-x64@0.21.5': + resolution: {integrity: sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [freebsd] + + '@esbuild/linux-arm64@0.21.5': + resolution: {integrity: sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==} + engines: {node: '>=12'} + cpu: [arm64] + os: [linux] + + '@esbuild/linux-arm@0.21.5': + resolution: {integrity: sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + + '@esbuild/linux-ia32@0.21.5': + resolution: {integrity: sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==} + engines: {node: '>=12'} + cpu: [ia32] + os: [linux] + + '@esbuild/linux-loong64@0.21.5': + resolution: {integrity: sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==} + engines: {node: '>=12'} + cpu: [loong64] + os: [linux] + + '@esbuild/linux-mips64el@0.21.5': + resolution: {integrity: sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==} + engines: {node: '>=12'} + cpu: [mips64el] + os: [linux] + + '@esbuild/linux-ppc64@0.21.5': + resolution: {integrity: sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==} + engines: {node: '>=12'} + cpu: [ppc64] + os: [linux] + + '@esbuild/linux-riscv64@0.21.5': + resolution: {integrity: sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==} + engines: {node: '>=12'} + cpu: [riscv64] + os: [linux] + + '@esbuild/linux-s390x@0.21.5': + resolution: {integrity: sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==} + engines: {node: '>=12'} + cpu: [s390x] + os: [linux] + + '@esbuild/linux-x64@0.21.5': + resolution: {integrity: sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==} + engines: {node: '>=12'} + cpu: [x64] + os: [linux] + + '@esbuild/netbsd-x64@0.21.5': + resolution: {integrity: sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==} + engines: {node: '>=12'} + cpu: [x64] + os: [netbsd] + + '@esbuild/openbsd-x64@0.21.5': + resolution: {integrity: sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==} + engines: {node: '>=12'} + cpu: [x64] + os: [openbsd] + + '@esbuild/sunos-x64@0.21.5': + resolution: {integrity: sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==} + engines: {node: '>=12'} + cpu: [x64] + os: [sunos] + + '@esbuild/win32-arm64@0.21.5': + resolution: {integrity: sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==} + engines: {node: '>=12'} + cpu: [arm64] + os: [win32] + + '@esbuild/win32-ia32@0.21.5': + resolution: {integrity: sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==} + engines: {node: '>=12'} + cpu: [ia32] + os: [win32] + + '@esbuild/win32-x64@0.21.5': + resolution: {integrity: sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==} + engines: {node: '>=12'} + cpu: [x64] + os: [win32] + + '@eslint-community/eslint-utils@4.9.1': + resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + + '@eslint-community/regexpp@4.12.2': + resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + + '@eslint/eslintrc@2.1.4': + resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@eslint/js@8.57.1': + resolution: {integrity: sha512-d9zaMRSTIKDLhctzH12MtXvJKSSUhaHcjV+2Z+GK+EEY7XKpP5yR4x+N3TAcHTcu963nIr+TMcCb4DBCYX1z6Q==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + '@floating-ui/core@1.7.3': + resolution: {integrity: sha512-sGnvb5dmrJaKEZ+LDIpguvdX3bDlEllmv4/ClQ9awcmCZrlx5jQyyMWFM5kBI+EyNOCDDiKk8il0zeuX3Zlg/w==} + + '@floating-ui/dom@1.7.4': + resolution: {integrity: sha512-OOchDgh4F2CchOX94cRVqhvy7b3AFb+/rQXyswmzmGakRfkMgoWVjfnLWkRirfLEfuD4ysVW16eXzwt3jHIzKA==} + + '@floating-ui/utils@0.2.10': + resolution: {integrity: sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ==} + + '@humanwhocodes/config-array@0.13.0': + resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==} + engines: {node: '>=10.10.0'} + deprecated: Use @eslint/config-array instead + + '@humanwhocodes/module-importer@1.0.1': + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + + '@humanwhocodes/object-schema@2.0.3': + resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==} + deprecated: Use @eslint/object-schema instead + + '@jridgewell/sourcemap-codec@1.5.5': + resolution: {integrity: sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==} + + '@nodelib/fs.scandir@2.1.5': + resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} + engines: {node: '>= 8'} + + '@nodelib/fs.stat@2.0.5': + resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} + engines: {node: '>= 8'} + + '@nodelib/fs.walk@1.2.8': + resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} + engines: {node: '>= 8'} + + '@parcel/watcher-android-arm64@2.5.6': + resolution: {integrity: sha512-YQxSS34tPF/6ZG7r/Ih9xy+kP/WwediEUsqmtf0cuCV5TPPKw/PQHRhueUo6JdeFJaqV3pyjm0GdYjZotbRt/A==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [android] + + '@parcel/watcher-darwin-arm64@2.5.6': + resolution: {integrity: sha512-Z2ZdrnwyXvvvdtRHLmM4knydIdU9adO3D4n/0cVipF3rRiwP+3/sfzpAwA/qKFL6i1ModaabkU7IbpeMBgiVEA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [darwin] + + '@parcel/watcher-darwin-x64@2.5.6': + resolution: {integrity: sha512-HgvOf3W9dhithcwOWX9uDZyn1lW9R+7tPZ4sug+NGrGIo4Rk1hAXLEbcH1TQSqxts0NYXXlOWqVpvS1SFS4fRg==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [darwin] + + '@parcel/watcher-freebsd-x64@2.5.6': + resolution: {integrity: sha512-vJVi8yd/qzJxEKHkeemh7w3YAn6RJCtYlE4HPMoVnCpIXEzSrxErBW5SJBgKLbXU3WdIpkjBTeUNtyBVn8TRng==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [freebsd] + + '@parcel/watcher-linux-arm-glibc@2.5.6': + resolution: {integrity: sha512-9JiYfB6h6BgV50CCfasfLf/uvOcJskMSwcdH1PHH9rvS1IrNy8zad6IUVPVUfmXr+u+Km9IxcfMLzgdOudz9EQ==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + + '@parcel/watcher-linux-arm-musl@2.5.6': + resolution: {integrity: sha512-Ve3gUCG57nuUUSyjBq/MAM0CzArtuIOxsBdQ+ftz6ho8n7s1i9E1Nmk/xmP323r2YL0SONs1EuwqBp2u1k5fxg==} + engines: {node: '>= 10.0.0'} + cpu: [arm] + os: [linux] + + '@parcel/watcher-linux-arm64-glibc@2.5.6': + resolution: {integrity: sha512-f2g/DT3NhGPdBmMWYoxixqYr3v/UXcmLOYy16Bx0TM20Tchduwr4EaCbmxh1321TABqPGDpS8D/ggOTaljijOA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + + '@parcel/watcher-linux-arm64-musl@2.5.6': + resolution: {integrity: sha512-qb6naMDGlbCwdhLj6hgoVKJl2odL34z2sqkC7Z6kzir8b5W65WYDpLB6R06KabvZdgoHI/zxke4b3zR0wAbDTA==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [linux] + + '@parcel/watcher-linux-x64-glibc@2.5.6': + resolution: {integrity: sha512-kbT5wvNQlx7NaGjzPFu8nVIW1rWqV780O7ZtkjuWaPUgpv2NMFpjYERVi0UYj1msZNyCzGlaCWEtzc+exjMGbQ==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + + '@parcel/watcher-linux-x64-musl@2.5.6': + resolution: {integrity: sha512-1JRFeC+h7RdXwldHzTsmdtYR/Ku8SylLgTU/reMuqdVD7CtLwf0VR1FqeprZ0eHQkO0vqsbvFLXUmYm/uNKJBg==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [linux] + + '@parcel/watcher-win32-arm64@2.5.6': + resolution: {integrity: sha512-3ukyebjc6eGlw9yRt678DxVF7rjXatWiHvTXqphZLvo7aC5NdEgFufVwjFfY51ijYEWpXbqF5jtrK275z52D4Q==} + engines: {node: '>= 10.0.0'} + cpu: [arm64] + os: [win32] + + '@parcel/watcher-win32-ia32@2.5.6': + resolution: {integrity: sha512-k35yLp1ZMwwee3Ez/pxBi5cf4AoBKYXj00CZ80jUz5h8prpiaQsiRPKQMxoLstNuqe2vR4RNPEAEcjEFzhEz/g==} + engines: {node: '>= 10.0.0'} + cpu: [ia32] + os: [win32] + + '@parcel/watcher-win32-x64@2.5.6': + resolution: {integrity: sha512-hbQlYcCq5dlAX9Qx+kFb0FHue6vbjlf0FrNzSKdYK2APUf7tGfGxQCk2ihEREmbR6ZMc0MVAD5RIX/41gpUzTw==} + engines: {node: '>= 10.0.0'} + cpu: [x64] + os: [win32] + + '@parcel/watcher@2.5.6': + resolution: {integrity: sha512-tmmZ3lQxAe/k/+rNnXQRawJ4NjxO2hqiOLTHvWchtGZULp4RyFeh6aU4XdOYBFe2KE1oShQTv4AblOs2iOrNnQ==} + engines: {node: '>= 10.0.0'} + + '@rollup/rollup-android-arm-eabi@4.56.0': + resolution: {integrity: sha512-LNKIPA5k8PF1+jAFomGe3qN3bbIgJe/IlpDBwuVjrDKrJhVWywgnJvflMt/zkbVNLFtF1+94SljYQS6e99klnw==} + cpu: [arm] + os: [android] + + '@rollup/rollup-android-arm64@4.56.0': + resolution: {integrity: sha512-lfbVUbelYqXlYiU/HApNMJzT1E87UPGvzveGg2h0ktUNlOCxKlWuJ9jtfvs1sKHdwU4fzY7Pl8sAl49/XaEk6Q==} + cpu: [arm64] + os: [android] + + '@rollup/rollup-darwin-arm64@4.56.0': + resolution: {integrity: sha512-EgxD1ocWfhoD6xSOeEEwyE7tDvwTgZc8Bss7wCWe+uc7wO8G34HHCUH+Q6cHqJubxIAnQzAsyUsClt0yFLu06w==} + cpu: [arm64] + os: [darwin] + + '@rollup/rollup-darwin-x64@4.56.0': + resolution: {integrity: sha512-1vXe1vcMOssb/hOF8iv52A7feWW2xnu+c8BV4t1F//m9QVLTfNVpEdja5ia762j/UEJe2Z1jAmEqZAK42tVW3g==} + cpu: [x64] + os: [darwin] + + '@rollup/rollup-freebsd-arm64@4.56.0': + resolution: {integrity: sha512-bof7fbIlvqsyv/DtaXSck4VYQ9lPtoWNFCB/JY4snlFuJREXfZnm+Ej6yaCHfQvofJDXLDMTVxWscVSuQvVWUQ==} + cpu: [arm64] + os: [freebsd] + + '@rollup/rollup-freebsd-x64@4.56.0': + resolution: {integrity: sha512-KNa6lYHloW+7lTEkYGa37fpvPq+NKG/EHKM8+G/g9WDU7ls4sMqbVRV78J6LdNuVaeeK5WB9/9VAFbKxcbXKYg==} + cpu: [x64] + os: [freebsd] + + '@rollup/rollup-linux-arm-gnueabihf@4.56.0': + resolution: {integrity: sha512-E8jKK87uOvLrrLN28jnAAAChNq5LeCd2mGgZF+fGF5D507WlG/Noct3lP/QzQ6MrqJ5BCKNwI9ipADB6jyiq2A==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm-musleabihf@4.56.0': + resolution: {integrity: sha512-jQosa5FMYF5Z6prEpTCCmzCXz6eKr/tCBssSmQGEeozA9tkRUty/5Vx06ibaOP9RCrW1Pvb8yp3gvZhHwTDsJw==} + cpu: [arm] + os: [linux] + + '@rollup/rollup-linux-arm64-gnu@4.56.0': + resolution: {integrity: sha512-uQVoKkrC1KGEV6udrdVahASIsaF8h7iLG0U0W+Xn14ucFwi6uS539PsAr24IEF9/FoDtzMeeJXJIBo5RkbNWvQ==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-arm64-musl@4.56.0': + resolution: {integrity: sha512-vLZ1yJKLxhQLFKTs42RwTwa6zkGln+bnXc8ueFGMYmBTLfNu58sl5/eXyxRa2RarTkJbXl8TKPgfS6V5ijNqEA==} + cpu: [arm64] + os: [linux] + + '@rollup/rollup-linux-loong64-gnu@4.56.0': + resolution: {integrity: sha512-FWfHOCub564kSE3xJQLLIC/hbKqHSVxy8vY75/YHHzWvbJL7aYJkdgwD/xGfUlL5UV2SB7otapLrcCj2xnF1dg==} + cpu: [loong64] + os: [linux] + + '@rollup/rollup-linux-loong64-musl@4.56.0': + resolution: {integrity: sha512-z1EkujxIh7nbrKL1lmIpqFTc/sr0u8Uk0zK/qIEFldbt6EDKWFk/pxFq3gYj4Bjn3aa9eEhYRlL3H8ZbPT1xvA==} + cpu: [loong64] + os: [linux] + + '@rollup/rollup-linux-ppc64-gnu@4.56.0': + resolution: {integrity: sha512-iNFTluqgdoQC7AIE8Q34R3AuPrJGJirj5wMUErxj22deOcY7XwZRaqYmB6ZKFHoVGqRcRd0mqO+845jAibKCkw==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-ppc64-musl@4.56.0': + resolution: {integrity: sha512-MtMeFVlD2LIKjp2sE2xM2slq3Zxf9zwVuw0jemsxvh1QOpHSsSzfNOTH9uYW9i1MXFxUSMmLpeVeUzoNOKBaWg==} + cpu: [ppc64] + os: [linux] + + '@rollup/rollup-linux-riscv64-gnu@4.56.0': + resolution: {integrity: sha512-in+v6wiHdzzVhYKXIk5U74dEZHdKN9KH0Q4ANHOTvyXPG41bajYRsy7a8TPKbYPl34hU7PP7hMVHRvv/5aCSew==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-riscv64-musl@4.56.0': + resolution: {integrity: sha512-yni2raKHB8m9NQpI9fPVwN754mn6dHQSbDTwxdr9SE0ks38DTjLMMBjrwvB5+mXrX+C0npX0CVeCUcvvvD8CNQ==} + cpu: [riscv64] + os: [linux] + + '@rollup/rollup-linux-s390x-gnu@4.56.0': + resolution: {integrity: sha512-zhLLJx9nQPu7wezbxt2ut+CI4YlXi68ndEve16tPc/iwoylWS9B3FxpLS2PkmfYgDQtosah07Mj9E0khc3Y+vQ==} + cpu: [s390x] + os: [linux] + + '@rollup/rollup-linux-x64-gnu@4.56.0': + resolution: {integrity: sha512-MVC6UDp16ZSH7x4rtuJPAEoE1RwS8N4oK9DLHy3FTEdFoUTCFVzMfJl/BVJ330C+hx8FfprA5Wqx4FhZXkj2Kw==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-linux-x64-musl@4.56.0': + resolution: {integrity: sha512-ZhGH1eA4Qv0lxaV00azCIS1ChedK0V32952Md3FtnxSqZTBTd6tgil4nZT5cU8B+SIw3PFYkvyR4FKo2oyZIHA==} + cpu: [x64] + os: [linux] + + '@rollup/rollup-openbsd-x64@4.56.0': + resolution: {integrity: sha512-O16XcmyDeFI9879pEcmtWvD/2nyxR9mF7Gs44lf1vGGx8Vg2DRNx11aVXBEqOQhWb92WN4z7fW/q4+2NYzCbBA==} + cpu: [x64] + os: [openbsd] + + '@rollup/rollup-openharmony-arm64@4.56.0': + resolution: {integrity: sha512-LhN/Reh+7F3RCgQIRbgw8ZMwUwyqJM+8pXNT6IIJAqm2IdKkzpCh/V9EdgOMBKuebIrzswqy4ATlrDgiOwbRcQ==} + cpu: [arm64] + os: [openharmony] + + '@rollup/rollup-win32-arm64-msvc@4.56.0': + resolution: {integrity: sha512-kbFsOObXp3LBULg1d3JIUQMa9Kv4UitDmpS+k0tinPBz3watcUiV2/LUDMMucA6pZO3WGE27P7DsfaN54l9ing==} + cpu: [arm64] + os: [win32] + + '@rollup/rollup-win32-ia32-msvc@4.56.0': + resolution: {integrity: sha512-vSSgny54D6P4vf2izbtFm/TcWYedw7f8eBrOiGGecyHyQB9q4Kqentjaj8hToe+995nob/Wv48pDqL5a62EWtg==} + cpu: [ia32] + os: [win32] + + '@rollup/rollup-win32-x64-gnu@4.56.0': + resolution: {integrity: sha512-FeCnkPCTHQJFbiGG49KjV5YGW/8b9rrXAM2Mz2kiIoktq2qsJxRD5giEMEOD2lPdgs72upzefaUvS+nc8E3UzQ==} + cpu: [x64] + os: [win32] + + '@rollup/rollup-win32-x64-msvc@4.56.0': + resolution: {integrity: sha512-H8AE9Ur/t0+1VXujj90w0HrSOuv0Nq9r1vSZF2t5km20NTfosQsGGUXDaKdQZzwuLts7IyL1fYT4hM95TI9c4g==} + cpu: [x64] + os: [win32] + + '@sxzz/popperjs-es@2.11.7': + resolution: {integrity: sha512-Ccy0NlLkzr0Ex2FKvh2X+OyERHXJ88XJ1MXtsI9y9fGexlaXaVTPzBCRBwIxFkORuOb+uBqeu+RqnpgYTEZRUQ==} + + '@types/bcryptjs@3.0.0': + resolution: {integrity: sha512-WRZOuCuaz8UcZZE4R5HXTco2goQSI2XxjGY3hbM/xDvwmqFWd4ivooImsMx65OKM6CtNKbnZ5YL+YwAwK7c1dg==} + deprecated: This is a stub types definition. bcryptjs provides its own type definitions, so you do not need this installed. + + '@types/estree@1.0.8': + resolution: {integrity: sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==} + + '@types/json-schema@7.0.15': + resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} + + '@types/lodash-es@4.17.12': + resolution: {integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==} + + '@types/lodash@4.17.23': + resolution: {integrity: sha512-RDvF6wTulMPjrNdCoYRC8gNR880JNGT8uB+REUpC2Ns4pRqQJhGz90wh7rgdXDPpCczF3VGktDuFGVnz8zP7HA==} + + '@types/node@20.19.30': + resolution: {integrity: sha512-WJtwWJu7UdlvzEAUm484QNg5eAoq5QR08KDNx7g45Usrs2NtOPiX8ugDqmKdXkyL03rBqU5dYNYVQetEpBHq2g==} + + '@types/semver@7.7.1': + resolution: {integrity: sha512-FmgJfu+MOcQ370SD0ev7EI8TlCAfKYU+B4m5T3yXc1CiRN94g/SZPtsCkk506aUDtlMnFZvasDwHHUcZUEaYuA==} + + '@types/web-bluetooth@0.0.20': + resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} + + '@typescript-eslint/eslint-plugin@6.21.0': + resolution: {integrity: sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + '@typescript-eslint/parser': ^6.0.0 || ^6.0.0-alpha + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/parser@6.21.0': + resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/scope-manager@6.21.0': + resolution: {integrity: sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@typescript-eslint/type-utils@6.21.0': + resolution: {integrity: sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/types@6.21.0': + resolution: {integrity: sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@typescript-eslint/typescript-estree@6.21.0': + resolution: {integrity: sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/utils@6.21.0': + resolution: {integrity: sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ==} + engines: {node: ^16.0.0 || >=18.0.0} + peerDependencies: + eslint: ^7.0.0 || ^8.0.0 + + '@typescript-eslint/visitor-keys@6.21.0': + resolution: {integrity: sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A==} + engines: {node: ^16.0.0 || >=18.0.0} + + '@ungap/structured-clone@1.3.0': + resolution: {integrity: sha512-WmoN8qaIAo7WTYWbAZuG8PYEhn5fkz7dZrqTBZ7dtt//lL2Gwms1IcnQ5yHqjDfX8Ft5j4YzDM23f87zBfDe9g==} + + '@vitejs/plugin-vue@5.2.4': + resolution: {integrity: sha512-7Yx/SXSOcQq5HiiV3orevHUFn+pmMB4cgbEkDYgnkUWb0WfeQ/wa2yFv6D5ICiCQOVpjA7vYDXrC7AGO8yjDHA==} + engines: {node: ^18.0.0 || >=20.0.0} + peerDependencies: + vite: ^5.0.0 || ^6.0.0 + vue: ^3.2.25 + + '@volar/language-core@1.11.1': + resolution: {integrity: sha512-dOcNn3i9GgZAcJt43wuaEykSluAuOkQgzni1cuxLxTV0nJKanQztp7FxyswdRILaKH+P2XZMPRp2S4MV/pElCw==} + + '@volar/source-map@1.11.1': + resolution: {integrity: sha512-hJnOnwZ4+WT5iupLRnuzbULZ42L7BWWPMmruzwtLhJfpDVoZLjNBxHDi2sY2bgZXCKlpU5XcsMFoYrsQmPhfZg==} + + '@volar/typescript@1.11.1': + resolution: {integrity: sha512-iU+t2mas/4lYierSnoFOeRFQUhAEMgsFuQxoxvwn5EdQopw43j+J27a4lt9LMInx1gLJBC6qL14WYGlgymaSMQ==} + + '@vue/compiler-core@3.5.27': + resolution: {integrity: sha512-gnSBQjZA+//qDZen+6a2EdHqJ68Z7uybrMf3SPjEGgG4dicklwDVmMC1AeIHxtLVPT7sn6sH1KOO+tS6gwOUeQ==} + + '@vue/compiler-dom@3.5.27': + resolution: {integrity: sha512-oAFea8dZgCtVVVTEC7fv3T5CbZW9BxpFzGGxC79xakTr6ooeEqmRuvQydIiDAkglZEAd09LgVf1RoDnL54fu5w==} + + '@vue/compiler-sfc@3.5.27': + resolution: {integrity: sha512-sHZu9QyDPeDmN/MRoshhggVOWE5WlGFStKFwu8G52swATgSny27hJRWteKDSUUzUH+wp+bmeNbhJnEAel/auUQ==} + + '@vue/compiler-ssr@3.5.27': + resolution: {integrity: sha512-Sj7h+JHt512fV1cTxKlYhg7qxBvack+BGncSpH+8vnN+KN95iPIcqB5rsbblX40XorP+ilO7VIKlkuu3Xq2vjw==} + + '@vue/devtools-api@6.6.4': + resolution: {integrity: sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==} + + '@vue/language-core@1.8.27': + resolution: {integrity: sha512-L8Kc27VdQserNaCUNiSFdDl9LWT24ly8Hpwf1ECy3aFb9m6bDhBGQYOujDm21N7EW3moKIOKEanQwe1q5BK+mA==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@vue/reactivity@3.5.27': + resolution: {integrity: sha512-vvorxn2KXfJ0nBEnj4GYshSgsyMNFnIQah/wczXlsNXt+ijhugmW+PpJ2cNPe4V6jpnBcs0MhCODKllWG+nvoQ==} + + '@vue/runtime-core@3.5.27': + resolution: {integrity: sha512-fxVuX/fzgzeMPn/CLQecWeDIFNt3gQVhxM0rW02Tvp/YmZfXQgcTXlakq7IMutuZ/+Ogbn+K0oct9J3JZfyk3A==} + + '@vue/runtime-dom@3.5.27': + resolution: {integrity: sha512-/QnLslQgYqSJ5aUmb5F0z0caZPGHRB8LEAQ1s81vHFM5CBfnun63rxhvE/scVb/j3TbBuoZwkJyiLCkBluMpeg==} + + '@vue/server-renderer@3.5.27': + resolution: {integrity: sha512-qOz/5thjeP1vAFc4+BY3Nr6wxyLhpeQgAE/8dDtKo6a6xdk+L4W46HDZgNmLOBUDEkFXV3G7pRiUqxjX0/2zWA==} + peerDependencies: + vue: 3.5.27 + + '@vue/shared@3.5.27': + resolution: {integrity: sha512-dXr/3CgqXsJkZ0n9F3I4elY8wM9jMJpP3pvRG52r6m0tu/MsAFIe6JpXVGeNMd/D9F4hQynWT8Rfuj0bdm9kFQ==} + + '@vueuse/core@10.11.1': + resolution: {integrity: sha512-guoy26JQktXPcz+0n3GukWIy/JDNKti9v6VEMu6kV2sYBsWuGiTU8OWdg+ADfUbHg3/3DlqySDe7JmdHrktiww==} + + '@vueuse/metadata@10.11.1': + resolution: {integrity: sha512-IGa5FXd003Ug1qAZmyE8wF3sJ81xGLSqTqtQ6jaVfkeZ4i5kS2mwQF61yhVqojRnenVew5PldLyRgvdl4YYuSw==} + + '@vueuse/shared@10.11.1': + resolution: {integrity: sha512-LHpC8711VFZlDaYUXEBbFBCQ7GS3dVU9mjOhhMhXP6txTV4EhYQg/KGnQuvt/sPAtoUKq7VVUnL6mVtFoL42sA==} + + acorn-jsx@5.3.2: + resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} + peerDependencies: + acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 + + acorn@8.15.0: + resolution: {integrity: sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==} + engines: {node: '>=0.4.0'} + hasBin: true + + ajv@6.12.6: + resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} + + ansi-regex@5.0.1: + resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} + engines: {node: '>=8'} + + ansi-styles@4.3.0: + resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} + engines: {node: '>=8'} + + argparse@2.0.1: + resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} + + array-union@2.1.0: + resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + engines: {node: '>=8'} + + async-validator@4.2.5: + resolution: {integrity: sha512-7HhHjtERjqlNbZtqNqy2rckN/SpOOlmDliet+lP7k+eKZEjPk3DgyeU9lIXLdeLz0uBbbVp+9Qdow9wJWgwwfg==} + + asynckit@0.4.0: + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} + + axios@1.13.2: + resolution: {integrity: sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA==} + + balanced-match@1.0.2: + resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} + + bcryptjs@3.0.3: + resolution: {integrity: sha512-GlF5wPWnSa/X5LKM1o0wz0suXIINz1iHRLvTS+sLyi7XPbe5ycmYI3DlZqVGZZtDgl4DmasFg7gOB3JYbphV5g==} + hasBin: true + + boolbase@1.0.0: + resolution: {integrity: sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==} + + brace-expansion@1.1.12: + resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} + + brace-expansion@2.0.2: + resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} + + braces@3.0.3: + resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} + engines: {node: '>=8'} + + call-bind-apply-helpers@1.0.2: + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} + engines: {node: '>= 0.4'} + + callsites@3.1.0: + resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} + engines: {node: '>=6'} + + chalk@4.1.2: + resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} + engines: {node: '>=10'} + + chokidar@4.0.3: + resolution: {integrity: sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==} + engines: {node: '>= 14.16.0'} + + color-convert@2.0.1: + resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} + engines: {node: '>=7.0.0'} + + color-name@1.1.4: + resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} + + combined-stream@1.0.8: + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} + engines: {node: '>= 0.8'} + + computeds@0.0.1: + resolution: {integrity: sha512-7CEBgcMjVmitjYo5q8JTJVra6X5mQ20uTThdK+0kR7UEaDrAWEQcRiBtWJzga4eRpP6afNwwLsX2SET2JhVB1Q==} + + concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} + + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + + cssesc@3.0.0: + resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} + engines: {node: '>=4'} + hasBin: true + + csstype@3.2.3: + resolution: {integrity: sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==} + + dayjs@1.11.19: + resolution: {integrity: sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==} + + de-indent@1.0.2: + resolution: {integrity: sha512-e/1zu3xH5MQryN2zdVaF0OrdNLUbvWxzMbi+iNA6Bky7l1RoP8a2fIbRocyHclXt/arDrrR6lL3TqFD9pMQTsg==} + + debug@4.4.3: + resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + + deep-is@0.1.4: + resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} + + delayed-stream@1.0.0: + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} + engines: {node: '>=0.4.0'} + + detect-libc@2.1.2: + resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} + engines: {node: '>=8'} + + dir-glob@3.0.1: + resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} + engines: {node: '>=8'} + + doctrine@3.0.0: + resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} + engines: {node: '>=6.0.0'} + + dunder-proto@1.0.1: + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} + engines: {node: '>= 0.4'} + + element-plus@2.13.1: + resolution: {integrity: sha512-eG4BDBGdAsUGN6URH1PixzZb0ngdapLivIk1meghS1uEueLvQ3aljSKrCt5x6sYb6mUk8eGtzTQFgsPmLavQcA==} + peerDependencies: + vue: ^3.3.0 + + entities@7.0.1: + resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==} + engines: {node: '>=0.12'} + + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-object-atoms@1.1.1: + resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} + engines: {node: '>= 0.4'} + + es-set-tostringtag@2.1.0: + resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} + engines: {node: '>= 0.4'} + + esbuild@0.21.5: + resolution: {integrity: sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==} + engines: {node: '>=12'} + hasBin: true + + escape-string-regexp@4.0.0: + resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} + engines: {node: '>=10'} + + eslint-plugin-vue@9.33.0: + resolution: {integrity: sha512-174lJKuNsuDIlLpjeXc5E2Tss8P44uIimAfGD0b90k0NoirJqpG7stLuU9Vp/9ioTOrQdWVREc4mRd1BD+CvGw==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0 + + eslint-scope@7.2.2: + resolution: {integrity: sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint-visitor-keys@3.4.3: + resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + eslint@8.57.1: + resolution: {integrity: sha512-ypowyDxpVSYpkXr9WPv2PAZCtNip1Mv5KTW0SCurXv/9iOpcrH9PaqUElksqEB6pChqHGDRCFTyrZlGhnLNGiA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + deprecated: This version is no longer supported. Please see https://eslint.org/version-support for other options. + hasBin: true + + espree@9.6.1: + resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + + esquery@1.7.0: + resolution: {integrity: sha512-Ap6G0WQwcU/LHsvLwON1fAQX9Zp0A2Y6Y/cJBl9r/JbW90Zyg4/zbG6zzKa2OTALELarYHmKu0GhpM5EO+7T0g==} + engines: {node: '>=0.10'} + + esrecurse@4.3.0: + resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} + engines: {node: '>=4.0'} + + estraverse@5.3.0: + resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} + engines: {node: '>=4.0'} + + estree-walker@2.0.2: + resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} + + esutils@2.0.3: + resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} + engines: {node: '>=0.10.0'} + + fast-deep-equal@3.1.3: + resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} + + fast-glob@3.3.3: + resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} + engines: {node: '>=8.6.0'} + + fast-json-stable-stringify@2.1.0: + resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} + + fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + + fastq@1.20.1: + resolution: {integrity: sha512-GGToxJ/w1x32s/D2EKND7kTil4n8OVk/9mycTc4VDza13lOvpUZTGX3mFSCtV9ksdGBVzvsyAVLM6mHFThxXxw==} + + file-entry-cache@6.0.1: + resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} + engines: {node: ^10.12.0 || >=12.0.0} + + fill-range@7.1.1: + resolution: {integrity: sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==} + engines: {node: '>=8'} + + find-up@5.0.0: + resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} + engines: {node: '>=10'} + + flat-cache@3.2.0: + resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==} + engines: {node: ^10.12.0 || >=12.0.0} + + flatted@3.3.3: + resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} + + follow-redirects@1.15.11: + resolution: {integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==} + engines: {node: '>=4.0'} + peerDependencies: + debug: '*' + peerDependenciesMeta: + debug: + optional: true + + form-data@4.0.5: + resolution: {integrity: sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==} + engines: {node: '>= 6'} + + fs.realpath@1.0.0: + resolution: {integrity: sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==} + + fsevents@2.3.3: + resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + + function-bind@1.1.2: + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + + get-intrinsic@1.3.0: + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} + engines: {node: '>= 0.4'} + + get-proto@1.0.1: + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} + engines: {node: '>= 0.4'} + + glob-parent@5.1.2: + resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} + engines: {node: '>= 6'} + + glob-parent@6.0.2: + resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} + engines: {node: '>=10.13.0'} + + glob@7.2.3: + resolution: {integrity: sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==} + deprecated: Glob versions prior to v9 are no longer supported + + globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + + globby@11.1.0: + resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} + engines: {node: '>=10'} + + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} + + graphemer@1.4.0: + resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} + + has-flag@4.0.0: + resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} + engines: {node: '>=8'} + + has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} + engines: {node: '>= 0.4'} + + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} + engines: {node: '>= 0.4'} + + he@1.2.0: + resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} + hasBin: true + + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + + immutable@5.1.4: + resolution: {integrity: sha512-p6u1bG3YSnINT5RQmx/yRZBpenIl30kVxkTLDyHLIMk0gict704Q9n+thfDI7lTRm9vXdDYutVzXhzcThxTnXA==} + + import-fresh@3.3.1: + resolution: {integrity: sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==} + engines: {node: '>=6'} + + imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} + engines: {node: '>=0.8.19'} + + inflight@1.0.6: + resolution: {integrity: sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==} + deprecated: This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful. + + inherits@2.0.4: + resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} + + is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} + engines: {node: '>=0.10.0'} + + is-glob@4.0.3: + resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} + engines: {node: '>=0.10.0'} + + is-number@7.0.0: + resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} + engines: {node: '>=0.12.0'} + + is-path-inside@3.0.3: + resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} + engines: {node: '>=8'} + + isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} + + js-yaml@4.1.1: + resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==} + hasBin: true + + json-buffer@3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + + json-schema-traverse@0.4.1: + resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} + + json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} + + keyv@4.5.4: + resolution: {integrity: sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==} + + levn@0.4.1: + resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} + engines: {node: '>= 0.8.0'} + + locate-path@6.0.0: + resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} + engines: {node: '>=10'} + + lodash-es@4.17.23: + resolution: {integrity: sha512-kVI48u3PZr38HdYz98UmfPnXl2DXrpdctLrFLCd3kOx1xUkOmpFPx7gCWWM5MPkL/fD8zb+Ph0QzjGFs4+hHWg==} + + lodash-unified@1.0.3: + resolution: {integrity: sha512-WK9qSozxXOD7ZJQlpSqOT+om2ZfcT4yO+03FuzAHD0wF6S0l0090LRPDx3vhTTLZ8cFKpBn+IOcVXK6qOcIlfQ==} + peerDependencies: + '@types/lodash-es': '*' + lodash: '*' + lodash-es: '*' + + lodash.merge@4.6.2: + resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} + + lodash@4.17.23: + resolution: {integrity: sha512-LgVTMpQtIopCi79SJeDiP0TfWi5CNEc/L/aRdTh3yIvmZXTnheWpKjSZhnvMl8iXbC1tFg9gdHHDMLoV7CnG+w==} + + magic-string@0.30.21: + resolution: {integrity: sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==} + + math-intrinsics@1.1.0: + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} + engines: {node: '>= 0.4'} + + memoize-one@6.0.0: + resolution: {integrity: sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==} + + merge2@1.4.1: + resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + engines: {node: '>= 8'} + + micromatch@4.0.8: + resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} + engines: {node: '>=8.6'} + + mime-db@1.52.0: + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} + engines: {node: '>= 0.6'} + + mime-types@2.1.35: + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} + engines: {node: '>= 0.6'} + + minimatch@3.1.2: + resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} + + minimatch@9.0.3: + resolution: {integrity: sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==} + engines: {node: '>=16 || 14 >=14.17'} + + minimatch@9.0.5: + resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} + engines: {node: '>=16 || 14 >=14.17'} + + ms@2.1.3: + resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} + + muggle-string@0.3.1: + resolution: {integrity: sha512-ckmWDJjphvd/FvZawgygcUeQCxzvohjFO5RxTjj4eq8kw359gFF3E1brjfI+viLMxss5JrHTDRHZvu2/tuy0Qg==} + + nanoid@3.3.11: + resolution: {integrity: sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==} + engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} + hasBin: true + + natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} + + node-addon-api@7.1.1: + resolution: {integrity: sha512-5m3bsyrjFWE1xf7nz7YXdN4udnVtXK6/Yfgn5qnahL6bCkf2yKt4k3nuTKAtT4r3IG8JNR2ncsIMdZuAzJjHQQ==} + + normalize-wheel-es@1.2.0: + resolution: {integrity: sha512-Wj7+EJQ8mSuXr2iWfnujrimU35R2W4FAErEyTmJoJ7ucwTn2hOUSsRehMb5RSYkxXGTM7Y9QpvPmp++w5ftoJw==} + + nth-check@2.1.1: + resolution: {integrity: sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==} + + once@1.4.0: + resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==} + + optionator@0.9.4: + resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} + engines: {node: '>= 0.8.0'} + + p-limit@3.1.0: + resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} + engines: {node: '>=10'} + + p-locate@5.0.0: + resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} + engines: {node: '>=10'} + + parent-module@1.0.1: + resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} + engines: {node: '>=6'} + + path-browserify@1.0.1: + resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} + + path-exists@4.0.0: + resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} + engines: {node: '>=8'} + + path-is-absolute@1.0.1: + resolution: {integrity: sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==} + engines: {node: '>=0.10.0'} + + path-key@3.1.1: + resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} + engines: {node: '>=8'} + + path-type@4.0.0: + resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + engines: {node: '>=8'} + + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + + picomatch@2.3.1: + resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} + engines: {node: '>=8.6'} + + picomatch@4.0.3: + resolution: {integrity: sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==} + engines: {node: '>=12'} + + pinia-plugin-persistedstate@3.2.3: + resolution: {integrity: sha512-Cm819WBj/s5K5DGw55EwbXDtx+EZzM0YR5AZbq9XE3u0xvXwvX2JnWoFpWIcdzISBHqy9H1UiSIUmXyXqWsQRQ==} + peerDependencies: + pinia: ^2.0.0 + + pinia@2.3.1: + resolution: {integrity: sha512-khUlZSwt9xXCaTbbxFYBKDc/bWAGWJjOgvxETwkTN7KRm66EeT1ZdZj6i2ceh9sP2Pzqsbc704r2yngBrxBVug==} + peerDependencies: + typescript: '>=4.4.4' + vue: ^2.7.0 || ^3.5.11 + peerDependenciesMeta: + typescript: + optional: true + + postcss-selector-parser@6.1.2: + resolution: {integrity: sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==} + engines: {node: '>=4'} + + postcss@8.5.6: + resolution: {integrity: sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==} + engines: {node: ^10 || ^12 || >=14} + + prelude-ls@1.2.1: + resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} + engines: {node: '>= 0.8.0'} + + prettier@3.8.1: + resolution: {integrity: sha512-UOnG6LftzbdaHZcKoPFtOcCKztrQ57WkHDeRD9t/PTQtmT0NHSeWWepj6pS0z/N7+08BHFDQVUrfmfMRcZwbMg==} + engines: {node: '>=14'} + hasBin: true + + proxy-from-env@1.1.0: + resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==} + + punycode@2.3.1: + resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} + engines: {node: '>=6'} + + queue-microtask@1.2.3: + resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} + + readdirp@4.1.2: + resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} + engines: {node: '>= 14.18.0'} + + resolve-from@4.0.0: + resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} + engines: {node: '>=4'} + + reusify@1.1.0: + resolution: {integrity: sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==} + engines: {iojs: '>=1.0.0', node: '>=0.10.0'} + + rimraf@3.0.2: + resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} + deprecated: Rimraf versions prior to v4 are no longer supported + hasBin: true + + rollup@4.56.0: + resolution: {integrity: sha512-9FwVqlgUHzbXtDg9RCMgodF3Ua4Na6Gau+Sdt9vyCN4RhHfVKX2DCHy3BjMLTDd47ITDhYAnTwGulWTblJSDLg==} + engines: {node: '>=18.0.0', npm: '>=8.0.0'} + hasBin: true + + run-parallel@1.2.0: + resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} + + sass@1.97.3: + resolution: {integrity: sha512-fDz1zJpd5GycprAbu4Q2PV/RprsRtKC/0z82z0JLgdytmcq0+ujJbJ/09bPGDxCLkKY3Np5cRAOcWiVkLXJURg==} + engines: {node: '>=14.0.0'} + hasBin: true + + semver@7.7.3: + resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} + engines: {node: '>=10'} + hasBin: true + + shebang-command@2.0.0: + resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} + engines: {node: '>=8'} + + shebang-regex@3.0.0: + resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} + engines: {node: '>=8'} + + slash@3.0.0: + resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} + engines: {node: '>=8'} + + source-map-js@1.2.1: + resolution: {integrity: sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==} + engines: {node: '>=0.10.0'} + + strip-ansi@6.0.1: + resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} + engines: {node: '>=8'} + + strip-json-comments@3.1.1: + resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} + engines: {node: '>=8'} + + supports-color@7.2.0: + resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} + engines: {node: '>=8'} + + text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + + to-regex-range@5.0.1: + resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} + engines: {node: '>=8.0'} + + ts-api-utils@1.4.3: + resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==} + engines: {node: '>=16'} + peerDependencies: + typescript: '>=4.2.0' + + type-check@0.4.0: + resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} + engines: {node: '>= 0.8.0'} + + type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + + typescript@5.9.3: + resolution: {integrity: sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==} + engines: {node: '>=14.17'} + hasBin: true + + undici-types@6.21.0: + resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==} + + uri-js@4.4.1: + resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} + + util-deprecate@1.0.2: + resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} + + vite@5.4.21: + resolution: {integrity: sha512-o5a9xKjbtuhY6Bi5S3+HvbRERmouabWbyUcpXXUA1u+GNUKoROi9byOJ8M0nHbHYHkYICiMlqxkg1KkYmm25Sw==} + engines: {node: ^18.0.0 || >=20.0.0} + hasBin: true + peerDependencies: + '@types/node': ^18.0.0 || >=20.0.0 + less: '*' + lightningcss: ^1.21.0 + sass: '*' + sass-embedded: '*' + stylus: '*' + sugarss: '*' + terser: ^5.4.0 + peerDependenciesMeta: + '@types/node': + optional: true + less: + optional: true + lightningcss: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + + vue-demi@0.14.10: + resolution: {integrity: sha512-nMZBOwuzabUO0nLgIcc6rycZEebF6eeUfaiQx9+WSk8e29IbLvPU9feI6tqW4kTo3hvoYAJkMh8n8D0fuISphg==} + engines: {node: '>=12'} + hasBin: true + peerDependencies: + '@vue/composition-api': ^1.0.0-rc.1 + vue: ^3.0.0-0 || ^2.6.0 + peerDependenciesMeta: + '@vue/composition-api': + optional: true + + vue-eslint-parser@9.4.3: + resolution: {integrity: sha512-2rYRLWlIpaiN8xbPiDyXZXRgLGOtWxERV7ND5fFAv5qo1D2N9Fu9MNajBNc6o13lZ+24DAWCkQCvj4klgmcITg==} + engines: {node: ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: '>=6.0.0' + + vue-router@4.6.4: + resolution: {integrity: sha512-Hz9q5sa33Yhduglwz6g9skT8OBPii+4bFn88w6J+J4MfEo4KRRpmiNG/hHHkdbRFlLBOqxN8y8gf2Fb0MTUgVg==} + peerDependencies: + vue: ^3.5.0 + + vue-template-compiler@2.7.16: + resolution: {integrity: sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==} + + vue-tsc@1.8.27: + resolution: {integrity: sha512-WesKCAZCRAbmmhuGl3+VrdWItEvfoFIPXOvUJkjULi+x+6G/Dy69yO3TBRJDr9eUlmsNAwVmxsNZxvHKzbkKdg==} + hasBin: true + peerDependencies: + typescript: '*' + + vue@3.5.27: + resolution: {integrity: sha512-aJ/UtoEyFySPBGarREmN4z6qNKpbEguYHMmXSiOGk69czc+zhs0NF6tEFrY8TZKAl8N/LYAkd4JHVd5E/AsSmw==} + peerDependencies: + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + which@2.0.2: + resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} + engines: {node: '>= 8'} + hasBin: true + + word-wrap@1.2.5: + resolution: {integrity: sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==} + engines: {node: '>=0.10.0'} + + wrappy@1.0.2: + resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==} + + xml-name-validator@4.0.0: + resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} + engines: {node: '>=12'} + + yocto-queue@0.1.0: + resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} + engines: {node: '>=10'} + +snapshots: + + '@babel/helper-string-parser@7.27.1': {} + + '@babel/helper-validator-identifier@7.28.5': {} + + '@babel/parser@7.28.6': + dependencies: + '@babel/types': 7.28.6 + + '@babel/types@7.28.6': + dependencies: + '@babel/helper-string-parser': 7.27.1 + '@babel/helper-validator-identifier': 7.28.5 + + '@ctrl/tinycolor@3.6.1': {} + + '@element-plus/icons-vue@2.3.2(vue@3.5.27(typescript@5.9.3))': + dependencies: + vue: 3.5.27(typescript@5.9.3) + + '@esbuild/aix-ppc64@0.21.5': + optional: true + + '@esbuild/android-arm64@0.21.5': + optional: true + + '@esbuild/android-arm@0.21.5': + optional: true + + '@esbuild/android-x64@0.21.5': + optional: true + + '@esbuild/darwin-arm64@0.21.5': + optional: true + + '@esbuild/darwin-x64@0.21.5': + optional: true + + '@esbuild/freebsd-arm64@0.21.5': + optional: true + + '@esbuild/freebsd-x64@0.21.5': + optional: true + + '@esbuild/linux-arm64@0.21.5': + optional: true + + '@esbuild/linux-arm@0.21.5': + optional: true + + '@esbuild/linux-ia32@0.21.5': + optional: true + + '@esbuild/linux-loong64@0.21.5': + optional: true + + '@esbuild/linux-mips64el@0.21.5': + optional: true + + '@esbuild/linux-ppc64@0.21.5': + optional: true + + '@esbuild/linux-riscv64@0.21.5': + optional: true + + '@esbuild/linux-s390x@0.21.5': + optional: true + + '@esbuild/linux-x64@0.21.5': + optional: true + + '@esbuild/netbsd-x64@0.21.5': + optional: true + + '@esbuild/openbsd-x64@0.21.5': + optional: true + + '@esbuild/sunos-x64@0.21.5': + optional: true + + '@esbuild/win32-arm64@0.21.5': + optional: true + + '@esbuild/win32-ia32@0.21.5': + optional: true + + '@esbuild/win32-x64@0.21.5': + optional: true + + '@eslint-community/eslint-utils@4.9.1(eslint@8.57.1)': + dependencies: + eslint: 8.57.1 + eslint-visitor-keys: 3.4.3 + + '@eslint-community/regexpp@4.12.2': {} + + '@eslint/eslintrc@2.1.4': + dependencies: + ajv: 6.12.6 + debug: 4.4.3 + espree: 9.6.1 + globals: 13.24.0 + ignore: 5.3.2 + import-fresh: 3.3.1 + js-yaml: 4.1.1 + minimatch: 3.1.2 + strip-json-comments: 3.1.1 + transitivePeerDependencies: + - supports-color + + '@eslint/js@8.57.1': {} + + '@floating-ui/core@1.7.3': + dependencies: + '@floating-ui/utils': 0.2.10 + + '@floating-ui/dom@1.7.4': + dependencies: + '@floating-ui/core': 1.7.3 + '@floating-ui/utils': 0.2.10 + + '@floating-ui/utils@0.2.10': {} + + '@humanwhocodes/config-array@0.13.0': + dependencies: + '@humanwhocodes/object-schema': 2.0.3 + debug: 4.4.3 + minimatch: 3.1.2 + transitivePeerDependencies: + - supports-color + + '@humanwhocodes/module-importer@1.0.1': {} + + '@humanwhocodes/object-schema@2.0.3': {} + + '@jridgewell/sourcemap-codec@1.5.5': {} + + '@nodelib/fs.scandir@2.1.5': + dependencies: + '@nodelib/fs.stat': 2.0.5 + run-parallel: 1.2.0 + + '@nodelib/fs.stat@2.0.5': {} + + '@nodelib/fs.walk@1.2.8': + dependencies: + '@nodelib/fs.scandir': 2.1.5 + fastq: 1.20.1 + + '@parcel/watcher-android-arm64@2.5.6': + optional: true + + '@parcel/watcher-darwin-arm64@2.5.6': + optional: true + + '@parcel/watcher-darwin-x64@2.5.6': + optional: true + + '@parcel/watcher-freebsd-x64@2.5.6': + optional: true + + '@parcel/watcher-linux-arm-glibc@2.5.6': + optional: true + + '@parcel/watcher-linux-arm-musl@2.5.6': + optional: true + + '@parcel/watcher-linux-arm64-glibc@2.5.6': + optional: true + + '@parcel/watcher-linux-arm64-musl@2.5.6': + optional: true + + '@parcel/watcher-linux-x64-glibc@2.5.6': + optional: true + + '@parcel/watcher-linux-x64-musl@2.5.6': + optional: true + + '@parcel/watcher-win32-arm64@2.5.6': + optional: true + + '@parcel/watcher-win32-ia32@2.5.6': + optional: true + + '@parcel/watcher-win32-x64@2.5.6': + optional: true + + '@parcel/watcher@2.5.6': + dependencies: + detect-libc: 2.1.2 + is-glob: 4.0.3 + node-addon-api: 7.1.1 + picomatch: 4.0.3 + optionalDependencies: + '@parcel/watcher-android-arm64': 2.5.6 + '@parcel/watcher-darwin-arm64': 2.5.6 + '@parcel/watcher-darwin-x64': 2.5.6 + '@parcel/watcher-freebsd-x64': 2.5.6 + '@parcel/watcher-linux-arm-glibc': 2.5.6 + '@parcel/watcher-linux-arm-musl': 2.5.6 + '@parcel/watcher-linux-arm64-glibc': 2.5.6 + '@parcel/watcher-linux-arm64-musl': 2.5.6 + '@parcel/watcher-linux-x64-glibc': 2.5.6 + '@parcel/watcher-linux-x64-musl': 2.5.6 + '@parcel/watcher-win32-arm64': 2.5.6 + '@parcel/watcher-win32-ia32': 2.5.6 + '@parcel/watcher-win32-x64': 2.5.6 + optional: true + + '@rollup/rollup-android-arm-eabi@4.56.0': + optional: true + + '@rollup/rollup-android-arm64@4.56.0': + optional: true + + '@rollup/rollup-darwin-arm64@4.56.0': + optional: true + + '@rollup/rollup-darwin-x64@4.56.0': + optional: true + + '@rollup/rollup-freebsd-arm64@4.56.0': + optional: true + + '@rollup/rollup-freebsd-x64@4.56.0': + optional: true + + '@rollup/rollup-linux-arm-gnueabihf@4.56.0': + optional: true + + '@rollup/rollup-linux-arm-musleabihf@4.56.0': + optional: true + + '@rollup/rollup-linux-arm64-gnu@4.56.0': + optional: true + + '@rollup/rollup-linux-arm64-musl@4.56.0': + optional: true + + '@rollup/rollup-linux-loong64-gnu@4.56.0': + optional: true + + '@rollup/rollup-linux-loong64-musl@4.56.0': + optional: true + + '@rollup/rollup-linux-ppc64-gnu@4.56.0': + optional: true + + '@rollup/rollup-linux-ppc64-musl@4.56.0': + optional: true + + '@rollup/rollup-linux-riscv64-gnu@4.56.0': + optional: true + + '@rollup/rollup-linux-riscv64-musl@4.56.0': + optional: true + + '@rollup/rollup-linux-s390x-gnu@4.56.0': + optional: true + + '@rollup/rollup-linux-x64-gnu@4.56.0': + optional: true + + '@rollup/rollup-linux-x64-musl@4.56.0': + optional: true + + '@rollup/rollup-openbsd-x64@4.56.0': + optional: true + + '@rollup/rollup-openharmony-arm64@4.56.0': + optional: true + + '@rollup/rollup-win32-arm64-msvc@4.56.0': + optional: true + + '@rollup/rollup-win32-ia32-msvc@4.56.0': + optional: true + + '@rollup/rollup-win32-x64-gnu@4.56.0': + optional: true + + '@rollup/rollup-win32-x64-msvc@4.56.0': + optional: true + + '@sxzz/popperjs-es@2.11.7': {} + + '@types/bcryptjs@3.0.0': + dependencies: + bcryptjs: 3.0.3 + + '@types/estree@1.0.8': {} + + '@types/json-schema@7.0.15': {} + + '@types/lodash-es@4.17.12': + dependencies: + '@types/lodash': 4.17.23 + + '@types/lodash@4.17.23': {} + + '@types/node@20.19.30': + dependencies: + undici-types: 6.21.0 + + '@types/semver@7.7.1': {} + + '@types/web-bluetooth@0.0.20': {} + + '@typescript-eslint/eslint-plugin@6.21.0(@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3)': + dependencies: + '@eslint-community/regexpp': 4.12.2 + '@typescript-eslint/parser': 6.21.0(eslint@8.57.1)(typescript@5.9.3) + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/type-utils': 6.21.0(eslint@8.57.1)(typescript@5.9.3) + '@typescript-eslint/utils': 6.21.0(eslint@8.57.1)(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 6.21.0 + debug: 4.4.3 + eslint: 8.57.1 + graphemer: 1.4.0 + ignore: 5.3.2 + natural-compare: 1.4.0 + semver: 7.7.3 + ts-api-utils: 1.4.3(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/parser@6.21.0(eslint@8.57.1)(typescript@5.9.3)': + dependencies: + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.9.3) + '@typescript-eslint/visitor-keys': 6.21.0 + debug: 4.4.3 + eslint: 8.57.1 + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/scope-manager@6.21.0': + dependencies: + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/visitor-keys': 6.21.0 + + '@typescript-eslint/type-utils@6.21.0(eslint@8.57.1)(typescript@5.9.3)': + dependencies: + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.9.3) + '@typescript-eslint/utils': 6.21.0(eslint@8.57.1)(typescript@5.9.3) + debug: 4.4.3 + eslint: 8.57.1 + ts-api-utils: 1.4.3(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/types@6.21.0': {} + + '@typescript-eslint/typescript-estree@6.21.0(typescript@5.9.3)': + dependencies: + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/visitor-keys': 6.21.0 + debug: 4.4.3 + globby: 11.1.0 + is-glob: 4.0.3 + minimatch: 9.0.3 + semver: 7.7.3 + ts-api-utils: 1.4.3(typescript@5.9.3) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@6.21.0(eslint@8.57.1)(typescript@5.9.3)': + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@8.57.1) + '@types/json-schema': 7.0.15 + '@types/semver': 7.7.1 + '@typescript-eslint/scope-manager': 6.21.0 + '@typescript-eslint/types': 6.21.0 + '@typescript-eslint/typescript-estree': 6.21.0(typescript@5.9.3) + eslint: 8.57.1 + semver: 7.7.3 + transitivePeerDependencies: + - supports-color + - typescript + + '@typescript-eslint/visitor-keys@6.21.0': + dependencies: + '@typescript-eslint/types': 6.21.0 + eslint-visitor-keys: 3.4.3 + + '@ungap/structured-clone@1.3.0': {} + + '@vitejs/plugin-vue@5.2.4(vite@5.4.21(@types/node@20.19.30)(sass@1.97.3))(vue@3.5.27(typescript@5.9.3))': + dependencies: + vite: 5.4.21(@types/node@20.19.30)(sass@1.97.3) + vue: 3.5.27(typescript@5.9.3) + + '@volar/language-core@1.11.1': + dependencies: + '@volar/source-map': 1.11.1 + + '@volar/source-map@1.11.1': + dependencies: + muggle-string: 0.3.1 + + '@volar/typescript@1.11.1': + dependencies: + '@volar/language-core': 1.11.1 + path-browserify: 1.0.1 + + '@vue/compiler-core@3.5.27': + dependencies: + '@babel/parser': 7.28.6 + '@vue/shared': 3.5.27 + entities: 7.0.1 + estree-walker: 2.0.2 + source-map-js: 1.2.1 + + '@vue/compiler-dom@3.5.27': + dependencies: + '@vue/compiler-core': 3.5.27 + '@vue/shared': 3.5.27 + + '@vue/compiler-sfc@3.5.27': + dependencies: + '@babel/parser': 7.28.6 + '@vue/compiler-core': 3.5.27 + '@vue/compiler-dom': 3.5.27 + '@vue/compiler-ssr': 3.5.27 + '@vue/shared': 3.5.27 + estree-walker: 2.0.2 + magic-string: 0.30.21 + postcss: 8.5.6 + source-map-js: 1.2.1 + + '@vue/compiler-ssr@3.5.27': + dependencies: + '@vue/compiler-dom': 3.5.27 + '@vue/shared': 3.5.27 + + '@vue/devtools-api@6.6.4': {} + + '@vue/language-core@1.8.27(typescript@5.9.3)': + dependencies: + '@volar/language-core': 1.11.1 + '@volar/source-map': 1.11.1 + '@vue/compiler-dom': 3.5.27 + '@vue/shared': 3.5.27 + computeds: 0.0.1 + minimatch: 9.0.5 + muggle-string: 0.3.1 + path-browserify: 1.0.1 + vue-template-compiler: 2.7.16 + optionalDependencies: + typescript: 5.9.3 + + '@vue/reactivity@3.5.27': + dependencies: + '@vue/shared': 3.5.27 + + '@vue/runtime-core@3.5.27': + dependencies: + '@vue/reactivity': 3.5.27 + '@vue/shared': 3.5.27 + + '@vue/runtime-dom@3.5.27': + dependencies: + '@vue/reactivity': 3.5.27 + '@vue/runtime-core': 3.5.27 + '@vue/shared': 3.5.27 + csstype: 3.2.3 + + '@vue/server-renderer@3.5.27(vue@3.5.27(typescript@5.9.3))': + dependencies: + '@vue/compiler-ssr': 3.5.27 + '@vue/shared': 3.5.27 + vue: 3.5.27(typescript@5.9.3) + + '@vue/shared@3.5.27': {} + + '@vueuse/core@10.11.1(vue@3.5.27(typescript@5.9.3))': + dependencies: + '@types/web-bluetooth': 0.0.20 + '@vueuse/metadata': 10.11.1 + '@vueuse/shared': 10.11.1(vue@3.5.27(typescript@5.9.3)) + vue-demi: 0.14.10(vue@3.5.27(typescript@5.9.3)) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + + '@vueuse/metadata@10.11.1': {} + + '@vueuse/shared@10.11.1(vue@3.5.27(typescript@5.9.3))': + dependencies: + vue-demi: 0.14.10(vue@3.5.27(typescript@5.9.3)) + transitivePeerDependencies: + - '@vue/composition-api' + - vue + + acorn-jsx@5.3.2(acorn@8.15.0): + dependencies: + acorn: 8.15.0 + + acorn@8.15.0: {} + + ajv@6.12.6: + dependencies: + fast-deep-equal: 3.1.3 + fast-json-stable-stringify: 2.1.0 + json-schema-traverse: 0.4.1 + uri-js: 4.4.1 + + ansi-regex@5.0.1: {} + + ansi-styles@4.3.0: + dependencies: + color-convert: 2.0.1 + + argparse@2.0.1: {} + + array-union@2.1.0: {} + + async-validator@4.2.5: {} + + asynckit@0.4.0: {} + + axios@1.13.2: + dependencies: + follow-redirects: 1.15.11 + form-data: 4.0.5 + proxy-from-env: 1.1.0 + transitivePeerDependencies: + - debug + + balanced-match@1.0.2: {} + + bcryptjs@3.0.3: {} + + boolbase@1.0.0: {} + + brace-expansion@1.1.12: + dependencies: + balanced-match: 1.0.2 + concat-map: 0.0.1 + + brace-expansion@2.0.2: + dependencies: + balanced-match: 1.0.2 + + braces@3.0.3: + dependencies: + fill-range: 7.1.1 + + call-bind-apply-helpers@1.0.2: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + + callsites@3.1.0: {} + + chalk@4.1.2: + dependencies: + ansi-styles: 4.3.0 + supports-color: 7.2.0 + + chokidar@4.0.3: + dependencies: + readdirp: 4.1.2 + + color-convert@2.0.1: + dependencies: + color-name: 1.1.4 + + color-name@1.1.4: {} + + combined-stream@1.0.8: + dependencies: + delayed-stream: 1.0.0 + + computeds@0.0.1: {} + + concat-map@0.0.1: {} + + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + + cssesc@3.0.0: {} + + csstype@3.2.3: {} + + dayjs@1.11.19: {} + + de-indent@1.0.2: {} + + debug@4.4.3: + dependencies: + ms: 2.1.3 + + deep-is@0.1.4: {} + + delayed-stream@1.0.0: {} + + detect-libc@2.1.2: + optional: true + + dir-glob@3.0.1: + dependencies: + path-type: 4.0.0 + + doctrine@3.0.0: + dependencies: + esutils: 2.0.3 + + dunder-proto@1.0.1: + dependencies: + call-bind-apply-helpers: 1.0.2 + es-errors: 1.3.0 + gopd: 1.2.0 + + element-plus@2.13.1(vue@3.5.27(typescript@5.9.3)): + dependencies: + '@ctrl/tinycolor': 3.6.1 + '@element-plus/icons-vue': 2.3.2(vue@3.5.27(typescript@5.9.3)) + '@floating-ui/dom': 1.7.4 + '@popperjs/core': '@sxzz/popperjs-es@2.11.7' + '@types/lodash': 4.17.23 + '@types/lodash-es': 4.17.12 + '@vueuse/core': 10.11.1(vue@3.5.27(typescript@5.9.3)) + async-validator: 4.2.5 + dayjs: 1.11.19 + lodash: 4.17.23 + lodash-es: 4.17.23 + lodash-unified: 1.0.3(@types/lodash-es@4.17.12)(lodash-es@4.17.23)(lodash@4.17.23) + memoize-one: 6.0.0 + normalize-wheel-es: 1.2.0 + vue: 3.5.27(typescript@5.9.3) + transitivePeerDependencies: + - '@vue/composition-api' + + entities@7.0.1: {} + + es-define-property@1.0.1: {} + + es-errors@1.3.0: {} + + es-object-atoms@1.1.1: + dependencies: + es-errors: 1.3.0 + + es-set-tostringtag@2.1.0: + dependencies: + es-errors: 1.3.0 + get-intrinsic: 1.3.0 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + + esbuild@0.21.5: + optionalDependencies: + '@esbuild/aix-ppc64': 0.21.5 + '@esbuild/android-arm': 0.21.5 + '@esbuild/android-arm64': 0.21.5 + '@esbuild/android-x64': 0.21.5 + '@esbuild/darwin-arm64': 0.21.5 + '@esbuild/darwin-x64': 0.21.5 + '@esbuild/freebsd-arm64': 0.21.5 + '@esbuild/freebsd-x64': 0.21.5 + '@esbuild/linux-arm': 0.21.5 + '@esbuild/linux-arm64': 0.21.5 + '@esbuild/linux-ia32': 0.21.5 + '@esbuild/linux-loong64': 0.21.5 + '@esbuild/linux-mips64el': 0.21.5 + '@esbuild/linux-ppc64': 0.21.5 + '@esbuild/linux-riscv64': 0.21.5 + '@esbuild/linux-s390x': 0.21.5 + '@esbuild/linux-x64': 0.21.5 + '@esbuild/netbsd-x64': 0.21.5 + '@esbuild/openbsd-x64': 0.21.5 + '@esbuild/sunos-x64': 0.21.5 + '@esbuild/win32-arm64': 0.21.5 + '@esbuild/win32-ia32': 0.21.5 + '@esbuild/win32-x64': 0.21.5 + + escape-string-regexp@4.0.0: {} + + eslint-plugin-vue@9.33.0(eslint@8.57.1): + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@8.57.1) + eslint: 8.57.1 + globals: 13.24.0 + natural-compare: 1.4.0 + nth-check: 2.1.1 + postcss-selector-parser: 6.1.2 + semver: 7.7.3 + vue-eslint-parser: 9.4.3(eslint@8.57.1) + xml-name-validator: 4.0.0 + transitivePeerDependencies: + - supports-color + + eslint-scope@7.2.2: + dependencies: + esrecurse: 4.3.0 + estraverse: 5.3.0 + + eslint-visitor-keys@3.4.3: {} + + eslint@8.57.1: + dependencies: + '@eslint-community/eslint-utils': 4.9.1(eslint@8.57.1) + '@eslint-community/regexpp': 4.12.2 + '@eslint/eslintrc': 2.1.4 + '@eslint/js': 8.57.1 + '@humanwhocodes/config-array': 0.13.0 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 + '@ungap/structured-clone': 1.3.0 + ajv: 6.12.6 + chalk: 4.1.2 + cross-spawn: 7.0.6 + debug: 4.4.3 + doctrine: 3.0.0 + escape-string-regexp: 4.0.0 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.7.0 + esutils: 2.0.3 + fast-deep-equal: 3.1.3 + file-entry-cache: 6.0.1 + find-up: 5.0.0 + glob-parent: 6.0.2 + globals: 13.24.0 + graphemer: 1.4.0 + ignore: 5.3.2 + imurmurhash: 0.1.4 + is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-yaml: 4.1.1 + json-stable-stringify-without-jsonify: 1.0.1 + levn: 0.4.1 + lodash.merge: 4.6.2 + minimatch: 3.1.2 + natural-compare: 1.4.0 + optionator: 0.9.4 + strip-ansi: 6.0.1 + text-table: 0.2.0 + transitivePeerDependencies: + - supports-color + + espree@9.6.1: + dependencies: + acorn: 8.15.0 + acorn-jsx: 5.3.2(acorn@8.15.0) + eslint-visitor-keys: 3.4.3 + + esquery@1.7.0: + dependencies: + estraverse: 5.3.0 + + esrecurse@4.3.0: + dependencies: + estraverse: 5.3.0 + + estraverse@5.3.0: {} + + estree-walker@2.0.2: {} + + esutils@2.0.3: {} + + fast-deep-equal@3.1.3: {} + + fast-glob@3.3.3: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.8 + + fast-json-stable-stringify@2.1.0: {} + + fast-levenshtein@2.0.6: {} + + fastq@1.20.1: + dependencies: + reusify: 1.1.0 + + file-entry-cache@6.0.1: + dependencies: + flat-cache: 3.2.0 + + fill-range@7.1.1: + dependencies: + to-regex-range: 5.0.1 + + find-up@5.0.0: + dependencies: + locate-path: 6.0.0 + path-exists: 4.0.0 + + flat-cache@3.2.0: + dependencies: + flatted: 3.3.3 + keyv: 4.5.4 + rimraf: 3.0.2 + + flatted@3.3.3: {} + + follow-redirects@1.15.11: {} + + form-data@4.0.5: + dependencies: + asynckit: 0.4.0 + combined-stream: 1.0.8 + es-set-tostringtag: 2.1.0 + hasown: 2.0.2 + mime-types: 2.1.35 + + fs.realpath@1.0.0: {} + + fsevents@2.3.3: + optional: true + + function-bind@1.1.2: {} + + get-intrinsic@1.3.0: + 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 + + get-proto@1.0.1: + dependencies: + dunder-proto: 1.0.1 + es-object-atoms: 1.1.1 + + glob-parent@5.1.2: + dependencies: + is-glob: 4.0.3 + + glob-parent@6.0.2: + dependencies: + is-glob: 4.0.3 + + glob@7.2.3: + dependencies: + fs.realpath: 1.0.0 + inflight: 1.0.6 + inherits: 2.0.4 + minimatch: 3.1.2 + once: 1.4.0 + path-is-absolute: 1.0.1 + + globals@13.24.0: + dependencies: + type-fest: 0.20.2 + + globby@11.1.0: + dependencies: + array-union: 2.1.0 + dir-glob: 3.0.1 + fast-glob: 3.3.3 + ignore: 5.3.2 + merge2: 1.4.1 + slash: 3.0.0 + + gopd@1.2.0: {} + + graphemer@1.4.0: {} + + has-flag@4.0.0: {} + + has-symbols@1.1.0: {} + + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.1.0 + + hasown@2.0.2: + dependencies: + function-bind: 1.1.2 + + he@1.2.0: {} + + ignore@5.3.2: {} + + immutable@5.1.4: {} + + import-fresh@3.3.1: + dependencies: + parent-module: 1.0.1 + resolve-from: 4.0.0 + + imurmurhash@0.1.4: {} + + inflight@1.0.6: + dependencies: + once: 1.4.0 + wrappy: 1.0.2 + + inherits@2.0.4: {} + + is-extglob@2.1.1: {} + + is-glob@4.0.3: + dependencies: + is-extglob: 2.1.1 + + is-number@7.0.0: {} + + is-path-inside@3.0.3: {} + + isexe@2.0.0: {} + + js-yaml@4.1.1: + dependencies: + argparse: 2.0.1 + + json-buffer@3.0.1: {} + + json-schema-traverse@0.4.1: {} + + json-stable-stringify-without-jsonify@1.0.1: {} + + keyv@4.5.4: + dependencies: + json-buffer: 3.0.1 + + levn@0.4.1: + dependencies: + prelude-ls: 1.2.1 + type-check: 0.4.0 + + locate-path@6.0.0: + dependencies: + p-locate: 5.0.0 + + lodash-es@4.17.23: {} + + lodash-unified@1.0.3(@types/lodash-es@4.17.12)(lodash-es@4.17.23)(lodash@4.17.23): + dependencies: + '@types/lodash-es': 4.17.12 + lodash: 4.17.23 + lodash-es: 4.17.23 + + lodash.merge@4.6.2: {} + + lodash@4.17.23: {} + + magic-string@0.30.21: + dependencies: + '@jridgewell/sourcemap-codec': 1.5.5 + + math-intrinsics@1.1.0: {} + + memoize-one@6.0.0: {} + + merge2@1.4.1: {} + + micromatch@4.0.8: + dependencies: + braces: 3.0.3 + picomatch: 2.3.1 + + mime-db@1.52.0: {} + + mime-types@2.1.35: + dependencies: + mime-db: 1.52.0 + + minimatch@3.1.2: + dependencies: + brace-expansion: 1.1.12 + + minimatch@9.0.3: + dependencies: + brace-expansion: 2.0.2 + + minimatch@9.0.5: + dependencies: + brace-expansion: 2.0.2 + + ms@2.1.3: {} + + muggle-string@0.3.1: {} + + nanoid@3.3.11: {} + + natural-compare@1.4.0: {} + + node-addon-api@7.1.1: + optional: true + + normalize-wheel-es@1.2.0: {} + + nth-check@2.1.1: + dependencies: + boolbase: 1.0.0 + + once@1.4.0: + dependencies: + wrappy: 1.0.2 + + optionator@0.9.4: + dependencies: + deep-is: 0.1.4 + fast-levenshtein: 2.0.6 + levn: 0.4.1 + prelude-ls: 1.2.1 + type-check: 0.4.0 + word-wrap: 1.2.5 + + p-limit@3.1.0: + dependencies: + yocto-queue: 0.1.0 + + p-locate@5.0.0: + dependencies: + p-limit: 3.1.0 + + parent-module@1.0.1: + dependencies: + callsites: 3.1.0 + + path-browserify@1.0.1: {} + + path-exists@4.0.0: {} + + path-is-absolute@1.0.1: {} + + path-key@3.1.1: {} + + path-type@4.0.0: {} + + picocolors@1.1.1: {} + + picomatch@2.3.1: {} + + picomatch@4.0.3: + optional: true + + pinia-plugin-persistedstate@3.2.3(pinia@2.3.1(typescript@5.9.3)(vue@3.5.27(typescript@5.9.3))): + dependencies: + pinia: 2.3.1(typescript@5.9.3)(vue@3.5.27(typescript@5.9.3)) + + pinia@2.3.1(typescript@5.9.3)(vue@3.5.27(typescript@5.9.3)): + dependencies: + '@vue/devtools-api': 6.6.4 + vue: 3.5.27(typescript@5.9.3) + vue-demi: 0.14.10(vue@3.5.27(typescript@5.9.3)) + optionalDependencies: + typescript: 5.9.3 + transitivePeerDependencies: + - '@vue/composition-api' + + postcss-selector-parser@6.1.2: + dependencies: + cssesc: 3.0.0 + util-deprecate: 1.0.2 + + postcss@8.5.6: + dependencies: + nanoid: 3.3.11 + picocolors: 1.1.1 + source-map-js: 1.2.1 + + prelude-ls@1.2.1: {} + + prettier@3.8.1: {} + + proxy-from-env@1.1.0: {} + + punycode@2.3.1: {} + + queue-microtask@1.2.3: {} + + readdirp@4.1.2: {} + + resolve-from@4.0.0: {} + + reusify@1.1.0: {} + + rimraf@3.0.2: + dependencies: + glob: 7.2.3 + + rollup@4.56.0: + dependencies: + '@types/estree': 1.0.8 + optionalDependencies: + '@rollup/rollup-android-arm-eabi': 4.56.0 + '@rollup/rollup-android-arm64': 4.56.0 + '@rollup/rollup-darwin-arm64': 4.56.0 + '@rollup/rollup-darwin-x64': 4.56.0 + '@rollup/rollup-freebsd-arm64': 4.56.0 + '@rollup/rollup-freebsd-x64': 4.56.0 + '@rollup/rollup-linux-arm-gnueabihf': 4.56.0 + '@rollup/rollup-linux-arm-musleabihf': 4.56.0 + '@rollup/rollup-linux-arm64-gnu': 4.56.0 + '@rollup/rollup-linux-arm64-musl': 4.56.0 + '@rollup/rollup-linux-loong64-gnu': 4.56.0 + '@rollup/rollup-linux-loong64-musl': 4.56.0 + '@rollup/rollup-linux-ppc64-gnu': 4.56.0 + '@rollup/rollup-linux-ppc64-musl': 4.56.0 + '@rollup/rollup-linux-riscv64-gnu': 4.56.0 + '@rollup/rollup-linux-riscv64-musl': 4.56.0 + '@rollup/rollup-linux-s390x-gnu': 4.56.0 + '@rollup/rollup-linux-x64-gnu': 4.56.0 + '@rollup/rollup-linux-x64-musl': 4.56.0 + '@rollup/rollup-openbsd-x64': 4.56.0 + '@rollup/rollup-openharmony-arm64': 4.56.0 + '@rollup/rollup-win32-arm64-msvc': 4.56.0 + '@rollup/rollup-win32-ia32-msvc': 4.56.0 + '@rollup/rollup-win32-x64-gnu': 4.56.0 + '@rollup/rollup-win32-x64-msvc': 4.56.0 + fsevents: 2.3.3 + + run-parallel@1.2.0: + dependencies: + queue-microtask: 1.2.3 + + sass@1.97.3: + dependencies: + chokidar: 4.0.3 + immutable: 5.1.4 + source-map-js: 1.2.1 + optionalDependencies: + '@parcel/watcher': 2.5.6 + + semver@7.7.3: {} + + shebang-command@2.0.0: + dependencies: + shebang-regex: 3.0.0 + + shebang-regex@3.0.0: {} + + slash@3.0.0: {} + + source-map-js@1.2.1: {} + + strip-ansi@6.0.1: + dependencies: + ansi-regex: 5.0.1 + + strip-json-comments@3.1.1: {} + + supports-color@7.2.0: + dependencies: + has-flag: 4.0.0 + + text-table@0.2.0: {} + + to-regex-range@5.0.1: + dependencies: + is-number: 7.0.0 + + ts-api-utils@1.4.3(typescript@5.9.3): + dependencies: + typescript: 5.9.3 + + type-check@0.4.0: + dependencies: + prelude-ls: 1.2.1 + + type-fest@0.20.2: {} + + typescript@5.9.3: {} + + undici-types@6.21.0: {} + + uri-js@4.4.1: + dependencies: + punycode: 2.3.1 + + util-deprecate@1.0.2: {} + + vite@5.4.21(@types/node@20.19.30)(sass@1.97.3): + dependencies: + esbuild: 0.21.5 + postcss: 8.5.6 + rollup: 4.56.0 + optionalDependencies: + '@types/node': 20.19.30 + fsevents: 2.3.3 + sass: 1.97.3 + + vue-demi@0.14.10(vue@3.5.27(typescript@5.9.3)): + dependencies: + vue: 3.5.27(typescript@5.9.3) + + vue-eslint-parser@9.4.3(eslint@8.57.1): + dependencies: + debug: 4.4.3 + eslint: 8.57.1 + eslint-scope: 7.2.2 + eslint-visitor-keys: 3.4.3 + espree: 9.6.1 + esquery: 1.7.0 + lodash: 4.17.23 + semver: 7.7.3 + transitivePeerDependencies: + - supports-color + + vue-router@4.6.4(vue@3.5.27(typescript@5.9.3)): + dependencies: + '@vue/devtools-api': 6.6.4 + vue: 3.5.27(typescript@5.9.3) + + vue-template-compiler@2.7.16: + dependencies: + de-indent: 1.0.2 + he: 1.2.0 + + vue-tsc@1.8.27(typescript@5.9.3): + dependencies: + '@volar/typescript': 1.11.1 + '@vue/language-core': 1.8.27(typescript@5.9.3) + semver: 7.7.3 + typescript: 5.9.3 + + vue@3.5.27(typescript@5.9.3): + dependencies: + '@vue/compiler-dom': 3.5.27 + '@vue/compiler-sfc': 3.5.27 + '@vue/runtime-dom': 3.5.27 + '@vue/server-renderer': 3.5.27(vue@3.5.27(typescript@5.9.3)) + '@vue/shared': 3.5.27 + optionalDependencies: + typescript: 5.9.3 + + which@2.0.2: + dependencies: + isexe: 2.0.0 + + word-wrap@1.2.5: {} + + wrappy@1.0.2: {} + + xml-name-validator@4.0.0: {} + + yocto-queue@0.1.0: {} diff --git a/frontend/src/api/auth.ts b/frontend/src/api/auth.ts index 1de877e..937f9fb 100644 --- a/frontend/src/api/auth.ts +++ b/frontend/src/api/auth.ts @@ -15,3 +15,13 @@ export const getUserInfo = () => { export const logout = () => { return http.post('/auth/logout') } + +// 修改密码 +export const changePassword = (data: { oldPassword: string; newPassword: string }) => { + return http.post('/auth/change-password', data) +} + +// 重置密码(管理员功能) +export const resetPassword = (data: { userId: number; newPassword: string }) => { + return http.post('/auth/reset-password', data) +} diff --git a/frontend/src/api/dashboard.ts b/frontend/src/api/dashboard.ts new file mode 100644 index 0000000..de6689a --- /dev/null +++ b/frontend/src/api/dashboard.ts @@ -0,0 +1,18 @@ +import request from '@/utils/request' + +export interface DashboardStatistics { + customerCount: number + reportCount: number + pendingCount: number + dealerCount: number +} + +/** + * 获取首页统计数据 + */ +export function getStatistics() { + return request({ + url: '/dashboard/statistics', + method: 'get' + }) +} diff --git a/frontend/src/api/school.ts b/frontend/src/api/school.ts new file mode 100644 index 0000000..1f9f0d5 --- /dev/null +++ b/frontend/src/api/school.ts @@ -0,0 +1,45 @@ +import { http } from '@/utils/request' + +// 学校接口类型定义 +export interface School { + id?: number + schoolCode: string + schoolName: string + location?: string + createdAt?: string + updatedAt?: string +} + +// 根据名称搜索学校(用于自动完成) +export const searchSchoolByName = (keyword: string) => { + return http.get('/school/search', { params: { keyword } }) +} + +// 查询所有学校 +export const getAllSchools = () => { + return http.get('/school/list') +} + +// 创建学校 +export const createSchool = (data: Omit) => { + return http.post('/school', data) +} + +// 批量导入学校 +export const batchImportSchools = (data: School[]) => { + return http.post('/school/batch', data) +} + +// 从Excel文件导入学校数据 +export const importSchoolsFromExcel = (file: File) => { + const formData = new FormData() + formData.append('file', file) + return http.post('/school/import', formData, { + headers: { 'Content-Type': 'multipart/form-data' } + }) +} + +// 从项目docs目录导入学校数据 +export const importSchoolsFromDocs = () => { + return http.post('/school/import-from-docs') +} diff --git a/frontend/src/api/system.ts b/frontend/src/api/system.ts new file mode 100644 index 0000000..b0f8b92 --- /dev/null +++ b/frontend/src/api/system.ts @@ -0,0 +1,44 @@ +import request from '@/utils/request' +import type { SystemConfig } from '@/types' + +/** + * 获取所有系统配置(管理员) + */ +export function getAllConfigs() { + return request({ + url: '/system/config', + method: 'get' + }) +} + +/** + * 获取指定配置值 + */ +export function getConfigValue(configKey: string) { + return request({ + url: `/system/config/value/${configKey}`, + method: 'get' + }) +} + +/** + * 更新配置 + */ +export function updateConfig(configKey: string, configValue: string) { + return request({ + url: '/system/config', + method: 'put', + data: { configKey, configValue } + }) +} + +/** + * 批量更新配置 + */ +export function batchUpdateConfigs(configs: Record) { + return request({ + url: '/system/config/batch', + method: 'put', + data: configs + }) +} diff --git a/frontend/src/router/index.ts b/frontend/src/router/index.ts index 88537e8..c9b9e4e 100644 --- a/frontend/src/router/index.ts +++ b/frontend/src/router/index.ts @@ -37,6 +37,12 @@ const routes: RouteRecordRaw[] = [ name: 'Dealer', component: () => import('@/views/Dealer.vue'), meta: { title: '经销商管理', requiresAdmin: true } + }, + { + path: 'system-config', + name: 'SystemConfig', + component: () => import('@/views/SystemConfig.vue'), + meta: { title: '系统配置', requiresAdmin: true } } ] } diff --git a/frontend/src/types/index.ts b/frontend/src/types/index.ts index c8be8c7..760fb6d 100644 --- a/frontend/src/types/index.ts +++ b/frontend/src/types/index.ts @@ -27,6 +27,9 @@ export interface Customer { industry?: string status: number statusDesc: string + currentDealerId?: number + currentDealerName?: string + protectEndDate?: string createdAt: string updatedAt: string } @@ -47,6 +50,7 @@ export interface Dealer { contactPhone: string email?: string status: number + userId: number // 关联的用户ID,用于重置密码 createdAt: string updatedAt: string } @@ -99,3 +103,16 @@ export interface DictItem { label: string value: string | number } + +// 系统配置相关类型 +export interface SystemConfig { + id: number + configKey: string + configValue: string + configLabel: string + configType: 'string' | 'integer' | 'boolean' + description?: string + isEditable: number + createdAt: string + updatedAt: string +} diff --git a/frontend/src/utils/crypto.ts b/frontend/src/utils/crypto.ts new file mode 100644 index 0000000..ae92651 --- /dev/null +++ b/frontend/src/utils/crypto.ts @@ -0,0 +1,61 @@ +/** + * 密码加密工具 + * 使用 Web Crypto API 进行 SHA-256 哈希 + */ + +/** + * 将字符串转换为 ArrayBuffer + */ +function stringToArrayBuffer(str: string): ArrayBuffer { + const encoder = new TextEncoder() + return encoder.encode(str).buffer +} + +/** + * 将 ArrayBuffer 转换为十六进制字符串 + */ +function arrayBufferToHex(buffer: ArrayBuffer): string { + const bytes = new Uint8Array(buffer) + return Array.from(bytes) + .map(b => b.toString(16).padStart(2, '0')) + .join('') +} + +/** + * 使用 SHA-256 算法哈希密码 + * @param password 明文密码 + * @returns 哈希后的十六进制字符串 + */ +export async function hashPassword(password: string): Promise { + if (!password) return '' + + try { + // 使用 Web Crypto API 进行 SHA-256 哈希 + const data = stringToArrayBuffer(password) + const hashBuffer = await crypto.subtle.digest('SHA-256', data) + return arrayBufferToHex(hashBuffer) + } catch (error) { + console.error('密码哈希失败:', error) + throw new Error('密码加密失败') + } +} + +/** + * 简单的加盐哈希(可选,用于增强安全性) + * @param password 明文密码 + * @param salt 盐值 + * @returns 哈希后的十六进制字符串 + */ +export async function hashPasswordWithSalt(password: string, salt: string): Promise { + if (!password) return '' + + try { + const saltedPassword = password + salt + const data = stringToArrayBuffer(saltedPassword) + const hashBuffer = await crypto.subtle.digest('SHA-256', data) + return arrayBufferToHex(hashBuffer) + } catch (error) { + console.error('密码哈希失败:', error) + throw new Error('密码加密失败') + } +} diff --git a/frontend/src/utils/password.ts b/frontend/src/utils/password.ts new file mode 100644 index 0000000..ad6a924 --- /dev/null +++ b/frontend/src/utils/password.ts @@ -0,0 +1,70 @@ +import * as bcrypt from 'bcryptjs' + +/** + * 密码加密工具 + * 注意:BCrypt 每次加密相同密码会产生不同的哈希值(因为有随机盐) + * 这是正常的行为,后端使用 BCrypt.matches() 方法来验证密码 + */ + +/** + * 生成密码的 BCrypt 哈希值(用于注册或修改密码) + * @param password 原始密码 + * @returns BCrypt 哈希值 + */ +export function hashPassword(password: string): string { + const salt = bcrypt.genSaltSync(10) + return bcrypt.hashSync(password, salt) +} + +/** + * 验证明文密码是否匹配 BCrypt 哈希值(用于前端预验证) + * 注意:这只是辅助验证,真正的验证应该在后端进行 + * @param password 原始密码 + * @param hash BCrypt 哈希值 + * @returns 是否匹配 + */ +export function verifyPassword(password: string, hash: string): boolean { + return bcrypt.compareSync(password, hash) +} + +/** + * 前端登录时的密码处理 + * 说明: + * 1. 方案一(推荐):前端发送明文密码,后端使用 BCrypt 验证 + * 2. 方案二:前端对密码进行简单哈希(如 MD5/SHA256)传输,后端再验证 + * + * 注意:不建议在前端使用 BCrypt 加密后传输,因为: + * - BCrypt 每次加密相同密码会生成不同哈希值 + * - 后端收到哈希值后无法使用 BCrypt.matches() 验证 + * - 这需要修改后端验证逻辑,降低安全性 + */ + +/** + * 方案一:直接返回明文密码(推荐,通过 HTTPS 传输) + */ +export function preparePasswordForLogin(password: string): string { + return password // 明文传输,后端 BCrypt 验证 +} + +/** + * 方案二:使用固定盐值的哈希(可选,用于额外的一层保护) + * 注意:这不是 BCrypt,而是简单的 SHA-256 + */ +export async function hashPasswordForLogin(password: string): Promise { + // 使用 Web Crypto API 进行 SHA-256 哈希 + const encoder = new TextEncoder() + const data = encoder.encode(password) + const hashBuffer = await crypto.subtle.digest('SHA-256', data) + const hashArray = Array.from(new Uint8Array(hashBuffer)) + const hashHex = hashArray.map(b => b.toString(16).padStart(2, '0')).join('') + return hashHex +} + +/** + * 推荐的登录密码处理方式 + * 直接返回明文密码,让后端使用 BCrypt 验证 + * 这是最安全和标准的方式 + */ +export function getLoginPassword(password: string): string { + return password +} diff --git a/frontend/src/views/Customer.vue b/frontend/src/views/Customer.vue index 80c046e..82b2599 100644 --- a/frontend/src/views/Customer.vue +++ b/frontend/src/views/Customer.vue @@ -4,10 +4,15 @@ @@ -60,6 +65,16 @@ 已失效 + + + + + + - + @@ -69,8 +70,8 @@ - - + + @@ -87,12 +88,57 @@ 禁用 + + +
+ 长度6-20位,不填则默认密码为 123456 +
+
+ + + + + + + + + + + + + + + + @@ -100,13 +146,17 @@ import { ref, reactive, onMounted, computed } from 'vue' import { ElMessage, ElMessageBox, type FormInstance, type FormRules } from 'element-plus' import { getDealerList, createDealer, updateDealer, deleteDealer } from '@/api/dealer' +import { resetPassword } from '@/api/auth' +import { hashPassword } from '@/utils/crypto' import type { Dealer } from '@/types' const loading = ref(false) const tableData = ref([]) const dialogVisible = ref(false) +const resetPasswordDialogVisible = ref(false) const dialogTitle = computed(() => (formData.id ? '编辑经销商' : '新增经销商')) const formRef = ref() +const resetPasswordFormRef = ref() const queryForm = reactive({ name: '', @@ -114,20 +164,62 @@ const queryForm = reactive({ status: undefined as number | undefined }) -const formData = reactive & { id?: number }>({ +const formData = reactive & { id?: number; password?: string }>({ name: '', code: '', contactPerson: '', contactPhone: '', email: '', - status: 1 + status: 1, + password: '' }) const rules: FormRules = { name: [{ required: true, message: '请输入经销商名称', trigger: 'blur' }], - code: [{ required: true, message: '请输入经销商编码', trigger: 'blur' }], + code: [{ required: true, message: '请输入经销商账号', trigger: 'blur' }], contactPerson: [{ required: true, message: '请输入联系人', trigger: 'blur' }], - contactPhone: [{ required: true, message: '请输入联系电话', trigger: 'blur' }] + contactPhone: [{ required: true, message: '请输入联系电话', trigger: 'blur' }], + password: [ + { + validator: (rule, value, callback) => { + // 密码可选,如果填写则校验长度 + if (value && (value.length < 6 || value.length > 20)) { + callback(new Error('密码长度必须在6-20位之间')) + } else { + callback() + } + }, + trigger: 'blur' + } + ] +} + +// 重置密码表单 +const resetPasswordForm = reactive({ + userId: 0, + dealerName: '', + newPassword: '', + confirmPassword: '' +}) + +const resetPasswordRules: FormRules = { + newPassword: [ + { required: true, message: '请输入新密码', trigger: 'blur' }, + { min: 6, max: 20, message: '新密码长度必须在6-20位之间', trigger: 'blur' } + ], + confirmPassword: [ + { required: true, message: '请再次输入新密码', trigger: 'blur' }, + { + validator: (rule, value, callback) => { + if (value !== resetPasswordForm.newPassword) { + callback(new Error('两次输入的密码不一致')) + } else { + callback() + } + }, + trigger: 'blur' + } + ] } // 查询数据 @@ -170,7 +262,15 @@ const handleEdit = (row: Dealer) => { // 删除按钮 const handleDelete = async (row: Dealer) => { try { - await ElMessageBox.confirm('确定要删除该经销商吗?', '提示', { type: 'warning' }) + await ElMessageBox.confirm( + '确定要删除该经销商吗?', + '提示', + { + confirmButtonText: '确定', + cancelButtonText: '取消', + type: 'warning' + } + ) await deleteDealer(row.id) ElMessage.success('删除成功') fetchData() @@ -201,6 +301,46 @@ const handleSubmit = async () => { }) } +// 重置密码按钮 +const handleResetPassword = (row: Dealer) => { + resetPasswordForm.userId = row.userId + resetPasswordForm.dealerName = row.name + resetPasswordDialogVisible.value = true +} + +// 提交重置密码 +const handleResetPasswordSubmit = async () => { + if (!resetPasswordFormRef.value) return + await resetPasswordFormRef.value.validate(async (valid) => { + if (valid) { + try { + // 对密码进行 SHA-256 哈希后再传输 + const hashedPassword = await hashPassword(resetPasswordForm.newPassword) + + await resetPassword({ + userId: resetPasswordForm.userId, + newPassword: hashedPassword + }) + ElMessage.success('密码重置成功') + resetPasswordDialogVisible.value = false + } catch (error) { + console.error('重置密码失败', error) + } + } + }) +} + +// 重置密码对话框关闭 +const handleResetPasswordDialogClose = () => { + resetPasswordFormRef.value?.resetFields() + Object.assign(resetPasswordForm, { + userId: 0, + dealerName: '', + newPassword: '', + confirmPassword: '' + }) +} + // 对话框关闭 const handleDialogClose = () => { formRef.value?.resetFields() @@ -210,7 +350,8 @@ const handleDialogClose = () => { contactPerson: '', contactPhone: '', email: '', - status: 1 + status: 1, + password: '' }) delete formData.id } diff --git a/frontend/src/views/Layout.vue b/frontend/src/views/Layout.vue index 8e78301..af5d65e 100644 --- a/frontend/src/views/Layout.vue +++ b/frontend/src/views/Layout.vue @@ -25,6 +25,10 @@ 经销商管理 + + + 系统配置 + @@ -47,6 +51,10 @@ diff --git a/frontend/src/views/SystemConfig.vue b/frontend/src/views/SystemConfig.vue new file mode 100644 index 0000000..a963728 --- /dev/null +++ b/frontend/src/views/SystemConfig.vue @@ -0,0 +1,146 @@ + + + + + diff --git a/tmpclaude-62fc-cwd b/tmpclaude-62fc-cwd new file mode 100644 index 0000000..d06e22c --- /dev/null +++ b/tmpclaude-62fc-cwd @@ -0,0 +1 @@ +/e/boyun-workspace/by-crm