2025-05-13 11:52:42 +08:00

152 lines
4.3 KiB
Plaintext

import { MeetingItemModel,ItemModel } from '../model/ItemModel'
import { BasicConstant } from '@itcast/basic'
@Preview
@Component
export struct ItemComp {
item: MeetingItemModel = new MeetingItemModel({} as ItemModel)
@State timeColor:ResourceStr=$r('app.color.ee432f')
@State status:string=''
aboutToAppear(): void {
this.getMeetingStatus()
}
build() {
Column() {
Text().height(1).width('100%')
if(this.item.count==0)
{
Text(this.item.begin_date.substring(0, 4)
+ "年"
+ this.item.begin_date.substring(5, 7)
+ "月").fontSize(14).fontColor($r('app.color.333333')).height(35)
}
RelativeContainer()
{
Text().width(23).backgroundColor(this.timeColor).borderRadius(5).height('100%')
RelativeContainer(){
Column()
{
Text(this.item.title) .maxLines(2).fontSize(15).fontColor(Color.Black).textAlign(TextAlign.Start)
.textOverflow({ overflow: TextOverflow.Ellipsis }).id('title').width('100%')
RelativeContainer()
{
Stack()
{
Image(BasicConstant.urlHtml+this.item.liveimg).width('100%').height(162)
.objectFit(ImageFit.Fill)
if(this.status!=''&&this.status!='已结束'&&this.status!='回访中')
{
Image($r('app.media.bofang')).width(40).height(40)
}
}
if(this.status!='')
{
Text(this.status) .fontSize(13).margin({top:5,right:5})
.fontColor(Color.White).padding({left:10,right:10,top:1,bottom:1})
.alignRules({
right: { anchor: "__container__", align: HorizontalAlign.End }
})
.border({ width:1, color:Color.White })
.borderRadius(30)
}
}
.height(162).backgroundColor(Color.Orange)
.margin({top:10,right:5}).clip(true).id('rr')
Row(){
Image($r('app.media.meetingtime')).width(13).height(13)
Text(this.getTime(this.item.begin_date,this.item.end_date)).fontSize(14)
.fontColor($r('app.color.999999')).margin({left:10})
Blank()
Image($r('app.media.meetinglocation')).width(15).height(15)
Text(this.item.location).fontSize(14)
.fontColor($r('app.color.999999')).margin({left:10})
}
.width('100%')
.margin({top:6})
}.height(247).justifyContent(FlexAlign.Center).margin({left:20,right:5})
}
.height('100%').clip(true)
.margin({left:20,right:5}).backgroundColor(Color.White)
Text(this.item.begin_date.substring(8,10)).width(20).height(20) .alignRules({
bottom: { anchor: "__container__", align:VerticalAlign.Center}
})
.margin({left:10})
.fontSize(14)
.fontColor(this.timeColor)
.textAlign(TextAlign.Center)
.backgroundColor(Color.White)
.borderRadius(20)
}.width('100%').height(247).clip(true).
backgroundColor(Color.White).borderRadius(5)
}.backgroundColor($r('app.color.e4e4e4'))
.width('100%').padding({left:10,right:10,bottom:20}).clip(true)
}
getTime(str1:string, str2:string) {
if (str1.substring(0, 10)==(str2.substring(0, 10))) {
return str1.replaceAll("-", ".").substring(0, 10).toString();
}
return str1.replaceAll("-", ".").substring(0, 10)+"-"+str2.replaceAll("-", ".").substring(0, 10)
}
getMeetingStatus()
{
if(this.item.count%4==0)
{
this.timeColor=$r('app.color.ee432f')
}
else if(this.item.count%4==1)
{
this.timeColor=$r('app.color.f9b928')
}
else if(this.item.count%4==2)
{
this.timeColor=$r('app.color.63ccc7')
}
else
{
this.timeColor=$r('app.color.99d750')
}
if('1'==this.item.status)
{
this.status='预告'
}
else if('2'==this.item.status)
{
this.status='直播中'
}
else if('3'==this.item.status)
{
this.status='已结束'
}
else if('4'==this.item.status)
{
this.status='回放中'
}
else
{
this.status=''
}
}
}