diff --git a/src/App.vue b/src/App.vue index 7d9651b..9808b0f 100644 --- a/src/App.vue +++ b/src/App.vue @@ -47,6 +47,12 @@ const activeMenu = computed(() => route.path) 会员列表 + + + + + 会员新增 + @@ -62,6 +68,12 @@ const activeMenu = computed(() => route.path) 课程列表 + + + + + 课程新增 + diff --git a/src/mock/course.js b/src/mock/course.js new file mode 100644 index 0000000..e3a5883 --- /dev/null +++ b/src/mock/course.js @@ -0,0 +1,46 @@ +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":"综合训练"} +] + +export const getByPage = (query) => { + const { name, status, page, limit } = query + const result = list.filter(item => { + if (name && item.name.indexOf(name) === -1) return false + if (status && item.status !== status) return false + return true + }) + const start = (page - 1) * limit + return { total: result.length, data: result.slice(start, start + limit) } +} + +// 删除课程 +export const remove = (id) => { + const index = list.findIndex(item => item.id === id) + if (index > -1) { + list.splice(index, 1) + } +} + +// 新增课程 +export const add = (course) => { + const newCourse = { + id: list.length === 0 ? 1 : list[list.length - 1].id + 1, + ...course, + status: "进行中" + } + list.push(newCourse) +} diff --git a/src/mock/member.js b/src/mock/member.js new file mode 100644 index 0000000..26e8a1a --- /dev/null +++ b/src/mock/member.js @@ -0,0 +1,57 @@ +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"} +] + +export const getByPage = (query) => { + const { sex, name, page, limit, status } = query + const result = list.filter(item => { + if (sex && item.sex !== sex) return false + if (name && item.name.indexOf(name) === -1) return false + if (status == 2 && item.expireDate !== null) return false + if (status == 3 && item.expireDate === null) return false + return true + }) + const start = (page - 1) * limit + return { total: result.length, data: result.slice(start, start + limit) } +} + +// 注销 +export const cancel = (id) => { + const target = list.find(item => item.id === id) + target.expireDate = new Date().toLocaleDateString() +} + +// 续费 +export const renew = (id) => { + const target = list.find(item => item.id === id) + target.expireDate = null +} + +// 新增会员 +export const add = (member) => { + const newMember = { + id: list.length === 0 ? 1 : list[list.length - 1].id + 1, + ...member, + expireDate: null + } + list.push(newMember) +} diff --git a/src/router/index.js b/src/router/index.js index 60c5fe9..9990a24 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -23,6 +23,14 @@ const router = createRouter({ path: '/addcoach', component: ()=>import('../views/AddCoachView.vue'), }, + { + path: '/addmember', + component: ()=>import('../views/AddMemberView.vue'), + }, + { + path: '/addcourse', + component: ()=>import('../views/AddCourseView.vue'), + }, ], }) diff --git a/src/views/AddCourseView.vue b/src/views/AddCourseView.vue new file mode 100644 index 0000000..1197d5b --- /dev/null +++ b/src/views/AddCourseView.vue @@ -0,0 +1,71 @@ + + + + + ——新增课程—— + + + + + + + + + + + + + + + + + 确定 + 取消 + + + + + diff --git a/src/views/AddMemberView.vue b/src/views/AddMemberView.vue new file mode 100644 index 0000000..452ee32 --- /dev/null +++ b/src/views/AddMemberView.vue @@ -0,0 +1,107 @@ + + + + + ——新增会员—— + + + + + + 男 + 女 + + + + + + + + + + + + 提示:上传 300*300 的 png/jp(e)g 图片 + + + + + + + + 确定 + 取消 + + + + + diff --git a/src/views/CourseView.vue b/src/views/CourseView.vue index e15ffe7..fa75e59 100644 --- a/src/views/CourseView.vue +++ b/src/views/CourseView.vue @@ -1,9 +1,127 @@ - 这是课程列表页面 + + + + + + + + + + + + + + + + + 查询 + 新增 + + + + + + + + + + + + + + 进行中 + 已结束 + + + + + + + + {{ scope.row.remark }} + + + + + + + + + 删除 + + + + + + + + + + diff --git a/src/views/MemberView.vue b/src/views/MemberView.vue index c5a8b49..e0ef99e 100644 --- a/src/views/MemberView.vue +++ b/src/views/MemberView.vue @@ -1,9 +1,164 @@ - 这是会员列表页面 + + + + + + + + + + + + + + + + + + + + + + + + 查询 + 新增 + + + + + + + + + + 男 + 女 + + + + + + + + + {{ scope.row.remark }} + + + + + + + + 有效 + 过期:{{ scope.row.expireDate }} + + + + + + + + + 查看 + + + 暂无 + + + + + + + 续费 + 注销 + + + + + + + + + +