diff --git a/package-lock.json b/package-lock.json index da985eb..b60613b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,14 +19,11 @@ "pinia": "^3.0.4", "pinia-plugin-persistedstate": "^4.7.1", "qs": "^6.12.1", - "swiper": "^12.1.3", "vue": "^3.5.24", - "vue-draggable-next": "^2.3.0", "vue-echarts": "^8.0.1", "vue-i18n": "^9.14.5", "vue-pdf-embed": "^2.1.5", - "vue-router": "^4.6.3", - "wujie-vue3": "^1.0.29" + "vue-router": "^4.6.3" }, "devDependencies": { "@vitejs/plugin-vue": "^6.0.1", @@ -6574,13 +6571,6 @@ "node": ">=0.10.0" } }, - "node_modules/sortablejs": { - "version": "1.15.7", - "resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.15.7.tgz", - "integrity": "sha512-Kk8wLQPlS+yi1ZEf48a4+fzHa4yxjC30M/Sr2AnQu+f/MPwvvX9XjZ6OWejiz8crBsLwSq8GHqaxaET7u6ux0A==", - "license": "MIT", - "peer": true - }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -7067,25 +7057,6 @@ "node": ">=10.13.0" } }, - "node_modules/swiper": { - "version": "12.1.3", - "resolved": "https://registry.npmjs.org/swiper/-/swiper-12.1.3.tgz", - "integrity": "sha512-XcWlVmkHFICI4fuoJKgbp8PscDcS4i7pBH8nwJRBi3dpQvhCySwsWRYm4bOf/BzKVWkHOYaFw7qz9uBSrY3oug==", - "funding": [ - { - "type": "patreon", - "url": "https://www.patreon.com/swiperjs" - }, - { - "type": "open_collective", - "url": "http://opencollective.com/swiper" - } - ], - "license": "MIT", - "engines": { - "node": ">= 4.7.0" - } - }, "node_modules/sync-child-process": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/sync-child-process/-/sync-child-process-1.0.2.tgz", @@ -7642,16 +7613,6 @@ } } }, - "node_modules/vue-draggable-next": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/vue-draggable-next/-/vue-draggable-next-2.3.0.tgz", - "integrity": "sha512-ymbY0UIwfSdg0iDN/iyNNwUrTqZ/6KbPryzsvTNXBLuDCuOBdNijSK8yynNtmiSj6RapTPQfjLGQdJrZkzBd2w==", - "license": "MIT", - "peerDependencies": { - "sortablejs": "^1.14.0", - "vue": "^3.5.17" - } - }, "node_modules/vue-echarts": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/vue-echarts/-/vue-echarts-8.0.1.tgz", @@ -7811,27 +7772,6 @@ "integrity": "sha512-DXukZJxpHA8LuotRwL0pP1+rS6CS7FF2qStDDE1C7DDg2rLud2PXRMuEDYIPhgEezwnlHNL4c+N6MfMTjCGTng==", "license": "MIT" }, - "node_modules/wujie": { - "version": "1.0.29", - "resolved": "https://registry.npmjs.org/wujie/-/wujie-1.0.29.tgz", - "integrity": "sha512-u7PmBT4l5ov7ciwmZNG8DLIRKrYrnXDa0LnAFgRQikJ/ZrVZYzzSNz6duzEJoj8/o46dnMy/g9Hh/PBYGbgFUw==", - "license": "MIT", - "dependencies": { - "@babel/runtime": "^7.18.6" - } - }, - "node_modules/wujie-vue3": { - "version": "1.0.29", - "resolved": "https://registry.npmjs.org/wujie-vue3/-/wujie-vue3-1.0.29.tgz", - "integrity": "sha512-OGt5Veyq/DtmFzHQCANmv8nZgu877u7ZjS5qjFpSrtKARKhLjID3x99D40a4pb3Kj5UmRatkV5Gn5hqOWpziZQ==", - "license": "MIT", - "dependencies": { - "wujie": "1.0.29" - }, - "peerDependencies": { - "vue": "^3.0.0" - } - }, "node_modules/zrender": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/zrender/-/zrender-6.0.0.tgz", diff --git a/src/assets/image/admin/orders/add.svg b/src/assets/image/admin/orders/add.svg new file mode 100644 index 0000000..4d3fb10 --- /dev/null +++ b/src/assets/image/admin/orders/add.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/assets/image/admin/orders/arrow-left.svg b/src/assets/image/admin/orders/arrow-left.svg new file mode 100644 index 0000000..b33b4d6 --- /dev/null +++ b/src/assets/image/admin/orders/arrow-left.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/src/assets/image/admin/orders/copy.svg b/src/assets/image/admin/orders/copy.svg new file mode 100644 index 0000000..973dfc3 --- /dev/null +++ b/src/assets/image/admin/orders/copy.svg @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/src/assets/image/admin/orders/delete.svg b/src/assets/image/admin/orders/delete.svg new file mode 100644 index 0000000..42df45b --- /dev/null +++ b/src/assets/image/admin/orders/delete.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/assets/image/admin/orders/edit.svg b/src/assets/image/admin/orders/edit.svg new file mode 100644 index 0000000..35d4c3a --- /dev/null +++ b/src/assets/image/admin/orders/edit.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/src/assets/image/admin/orders/file.svg b/src/assets/image/admin/orders/file.svg new file mode 100644 index 0000000..771635d --- /dev/null +++ b/src/assets/image/admin/orders/file.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/assets/image/admin/orders/process.svg b/src/assets/image/admin/orders/process.svg new file mode 100644 index 0000000..58b363d --- /dev/null +++ b/src/assets/image/admin/orders/process.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/assets/image/admin/orders/sepan.svg b/src/assets/image/admin/orders/sepan.svg new file mode 100644 index 0000000..9f81ee2 --- /dev/null +++ b/src/assets/image/admin/orders/sepan.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/assets/image/admin/router/fuwu-bg-active.svg b/src/assets/image/router/fuwu-bg-active.svg similarity index 100% rename from src/assets/image/admin/router/fuwu-bg-active.svg rename to src/assets/image/router/fuwu-bg-active.svg diff --git a/src/assets/image/admin/router/fuwu-bg.svg b/src/assets/image/router/fuwu-bg.svg similarity index 100% rename from src/assets/image/admin/router/fuwu-bg.svg rename to src/assets/image/router/fuwu-bg.svg diff --git a/src/assets/image/admin/router/fuwu-gd-active.svg b/src/assets/image/router/fuwu-gd-active.svg similarity index 100% rename from src/assets/image/admin/router/fuwu-gd-active.svg rename to src/assets/image/router/fuwu-gd-active.svg diff --git a/src/assets/image/admin/router/fuwu-gd.svg b/src/assets/image/router/fuwu-gd.svg similarity index 100% rename from src/assets/image/admin/router/fuwu-gd.svg rename to src/assets/image/router/fuwu-gd.svg diff --git a/src/assets/image/admin/router/kehu-fw-active.svg b/src/assets/image/router/kehu-fw-active.svg similarity index 100% rename from src/assets/image/admin/router/kehu-fw-active.svg rename to src/assets/image/router/kehu-fw-active.svg diff --git a/src/assets/image/admin/router/kehu-fw.svg b/src/assets/image/router/kehu-fw.svg similarity index 100% rename from src/assets/image/admin/router/kehu-fw.svg rename to src/assets/image/router/kehu-fw.svg diff --git a/src/assets/image/admin/router/kehu-jljf-active.svg b/src/assets/image/router/kehu-jljf-active.svg similarity index 100% rename from src/assets/image/admin/router/kehu-jljf-active.svg rename to src/assets/image/router/kehu-jljf-active.svg diff --git a/src/assets/image/admin/router/kehu-jljf.svg b/src/assets/image/router/kehu-jljf.svg similarity index 100% rename from src/assets/image/admin/router/kehu-jljf.svg rename to src/assets/image/router/kehu-jljf.svg diff --git a/src/assets/image/admin/router/yiyuan-xx-active.svg b/src/assets/image/router/yiyuan-xx-active.svg similarity index 100% rename from src/assets/image/admin/router/yiyuan-xx-active.svg rename to src/assets/image/router/yiyuan-xx-active.svg diff --git a/src/assets/image/admin/router/yiyuan-xx.svg b/src/assets/image/router/yiyuan-xx.svg similarity index 100% rename from src/assets/image/admin/router/yiyuan-xx.svg rename to src/assets/image/router/yiyuan-xx.svg diff --git a/src/assets/image/router/yy-gd-active.svg b/src/assets/image/router/yy-gd-active.svg new file mode 100644 index 0000000..b0c2aec --- /dev/null +++ b/src/assets/image/router/yy-gd-active.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/assets/image/router/yy-gd.svg b/src/assets/image/router/yy-gd.svg new file mode 100644 index 0000000..ebd359e --- /dev/null +++ b/src/assets/image/router/yy-gd.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/assets/image/router/yy-gzt-active.svg b/src/assets/image/router/yy-gzt-active.svg new file mode 100644 index 0000000..45b386e --- /dev/null +++ b/src/assets/image/router/yy-gzt-active.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/assets/image/router/yy-gzt.svg b/src/assets/image/router/yy-gzt.svg new file mode 100644 index 0000000..a051427 --- /dev/null +++ b/src/assets/image/router/yy-gzt.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/src/assets/image/router/yy-jf-active.svg b/src/assets/image/router/yy-jf-active.svg new file mode 100644 index 0000000..5bb585d --- /dev/null +++ b/src/assets/image/router/yy-jf-active.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/assets/image/router/yy-jf.svg b/src/assets/image/router/yy-jf.svg new file mode 100644 index 0000000..5587250 --- /dev/null +++ b/src/assets/image/router/yy-jf.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/src/assets/image/admin/router/zhanghao-gl-active.svg b/src/assets/image/router/zhanghao-gl-active.svg similarity index 100% rename from src/assets/image/admin/router/zhanghao-gl-active.svg rename to src/assets/image/router/zhanghao-gl-active.svg diff --git a/src/assets/image/admin/router/zhanghao-gl.svg b/src/assets/image/router/zhanghao-gl.svg similarity index 100% rename from src/assets/image/admin/router/zhanghao-gl.svg rename to src/assets/image/router/zhanghao-gl.svg diff --git a/src/components/FilePreviewDialog.vue b/src/components/FilePreviewDialog.vue index 8eff5b8..0f948e9 100644 --- a/src/components/FilePreviewDialog.vue +++ b/src/components/FilePreviewDialog.vue @@ -1,58 +1,57 @@ - + + + @@ -142,20 +151,23 @@ - + + + + + + + + + + diff --git a/src/views/hospital/LotteryDialog.vue b/src/views/hospital/LotteryDialog.vue index 3ed903a..62417a6 100644 --- a/src/views/hospital/LotteryDialog.vue +++ b/src/views/hospital/LotteryDialog.vue @@ -83,15 +83,15 @@ const unwrap = (res) => res?.data ?? res ?? {}; // ============ 网格布局(中心是抽奖按钮) ============ const gridItems = [ - { type: "points", points: 6 }, { type: "points", points: 1 }, - { type: "points", points: 6 }, - { type: "points", points: 10 }, + { type: "points", points: 2 }, + { type: "points", points: 3 }, + { type: "points", points: 4 }, { type: "draw" }, // 中心 + { type: "points", points: 5 }, { type: "points", points: 6 }, - { type: "points", points: 6 }, - { type: "points", points: 1 }, - { type: "points", points: 6 }, + { type: "points", points: 7 }, + { type: "points", points: 8 }, ]; // 可抽奖格子的索引(顺时针顺序,不含中心) @@ -112,28 +112,21 @@ const batchPercent = computed(() => const wait = (ms) => new Promise((r) => setTimeout(r, ms)); -// ============ 找到最接近的格子 ============ -const findNearestIndex = (points) => { - let nearestIdx = drawableIndices[0]; - let minDiff = Infinity; - for (const idx of drawableIndices) { - const diff = Math.abs(gridItems[idx].points - points); - if (diff < minDiff) { - minDiff = diff; - nearestIdx = idx; - } - } - return nearestIdx; +// ============ 找到积分对应的格子索引 ============ +const findIndexByPoints = (points) => { + return gridItems.findIndex( + (item) => item.type === "points" && item.points === points, + ); }; // ============ 开始抽奖 ============ const startDraw = async () => { if (isDrawing.value) return; - // todo: 处理是否已抽过等逻辑 - // if (!props.drawable) { - // ElMessage.info("今日已抽奖,明天再来吧!"); - // return; - // } + + if (!props.drawable) { + ElMessage.info("今日已抽奖,明天再来吧!"); + return; + } // 重置状态 isDrawing.value = true; @@ -180,23 +173,22 @@ const startDraw = async () => { await wait(250); } - // if (apiError || apiResult === null || apiResult === undefined) { - // isDrawing.value = false; - // ElMessage.error(apiError?.message || "抽奖失败"); - // emit("failed", apiError); - // return; - // } + if (apiError || apiResult === null || apiResult === undefined) { + isDrawing.value = false; + ElMessage.error(apiError?.message || "抽奖失败"); + emit("failed", apiError); + return; + } // 解析中奖分数(兼容多种返回结构) - // todo 记得打开 - // const points = Number( - // apiResult.points ?? apiResult.score ?? apiResult ?? 0, - // ) ; - // todo 6记得去掉 - const points = 6; - - // 找最近匹配的格子 - const targetIdx = findNearestIndex(points); + + const points = Number( + apiResult.points ?? apiResult.score ?? apiResult ?? 0, + ) ; + + + // 找积分对应的格子 + const targetIdx = findIndexByPoints(points); // ========== 第三阶段:从当前位置逐步走到目标 ========== let safety = 0; diff --git a/src/views/hospital/SignInDialog.vue b/src/views/hospital/SignInDialog.vue index 510f3e8..6294b8f 100644 --- a/src/views/hospital/SignInDialog.vue +++ b/src/views/hospital/SignInDialog.vue @@ -6,7 +6,9 @@