diff --git a/src/mock/course.js b/src/mock/course.js
index e3a5883..2e93fd8 100644
--- a/src/mock/course.js
+++ b/src/mock/course.js
@@ -1,24 +1,28 @@
const list = [
- {"id":1,"name":"瑜伽入门","coachName":"铁娃","price":199,"duration":"60分钟","status":"进行中","remark":"适合零基础学员"},
- {"id":2,"name":"力量训练","coachName":"小明","price":299,"duration":"45分钟","status":"进行中","remark":"增肌塑形专用"},
- {"id":3,"name":"有氧舞蹈","coachName":"李娜","price":159,"duration":"50分钟","status":"进行中","remark":"燃脂效果好"},
- {"id":4,"name":"搏击操","coachName":"王强","price":259,"duration":"40分钟","status":"进行中","remark":"释放压力"},
- {"id":5,"name":"普拉提","coachName":"刘芳","price":229,"duration":"55分钟","status":"进行中","remark":"改善体态"},
- {"id":6,"name":"动感单车","coachName":"陈刚","price":179,"duration":"45分钟","status":"已结束","remark":"高强度有氧"},
- {"id":7,"name":"游泳训练","coachName":"赵敏","price":349,"duration":"60分钟","status":"进行中","remark":"全身运动"},
- {"id":8,"name":"拳击入门","coachName":"周涛","price":289,"duration":"50分钟","status":"进行中","remark":"防身健身两不误"},
- {"id":9,"name":"形体塑造","coachName":"吴雪","price":199,"duration":"45分钟","status":"进行中","remark":"塑造完美身材"},
- {"id":10,"name":"康复训练","coachName":"孙磊","price":399,"duration":"60分钟","status":"进行中","remark":"运动损伤恢复"},
- {"id":11,"name":"舞蹈培训","coachName":"朱婷","price":249,"duration":"50分钟","status":"已结束","remark":"多种舞种"},
- {"id":12,"name":"攀岩课程","coachName":"林浩","price":329,"duration":"90分钟","status":"进行中","remark":"挑战自我"},
- {"id":13,"name":"空手道","coachName":"杨丽","price":279,"duration":"55分钟","status":"进行中","remark":"防身技能"},
- {"id":14,"name":"肚皮舞","coachName":"黄勇","price":189,"duration":"45分钟","status":"进行中","remark":"女性专属"},
- {"id":15,"name":"CrossFit","coachName":"徐静","price":359,"duration":"60分钟","status":"进行中","remark":"综合训练"}
+ {"id":1,"name":"瑜伽入门","coachName":"铁娃","price":199,"duration":"60分钟","status":"进行中","remark":"适合零基础学员","startTime":"2024-08-01 09:00","enrolled":25,"capacity":30,"type":"瑜伽"},
+ {"id":2,"name":"力量训练","coachName":"小明","price":299,"duration":"45分钟","status":"进行中","remark":"增肌塑形专用","startTime":"2024-08-01 14:00","enrolled":18,"capacity":20,"type":"力量"},
+ {"id":3,"name":"有氧舞蹈","coachName":"李娜","price":159,"duration":"50分钟","status":"进行中","remark":"燃脂效果好","startTime":"2024-08-02 10:00","enrolled":30,"capacity":35,"type":"有氧"},
+ {"id":4,"name":"搏击操","coachName":"王强","price":259,"duration":"40分钟","status":"进行中","remark":"释放压力","startTime":"2024-08-02 16:00","enrolled":15,"capacity":20,"type":"搏击"},
+ {"id":5,"name":"普拉提","coachName":"刘芳","price":229,"duration":"55分钟","status":"进行中","remark":"改善体态","startTime":"2024-08-03 09:30","enrolled":22,"capacity":25,"type":"瑜伽"},
+ {"id":6,"name":"动感单车","coachName":"陈刚","price":179,"duration":"45分钟","status":"已结束","remark":"高强度有氧","startTime":"2024-07-01 18:00","enrolled":30,"capacity":30,"type":"有氧"},
+ {"id":7,"name":"游泳训练","coachName":"赵敏","price":349,"duration":"60分钟","status":"进行中","remark":"全身运动","startTime":"2024-08-04 15:00","enrolled":12,"capacity":15,"type":"水上"},
+ {"id":8,"name":"拳击入门","coachName":"周涛","price":289,"duration":"50分钟","status":"进行中","remark":"防身健身两不误","startTime":"2024-08-05 19:00","enrolled":20,"capacity":20,"type":"搏击"},
+ {"id":9,"name":"形体塑造","coachName":"吴雪","price":199,"duration":"45分钟","status":"进行中","remark":"塑造完美身材","startTime":"2024-08-06 10:30","enrolled":28,"capacity":30,"type":"塑形"},
+ {"id":10,"name":"康复训练","coachName":"孙磊","price":399,"duration":"60分钟","status":"进行中","remark":"运动损伤恢复","startTime":"2024-08-07 14:30","enrolled":8,"capacity":10,"type":"康复"},
+ {"id":11,"name":"舞蹈培训","coachName":"朱婷","price":249,"duration":"50分钟","status":"已结束","remark":"多种舞种","startTime":"2024-06-15 11:00","enrolled":25,"capacity":30,"type":"舞蹈"},
+ {"id":12,"name":"攀岩课程","coachName":"林浩","price":329,"duration":"90分钟","status":"进行中","remark":"挑战自我","startTime":"2024-08-08 16:30","enrolled":10,"capacity":12,"type":"户外"},
+ {"id":13,"name":"空手道","coachName":"杨丽","price":279,"duration":"55分钟","status":"进行中","remark":"防身技能","startTime":"2024-08-09 18:30","enrolled":16,"capacity":20,"type":"搏击"},
+ {"id":14,"name":"肚皮舞","coachName":"黄勇","price":189,"duration":"45分钟","status":"进行中","remark":"女性专属","startTime":"2024-08-10 13:00","enrolled":22,"capacity":25,"type":"舞蹈"},
+ {"id":15,"name":"CrossFit","coachName":"徐静","price":359,"duration":"60分钟","status":"进行中","remark":"综合训练","startTime":"2024-08-11 07:30","enrolled":18,"capacity":20,"type":"综合"}
]
export const getByPage = (query) => {
const { name, status, page, limit } = query
const result = list.filter(item => {
+ // 自动结束:报名满且状态为进行中
+ if (item.enrolled >= item.capacity && item.status === '进行中') {
+ item.status = '已结束'
+ }
if (name && item.name.indexOf(name) === -1) return false
if (status && item.status !== status) return false
return true
@@ -35,12 +39,21 @@ export const remove = (id) => {
}
}
+// 切换课程状态
+export const changeStatus = (id) => {
+ const target = list.find(item => item.id === id)
+ if (target) {
+ target.status = target.status === '进行中' ? '已结束' : '进行中'
+ }
+}
+
// 新增课程
export const add = (course) => {
const newCourse = {
id: list.length === 0 ? 1 : list[list.length - 1].id + 1,
...course,
- status: "进行中"
+ status: "进行中",
+ enrolled: 0
}
list.push(newCourse)
}
diff --git a/src/mock/member.js b/src/mock/member.js
index 26e8a1a..4d3e5fe 100644
--- a/src/mock/member.js
+++ b/src/mock/member.js
@@ -1,24 +1,24 @@
const list = [
- {"id":1,"name":"张三","sex":1,"avatar":"","phone":"13800138001","remark":"年卡会员,喜欢瑜伽","expireDate":"2025-12-31"},
- {"id":2,"name":"李四","sex":2,"avatar":"","phone":"13800138002","remark":"季卡会员,减脂塑形","expireDate":"2025-09-15"},
- {"id":3,"name":"王五","sex":1,"avatar":"","phone":"13800138003","remark":"月卡会员,增肌训练","expireDate":"2025-08-01"},
- {"id":4,"name":"赵六","sex":2,"avatar":"","phone":"13800138004","remark":"年卡会员,产后恢复","expireDate":null},
- {"id":5,"name":"钱七","sex":1,"avatar":"","phone":"13800138005","remark":"次卡会员,游泳爱好者","expireDate":"2025-07-20"},
- {"id":6,"name":"孙八","sex":2,"avatar":"","phone":"13800138006","remark":"年卡会员,搏击训练","expireDate":null},
- {"id":7,"name":"周九","sex":1,"avatar":"","phone":"13800138007","remark":"季卡会员,普拉提","expireDate":"2025-10-10"},
- {"id":8,"name":"吴十","sex":2,"avatar":"","phone":"13800138008","remark":"月卡会员,有氧舞蹈","expireDate":"2025-07-30"},
- {"id":9,"name":"郑十一","sex":1,"avatar":"","phone":"13800138009","remark":"年卡会员,自由重量","expireDate":"2026-01-15"},
- {"id":10,"name":"冯十二","sex":2,"avatar":"","phone":"13800138010","remark":"次卡会员,动感单车","expireDate":"2025-08-25"},
- {"id":11,"name":"陈十三","sex":1,"avatar":"","phone":"13800138011","remark":"年卡会员,拳击训练","expireDate":null},
- {"id":12,"name":"楚十四","sex":2,"avatar":"","phone":"13800138012","remark":"季卡会员,形体塑造","expireDate":"2025-11-30"},
- {"id":13,"name":"魏十五","sex":1,"avatar":"","phone":"13800138013","remark":"月卡会员,康复训练","expireDate":"2025-07-25"},
- {"id":14,"name":"蒋十六","sex":2,"avatar":"","phone":"13800138014","remark":"年卡会员,舞蹈培训","expireDate":"2026-02-28"},
- {"id":15,"name":"沈十七","sex":1,"avatar":"","phone":"13800138015","remark":"次卡会员,攀岩爱好者","expireDate":"2025-09-05"},
- {"id":16,"name":"韩十八","sex":2,"avatar":"","phone":"13800138016","remark":"季卡会员,有氧操","expireDate":"2025-12-01"},
- {"id":17,"name":"杨十九","sex":1,"avatar":"","phone":"13800138017","remark":"年卡会员,力量训练","expireDate":null},
- {"id":18,"name":"朱二十","sex":2,"avatar":"","phone":"13800138018","remark":"月卡会员,纤体瑜伽","expireDate":"2025-08-10"},
- {"id":19,"name":"秦廿一","sex":1,"avatar":"","phone":"13800138019","remark":"年卡会员,CrossFit","expireDate":"2026-03-20"},
- {"id":20,"name":"许廿二","sex":2,"avatar":"","phone":"13800138020","remark":"季卡会员,空中瑜伽","expireDate":"2025-10-25"}
+ {"id":1,"name":"张三","sex":1,"avatar":"","phone":"13800138001","remark":"年卡会员,喜欢瑜伽","expireDate":"2025-12-31","joinDate":"2024-01-15","level":"金卡","remainCount":null,"totalSpend":5999},
+ {"id":2,"name":"李四","sex":2,"avatar":"","phone":"13800138002","remark":"季卡会员,减脂塑形","expireDate":"2025-09-15","joinDate":"2024-06-20","level":"银卡","remainCount":null,"totalSpend":2999},
+ {"id":3,"name":"王五","sex":1,"avatar":"","phone":"13800138003","remark":"月卡会员,增肌训练","expireDate":"2025-08-01","joinDate":"2024-09-10","level":"普通","remainCount":null,"totalSpend":999},
+ {"id":4,"name":"赵六","sex":2,"avatar":"","phone":"13800138004","remark":"年卡会员,产后恢复","expireDate":null,"joinDate":"2023-12-01","level":"钻石","remainCount":null,"totalSpend":12999},
+ {"id":5,"name":"钱七","sex":1,"avatar":"","phone":"13800138005","remark":"次卡会员,游泳爱好者","expireDate":"2025-07-20","joinDate":"2024-03-15","level":"普通","remainCount":5,"totalSpend":1500},
+ {"id":6,"name":"孙八","sex":2,"avatar":"","phone":"13800138006","remark":"年卡会员,搏击训练","expireDate":null,"joinDate":"2024-02-28","level":"金卡","remainCount":null,"totalSpend":8999},
+ {"id":7,"name":"周九","sex":1,"avatar":"","phone":"13800138007","remark":"季卡会员,普拉提","expireDate":"2025-10-10","joinDate":"2024-07-05","level":"银卡","remainCount":null,"totalSpend":3499},
+ {"id":8,"name":"吴十","sex":2,"avatar":"","phone":"13800138008","remark":"月卡会员,有氧舞蹈","expireDate":"2025-07-30","joinDate":"2024-10-12","level":"普通","remainCount":null,"totalSpend":799},
+ {"id":9,"name":"郑十一","sex":1,"avatar":"","phone":"13800138009","remark":"年卡会员,自由重量","expireDate":"2026-01-15","joinDate":"2024-01-20","level":"金卡","remainCount":null,"totalSpend":6999},
+ {"id":10,"name":"冯十二","sex":2,"avatar":"","phone":"13800138010","remark":"次卡会员,动感单车","expireDate":"2025-08-25","joinDate":"2024-05-18","level":"普通","remainCount":8,"totalSpend":1200},
+ {"id":11,"name":"陈十三","sex":1,"avatar":"","phone":"13800138011","remark":"年卡会员,拳击训练","expireDate":null,"joinDate":"2023-11-25","level":"钻石","remainCount":null,"totalSpend":15999},
+ {"id":12,"name":"楚十四","sex":2,"avatar":"","phone":"13800138012","remark":"季卡会员,形体塑造","expireDate":"2025-11-30","joinDate":"2024-08-08","level":"银卡","remainCount":null,"totalSpend":2599},
+ {"id":13,"name":"魏十五","sex":1,"avatar":"","phone":"13800138013","remark":"月卡会员,康复训练","expireDate":"2025-07-25","joinDate":"2024-10-01","level":"普通","remainCount":null,"totalSpend":599},
+ {"id":14,"name":"蒋十六","sex":2,"avatar":"","phone":"13800138014","remark":"年卡会员,舞蹈培训","expireDate":"2026-02-28","joinDate":"2024-03-10","level":"金卡","remainCount":null,"totalSpend":7499},
+ {"id":15,"name":"沈十七","sex":1,"avatar":"","phone":"13800138015","remark":"次卡会员,攀岩爱好者","expireDate":"2025-09-05","joinDate":"2024-06-15","level":"普通","remainCount":12,"totalSpend":1800},
+ {"id":16,"name":"韩十八","sex":2,"avatar":"","phone":"13800138016","remark":"季卡会员,有氧操","expireDate":"2025-12-01","joinDate":"2024-09-20","level":"银卡","remainCount":null,"totalSpend":2799},
+ {"id":17,"name":"杨十九","sex":1,"avatar":"","phone":"13800138017","remark":"年卡会员,力量训练","expireDate":null,"joinDate":"2024-01-05","level":"钻石","remainCount":null,"totalSpend":18999},
+ {"id":18,"name":"朱二十","sex":2,"avatar":"","phone":"13800138018","remark":"月卡会员,纤体瑜伽","expireDate":"2025-08-10","joinDate":"2024-10-15","level":"普通","remainCount":null,"totalSpend":699},
+ {"id":19,"name":"秦廿一","sex":1,"avatar":"","phone":"13800138019","remark":"年卡会员,CrossFit","expireDate":"2026-03-20","joinDate":"2024-02-14","level":"金卡","remainCount":null,"totalSpend":9499},
+ {"id":20,"name":"许廿二","sex":2,"avatar":"","phone":"13800138020","remark":"季卡会员,空中瑜伽","expireDate":"2025-10-25","joinDate":"2024-07-22","level":"银卡","remainCount":null,"totalSpend":3199}
]
export const getByPage = (query) => {
@@ -51,7 +51,10 @@ export const add = (member) => {
const newMember = {
id: list.length === 0 ? 1 : list[list.length - 1].id + 1,
...member,
- expireDate: null
+ expireDate: null,
+ joinDate: new Date().toLocaleDateString(),
+ remainCount: null,
+ totalSpend: 0
}
list.push(newMember)
}
diff --git a/src/views/AddCourseView.vue b/src/views/AddCourseView.vue
index 1197d5b..877066f 100644
--- a/src/views/AddCourseView.vue
+++ b/src/views/AddCourseView.vue
@@ -12,6 +12,9 @@ const course = reactive({
coachName: "",
price: null,
duration: "",
+ type: "",
+ startTime: "",
+ capacity: null,
remark: ""
})
const rules = {
@@ -27,6 +30,15 @@ const rules = {
],
duration: [
{ required: true, message: "课程时长不能为空", trigger: "blur" }
+ ],
+ type: [
+ { required: true, message: "课程类型不能为空", trigger: "change" }
+ ],
+ startTime: [
+ { required: true, message: "开课时间不能为空", trigger: "blur" }
+ ],
+ capacity: [
+ { required: true, message: "课程容量不能为空", trigger: "blur" }
]
}
const addHandler = async () => {
@@ -43,6 +55,20 @@ const addHandler = async () => {
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -52,6 +78,12 @@ const addHandler = async () => {
+
+
+
+
+
+
diff --git a/src/views/AddMemberView.vue b/src/views/AddMemberView.vue
index 452ee32..08c338e 100644
--- a/src/views/AddMemberView.vue
+++ b/src/views/AddMemberView.vue
@@ -13,6 +13,7 @@ const member = reactive({
sex: 1,
avatar: "",
phone: "",
+ level: "普通",
remark: ""
})
const rules = {
@@ -56,6 +57,14 @@ const uploadChangeHandler = (file, fileList) => {
+
+
+
+
+
+
+
+
diff --git a/src/views/CourseView.vue b/src/views/CourseView.vue
index fa75e59..b183605 100644
--- a/src/views/CourseView.vue
+++ b/src/views/CourseView.vue
@@ -23,19 +23,37 @@
-
-
-
-
+
+
+
+ {{ scope.row.type }}
+
+
+
+
+
+ ¥{{ scope.row.price }}
+
+
+
+
-
+
+
+
+ {{ scope.row.enrolled }}/{{ scope.row.capacity }}
+
+
+
+
+
进行中
已结束
-
+
@@ -47,8 +65,11 @@
-
+
+
+ {{ scope.row.status === '进行中' ? '结束' : '重启' }}
+
删除
@@ -63,8 +84,8 @@