From 9a6ade4740d05ea80018409b9629c5e5f07d4097 Mon Sep 17 00:00:00 2001
From: zeyan <258785420@qq.com>
Date: Sat, 12 Jul 2025 16:20:33 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=20bug?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
admin/package-lock.json | 29 +
admin/package.json | 2 +
admin/src/App.vue | 11 +
.../views/course_schedule/components/ff.vue | 69 +-
admin/src/app/views/timetables/timetables.vue | 591 ++++++++++++----
admin/yarn.lock | 19 +-
.../apiController/CourseSchedule.php | 8 +-
.../apiController/StudentCourse.php | 79 +++
niucloud/app/api/middleware/ApiCheckToken.php | 2 -
niucloud/app/api/route/route.php | 11 +-
.../api/apiService/CourseScheduleService.php | 29 +-
.../api/apiService/PersonnelService.php | 7 +-
.../api/apiService/StudentCourseService.php | 220 ++++++
.../service/api/apiService/jlClassService.php | 5 +
.../app/service/api/member/MemberService.php | 4 +-
uniapp/api/apiRoute.js | 141 +++-
uniapp/common/config.js | 8 +-
uniapp/components/schedule/ScheduleDetail.vue | 244 ++++++-
uniapp/package-lock.json | 2 +-
uniapp/package.json | 7 +-
uniapp/pages.json | 9 +
uniapp/pages/coach/schedule/add_schedule.vue | 206 ++++--
.../pages/coach/schedule/schedule_table.vue | 649 +++++++++++++-----
uniapp/pages/market/course/course_detail.vue | 514 ++++++++++++++
24 files changed, 2384 insertions(+), 482 deletions(-)
create mode 100644 niucloud/app/api/controller/apiController/StudentCourse.php
create mode 100644 niucloud/app/service/api/apiService/StudentCourseService.php
create mode 100644 uniapp/pages/market/course/course_detail.vue
diff --git a/admin/package-lock.json b/admin/package-lock.json
index 5f570ab9..d2d58499 100644
--- a/admin/package-lock.json
+++ b/admin/package-lock.json
@@ -40,6 +40,8 @@
"vuedraggable": "^2.24.3"
},
"devDependencies": {
+ "@stagewise-plugins/vue": "^0.5.1",
+ "@stagewise/toolbar-vue": "^0.5.1",
"@tailwindcss/line-clamp": "0.4.2",
"@types/qrcode": "1.5.0",
"@types/sortablejs": "1.15.0",
@@ -1424,6 +1426,33 @@
"node": ">=18"
}
},
+ "node_modules/@stagewise-plugins/vue": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/@stagewise-plugins/vue/-/vue-0.5.1.tgz",
+ "integrity": "sha512-8qMw6GOqVoYXni30UUlNd4mZrvF+RJgWz7vnFX76/BUUo8saeFKWcbTEm9N587Qp+aq3QbOmfGcAmsNAjtFN+Q==",
+ "dev": true,
+ "peerDependencies": {
+ "@stagewise/toolbar": "0.5.1"
+ }
+ },
+ "node_modules/@stagewise/toolbar": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/@stagewise/toolbar/-/toolbar-0.5.1.tgz",
+ "integrity": "sha512-4B7g5fuFAs30Di0J9Lb1rt7uSWx/WcnXB+WGlyB7VbVhBEqkpnKPlytDl+yQIgnrHobcfwr0BTmzmmAXb/kc8A==",
+ "dev": true
+ },
+ "node_modules/@stagewise/toolbar-vue": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/@stagewise/toolbar-vue/-/toolbar-vue-0.5.1.tgz",
+ "integrity": "sha512-ynXMOgbqY0VoesnBpC/VxtyviN8gqojV/ljp0UvzCFJUTwQjGB3n3YZVZP8p65R1vemkFjY3bSSg0g/in7/p2w==",
+ "dev": true,
+ "dependencies": {
+ "@stagewise/toolbar": "0.5.1"
+ },
+ "peerDependencies": {
+ "vue": ">=3.0.0"
+ }
+ },
"node_modules/@tailwindcss/line-clamp": {
"version": "0.4.2",
"resolved": "https://registry.npmmirror.com/@tailwindcss/line-clamp/-/line-clamp-0.4.2.tgz",
diff --git a/admin/package.json b/admin/package.json
index 727f9980..c3d8f7c5 100644
--- a/admin/package.json
+++ b/admin/package.json
@@ -44,6 +44,8 @@
"vuedraggable": "^2.24.3"
},
"devDependencies": {
+ "@stagewise-plugins/vue": "^0.5.1",
+ "@stagewise/toolbar-vue": "^0.5.1",
"@tailwindcss/line-clamp": "0.4.2",
"@types/qrcode": "1.5.0",
"@types/sortablejs": "1.15.0",
diff --git a/admin/src/App.vue b/admin/src/App.vue
index 5ecb1cdd..6ee362dc 100644
--- a/admin/src/App.vue
+++ b/admin/src/App.vue
@@ -1,6 +1,8 @@
+
+
@@ -13,6 +15,9 @@ import useAppStore from '@/stores/modules/app'
import { useDark, useToggle } from '@vueuse/core'
import { setThemeColor } from '@/utils/common'
import { useRoute } from 'vue-router'
+// 导入 Stagewise 相关组件
+import { StagewiseToolbar } from '@stagewise/toolbar-vue'
+import VuePlugin from '@stagewise-plugins/vue'
const route = useRoute()
@@ -22,6 +27,12 @@ const locale = computed(() => (systemStore.lang === 'zh-cn' ? zhCn : en))
const toggleDark = useToggle(useDark())
+// Stagewise 配置
+const isDev = import.meta.env.DEV
+const stagewiseConfig = {
+ plugins: [VuePlugin]
+}
+
watch(
route,
() => {
diff --git a/admin/src/app/views/course_schedule/components/ff.vue b/admin/src/app/views/course_schedule/components/ff.vue
index 7fd0e6b8..c19658d1 100644
--- a/admin/src/app/views/course_schedule/components/ff.vue
+++ b/admin/src/app/views/course_schedule/components/ff.vue
@@ -182,57 +182,74 @@ defineExpose({
margin-bottom: 20px;
}
.student-list {
- display: flex;
- flex-wrap: wrap;
- gap: 20px;
+ display: grid;
+ grid-template-columns: repeat(3, 1fr);
+ gap: 16px;
+ padding: 20px;
+ background: #f8f9fa;
+ border-radius: 8px;
}
.student-item {
- background: #333;
- border-radius: 12px;
+ background: #fff;
+ border-radius: 8px;
display: flex;
align-items: center;
- padding: 18px 24px;
- min-width: 260px;
+ padding: 16px 20px;
+ min-height: 80px;
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
+ border: 1px solid #e9ecef;
+ transition: all 0.3s ease;
+ cursor: pointer;
+
+ &:hover {
+ box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
+ transform: translateY(-2px);
+ }
.avatar {
- width: 60px;
- height: 60px;
+ width: 48px;
+ height: 48px;
border-radius: 50%;
background: #29d3b4;
color: #fff;
display: flex;
align-items: center;
justify-content: center;
- font-size: 32px;
- margin-right: 18px;
+ font-size: 18px;
+ margin-right: 12px;
+ flex-shrink: 0;
}
.info {
+ flex: 1;
.name {
- color: #fff;
- font-size: 28px;
+ color: #333;
+ font-size: 16px;
+ font-weight: 500;
+ margin-bottom: 4px;
}
.desc {
- color: #bdbdbd;
- font-size: 22px;
- margin-top: 4px;
+ color: #6c757d;
+ font-size: 14px;
}
}
&.empty {
- border: 2px dashed #ffd86b;
- background: #232323;
- margin-left: 20px;
- margin-top: 10px;
- height: 200px;
+ border: 2px dashed #007bff;
+ background: #f8f9ff;
.avatar.empty-avatar {
- background: #ffd86b;
- color: #232323;
- font-size: 36px;
+ background: #007bff;
+ color: #fff;
+ font-size: 24px;
}
.info .name {
- color: #ffd86b;
+ color: #007bff;
+ font-weight: 500;
}
.info .desc {
- color: #ffd86b;
+ color: #007bff;
+ }
+ &:hover {
+ background: #e6f3ff;
+ border-color: #0056b3;
}
}
diff --git a/admin/src/app/views/timetables/timetables.vue b/admin/src/app/views/timetables/timetables.vue
index d0b14cb7..28cda78c 100644
--- a/admin/src/app/views/timetables/timetables.vue
+++ b/admin/src/app/views/timetables/timetables.vue
@@ -1,13 +1,25 @@
+