发表于: 2020-10-10 22:45:37
1 2129
一、开发工具
1.编译器:Visual Studio Code,微信开发者工具
2.版本管理器:svn
3.切图:Photoshop
二、整体架构
预期可能使用到的前后台框架插件:
(1)CSS预处理器:sass
(2)JS框架:vue
(3)脚手架:vue-cli4.5
(4)ui框架:后台用:element-ui,前台用: WeUI
(5)页面路由: vue-router
(6)html请求:axios
三、项目结构
前台
Src
|——images//存放图片
|——component//存放公共组件
|——pages//个人页面
|——HomePage(首页)
|——SignIn(签到)
|——StudentIdCard(学生证)
||——personalData(个人资料)
||——binding(绑定)
||——collectList(收藏列表)
|——Article(文章)
||——acticleList(文章列表)
||——acticleDetailPgaes(文章详情页)
|——Video(视频)
||——videoList(视频列表)
||——videoDetailPages(视频详情页)
|——untils
||——api.js(接口)
||——request.js(请求)
||——router.js(路由)
||——store.js(仓库)
后台
Src
|——Assets(图片)
|——Component(公共组件)
||——interceptor.js(拦截器)
||——router.js(路由)
||——store.js(vuex仓库)
||——axios(封装axios)
|——Backstage
|——UserManagement(用户管理)
||——userList.vue(用户列表)
||——userDetails.vue(用户详情)
|——ContentManagement(内容管理)
||——articleList.vue(文章列表)
||——articleDetails.vue(文章详情)
||——videoList.vue(视频列表)
||——videoDetails.vue(视频详情)
|——BackstageManagement(后台管理)
|——AccountManagement(账号管理)
||——accountList.vue(角色列表)
||——AccountIncrease.vue(新增账号)
||——editAccount.vue(编辑账号)
|——ChangePassword(修改密码)
||——changePassword.vue(修改密码)
|——RoleManagement(角色管理)
||——roleList.vue(角色列表)
||——roleEdit.vue(角色编辑)
||——roleIncrease.vue(角色新增)
|——MouduleManagement(模块管理)
||——mouduleList.vue(模块列表)
||——mouduleEdit.vue(模块编辑)
||——mouduleIncrease.vue(模块新增)
四、业务逻辑
前台:
门卫处
需求描述:
1.作为一名初高中生,我希望可以通过签到增长我的逆袭豆。这样便于用户在做某种事情上起到优惠的作用。
2.作为一名初高中生,我希望可以查看我的签到记录,这样便于用户知晓签到的情况。
验收标准:
1.在一级背景图上面可以看到签到按钮,点击签到按钮进入签到页面,签到页面展示用户头像、昵称、逆袭豆的数量和“签到”按钮。
2.点击“签到”,弹窗提示“签到成功,获得逆袭豆+x颗”。点击右上角叉号或弹窗展示3秒后自动消失。
3.签到成功之后,在日历上当天签到日期会用逆袭豆展示并按钮置灰变为“已签到”提醒“用户今日已签到”。日历上方展示用户累计签到和签到最高记录的数据。日历展示当月全部的天数。并且展示当天是几月-几号。不能查看之前签到的记录。
4.日历下面有签到规则,点击签到规则弹窗提示“签到领取逆袭豆,通过消耗逆袭豆可观看付费视频。首日签到可领取1颗逆袭豆,连续签到每日递增1颗。连续签到5天后,逆袭豆每日可领取5颗。签到中断逆袭豆可要重新计算呦~”点击空白处或右上角叉号弹窗即可消失
实现方案:
1、在页面中点击签到按钮,进入签到界面,向后端请求数据,获取用户头像,昵称,逆袭豆数量、今天的签到状态和签到的天数,渲染到页面上;
2、签到成功后,弹出一个窗口表面签到成功,通过定时器3s后关闭或点击空白处关闭,可加上遮罩层;
3、查看当月的签到状态,通过后端给的参数,利用条件语句判断是否签到,然后渲染一定的颜色上去,
4、通过后端给的签到状态,给按钮一个点击状态,已经签到的不可点击,并显示为“当天已经签到”
学生证
需求描述
1.作为一名第一次登录初高中生,我希望可以提示我默认调用微信基本信息,这样便于用户方便完善个人资料。
2.作为一名初高中生,我希望可以更改昵称、头像、选择年级,这样便于用户实时更新资料。
3.作为一名初高中生,我希望可以看到我收藏、这样便于用户想看的时候可以进行查看。
验收标准
1.在一级背景图上面可以看到学生证,点击学生证进入学生中心界面。个人资料可以看到学生的空头像、随机昵称、年级:未设置、逆袭豆:0颗。
2.点击资料可完善个人头像、昵称(限制14字之内)、年级的资料,点击保存修改,小窗提示“保存成功”。学生中心界面展示用户的头像、ID、昵称、年级、所在区域、逆袭豆颗数。点击逆袭豆可跳转门卫处进行签到。
3.我的收藏可根据文学部和影像部进行分别就收藏,按照收藏的时间倒叙排列。点击相应的文章跳转详情页面,详情页底部可对文章进行点赞和收藏,收藏有两种状态,分别提示“收藏成功”“取消收藏”。点赞和收藏的状态在列表会变现出来。eg:该文章被收藏或点赞的话会在列表页展示点赞和收藏的状态。在列表不可对文章进行点赞和收藏。
4.点击“账号与绑定设置”,进入绑定页面,可用手机号或邮箱进行绑定。输入正确的手机号或邮箱、正确的验证码,点击绑定则“绑定成功”并显示绑定成功页面,错误则提示相应的toast。分别有“请输入正确格式的邮箱”“请输入正确格式的手机号”“该手机号已绑定”“该邮箱已注册”“验证码错误”“验证超过3次,请明日再试”。首次绑定手机号/邮箱获得20颗逆袭豆,已经绑定手机号/邮箱其中一个的绑定第二个账号不再赠送逆袭豆。
实现方案:
1、wx判断本地缓存中是否有token,有的话,直接向后端发送请求,获取数据库用户信息,可以在个人资料中显示;没有的话,表明用户需要授权,弹出授权窗口,接受个人资料才能显示个人的信息,否则随机生成昵称;
2、点击收藏的时候,把当前的时间戳发会给后端,排序就按照收藏的时间进行排序;收藏功能在前台通过使用wx:for循环来实现,根据后端给的列表完成显示,
3、通过正则验证手机和邮箱的格式,跳出相应的提示,一天只能验证3次,则由后端来完成
文学部
需求描述:
1.作为一名初高中生,我希望可以看到文学文章列表,这样便于我更好的阅读文学文章。
2.作为一名初高中生,我希望可以对文章进行点赞和收藏,这样便于阅读自己认为好的文章。
3.作为一名初高中生,我希望在列表中可以展示作者的文章标题、作者昵称、发布时间、封面、摘要、收藏,点赞数,这样便于用户快速了解文章内容。
验收标准:
1.在一级背景图上面可以看到文学部,对背景大小可手动缩放,滑动并且可以查看全图。点击文学部进入文学文章界面。文章分为banner文章和列表的文章。列表中可以看到文章标题、封面、分类、作者、摘要、收藏数、点赞数、发表时间。banner图每3s滑动一次。
2.列表页的发表时间:1天之内都用小时来展示 - eg:6小时前;1天之外用日期来展示 - eg:2017-01-02,列表标题展示限制10字之后...。摘要展示限制25字之后…。列表以10条数据为一组进行“点击加载更多”。每加载一次刷新再次加载10条数据。没有数据时底部提示“已加载全部文章”,再点击“已加载全部文章”提示说明“哎呀,没有了,别点啦”。有文章点击则跳转象相应的文章详情下进行阅读。
3.点击列表页数据跳转相应的详情页。详情页展示文章的标题、发表时间、分类、作者、摘要、收藏数、点赞数。可在文章详情页对文章进行点赞和收藏。点击“收藏”成功提示“收藏成功”;取消提示“取消收藏”,收藏成功之后列表页的心也会变成收藏的状态。
实现方案:
1、在首页点击进入文学部列表;
2、轮播图使用swiper,设置3s一次
3、列表页的发表时间使用小时来显示,类如2小时前;超过24小时,显示日期,格式为2020-10-10
4、当用户滑倒页面底部,触发页面的触底监听函数,然后调用开发者设计的触底函数,进行相关请求。其中,请求第二页的数据时,会对返回的数组与原有的数组合并,并把新数组发送到data中,渲染到页面;
5、详情页包括文章的标题、发表时间、分类、作者、摘要、收藏数、点击数,点击收藏弹1出提示显示收藏成功,取消提示取消收藏,相应的也会改变红心的显示
影像部
需求描述
1.作为一名初高中生用户,我希望有教学视频的内容,以便于我能够观看视频进行学习。
2.作为一名初高中生用户,我希望视频可以按照年级、科目和视频列表展示内容,以便于我能够选择符合自己需求的视频。
3.作为一名初高中生用户,我希望在视频列表中可以展示视频的详细信息,以便于我选择是否观看此视频。
4.作为一名初高中生用户,我希望在视频详情里可以看到视频的标题、老师昵称、发布时间、播放视频、文字内容、收藏点赞数,这样便于我更清晰的浏览视频和内容。
验收标准
1.进入影像部路径:
在一级背景图上面可以看到影像部,对背景大小可手动缩放,滑动并且可以查看全图。点击影像部进入视频界面。
2.影像部列表页面:
页面分为年级科目列表、banner图和视频列表。
字段显示:每次进入影像部列表页都默认显示年级和科目。
视频列表显示有两种情况:
a在学生证中设置年级后(如:高三),进入影像部,视频列表为高三的全部科目视频。
b.在学生证中未设置年级,进入影像部,列表页视频为全部科目视频。由用户自由选择。
(1)年级科目:点击年级和科目后,展示的视频内容同步更新。
(2)banner图:banner图进行轮播显示,最多8张,banner图无内容链接则点击无反应;有内容链接则跳转相应的内容详情进行浏览。
(3)视频列表:列表中可以看到老师头像、昵称、视频简介、收藏数、点赞数、发表时间。
老师头像和昵称在左上角显示;视频简介:初始最多显示两行内容,超过两行后出现更多按钮,点击更多展出全部简介内容。每行最多显示27个字,超过27字另起一行。
收藏数和点赞数不可以在列表页操作;发表时间:不足1小时,按 –eg:1小时前 显示;24小时之内都用小时来展示 - eg:6小时前;24小时之外用日期来展示 - eg:2017-01-02;
(4) 列表视频中内容展示:展示视频标题、视频时长、观看视频按钮。
视频标题:视频标题展示一行限制20字,超过20字另起一行,默认居中对齐
视频时长:-eg 04:35
观看视频按钮:播放键
数据加载:列表以10条数据为一组进行“点击加载更多”,每加载一次刷新再次加载10条数据。没有数据时底部提示“哎呀,没有了,别点啦”。
3.影像部视频详情页:
(1)点击视频列表中的某一部视频可跳转到相应的详情页,详情页展示视频的标题、老师昵称、发表时间、简介、视频播放框、正文内容、收藏数、点赞数。点击视频播放框播放按键对视频进行播放。
(2)点赞:点击空心点赞图标,图标状态点亮,数字统计+1,再点击点亮图标,状态改回初始状态,数字统计-1。
收藏:点击空心收藏图标,图标状态点亮,数字统计+1,提示“收藏成功”,再点击收藏图标,状态改回初始状态,数字统计-1。提示“取消收藏”。
小窗功能:边看视频边浏览。观看视频过程中,向下滚动时,视频播放窗口会保持在顶部,向上滚动到顶部时,回到最初始状态。
影像列表实现方案:
1、字数超过20个自动换行,利用正则表达式来实现;
2、进入影视部,根据学生证的资料显示相对应年级的资料,如果未设置,则显示全部的资料;根据设置的年级和科目,通过wx:for渲染不同的数据上去;
3、发送请求获取轮播图的数据,若图片中存在url可以点击跳转;
4、简介字数超过27个自动换行,利用正则表达式来实现;用js实现字数超过一定字数的时候,超过的字数使用“...”来显示,当点击更多的时候,显示为原来的字体
影像详情页实现方案:
1、进入影视部,根据学生证的资料显示相对应年级的资料,如果未设置,则显示全部的资料;
2、点赞通过后端中传过来的状态决定点赞图标的状态,
3、使用sticky粘性布局实现。观看视频时,向下滚动,视频播放窗口会固定在当前页面,内容会随着下拉展示;
后台
暂时只写完前台的,熟悉每一步的开发流程;
评论