承接国内外服务器租用托管、定制开发、网站代运营、网站seo优化托管接单、网站代更新,新老站点皆可!!咨询QQ:3787320601

如何快速开发一款课程App?(安卓课程开发)

管理员 2023-03-02 09:00:20 软件开发 67 ℃ 0 评论 11382字 收藏

如何快速开发一款课程App?(安卓课程开发)

课程是现在学生最常用的功能之一,那么如何快速实现课程的功能呢?

首先展示项目效果:

接下来,详细说明了课程功能的实现。

echo0-@.com这个项目是基于AVM多终端框架编写的,所以我们需要找到一种方法来构造特定的数据,然后改变这些数据。这个项目的核心业务是课程数据的处理,难点在于课表的添加。

项目主要是针对大学课程设计的,课程存在很多不确定性,比如课程周数可能是连续的也可能是不连续的,上课时间可能是1-2节或者一整天,教室也可能不一样,所以课程的数据结构如下。

后端需要提供当前周,当前周 的课程数据,添加课程等界面。当然课程数据查询比较复杂,这里就不讨论了。前端主要是显示指定位置的日程信息,数据比较简单。

echo1-@.com

echo2-@.com

这个数据需要重新整理,因为球场需要放在指定的位置,离顶部的距离和它的高度必须知道。可以通过上课时间jie这个参数得到身高和top。

let data = [{

姓名和名称。;: ;大数据可视化技术与应用。;,

房间 : ;计算机房C414 ,

工作日 : ;3 ,

bg : ;2 ,

杰 : ;3-4 ;,

top : ;140像素。;,

身高和体重。;: ;140像素。;

}]

横向分为8块,每块宽12.5%,高70px,默认可显示13节课。默认情况下,课程背景有7种样式,周的左侧参数有7种样式,课程会话的顶部参数有12种样式。具体的css样式如下:

。BG-1 { backgroundecho12-@.com线性渐变(#facea8,#fe8979)}

。BG-2 { backgroundecho13-@.com线性梯度(#dfc3fe,#90c5fb)}

。BG-3 { backgroundecho14-@.com线性梯度(#9decho15-@.com线性梯度(#eeba93,#dd65c7)}

。BG-5 { backgroundecho16-@.com线性渐变(#e6f6c9,#68e1b5)}

。BG-6 { backgroundecho17-@.com线性梯度(#dfc3fe,#dd65c7)}

。BG-7 { backgroundecho18-@.com线性梯度(#c8:12.5%;}

。第2周{l:25%;}

。第3周{l:37.5%;}

。第4周{l:50%;}

。第5周{l:62.5%;}

。第6周{l:75%;}

。第0周{l:87.5%;}每门课程绝对定位宽度一致,高度和位置根据上课时间确定。代码如下:

查看class = "课程列表 "

查看v-for = "(rs,kecho26-@.com·基= "钥匙和钥匙echo27-@.com大学 课程周。;卢比工作日

BG- ;rs.bg ":styl: ;身高和身高。;;top: ;rs.top "

text class = "课程名称及名称{{rs.name}}/text

text class = "教室和教室{{rs.room}}/techo3-@.com

获取当前周的时间代码,如下所示:

this . setdate(new Date());

设置日期(日期){

设arr =[];

让week = date.getDay() - 1;

date = this.addDate(日期,周*-1);

this.curr:this . adddate(date,1))

}

this.week_data = arr

this.currentWeek()

},

addDate(日期,n) {

date . set date(date . getdate()n);

返回日期;

},

formatDate(日期){

let year = date . get full year();

let month =(date . getmonth()1);

let day = date . getdate();

让week =[ ;周日 , 星期一 , 星期二 , 星期三 , 星期四 , 星期五 , 星期六 ][date . getday()];

this.currecho32-@.com周,";datecho33-@.com月 / ;天,";activecho34-@.com假};

},

//当前周

当前周(){

let Date = new Date();

let weekday = date . getday();

if (weekday == 1) {

this.week_data[0]。活动=真

} else if (weekday == 2) {

this.week_data[1]。活动=真

} else if (weekday == 3) {

this.week_data[2]。活动=真

} else if(工作日== 4) {

this.week_data[3]。活动=真

} else if (weekday == 5) {

this.week_data[4]。活动=真

} else if (weekday == 6) {

this.week_data[5]。活动=真

} else if (weekday == 0) {

this.week_data[6]。活动=真

}

}上周和下周 对应的代码:

last() {

如果(本周1) {

本周=本周- 1

this . set date(this . add date(this . current first date,-7));

}

},

下一个(){

如果(本周20) {

本周=本周1

this . set date(this . add date(this . currecho4-@.com

这个项目主要是为大学课程设计的。因为上课的时间和地点可能是不规律的,所以需要考虑几个因素,比如周数,节日数,上课的星期和地点。为了方便用户快速添加课程,同一门课程可以支持添加多个课时。页面业务逻辑有点复杂因为只有周选和时间选,所以分为两个部分:上课-周/上课-周上课-时间/上课-时间。

该课程的主要领域如下:

name: ;大学计算机与工程。;,//课程名称

room: ;计算机房C411 ,//教室

teachere CHO 37-@ . com ;李国海 ,//老师

weekday: ;0 ,//周

weeks: ;1-9,11-20 ;,//类的数量。

Jie : ;5-9 ;,//类

bg: ;1 ,//课程颜色,系统提供7种颜色。大学的课时可能是不规律的,课时数可能不是20周。周数大致分为单双周和其他。周数的格式如下:

不定期周格式:1-9,111,13,15-201-20周格式:1,3,5,7,9,11,13,15,17,191-20周格式:2,4,6,8,10,12,14,16,18,20。

页面初始数据,默认1-24周全部选中。

(1)单周选择(1),双周选择(2),全选(0),具体业务处理源代码如下:

选择(n) {

(让我在这几周内){

这.周[我]。开=假

}

if (n == 1) {

if (this.choose == 1) {

this.choose = 3

}否则{

this.choose = 1

for(设I = 0;I this . weeks . length;i ) {

如果(this.weeks[i].第% 2!= 0) {

这.周[我]。开=真

}

}

}

} else if (n == 2) {

if (this.choose == 2) {

this.choose = 3

}否则{

this.choose = 2

for(设I = 0;I this . weeks . length;i ) {

如果(this.weeks[i].第% 2周== 0) {

这.周[我]。开=真

}

}

}

} else if (n == 0) {

if (this.choose == 0) {

this.choose = 3

}否则{

this.choosecho42-@.com结果.加入( , ) });//格式为1-9,11,13,15-20。

} class-time/class-timecho43-@.com[

{ name : ;星期一 ,onecho45-@.com假},

{姓名46-@ . com ;星期二 ,onecho47-@.com假},

{ name : ;星期三 ,onecho49-@.com假},

{ name : ;星期四 ,onecho51-@.com假},

{ name : ;星期五 ,onecho53-@.com假},

{ name : ;星期六 ,onecho55-@.com假},

{ name : ;周日 ,onecho57-@.com假}

],

tim:base . class _ timecho59-@.com[],

maskecho60-@.com假的,

ji: ; ,

w:0

class_time() {

let data = [

{ 杰 : ;第一节。;;tim:;08:30-09:15 ;},

{ 杰 : ;第二节 ;tim:;09:25-10:10 ;},

{ 杰 : ;第三节。;;tim:;10:25-11:10 ;},

{ 杰 : ;第四节。;;tim:;11:20-12:05 ;},

( 杰 : ;第五节。;、;timecho80-@.com、;14echo81-@.com和00-14echo82-@.com。;),

{ jIe : ;第六节。;、;timecho84-@.com、;14echo85-@.com和55-15:40 ;},

{ 杰 : ;第七节。;、;timecho88-@.com、;15echo89-@.com和55-16:40 ;},

{ 杰 : ;第八节。;、;timecho92-@.com、;16echo93-@.com和50-17:35 ;},

{ 杰 : ;第九节。;;tim:;17:45-18:30 ;},

{ 杰 : ;第10节。;、30-19echo102-@.com、;18echo101-@.com、;tim:00 ;},

{ 杰 : ;第11节。;、;timecho104-@.com、;19echo105-@.com和00-19echo106-@.com。;},

{ 杰 : ;第12节 ;tim:;19:50-20:35岁;;},

{ 杰 : ;第13条 、45-21echo114-@.com、;20echo113-@.com、;timecho112-@.com,30岁 }

]

返回数据;

}选择类数(比如5-9需要判断点击后选择的数据是否为连续数)。函数set_time (index)的源代码如下:

set_time(index) {

让杰=(指数1);

//判断是否已经添加。

if (this.isInArray(this.num_arr,jie)) {

this.delArrItem(this.num_arr,Jie);

this.num_arr.sort(function (x,y) {

返回x-y;

});

//console . log( ;删除 杰)

if(this . iscontinuitynum(this . num _ arr)){

this.times[index].td1 =假

}否则{

//console . log( ;删除后不连续。;)

this.times[index].td1 =真

this.num_arr.push(杰);

this.num_arr.sort(function (x,y) {

返回x-y;

});

api.toast({

msg: ;课时必须是连续的。;

});

}

}否则{

this.num_arr.push(杰);

this.num_arr.sort(function (x,y) {

返回x-y;

});

if(this . iscontinuitynum(this . num _ arr)){

this.times[index].td1 =真

}否则{

//console . log( ;添加 amp后不连续。;)

this.delArrItem(this.num_arr,Jie);

this.num_arr.sort(function (x,y) {

返回x-y;

});

this.times[index].td1 =假

api.toast({

msg: ;课时必须是连续的。;

});

}

}

this . Jie = this . num _ arr[0] ;- ;this . num _ arr[(this . num _ arr . length-1)];//格式1-2

}

//删除数组元素

delar item(arr,item) {

for(var I = 0;长度;i ) {

if (arr[i] === item) {

if (arr[i 1] === item) {

剪接排列(I,1);

I-;

继续;

}

排列拼接(I,1);

}

}

返回arr

},

//判断是否是连续数。

isContinuityNum(数组){

如果(!数组){

//数组为空。

返回false

}

if (array.length == 0) {

//数组是[]

返回true

}

var len = array.length

var n0 = array[0];

var sort direction = 1;//默认升序

if (array[0] array[len - 1]) {

//降序排列

sort direction =-1;

}

if ((n0 * 1 (len - 1) * sortDirection)!== array[len - 1]) {

//筛出[ ;3 ,4,5,6,7,8]

返回false

}

var isContinuation = true

for(var I = 0;我leni ) {

if (array[i]!== (i n0 * sortDirection)) {

isContinuation = false

打破;

}

}

返回isContinuation

},

//确定元素是否在数组中。

isInArray(arr,value) {

for(var I = 0;长度;i ) {

if (value == arr[i]) {

返回true

}

}

返回false

}最终前端需要提交给后端的数据格式如下:

year id: ;200 ,//学年id,这里指的是那个学期的课程。

name: ;大学计算机与工程。;,//课程名称

teachere CHO 119-@ . com ;李国海 ,//老师

bg: ;1 ,//课程颜色,系统提供7种颜色。

class_timecho121-@.com[

{ weeks: ;1-20 ;,room: ;怡娇A307 ,w: ;1 、ji: ;1-2 ;},

{ weeks: ;1-20 ;,room: ;计算机房C405 ,weekday: ;3 还有Jie : ;3-4 ;}

】以上就是这个开发派的全部内容。如果有用,请点赞,分享评论~

文章来源:丸子建站

文章标题:如何快速开发一款课程App?(安卓课程开发)

https://www.wanzijz.com/view/1099.html

X

截屏,微信识别二维码

微信号:weimawl

(点击微信号复制,添加好友)

打开微信