SingleImageCardComponent.ets
2.41 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
import { Action, CompDTO, Params } from 'wdBean';
import { ExtraDTO } from 'wdBean/src/main/ets/bean/component/extra/ExtraDTO';
import { WDRouterRule } from 'wdRouter';
import { ProcessUtils } from '../../utils/ProcessUtils';
const TAG = 'SingleImageCardComponent';
const FULL_PARENT: string = '100%';
/**
* 单图卡-3行标题/2行标题
* 枚举值13
* ImageCard-03
* 重磅推荐/精选/电视剧/电影/综艺/短剧/更多>/
*/
@Component
export struct SingleImageCardComponent {
@State compDTO: CompDTO = {} as CompDTO
@State titleNumber: number = 3 //标题行数
aboutToAppear() {
// Logger.debug(TAG + "" + JSON.stringify(this.compDTO.operDataList));
if (this.compDTO.operDataList[0].newsTitle.length > 26) {
this.titleNumber = 3;
} else {
this.titleNumber = 2;
}
}
build() {
Row() {
Column() {
Text(this.compDTO.operDataList[0].newsTitle)
.fontSize(16)
.fontWeight(FontWeight.Normal)
.maxLines(this.titleNumber)//
.alignSelf(ItemAlign.Start)
.textOverflow({ overflow: TextOverflow.Ellipsis })// 超出的部分显示省略号。
.height(this.titleNumber === 3 ? "80%" : '65%')
Row() {
Text('人民日报')
.height(40)
.fontSize(14)
.fontColor(Color.Gray)
Image($r('app.media.point'))
.width(16)
.height(16)
Text('45分钟前')
.height(40)
.fontSize(14)
.fontColor(Color.Gray)
Text(this.compDTO.operDataList[0].visitorComment + '评')
.height(40)
.fontSize(14)
.fontColor(Color.Gray)
.padding({
left: 10
})
}.alignSelf(ItemAlign.Start)
.height(this.titleNumber === 3 ? "20%" : '35%')
.justifyContent(FlexAlign.SpaceBetween)
}
.alignItems(HorizontalAlign.Start)
.justifyContent(FlexAlign.SpaceBetween)
.width('58%')
Blank(16)
Image(this.compDTO.operDataList[0].coverUrl)
.height('78vp')
.borderRadius(5)
.aspectRatio(3 / 2)
}
.onClick((event: ClickEvent) => {
ProcessUtils.processPage(this.compDTO?.operDataList[0])
})
.padding(
{ top: 16, bottom: 16, left: 14, right: 14 })
.width(FULL_PARENT)
.height(this.titleNumber === 3 ? '127vp' : '106vp')
.justifyContent(FlexAlign.SpaceBetween)
}
}