其他数据结构规范

[toc]

数据结构规范–卡片

一、内容卡片规范

1、内容卡片规范

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
[
{
"cardType": "content",
"contentCard": {

},
"userCard": {

},
"bannerCards": [

]
},
{
"cardType": "user",
"contentCard": {

},
"userCard": {

},
"bannerCards": [

]
},
{
"cardType": "banner",
"contentCard": {

},
"userCard": {

},
"bannerCards": [

]
}
]

2、需求1:长按卡片,弹出反馈列表。

分析:因为同一个卡片在不同业务页面,不一定都可以进行反馈,所以需要提前知道每个卡片在不同业务页面是否可以进行反馈,甚至是知道可以进行哪些反馈选项操作。

方案1:提前知道每个卡片在不同业务页面是否可以进行反馈。

后台数据返回

1
2
3
4
"canNegativeCardTypes": [
"mallHomePage#cardType_content",
"mallHomePage#cardType_user"
]

代码实现

1
2
3
4
5
6
7
8
9
10
11
12
void longPressCard() {
var cardType = "content";
var position = "mallHomePage";
var flag = "$position#cardType_$cardType"
bool canNegative = canNegativeCardTypes.contains(flag);
if (!canNegative) {
return; // 不用相应
}

List<NegativeModel> negativeModels = await request(Url, {flag: flag});
showNegativeList(negativeModels);
}

方案2:提前知道每个卡片在不同业务页面可以进行哪些反馈选项操作。

后台数据返回

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
"negativeFeedbackConfig": {
"mallHomePage": {
"cardType_content": [
{
"image": "xxx.png",
"text": "不喜欢该内容",
"negativeId": 1
},
{
"image": "xxx.png",
"text": "不喜欢该作者",
"negativeId": 2
},
{
"image": "xxx.png",
"text": "举报",
"negativeId": 3
}
],
"cardType_user": [
{
"image": "xxx.png",
"text": "不喜欢该作者",
"negativeId": 2
},
{
"image": "xxx.png",
"text": "举报",
"negativeId": 3
}
],
}
}

代码实现

1
2
3
4
5
6
void longPressCard() {
var cardType = "content";
var position = "mallHomePage";
List<NegativeModel> negativeModels = negativeFeedbackConfig[$position][cardType_$cardType];
showNegativeList(negativeModels);
}

End