From 57679a4d0b75ac357ac5f5390729af2eb786ae6f Mon Sep 17 00:00:00 2001 From: dichgrem Date: Mon, 22 Dec 2025 11:16:50 +0800 Subject: [PATCH] feat:student-vol --- student-vol/.gitignore | 24 + student-vol/.vscode/extensions.json | 3 + student-vol/README.md | 5 + student-vol/index.html | 13 + student-vol/mock/actDetails.json | 18 + student-vol/mock/actList.json | 40 + student-vol/mock/durationList.json | 23 + student-vol/mock/myApplyList.json | 32 + student-vol/mock/publishers.json | 19 + student-vol/mock/rank.json | 37 + student-vol/mock/recordDetails.json | 17 + student-vol/mock/scoreOverview.json | 8 + student-vol/mock/serviceList.json | 34 + student-vol/mock/success.json | 4 + student-vol/mock/userInfo.json | 14 + student-vol/mock/userScore.json | 8 + student-vol/mock/yearList.json | 19 + student-vol/mock/yearScore.json | 8 + student-vol/package-lock.json | 1634 +++++++++++++++++ student-vol/package.json | 22 + student-vol/public/imgs/actImg.jpeg | Bin 0 -> 23287 bytes student-vol/public/imgs/avatar.png | Bin 0 -> 7546 bytes student-vol/public/vite.svg | 1 + student-vol/src/App.vue | 27 + student-vol/src/assets/p1.png | Bin 0 -> 4752 bytes student-vol/src/assets/p2.png | Bin 0 -> 4124 bytes student-vol/src/assets/p3.png | Bin 0 -> 4714 bytes student-vol/src/assets/p5.png | Bin 0 -> 4651 bytes student-vol/src/assets/vue.svg | 1 + student-vol/src/components/Home/ActItem.vue | 90 + student-vol/src/components/Home/Navs.vue | 60 + student-vol/src/components/Home/User.vue | 50 + .../components/ServiceRecords/Overview.vue | 86 + .../components/ServiceRecords/RecordItem.vue | 93 + .../src/components/ServiceRecords/User.vue | 98 + student-vol/src/main.js | 32 + student-vol/src/router/index.js | 65 + student-vol/src/style.css | 79 + student-vol/src/views/ActDetails.vue | 165 ++ student-vol/src/views/HomeView.vue | 127 ++ student-vol/src/views/LoveActs.vue | 139 ++ student-vol/src/views/LoveReport.vue | 203 ++ student-vol/src/views/MyApply.vue | 130 ++ student-vol/src/views/ServiceDetail.vue | 152 ++ student-vol/src/views/ServiceRecords.vue | 126 ++ student-vol/src/views/UploadService.vue | 239 +++ student-vol/src/views/UserCenter.vue | 202 ++ student-vol/vite.config.js | 148 ++ 48 files changed, 4295 insertions(+) create mode 100644 student-vol/.gitignore create mode 100644 student-vol/.vscode/extensions.json create mode 100644 student-vol/README.md create mode 100644 student-vol/index.html create mode 100644 student-vol/mock/actDetails.json create mode 100644 student-vol/mock/actList.json create mode 100644 student-vol/mock/durationList.json create mode 100644 student-vol/mock/myApplyList.json create mode 100644 student-vol/mock/publishers.json create mode 100644 student-vol/mock/rank.json create mode 100644 student-vol/mock/recordDetails.json create mode 100644 student-vol/mock/scoreOverview.json create mode 100644 student-vol/mock/serviceList.json create mode 100644 student-vol/mock/success.json create mode 100644 student-vol/mock/userInfo.json create mode 100644 student-vol/mock/userScore.json create mode 100644 student-vol/mock/yearList.json create mode 100644 student-vol/mock/yearScore.json create mode 100644 student-vol/package-lock.json create mode 100644 student-vol/package.json create mode 100644 student-vol/public/imgs/actImg.jpeg create mode 100644 student-vol/public/imgs/avatar.png create mode 100644 student-vol/public/vite.svg create mode 100644 student-vol/src/App.vue create mode 100644 student-vol/src/assets/p1.png create mode 100644 student-vol/src/assets/p2.png create mode 100644 student-vol/src/assets/p3.png create mode 100644 student-vol/src/assets/p5.png create mode 100644 student-vol/src/assets/vue.svg create mode 100644 student-vol/src/components/Home/ActItem.vue create mode 100644 student-vol/src/components/Home/Navs.vue create mode 100644 student-vol/src/components/Home/User.vue create mode 100644 student-vol/src/components/ServiceRecords/Overview.vue create mode 100644 student-vol/src/components/ServiceRecords/RecordItem.vue create mode 100644 student-vol/src/components/ServiceRecords/User.vue create mode 100644 student-vol/src/main.js create mode 100644 student-vol/src/router/index.js create mode 100644 student-vol/src/style.css create mode 100644 student-vol/src/views/ActDetails.vue create mode 100644 student-vol/src/views/HomeView.vue create mode 100644 student-vol/src/views/LoveActs.vue create mode 100644 student-vol/src/views/LoveReport.vue create mode 100644 student-vol/src/views/MyApply.vue create mode 100644 student-vol/src/views/ServiceDetail.vue create mode 100644 student-vol/src/views/ServiceRecords.vue create mode 100644 student-vol/src/views/UploadService.vue create mode 100644 student-vol/src/views/UserCenter.vue create mode 100644 student-vol/vite.config.js diff --git a/student-vol/.gitignore b/student-vol/.gitignore new file mode 100644 index 0000000..a547bf3 --- /dev/null +++ b/student-vol/.gitignore @@ -0,0 +1,24 @@ +# Logs +logs +*.log +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/student-vol/.vscode/extensions.json b/student-vol/.vscode/extensions.json new file mode 100644 index 0000000..a7cea0b --- /dev/null +++ b/student-vol/.vscode/extensions.json @@ -0,0 +1,3 @@ +{ + "recommendations": ["Vue.volar"] +} diff --git a/student-vol/README.md b/student-vol/README.md new file mode 100644 index 0000000..1511959 --- /dev/null +++ b/student-vol/README.md @@ -0,0 +1,5 @@ +# Vue 3 + Vite + +This template should help get you started developing with Vue 3 in Vite. The template uses Vue 3 ` + + diff --git a/student-vol/mock/actDetails.json b/student-vol/mock/actDetails.json new file mode 100644 index 0000000..8122c67 --- /dev/null +++ b/student-vol/mock/actDetails.json @@ -0,0 +1,18 @@ +{ + "error": 0, + "data": { + "details": { + "id": 1, + "title": "运动会志愿者招募", + "startTime": 1671494400000, + "endTime": 1671697800000, + "palce": "福州大学至诚学院", + "content": "为确保运动会顺利进行,现招募志愿者协助现场秩序维护、运动员服务等工作。", + "publisher": "福州大学至诚学院团委", + "hour": 4, + "total": 50, + "canApply": true, + "applyStatus": 0 + } + } +} diff --git a/student-vol/mock/actList.json b/student-vol/mock/actList.json new file mode 100644 index 0000000..98e7440 --- /dev/null +++ b/student-vol/mock/actList.json @@ -0,0 +1,40 @@ +{ + "error": 0, + "data": { + "current": 1, + "pageSize": 10, + "pageCount": 1, + "list": [ + { + "id": 1, + "title": "运动会志愿者招募", + "startTime": 1671494400000, + "endTime": 1671697800000, + "palce": "福州大学至诚学院", + "isYourSchool": true, + "canApply": true, + "actPic": "./imgs/actImg.jpeg" + }, + { + "id": 2, + "title": "图书馆志愿服务", + "startTime": 1670284800000, + "endTime": 1670371200000, + "palce": "福州市图书馆", + "isYourSchool": false, + "canApply": false, + "actPic": "./imgs/actImg.jpeg" + }, + { + "id": 3, + "title": "社区敬老院服务", + "startTime": 1672012800000, + "endTime": 1672099200000, + "palce": "福州市养老院", + "isYourSchool": false, + "canApply": true, + "actPic": "./imgs/actImg.jpeg" + } + ] + } +} diff --git a/student-vol/mock/durationList.json b/student-vol/mock/durationList.json new file mode 100644 index 0000000..9ac17b6 --- /dev/null +++ b/student-vol/mock/durationList.json @@ -0,0 +1,23 @@ +{ + "error": 0, + "data": { + "list": [ + { + "value": 2, + "text": "2小时" + }, + { + "value": 4, + "text": "4小时" + }, + { + "value": 6, + "text": "6小时" + }, + { + "value": 8, + "text": "8小时" + } + ] + } +} diff --git a/student-vol/mock/myApplyList.json b/student-vol/mock/myApplyList.json new file mode 100644 index 0000000..ea9aced --- /dev/null +++ b/student-vol/mock/myApplyList.json @@ -0,0 +1,32 @@ +{ + "error": 0, + "data": { + "current": 1, + "pageSize": 10, + "pageCount": 1, + "list": [ + { + "id": 1, + "title": "运动会志愿者招募", + "startTime": 1671494400000, + "endTime": 1671697800000, + "palce": "福州大学至诚学院", + "isYourSchool": true, + "canApply": true, + "actPic": "./imgs/actImg.jpeg", + "applyStatus": 1 + }, + { + "id": 2, + "title": "图书馆志愿服务", + "startTime": 1670284800000, + "endTime": 1670371200000, + "palce": "福州市图书馆", + "isYourSchool": false, + "canApply": false, + "actPic": "./imgs/actImg.jpeg", + "applyStatus": 2 + } + ] + } +} diff --git a/student-vol/mock/publishers.json b/student-vol/mock/publishers.json new file mode 100644 index 0000000..6dca8ac --- /dev/null +++ b/student-vol/mock/publishers.json @@ -0,0 +1,19 @@ +{ + "error": 0, + "data": { + "list": [ + { + "value": 1, + "text": "福州大学至诚学院团委" + }, + { + "value": 2, + "text": "福州市志愿者协会" + }, + { + "value": 3, + "text": "鼓楼区社区服务中心" + } + ] + } +} diff --git a/student-vol/mock/rank.json b/student-vol/mock/rank.json new file mode 100644 index 0000000..87ce359 --- /dev/null +++ b/student-vol/mock/rank.json @@ -0,0 +1,37 @@ +{ + "error": 0, + "data": { + "list": [ + { + "id": 1, + "avatar": "./imgs/avatar.png", + "name": "张三", + "score": 256 + }, + { + "id": 2, + "avatar": "./imgs/avatar.png", + "name": "李四", + "score": 238 + }, + { + "id": 3, + "avatar": "./imgs/avatar.png", + "name": "王五", + "score": 215 + }, + { + "id": 4, + "avatar": "./imgs/avatar.png", + "name": "赵六", + "score": 198 + }, + { + "id": 5, + "avatar": "./imgs/avatar.png", + "name": "孙七", + "score": 176 + } + ] + } +} diff --git a/student-vol/mock/recordDetails.json b/student-vol/mock/recordDetails.json new file mode 100644 index 0000000..211f18a --- /dev/null +++ b/student-vol/mock/recordDetails.json @@ -0,0 +1,17 @@ +{ + "error": 0, + "data": { + "details": { + "actTime": 1671494400000, + "place": "福州大学至诚学院", + "content": "参与运动会志愿服务,协助现场秩序维护、运动员服务等工作。", + "imgList": [ + "./imgs/actImg.jpeg", + "./imgs/actImg.jpeg" + ], + "hour": 4, + "uploadTime": 1671580800000, + "status": 1 + } + } +} diff --git a/student-vol/mock/scoreOverview.json b/student-vol/mock/scoreOverview.json new file mode 100644 index 0000000..a50e101 --- /dev/null +++ b/student-vol/mock/scoreOverview.json @@ -0,0 +1,8 @@ +{ + "error": 0, + "data": { + "provinceRank": 156, + "totalScore": 128, + "grandeRank": 8 + } +} diff --git a/student-vol/mock/serviceList.json b/student-vol/mock/serviceList.json new file mode 100644 index 0000000..25e52cc --- /dev/null +++ b/student-vol/mock/serviceList.json @@ -0,0 +1,34 @@ +{ + "error": 0, + "data": { + "current": 1, + "pageSize": 10, + "pageCount": 1, + "list": [ + { + "id": 1, + "pic": "./imgs/actImg.jpeg", + "content": "参与运动会志愿服务,协助现场秩序维护", + "publisher": "福州大学至诚学院", + "time": 1671494400000, + "status": 1 + }, + { + "id": 2, + "pic": "./imgs/actImg.jpeg", + "content": "图书馆整理图书志愿服务", + "publisher": "福州市图书馆", + "time": 1670284800000, + "status": 0 + }, + { + "id": 3, + "pic": "./imgs/actImg.jpeg", + "content": "社区敬老院陪伴老人服务", + "publisher": "鼓楼区养老院", + "time": 1672012800000, + "status": 2 + } + ] + } +} diff --git a/student-vol/mock/success.json b/student-vol/mock/success.json new file mode 100644 index 0000000..7fc61d1 --- /dev/null +++ b/student-vol/mock/success.json @@ -0,0 +1,4 @@ +{ + "error": 0, + "msg": "success" +} diff --git a/student-vol/mock/userInfo.json b/student-vol/mock/userInfo.json new file mode 100644 index 0000000..2b497ad --- /dev/null +++ b/student-vol/mock/userInfo.json @@ -0,0 +1,14 @@ +{ + "error": 0, + "data": { + "avatar": "./imgs/avatar.png", + "name": "李华", + "code": 12343434, + "gender": 0, + "phoneNum": "18787698789", + "school": "福州大学至诚学院", + "profession": "软件工程", + "userType": 0, + "totalScore": 128 + } +} diff --git a/student-vol/mock/userScore.json b/student-vol/mock/userScore.json new file mode 100644 index 0000000..e2d0c47 --- /dev/null +++ b/student-vol/mock/userScore.json @@ -0,0 +1,8 @@ +{ + "error": 0, + "data": { + "avatar": "./imgs/avatar.png", + "name": "李华", + "totalScore": 128 + } +} diff --git a/student-vol/mock/yearList.json b/student-vol/mock/yearList.json new file mode 100644 index 0000000..59e4133 --- /dev/null +++ b/student-vol/mock/yearList.json @@ -0,0 +1,19 @@ +{ + "error": 0, + "data": { + "list": [ + { + "value": 2023, + "text": "2023年" + }, + { + "value": 2024, + "text": "2024年" + }, + { + "value": 2025, + "text": "2025年" + } + ] + } +} diff --git a/student-vol/mock/yearScore.json b/student-vol/mock/yearScore.json new file mode 100644 index 0000000..8469732 --- /dev/null +++ b/student-vol/mock/yearScore.json @@ -0,0 +1,8 @@ +{ + "error": 0, + "data": { + "times": 12, + "duration": 48, + "score": 96 + } +} diff --git a/student-vol/package-lock.json b/student-vol/package-lock.json new file mode 100644 index 0000000..b153142 --- /dev/null +++ b/student-vol/package-lock.json @@ -0,0 +1,1634 @@ +{ + "name": "student-vol", + "version": "0.0.0", + "lockfileVersion": 3, + "requires": true, + "packages": { + "": { + "name": "student-vol", + "version": "0.0.0", + "dependencies": { + "axios": "^1.13.2", + "moment": "^2.30.1", + "vant": "^4.9.22", + "vue": "^3.5.24", + "vue-router": "^4.6.4" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^6.0.1", + "vite": "^7.2.4" + } + }, + "node_modules/@babel/helper-string-parser": { + "version": "7.27.1", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz", + "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.28.5.tgz", + "integrity": "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q==", + "license": "MIT", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/parser": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.5.tgz", + "integrity": "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ==", + "license": "MIT", + "dependencies": { + "@babel/types": "^7.28.5" + }, + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/types": { + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.5.tgz", + "integrity": "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA==", + "license": "MIT", + "dependencies": { + "@babel/helper-string-parser": "^7.27.1", + "@babel/helper-validator-identifier": "^7.28.5" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@esbuild/aix-ppc64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.27.2.tgz", + "integrity": "sha512-GZMB+a0mOMZs4MpDbj8RJp4cw+w1WV5NYD6xzgvzUJ5Ek2jerwfO2eADyI6ExDSUED+1X8aMbegahsJi+8mgpw==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "aix" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.27.2.tgz", + "integrity": "sha512-DVNI8jlPa7Ujbr1yjU2PfUSRtAUZPG9I1RwW4F4xFB1Imiu2on0ADiI/c3td+KmDtVKNbi+nffGDQMfcIMkwIA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.27.2.tgz", + "integrity": "sha512-pvz8ZZ7ot/RBphf8fv60ljmaoydPU12VuXHImtAs0XhLLw+EXBi2BLe3OYSBslR4rryHvweW5gmkKFwTiFy6KA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/android-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.27.2.tgz", + "integrity": "sha512-z8Ank4Byh4TJJOh4wpz8g2vDy75zFL0TlZlkUkEwYXuPSgX8yzep596n6mT7905kA9uHZsf/o2OJZubl2l3M7A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.27.2.tgz", + "integrity": "sha512-davCD2Zc80nzDVRwXTcQP/28fiJbcOwvdolL0sOiOsbwBa72kegmVU0Wrh1MYrbuCL98Omp5dVhQFWRKR2ZAlg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/darwin-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.27.2.tgz", + "integrity": "sha512-ZxtijOmlQCBWGwbVmwOF/UCzuGIbUkqB1faQRf5akQmxRJ1ujusWsb3CVfk/9iZKr2L5SMU5wPBi1UWbvL+VQA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.27.2.tgz", + "integrity": "sha512-lS/9CN+rgqQ9czogxlMcBMGd+l8Q3Nj1MFQwBZJyoEKI50XGxwuzznYdwcav6lpOGv5BqaZXqvBSiB/kJ5op+g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/freebsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.27.2.tgz", + "integrity": "sha512-tAfqtNYb4YgPnJlEFu4c212HYjQWSO/w/h/lQaBK7RbwGIkBOuNKQI9tqWzx7Wtp7bTPaGC6MJvWI608P3wXYA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.27.2.tgz", + "integrity": "sha512-vWfq4GaIMP9AIe4yj1ZUW18RDhx6EPQKjwe7n8BbIecFtCQG4CfHGaHuh7fdfq+y3LIA2vGS/o9ZBGVxIDi9hw==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.27.2.tgz", + "integrity": "sha512-hYxN8pr66NsCCiRFkHUAsxylNOcAQaxSSkHMMjcpx0si13t1LHFphxJZUiGwojB1a/Hd5OiPIqDdXONia6bhTw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ia32": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.27.2.tgz", + "integrity": "sha512-MJt5BRRSScPDwG2hLelYhAAKh9imjHK5+NE/tvnRLbIqUWa+0E9N4WNMjmp/kXXPHZGqPLxggwVhz7QP8CTR8w==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-loong64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.27.2.tgz", + "integrity": "sha512-lugyF1atnAT463aO6KPshVCJK5NgRnU4yb3FUumyVz+cGvZbontBgzeGFO1nF+dPueHD367a2ZXe1NtUkAjOtg==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-mips64el": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.27.2.tgz", + "integrity": "sha512-nlP2I6ArEBewvJ2gjrrkESEZkB5mIoaTswuqNFRv/WYd+ATtUpe9Y09RnJvgvdag7he0OWgEZWhviS1OTOKixw==", + "cpu": [ + "mips64el" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-ppc64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.27.2.tgz", + "integrity": "sha512-C92gnpey7tUQONqg1n6dKVbx3vphKtTHJaNG2Ok9lGwbZil6DrfyecMsp9CrmXGQJmZ7iiVXvvZH6Ml5hL6XdQ==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-riscv64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.27.2.tgz", + "integrity": "sha512-B5BOmojNtUyN8AXlK0QJyvjEZkWwy/FKvakkTDCziX95AowLZKR6aCDhG7LeF7uMCXEJqwa8Bejz5LTPYm8AvA==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-s390x": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.27.2.tgz", + "integrity": "sha512-p4bm9+wsPwup5Z8f4EpfN63qNagQ47Ua2znaqGH6bqLlmJ4bx97Y9JdqxgGZ6Y8xVTixUnEkoKSHcpRlDnNr5w==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/linux-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.27.2.tgz", + "integrity": "sha512-uwp2Tip5aPmH+NRUwTcfLb+W32WXjpFejTIOWZFw/v7/KnpCDKG66u4DLcurQpiYTiYwQ9B7KOeMJvLCu/OvbA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.27.2.tgz", + "integrity": "sha512-Kj6DiBlwXrPsCRDeRvGAUb/LNrBASrfqAIok+xB0LxK8CHqxZ037viF13ugfsIpePH93mX7xfJp97cyDuTZ3cw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/netbsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.27.2.tgz", + "integrity": "sha512-HwGDZ0VLVBY3Y+Nw0JexZy9o/nUAWq9MlV7cahpaXKW6TOzfVno3y3/M8Ga8u8Yr7GldLOov27xiCnqRZf0tCA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "netbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.27.2.tgz", + "integrity": "sha512-DNIHH2BPQ5551A7oSHD0CKbwIA/Ox7+78/AWkbS5QoRzaqlev2uFayfSxq68EkonB+IKjiuxBFoV8ESJy8bOHA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openbsd-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.27.2.tgz", + "integrity": "sha512-/it7w9Nb7+0KFIzjalNJVR5bOzA9Vay+yIPLVHfIQYG/j+j9VTH84aNB8ExGKPU4AzfaEvN9/V4HV+F+vo8OEg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openbsd" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/openharmony-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.27.2.tgz", + "integrity": "sha512-LRBbCmiU51IXfeXk59csuX/aSaToeG7w48nMwA6049Y4J4+VbWALAuXcs+qcD04rHDuSCSRKdmY63sruDS5qag==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/sunos-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.27.2.tgz", + "integrity": "sha512-kMtx1yqJHTmqaqHPAzKCAkDaKsffmXkPHThSfRwZGyuqyIeBvf08KSsYXl+abf5HDAPMJIPnbBfXvP2ZC2TfHg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "sunos" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-arm64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.27.2.tgz", + "integrity": "sha512-Yaf78O/B3Kkh+nKABUF++bvJv5Ijoy9AN1ww904rOXZFLWVc5OLOfL56W+C8F9xn5JQZa3UX6m+IktJnIb1Jjg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-ia32": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.27.2.tgz", + "integrity": "sha512-Iuws0kxo4yusk7sw70Xa2E2imZU5HoixzxfGCdxwBdhiDgt9vX9VUCBhqcwY7/uh//78A1hMkkROMJq9l27oLQ==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@esbuild/win32-x64": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.27.2.tgz", + "integrity": "sha512-sRdU18mcKf7F+YgheI/zGf5alZatMUTKj/jNS6l744f9u3WFu4v7twcUI9vu4mknF4Y9aDlblIie0IM+5xxaqQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ], + "engines": { + "node": ">=18" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.5.5", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", + "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "license": "MIT" + }, + "node_modules/@rolldown/pluginutils": { + "version": "1.0.0-beta.53", + "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.53.tgz", + "integrity": "sha512-vENRlFU4YbrwVqNDZ7fLvy+JR1CRkyr01jhSiDpE1u6py3OMzQfztQU2jxykW3ALNxO4kSlqIDeYyD0Y9RcQeQ==", + "dev": true, + "license": "MIT" + }, + "node_modules/@rollup/rollup-android-arm-eabi": { + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.53.5.tgz", + "integrity": "sha512-iDGS/h7D8t7tvZ1t6+WPK04KD0MwzLZrG0se1hzBjSi5fyxlsiggoJHwh18PCFNn7tG43OWb6pdZ6Y+rMlmyNQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-android-arm64": { + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.53.5.tgz", + "integrity": "sha512-wrSAViWvZHBMMlWk6EJhvg8/rjxzyEhEdgfMMjREHEq11EtJ6IP6yfcCH57YAEca2Oe3FNCE9DSTgU70EIGmVw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "android" + ] + }, + "node_modules/@rollup/rollup-darwin-arm64": { + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.53.5.tgz", + "integrity": "sha512-S87zZPBmRO6u1YXQLwpveZm4JfPpAa6oHBX7/ghSiGH3rz/KDgAu1rKdGutV+WUI6tKDMbaBJomhnT30Y2t4VQ==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-darwin-x64": { + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.53.5.tgz", + "integrity": "sha512-YTbnsAaHo6VrAczISxgpTva8EkfQus0VPEVJCEaboHtZRIb6h6j0BNxRBOwnDciFTZLDPW5r+ZBmhL/+YpTZgA==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@rollup/rollup-freebsd-arm64": { + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.53.5.tgz", + "integrity": "sha512-1T8eY2J8rKJWzaznV7zedfdhD1BqVs1iqILhmHDq/bqCUZsrMt+j8VCTHhP0vdfbHK3e1IQ7VYx3jlKqwlf+vw==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-freebsd-x64": { + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.53.5.tgz", + "integrity": "sha512-sHTiuXyBJApxRn+VFMaw1U+Qsz4kcNlxQ742snICYPrY+DDL8/ZbaC4DVIB7vgZmp3jiDaKA0WpBdP0aqPJoBQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "freebsd" + ] + }, + "node_modules/@rollup/rollup-linux-arm-gnueabihf": { + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.53.5.tgz", + "integrity": "sha512-dV3T9MyAf0w8zPVLVBptVlzaXxka6xg1f16VAQmjg+4KMSTWDvhimI/Y6mp8oHwNrmnmVl9XxJ/w/mO4uIQONA==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm-musleabihf": { + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.53.5.tgz", + "integrity": "sha512-wIGYC1x/hyjP+KAu9+ewDI+fi5XSNiUi9Bvg6KGAh2TsNMA3tSEs+Sh6jJ/r4BV/bx/CyWu2ue9kDnIdRyafcQ==", + "cpu": [ + "arm" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-gnu": { + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.53.5.tgz", + "integrity": "sha512-Y+qVA0D9d0y2FRNiG9oM3Hut/DgODZbU9I8pLLPwAsU0tUKZ49cyV1tzmB/qRbSzGvY8lpgGkJuMyuhH7Ma+Vg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-arm64-musl": { + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.53.5.tgz", + "integrity": "sha512-juaC4bEgJsyFVfqhtGLz8mbopaWD+WeSOYr5E16y+1of6KQjc0BpwZLuxkClqY1i8sco+MdyoXPNiCkQou09+g==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-loong64-gnu": { + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.53.5.tgz", + "integrity": "sha512-rIEC0hZ17A42iXtHX+EPJVL/CakHo+tT7W0pbzdAGuWOt2jxDFh7A/lRhsNHBcqL4T36+UiAgwO8pbmn3dE8wA==", + "cpu": [ + "loong64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-ppc64-gnu": { + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.53.5.tgz", + "integrity": "sha512-T7l409NhUE552RcAOcmJHj3xyZ2h7vMWzcwQI0hvn5tqHh3oSoclf9WgTl+0QqffWFG8MEVZZP1/OBglKZx52Q==", + "cpu": [ + "ppc64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-gnu": { + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.53.5.tgz", + "integrity": "sha512-7OK5/GhxbnrMcxIFoYfhV/TkknarkYC1hqUw1wU2xUN3TVRLNT5FmBv4KkheSG2xZ6IEbRAhTooTV2+R5Tk0lQ==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-riscv64-musl": { + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.53.5.tgz", + "integrity": "sha512-GwuDBE/PsXaTa76lO5eLJTyr2k8QkPipAyOrs4V/KJufHCZBJ495VCGJol35grx9xryk4V+2zd3Ri+3v7NPh+w==", + "cpu": [ + "riscv64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-s390x-gnu": { + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.53.5.tgz", + "integrity": "sha512-IAE1Ziyr1qNfnmiQLHBURAD+eh/zH1pIeJjeShleII7Vj8kyEm2PF77o+lf3WTHDpNJcu4IXJxNO0Zluro8bOw==", + "cpu": [ + "s390x" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-gnu": { + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.53.5.tgz", + "integrity": "sha512-Pg6E+oP7GvZ4XwgRJBuSXZjcqpIW3yCBhK4BcsANvb47qMvAbCjR6E+1a/U2WXz1JJxp9/4Dno3/iSJLcm5auw==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-linux-x64-musl": { + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.53.5.tgz", + "integrity": "sha512-txGtluxDKTxaMDzUduGP0wdfng24y1rygUMnmlUJ88fzCCULCLn7oE5kb2+tRB+MWq1QDZT6ObT5RrR8HFRKqg==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@rollup/rollup-openharmony-arm64": { + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.53.5.tgz", + "integrity": "sha512-3DFiLPnTxiOQV993fMc+KO8zXHTcIjgaInrqlG8zDp1TlhYl6WgrOHuJkJQ6M8zHEcntSJsUp1XFZSY8C1DYbg==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "openharmony" + ] + }, + "node_modules/@rollup/rollup-win32-arm64-msvc": { + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.53.5.tgz", + "integrity": "sha512-nggc/wPpNTgjGg75hu+Q/3i32R00Lq1B6N1DO7MCU340MRKL3WZJMjA9U4K4gzy3dkZPXm9E1Nc81FItBVGRlA==", + "cpu": [ + "arm64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-ia32-msvc": { + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.53.5.tgz", + "integrity": "sha512-U/54pTbdQpPLBdEzCT6NBCFAfSZMvmjr0twhnD9f4EIvlm9wy3jjQ38yQj1AGznrNO65EWQMgm/QUjuIVrYF9w==", + "cpu": [ + "ia32" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-gnu": { + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.53.5.tgz", + "integrity": "sha512-2NqKgZSuLH9SXBBV2dWNRCZmocgSOx8OJSdpRaEcRlIfX8YrKxUT6z0F1NpvDVhOsl190UFTRh2F2WDWWCYp3A==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@rollup/rollup-win32-x64-msvc": { + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.53.5.tgz", + "integrity": "sha512-JRpZUhCfhZ4keB5v0fe02gQJy05GqboPOaxvjugW04RLSYYoB/9t2lx2u/tMs/Na/1NXfY8QYjgRljRpN+MjTQ==", + "cpu": [ + "x64" + ], + "dev": true, + "license": "MIT", + "optional": true, + "os": [ + "win32" + ] + }, + "node_modules/@types/estree": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", + "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, + "license": "MIT" + }, + "node_modules/@vant/popperjs": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@vant/popperjs/-/popperjs-1.3.0.tgz", + "integrity": "sha512-hB+czUG+aHtjhaEmCJDuXOep0YTZjdlRR+4MSmIFnkCQIxJaXLQdSsR90XWvAI2yvKUI7TCGqR8pQg2RtvkMHw==", + "license": "MIT" + }, + "node_modules/@vant/use": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/@vant/use/-/use-1.6.0.tgz", + "integrity": "sha512-PHHxeAASgiOpSmMjceweIrv2AxDZIkWXyaczksMoWvKV2YAYEhoizRuk/xFnKF+emUIi46TsQ+rvlm/t2BBCfA==", + "license": "MIT", + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/@vitejs/plugin-vue": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-6.0.3.tgz", + "integrity": "sha512-TlGPkLFLVOY3T7fZrwdvKpjprR3s4fxRln0ORDo1VQ7HHyxJwTlrjKU3kpVWTlaAjIEuCTokmjkZnr8Tpc925w==", + "dev": true, + "license": "MIT", + "dependencies": { + "@rolldown/pluginutils": "1.0.0-beta.53" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "peerDependencies": { + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0", + "vue": "^3.2.25" + } + }, + "node_modules/@vue/compiler-core": { + "version": "3.5.26", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.26.tgz", + "integrity": "sha512-vXyI5GMfuoBCnv5ucIT7jhHKl55Y477yxP6fc4eUswjP8FG3FFVFd41eNDArR+Uk3QKn2Z85NavjaxLxOC19/w==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.5", + "@vue/shared": "3.5.26", + "entities": "^7.0.0", + "estree-walker": "^2.0.2", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-dom": { + "version": "3.5.26", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.26.tgz", + "integrity": "sha512-y1Tcd3eXs834QjswshSilCBnKGeQjQXB6PqFn/1nxcQw4pmG42G8lwz+FZPAZAby6gZeHSt/8LMPfZ4Rb+Bd/A==", + "license": "MIT", + "dependencies": { + "@vue/compiler-core": "3.5.26", + "@vue/shared": "3.5.26" + } + }, + "node_modules/@vue/compiler-sfc": { + "version": "3.5.26", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.26.tgz", + "integrity": "sha512-egp69qDTSEZcf4bGOSsprUr4xI73wfrY5oRs6GSgXFTiHrWj4Y3X5Ydtip9QMqiCMCPVwLglB9GBxXtTadJ3mA==", + "license": "MIT", + "dependencies": { + "@babel/parser": "^7.28.5", + "@vue/compiler-core": "3.5.26", + "@vue/compiler-dom": "3.5.26", + "@vue/compiler-ssr": "3.5.26", + "@vue/shared": "3.5.26", + "estree-walker": "^2.0.2", + "magic-string": "^0.30.21", + "postcss": "^8.5.6", + "source-map-js": "^1.2.1" + } + }, + "node_modules/@vue/compiler-ssr": { + "version": "3.5.26", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.26.tgz", + "integrity": "sha512-lZT9/Y0nSIRUPVvapFJEVDbEXruZh2IYHMk2zTtEgJSlP5gVOqeWXH54xDKAaFS4rTnDeDBQUYDtxKyoW9FwDw==", + "license": "MIT", + "dependencies": { + "@vue/compiler-dom": "3.5.26", + "@vue/shared": "3.5.26" + } + }, + "node_modules/@vue/devtools-api": { + "version": "6.6.4", + "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-6.6.4.tgz", + "integrity": "sha512-sGhTPMuXqZ1rVOk32RylztWkfXTRhuS7vgAKv0zjqk8gbsHkJ7xfFf+jbySxt7tWObEJwyKaHMikV/WGDiQm8g==", + "license": "MIT" + }, + "node_modules/@vue/reactivity": { + "version": "3.5.26", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.26.tgz", + "integrity": "sha512-9EnYB1/DIiUYYnzlnUBgwU32NNvLp/nhxLXeWRhHUEeWNTn1ECxX8aGO7RTXeX6PPcxe3LLuNBFoJbV4QZ+CFQ==", + "license": "MIT", + "dependencies": { + "@vue/shared": "3.5.26" + } + }, + "node_modules/@vue/runtime-core": { + "version": "3.5.26", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.26.tgz", + "integrity": "sha512-xJWM9KH1kd201w5DvMDOwDHYhrdPTrAatn56oB/LRG4plEQeZRQLw0Bpwih9KYoqmzaxF0OKSn6swzYi84e1/Q==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.26", + "@vue/shared": "3.5.26" + } + }, + "node_modules/@vue/runtime-dom": { + "version": "3.5.26", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.26.tgz", + "integrity": "sha512-XLLd/+4sPC2ZkN/6+V4O4gjJu6kSDbHAChvsyWgm1oGbdSO3efvGYnm25yCjtFm/K7rrSDvSfPDgN1pHgS4VNQ==", + "license": "MIT", + "dependencies": { + "@vue/reactivity": "3.5.26", + "@vue/runtime-core": "3.5.26", + "@vue/shared": "3.5.26", + "csstype": "^3.2.3" + } + }, + "node_modules/@vue/server-renderer": { + "version": "3.5.26", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.26.tgz", + "integrity": "sha512-TYKLXmrwWKSodyVuO1WAubucd+1XlLg4set0YoV+Hu8Lo79mp/YMwWV5mC5FgtsDxX3qo1ONrxFaTP1OQgy1uA==", + "license": "MIT", + "dependencies": { + "@vue/compiler-ssr": "3.5.26", + "@vue/shared": "3.5.26" + }, + "peerDependencies": { + "vue": "3.5.26" + } + }, + "node_modules/@vue/shared": { + "version": "3.5.26", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.26.tgz", + "integrity": "sha512-7Z6/y3uFI5PRoKeorTOSXKcDj0MSasfNNltcslbFrPpcw6aXRUALq4IfJlaTRspiWIUOEZbrpM+iQGmCOiWe4A==", + "license": "MIT" + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==", + "license": "MIT" + }, + "node_modules/axios": { + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.2.tgz", + "integrity": "sha512-VPk9ebNqPcy5lRGuSlKx752IlDatOjT9paPlm8A7yOuW2Fbvp4X3JznJtT4f0GzGLLiWE9W8onz51SqLYwzGaA==", + "license": "MIT", + "dependencies": { + "follow-redirects": "^1.15.6", + "form-data": "^4.0.4", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/call-bind-apply-helpers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz", + "integrity": "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "license": "MIT", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "license": "MIT" + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "license": "MIT", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/dunder-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/dunder-proto/-/dunder-proto-1.0.1.tgz", + "integrity": "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.1", + "es-errors": "^1.3.0", + "gopd": "^1.2.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/entities": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-7.0.0.tgz", + "integrity": "sha512-FDWG5cmEYf2Z00IkYRhbFrwIwvdFKH07uV8dvNy0omp/Qb1xcyCWp2UDtcwJF4QZZvk0sLudP6/hAu42TaqVhQ==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/es-define-property": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.1.tgz", + "integrity": "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-object-atoms": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-object-atoms/-/es-object-atoms-1.1.1.tgz", + "integrity": "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz", + "integrity": "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==", + "license": "MIT", + "dependencies": { + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.6", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/esbuild": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.27.2.tgz", + "integrity": "sha512-HyNQImnsOC7X9PMNaCIeAm4ISCQXs5a5YasTXVliKv4uuBo1dKrG0A+uQS8M5eXjVMnLg3WgXaKvprHlFJQffw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "bin": { + "esbuild": "bin/esbuild" + }, + "engines": { + "node": ">=18" + }, + "optionalDependencies": { + "@esbuild/aix-ppc64": "0.27.2", + "@esbuild/android-arm": "0.27.2", + "@esbuild/android-arm64": "0.27.2", + "@esbuild/android-x64": "0.27.2", + "@esbuild/darwin-arm64": "0.27.2", + "@esbuild/darwin-x64": "0.27.2", + "@esbuild/freebsd-arm64": "0.27.2", + "@esbuild/freebsd-x64": "0.27.2", + "@esbuild/linux-arm": "0.27.2", + "@esbuild/linux-arm64": "0.27.2", + "@esbuild/linux-ia32": "0.27.2", + "@esbuild/linux-loong64": "0.27.2", + "@esbuild/linux-mips64el": "0.27.2", + "@esbuild/linux-ppc64": "0.27.2", + "@esbuild/linux-riscv64": "0.27.2", + "@esbuild/linux-s390x": "0.27.2", + "@esbuild/linux-x64": "0.27.2", + "@esbuild/netbsd-arm64": "0.27.2", + "@esbuild/netbsd-x64": "0.27.2", + "@esbuild/openbsd-arm64": "0.27.2", + "@esbuild/openbsd-x64": "0.27.2", + "@esbuild/openharmony-arm64": "0.27.2", + "@esbuild/sunos-x64": "0.27.2", + "@esbuild/win32-arm64": "0.27.2", + "@esbuild/win32-ia32": "0.27.2", + "@esbuild/win32-x64": "0.27.2" + } + }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "license": "MIT" + }, + "node_modules/fdir": { + "version": "6.5.0", + "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", + "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "picomatch": "^3 || ^4" + }, + "peerDependenciesMeta": { + "picomatch": { + "optional": true + } + } + }, + "node_modules/follow-redirects": { + "version": "1.15.11", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.11.tgz", + "integrity": "sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "license": "MIT", + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.5.tgz", + "integrity": "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w==", + "license": "MIT", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "es-set-tostringtag": "^2.1.0", + "hasown": "^2.0.2", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fsevents": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, + "hasInstallScript": true, + "license": "MIT", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "license": "MIT", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-intrinsic": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.3.0.tgz", + "integrity": "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==", + "license": "MIT", + "dependencies": { + "call-bind-apply-helpers": "^1.0.2", + "es-define-property": "^1.0.1", + "es-errors": "^1.3.0", + "es-object-atoms": "^1.1.1", + "function-bind": "^1.1.2", + "get-proto": "^1.0.1", + "gopd": "^1.2.0", + "has-symbols": "^1.1.0", + "hasown": "^2.0.2", + "math-intrinsics": "^1.1.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/get-proto": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/get-proto/-/get-proto-1.0.1.tgz", + "integrity": "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==", + "license": "MIT", + "dependencies": { + "dunder-proto": "^1.0.1", + "es-object-atoms": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/gopd": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.2.0.tgz", + "integrity": "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.1.0.tgz", + "integrity": "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", + "license": "MIT", + "dependencies": { + "has-symbols": "^1.0.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hasown": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz", + "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==", + "license": "MIT", + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/magic-string": { + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", + "license": "MIT", + "dependencies": { + "@jridgewell/sourcemap-codec": "^1.5.5" + } + }, + "node_modules/math-intrinsics": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/math-intrinsics/-/math-intrinsics-1.1.0.tgz", + "integrity": "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==", + "license": "MIT", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "license": "MIT", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "license": "MIT", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/moment": { + "version": "2.30.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", + "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", + "license": "MIT", + "engines": { + "node": "*" + } + }, + "node_modules/nanoid": { + "version": "3.3.11", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", + "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/picocolors": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", + "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "license": "ISC" + }, + "node_modules/picomatch": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", + "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, + "license": "MIT", + "peer": true, + "engines": { + "node": ">=12" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/postcss": { + "version": "8.5.6", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", + "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "license": "MIT", + "dependencies": { + "nanoid": "^3.3.11", + "picocolors": "^1.1.1", + "source-map-js": "^1.2.1" + }, + "engines": { + "node": "^10 || ^12 || >=14" + } + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==", + "license": "MIT" + }, + "node_modules/rollup": { + "version": "4.53.5", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.53.5.tgz", + "integrity": "sha512-iTNAbFSlRpcHeeWu73ywU/8KuU/LZmNCSxp6fjQkJBD3ivUb8tpDrXhIxEzA05HlYMEwmtaUnb3RP+YNv162OQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "@types/estree": "1.0.8" + }, + "bin": { + "rollup": "dist/bin/rollup" + }, + "engines": { + "node": ">=18.0.0", + "npm": ">=8.0.0" + }, + "optionalDependencies": { + "@rollup/rollup-android-arm-eabi": "4.53.5", + "@rollup/rollup-android-arm64": "4.53.5", + "@rollup/rollup-darwin-arm64": "4.53.5", + "@rollup/rollup-darwin-x64": "4.53.5", + "@rollup/rollup-freebsd-arm64": "4.53.5", + "@rollup/rollup-freebsd-x64": "4.53.5", + "@rollup/rollup-linux-arm-gnueabihf": "4.53.5", + "@rollup/rollup-linux-arm-musleabihf": "4.53.5", + "@rollup/rollup-linux-arm64-gnu": "4.53.5", + "@rollup/rollup-linux-arm64-musl": "4.53.5", + "@rollup/rollup-linux-loong64-gnu": "4.53.5", + "@rollup/rollup-linux-ppc64-gnu": "4.53.5", + "@rollup/rollup-linux-riscv64-gnu": "4.53.5", + "@rollup/rollup-linux-riscv64-musl": "4.53.5", + "@rollup/rollup-linux-s390x-gnu": "4.53.5", + "@rollup/rollup-linux-x64-gnu": "4.53.5", + "@rollup/rollup-linux-x64-musl": "4.53.5", + "@rollup/rollup-openharmony-arm64": "4.53.5", + "@rollup/rollup-win32-arm64-msvc": "4.53.5", + "@rollup/rollup-win32-ia32-msvc": "4.53.5", + "@rollup/rollup-win32-x64-gnu": "4.53.5", + "@rollup/rollup-win32-x64-msvc": "4.53.5", + "fsevents": "~2.3.2" + } + }, + "node_modules/source-map-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", + "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "license": "BSD-3-Clause", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/tinyglobby": { + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "fdir": "^6.5.0", + "picomatch": "^4.0.3" + }, + "engines": { + "node": ">=12.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/SuperchupuDev" + } + }, + "node_modules/vant": { + "version": "4.9.22", + "resolved": "https://registry.npmjs.org/vant/-/vant-4.9.22.tgz", + "integrity": "sha512-P2PDSj3oB6l3W1OpVlQpapeLmI6bXMSvPqPdrw5rutslC0Y6tSkrVB/iSD57weD7K92GsjGkvgDK0eZlOsXGqw==", + "license": "MIT", + "dependencies": { + "@vant/popperjs": "^1.3.0", + "@vant/use": "^1.6.0", + "@vue/shared": "^3.5.25" + }, + "peerDependencies": { + "vue": "^3.0.0" + } + }, + "node_modules/vite": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.0.tgz", + "integrity": "sha512-dZwN5L1VlUBewiP6H9s2+B3e3Jg96D0vzN+Ry73sOefebhYr9f94wwkMNN/9ouoU8pV1BqA1d1zGk8928cx0rg==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "esbuild": "^0.27.0", + "fdir": "^6.5.0", + "picomatch": "^4.0.3", + "postcss": "^8.5.6", + "rollup": "^4.43.0", + "tinyglobby": "^0.2.15" + }, + "bin": { + "vite": "bin/vite.js" + }, + "engines": { + "node": "^20.19.0 || >=22.12.0" + }, + "funding": { + "url": "https://github.com/vitejs/vite?sponsor=1" + }, + "optionalDependencies": { + "fsevents": "~2.3.3" + }, + "peerDependencies": { + "@types/node": "^20.19.0 || >=22.12.0", + "jiti": ">=1.21.0", + "less": "^4.0.0", + "lightningcss": "^1.21.0", + "sass": "^1.70.0", + "sass-embedded": "^1.70.0", + "stylus": ">=0.54.8", + "sugarss": "^5.0.0", + "terser": "^5.16.0", + "tsx": "^4.8.1", + "yaml": "^2.4.2" + }, + "peerDependenciesMeta": { + "@types/node": { + "optional": true + }, + "jiti": { + "optional": true + }, + "less": { + "optional": true + }, + "lightningcss": { + "optional": true + }, + "sass": { + "optional": true + }, + "sass-embedded": { + "optional": true + }, + "stylus": { + "optional": true + }, + "sugarss": { + "optional": true + }, + "terser": { + "optional": true + }, + "tsx": { + "optional": true + }, + "yaml": { + "optional": true + } + } + }, + "node_modules/vue": { + "version": "3.5.26", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.26.tgz", + "integrity": "sha512-SJ/NTccVyAoNUJmkM9KUqPcYlY+u8OVL1X5EW9RIs3ch5H2uERxyyIUI4MRxVCSOiEcupX9xNGde1tL9ZKpimA==", + "license": "MIT", + "peer": true, + "dependencies": { + "@vue/compiler-dom": "3.5.26", + "@vue/compiler-sfc": "3.5.26", + "@vue/runtime-dom": "3.5.26", + "@vue/server-renderer": "3.5.26", + "@vue/shared": "3.5.26" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/vue-router": { + "version": "4.6.4", + "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.6.4.tgz", + "integrity": "sha512-Hz9q5sa33Yhduglwz6g9skT8OBPii+4bFn88w6J+J4MfEo4KRRpmiNG/hHHkdbRFlLBOqxN8y8gf2Fb0MTUgVg==", + "license": "MIT", + "dependencies": { + "@vue/devtools-api": "^6.6.4" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "vue": "^3.5.0" + } + } + } +} diff --git a/student-vol/package.json b/student-vol/package.json new file mode 100644 index 0000000..09f4e54 --- /dev/null +++ b/student-vol/package.json @@ -0,0 +1,22 @@ +{ + "name": "student-vol", + "private": true, + "version": "0.0.0", + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build", + "preview": "vite preview" + }, + "dependencies": { + "axios": "^1.13.2", + "moment": "^2.30.1", + "vant": "^4.9.22", + "vue": "^3.5.24", + "vue-router": "^4.6.4" + }, + "devDependencies": { + "@vitejs/plugin-vue": "^6.0.1", + "vite": "^7.2.4" + } +} diff --git a/student-vol/public/imgs/actImg.jpeg b/student-vol/public/imgs/actImg.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..d957c58ed5f515bcbd65383b2bf393a1235d8302 GIT binary patch literal 23287 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�YcV9r_bU{C%3ZmL9SaZZM!EXix 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 literal 0 HcmV?d00001 diff --git a/student-vol/public/vite.svg b/student-vol/public/vite.svg new file mode 100644 index 0000000..e7b8dfb --- /dev/null +++ b/student-vol/public/vite.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/student-vol/src/App.vue b/student-vol/src/App.vue new file mode 100644 index 0000000..8930b15 --- /dev/null +++ b/student-vol/src/App.vue @@ -0,0 +1,27 @@ + + + + + diff --git a/student-vol/src/assets/p1.png b/student-vol/src/assets/p1.png new file mode 100644 index 0000000000000000000000000000000000000000..8bca2352d1830994ea81d9f9ae9f8200213da928 GIT binary patch literal 4752 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 literal 0 HcmV?d00001 diff --git a/student-vol/src/assets/p2.png b/student-vol/src/assets/p2.png new file mode 100644 index 0000000000000000000000000000000000000000..1ee28b66e57f4b2dc49570a1a4ceb888c19a0559 GIT binary patch literal 4124 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 sRXA}cK|aUcK9^*liy9O0FC^~&54t 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 literal 0 HcmV?d00001 diff --git a/student-vol/src/assets/vue.svg b/student-vol/src/assets/vue.svg new file mode 100644 index 0000000..770e9d3 --- /dev/null +++ b/student-vol/src/assets/vue.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/student-vol/src/components/Home/ActItem.vue b/student-vol/src/components/Home/ActItem.vue new file mode 100644 index 0000000..49c56c5 --- /dev/null +++ b/student-vol/src/components/Home/ActItem.vue @@ -0,0 +1,90 @@ + + + + + diff --git a/student-vol/src/components/Home/Navs.vue b/student-vol/src/components/Home/Navs.vue new file mode 100644 index 0000000..dd63384 --- /dev/null +++ b/student-vol/src/components/Home/Navs.vue @@ -0,0 +1,60 @@ + + + + + diff --git a/student-vol/src/components/Home/User.vue b/student-vol/src/components/Home/User.vue new file mode 100644 index 0000000..a5f8c1d --- /dev/null +++ b/student-vol/src/components/Home/User.vue @@ -0,0 +1,50 @@ + + + + + diff --git a/student-vol/src/components/ServiceRecords/Overview.vue b/student-vol/src/components/ServiceRecords/Overview.vue new file mode 100644 index 0000000..c98cf74 --- /dev/null +++ b/student-vol/src/components/ServiceRecords/Overview.vue @@ -0,0 +1,86 @@ + + + + + diff --git a/student-vol/src/components/ServiceRecords/RecordItem.vue b/student-vol/src/components/ServiceRecords/RecordItem.vue new file mode 100644 index 0000000..ca149c4 --- /dev/null +++ b/student-vol/src/components/ServiceRecords/RecordItem.vue @@ -0,0 +1,93 @@ + + + + + diff --git a/student-vol/src/components/ServiceRecords/User.vue b/student-vol/src/components/ServiceRecords/User.vue new file mode 100644 index 0000000..4e7f988 --- /dev/null +++ b/student-vol/src/components/ServiceRecords/User.vue @@ -0,0 +1,98 @@ + + + + + diff --git a/student-vol/src/main.js b/student-vol/src/main.js new file mode 100644 index 0000000..3ace41a --- /dev/null +++ b/student-vol/src/main.js @@ -0,0 +1,32 @@ +import { createApp } from "vue"; +import "./style.css"; +import App from "./App.vue"; +import router from "./router"; +import { + Button, + List, + Tag, + Field, + CellGroup, + Uploader, + Popup, + Picker, + DatePicker, +} from "vant"; +import "vant/lib/index.css"; + +const app = createApp(App); + +app + .use(Button) + .use(List) + .use(Tag) + .use(Field) + .use(CellGroup) + .use(Uploader) + .use(Popup) + .use(Picker) + .use(DatePicker) + .use(router); + +app.mount("#app"); diff --git a/student-vol/src/router/index.js b/student-vol/src/router/index.js new file mode 100644 index 0000000..89f84ef --- /dev/null +++ b/student-vol/src/router/index.js @@ -0,0 +1,65 @@ +import { createRouter, createWebHistory } from "vue-router"; +import HomeView from "../views/HomeView.vue"; +import UserCenter from "../views/UserCenter.vue"; +import LoveReport from "../views/LoveReport.vue"; +import LoveActs from "../views/LoveActs.vue"; +import ActDetails from "../views/ActDetails.vue"; +import MyApply from "../views/MyApply.vue"; +import UploadService from "../views/UploadService.vue"; +import ServiceRecords from "../views/ServiceRecords.vue"; +import ServiceDetail from "../views/ServiceDetail.vue"; + +const routes = [ + { + path: "/", + name: "home", + component: HomeView, + }, + { + path: "/userCenter", + name: "userCenter", + component: UserCenter, + }, + { + path: "/loveReport", + name: "loveReport", + component: LoveReport, + }, + { + path: "/loveActs", + name: "loveActs", + component: LoveActs, + }, + { + path: "/actDetails", + name: "actDetails", + component: ActDetails, + }, + { + path: "/myApply", + name: "myApply", + component: MyApply, + }, + { + path: "/UploadService", + name: "UploadService", + component: UploadService, + }, + { + path: "/serviceRecords", + name: "serviceRecords", + component: ServiceRecords, + }, + { + path: "/serviceDetail", + name: "serviceDetail", + component: ServiceDetail, + }, +]; + +const router = createRouter({ + history: createWebHistory(), + routes, +}); + +export default router; diff --git a/student-vol/src/style.css b/student-vol/src/style.css new file mode 100644 index 0000000..f691315 --- /dev/null +++ b/student-vol/src/style.css @@ -0,0 +1,79 @@ +:root { + font-family: system-ui, Avenir, Helvetica, Arial, sans-serif; + line-height: 1.5; + font-weight: 400; + + color-scheme: light dark; + color: rgba(255, 255, 255, 0.87); + background-color: #242424; + + font-synthesis: none; + text-rendering: optimizeLegibility; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +a { + font-weight: 500; + color: #646cff; + text-decoration: inherit; +} +a:hover { + color: #535bf2; +} + +body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} + +h1 { + font-size: 3.2em; + line-height: 1.1; +} + +button { + border-radius: 8px; + border: 1px solid transparent; + padding: 0.6em 1.2em; + font-size: 1em; + font-weight: 500; + font-family: inherit; + background-color: #1a1a1a; + cursor: pointer; + transition: border-color 0.25s; +} +button:hover { + border-color: #646cff; +} +button:focus, +button:focus-visible { + outline: 4px auto -webkit-focus-ring-color; +} + +.card { + padding: 2em; +} + +#app { + max-width: 1280px; + margin: 0 auto; + padding: 2rem; + text-align: center; +} + +@media (prefers-color-scheme: light) { + :root { + color: #213547; + background-color: #ffffff; + } + a:hover { + color: #747bff; + } + button { + background-color: #f9f9f9; + } +} diff --git a/student-vol/src/views/ActDetails.vue b/student-vol/src/views/ActDetails.vue new file mode 100644 index 0000000..e5e34fc --- /dev/null +++ b/student-vol/src/views/ActDetails.vue @@ -0,0 +1,165 @@ + + + + + diff --git a/student-vol/src/views/HomeView.vue b/student-vol/src/views/HomeView.vue new file mode 100644 index 0000000..adff3c4 --- /dev/null +++ b/student-vol/src/views/HomeView.vue @@ -0,0 +1,127 @@ + + + + + diff --git a/student-vol/src/views/LoveActs.vue b/student-vol/src/views/LoveActs.vue new file mode 100644 index 0000000..5e7f9f2 --- /dev/null +++ b/student-vol/src/views/LoveActs.vue @@ -0,0 +1,139 @@ + + + + + diff --git a/student-vol/src/views/LoveReport.vue b/student-vol/src/views/LoveReport.vue new file mode 100644 index 0000000..ab5b780 --- /dev/null +++ b/student-vol/src/views/LoveReport.vue @@ -0,0 +1,203 @@ + + + + + diff --git a/student-vol/src/views/MyApply.vue b/student-vol/src/views/MyApply.vue new file mode 100644 index 0000000..903ec7f --- /dev/null +++ b/student-vol/src/views/MyApply.vue @@ -0,0 +1,130 @@ + + + + + diff --git a/student-vol/src/views/ServiceDetail.vue b/student-vol/src/views/ServiceDetail.vue new file mode 100644 index 0000000..64cdc69 --- /dev/null +++ b/student-vol/src/views/ServiceDetail.vue @@ -0,0 +1,152 @@ + + + + + diff --git a/student-vol/src/views/ServiceRecords.vue b/student-vol/src/views/ServiceRecords.vue new file mode 100644 index 0000000..f64f158 --- /dev/null +++ b/student-vol/src/views/ServiceRecords.vue @@ -0,0 +1,126 @@ + + + + + diff --git a/student-vol/src/views/UploadService.vue b/student-vol/src/views/UploadService.vue new file mode 100644 index 0000000..dd6becd --- /dev/null +++ b/student-vol/src/views/UploadService.vue @@ -0,0 +1,239 @@ + + + + + diff --git a/student-vol/src/views/UserCenter.vue b/student-vol/src/views/UserCenter.vue new file mode 100644 index 0000000..1f985b4 --- /dev/null +++ b/student-vol/src/views/UserCenter.vue @@ -0,0 +1,202 @@ + + + + + diff --git a/student-vol/vite.config.js b/student-vol/vite.config.js new file mode 100644 index 0000000..598f260 --- /dev/null +++ b/student-vol/vite.config.js @@ -0,0 +1,148 @@ +import { defineConfig } from "vite"; +import vue from "@vitejs/plugin-vue"; +import fs from "fs"; +import path from "path"; + +function mockPlugin() { + return { + name: "simple-mock-plugin", + configureServer(server) { + server.middlewares.use((req, res, next) => { + const sendJSON = (file) => { + const filePath = path.resolve(process.cwd(), `mock/${file}`); + if (!fs.existsSync(filePath)) { + res.statusCode = 404; + res.setHeader("Content-Type", "application/json"); + return res.end( + JSON.stringify({ + error: `Mock file not found: ${file}`, + }), + ); + } + const json = fs.readFileSync(filePath, "utf-8"); + res.setHeader("Content-Type", "application/json"); + res.end(json); + }; + + // 用户信息 + if (req.url === "/api/userInfo" && req.method === "GET") { + return sendJSON("userInfo.json"); + } + + // 提交用户信息 + if (req.url === "/api/userInfo/submit" && req.method === "POST") { + return sendJSON("success.json"); + } + + // 活动列表 + if (req.url.startsWith("/api/actList") && req.method === "GET") { + return sendJSON("actList.json"); + } + + // 积分概览 + if ( + req.url.startsWith("/api/report/myOverview") && + req.method === "GET" + ) { + return sendJSON("scoreOverview.json"); + } + + // 排名列表 + if ( + req.url.startsWith("/api/report/rankList") && + req.method === "GET" + ) { + return sendJSON("rank.json"); + } + + // 活动详情 + if ( + req.url.startsWith("/api/actDetails/details") && + req.method === "GET" + ) { + return sendJSON("actDetails.json"); + } + + // 申请/撤销活动 + if ( + req.url.startsWith("/api/actDetails/apply") && + req.method === "POST" + ) { + return sendJSON("success.json"); + } + + // 我的报名列表 + if (req.url.startsWith("/api/myApplyList") && req.method === "GET") { + return sendJSON("myApplyList.json"); + } + + // 活动来源列表 + if ( + req.url.startsWith("/api/act/publisherList") && + req.method === "GET" + ) { + return sendJSON("publishers.json"); + } + + // 服务时长列表 + if ( + req.url.startsWith("/api/act/durationsList") && + req.method === "GET" + ) { + return sendJSON("durationList.json"); + } + + // 上传服务记录 + if ( + req.url.startsWith("/api/act/uploadService") && + req.method === "POST" + ) { + return sendJSON("success.json"); + } + + // 用户积分 + if ( + req.url.startsWith("/api/service/userScore") && + req.method === "GET" + ) { + return sendJSON("userScore.json"); + } + + // 年份列表 + if ( + req.url.startsWith("/api/service/yearList") && + req.method === "GET" + ) { + return sendJSON("yearList.json"); + } + + // 年度积分 + if ( + req.url.startsWith("/api/service/yearScore") && + req.method === "GET" + ) { + return sendJSON("yearScore.json"); + } + + // 服务记录列表 + if (req.url.startsWith("/api/service/list") && req.method === "GET") { + return sendJSON("serviceList.json"); + } + + // 服务详情 + if ( + req.url.startsWith("/api/service/details") && + req.method === "GET" + ) { + return sendJSON("recordDetails.json"); + } + + next(); + }); + }, + }; +} + +export default defineConfig({ + plugins: [vue(), mockPlugin()], +});