koishi-plugin-rocom 1.0.9 → 1.0.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/client.d.ts +4 -2
- package/lib/client.js +10 -16
- package/lib/commands/query.js +0 -56
- package/lib/index.js +0 -1
- package/lib/render.js +0 -3
- package/package.json +1 -1
- package/readme.md +3 -4
- package/lib/render-templates/student/index.html +0 -95
- package/lib/render-templates/student/style.css +0 -255
- package/lib/render-templates/student-perks/index.html +0 -78
- package/lib/render-templates/student-perks/style.css +0 -238
- package/lib/render-templates/student-state/index.html +0 -52
- package/lib/render-templates/student-state/style.css +0 -157
package/lib/client.d.ts
CHANGED
|
@@ -51,8 +51,10 @@ export declare class RocomClient {
|
|
|
51
51
|
ingameHomeInfo(ctx: Context, uid: string, waitMs?: number): Promise<any>;
|
|
52
52
|
ingameMerchantInfo(ctx: Context, shopId: string | number): Promise<any>;
|
|
53
53
|
getFriendship(ctx: Context, fwToken: string, userIds: string, userIdentifier?: string): Promise<any>;
|
|
54
|
-
getStudentState(ctx: Context, fwToken: string, accountType?: number, userIdentifier?: string): Promise<any>;
|
|
55
|
-
getStudentPerks(ctx: Context, fwToken: string, area?: number, accountType?: number, userIdentifier?: string): Promise<any>;
|
|
56
54
|
searchWikiPet(ctx: Context, query: string, limit?: number): Promise<any>;
|
|
57
55
|
searchWikiSkill(ctx: Context, query: string, limit?: number): Promise<any>;
|
|
56
|
+
getWikiPetDetail(ctx: Context, options: {
|
|
57
|
+
id?: number;
|
|
58
|
+
name?: string;
|
|
59
|
+
}): Promise<any>;
|
|
58
60
|
}
|
package/lib/client.js
CHANGED
|
@@ -516,25 +516,19 @@ class RocomClient {
|
|
|
516
516
|
async getFriendship(ctx, fwToken, userIds, userIdentifier = '') {
|
|
517
517
|
return this.get(ctx, '/api/v1/games/rocom/social/friendship', this.rocomHeaders(fwToken, userIdentifier), { user_ids: userIds });
|
|
518
518
|
}
|
|
519
|
-
async getStudentState(ctx, fwToken, accountType, userIdentifier = '') {
|
|
520
|
-
const params = {};
|
|
521
|
-
if (accountType !== undefined)
|
|
522
|
-
params.account_type = accountType;
|
|
523
|
-
return this.get(ctx, '/api/v1/games/rocom/activity/student-state', this.rocomHeaders(fwToken, userIdentifier), params);
|
|
524
|
-
}
|
|
525
|
-
async getStudentPerks(ctx, fwToken, area, accountType, userIdentifier = '') {
|
|
526
|
-
const params = {};
|
|
527
|
-
if (area !== undefined)
|
|
528
|
-
params.area = area;
|
|
529
|
-
if (accountType !== undefined)
|
|
530
|
-
params.account_type = accountType;
|
|
531
|
-
return this.get(ctx, '/api/v1/games/rocom/activity/perks', this.rocomHeaders(fwToken, userIdentifier), params);
|
|
532
|
-
}
|
|
533
519
|
async searchWikiPet(ctx, query, limit = 10) {
|
|
534
|
-
return this.get(ctx, '/api/v1/games/rocom/
|
|
520
|
+
return this.get(ctx, '/api/v1/games/rocom/pet/list', this.wegameHeaders(), { q: query, page_size: limit });
|
|
535
521
|
}
|
|
536
522
|
async searchWikiSkill(ctx, query, limit = 10) {
|
|
537
|
-
return this.get(ctx, '/api/v1/games/rocom/
|
|
523
|
+
return this.get(ctx, '/api/v1/games/rocom/pet/skill-users', this.wegameHeaders(), { skill: query, limit });
|
|
524
|
+
}
|
|
525
|
+
async getWikiPetDetail(ctx, options) {
|
|
526
|
+
const params = {};
|
|
527
|
+
if (options.id !== undefined)
|
|
528
|
+
params.id = options.id;
|
|
529
|
+
if (options.name)
|
|
530
|
+
params.name = options.name;
|
|
531
|
+
return this.get(ctx, '/api/v1/games/rocom/pet/detail', this.wegameHeaders(), params);
|
|
538
532
|
}
|
|
539
533
|
}
|
|
540
534
|
exports.RocomClient = RocomClient;
|
package/lib/commands/query.js
CHANGED
|
@@ -1153,45 +1153,6 @@ function buildFriendshipRenderData(payload, userIds) {
|
|
|
1153
1153
|
copyright: 'Koishi & WeGame Locke Kingdom Plugin',
|
|
1154
1154
|
};
|
|
1155
1155
|
}
|
|
1156
|
-
function buildStudentRenderData(statePayload, perksPayload, area, accountType) {
|
|
1157
|
-
const school = statePayload?.school || statePayload?.school_name || '未返回';
|
|
1158
|
-
const certified = String(statePayload?.certified) === '1';
|
|
1159
|
-
const cards = perksPayload?.cards || [];
|
|
1160
|
-
return {
|
|
1161
|
-
title: '洛克学生',
|
|
1162
|
-
subtitle: `大区:${area} 账号类型:${accountTypeText(accountType)}`,
|
|
1163
|
-
heroTitle: '学生信息总览',
|
|
1164
|
-
heroValue: certified ? '已通过' : '未认证',
|
|
1165
|
-
heroSubvalue: school,
|
|
1166
|
-
summaryCards: [
|
|
1167
|
-
{ label: '认证状态', value: certified ? '已认证' : '未认证' },
|
|
1168
|
-
{ label: '学校', value: school },
|
|
1169
|
-
{ label: '奖励数量', value: String(cards.length) },
|
|
1170
|
-
],
|
|
1171
|
-
stateItems: [
|
|
1172
|
-
{ label: '学生认证', value: certified ? '是' : '否' },
|
|
1173
|
-
{ label: '游戏内认证', value: String(statePayload?.game_certified) === '1' ? '是' : '否' },
|
|
1174
|
-
{ label: '学校', value: school },
|
|
1175
|
-
{ label: '上游状态', value: statePayload?.result?.error_message || 'WG_COMM_SUCC' },
|
|
1176
|
-
{ label: '上游错误码', value: stringifyInspectValue(statePayload?.result?.error_code || 0) },
|
|
1177
|
-
],
|
|
1178
|
-
perkCards: cards.map((card) => ({
|
|
1179
|
-
name: card.name || `奖励 #${card.id || '-'}`,
|
|
1180
|
-
count: card.count || 0,
|
|
1181
|
-
desc: card.desc || '暂无说明',
|
|
1182
|
-
icon: card.icon || '',
|
|
1183
|
-
id: stringifyInspectValue(card.id),
|
|
1184
|
-
stateText: `状态码 ${stringifyInspectValue(card.state)}`,
|
|
1185
|
-
})),
|
|
1186
|
-
detailItems: Object.entries(perksPayload || {})
|
|
1187
|
-
.filter(([key, value]) => !['cards', 'result'].includes(key) && (value === null || typeof value !== 'object'))
|
|
1188
|
-
.map(([key, value]) => ({ label: key.replace(/_/g, ' '), value: stringifyInspectValue(value) })),
|
|
1189
|
-
stateResult: statePayload?.result?.error_message || 'WG_COMM_SUCC',
|
|
1190
|
-
perksResult: perksPayload?.result?.error_message || 'WG_COMM_SUCC',
|
|
1191
|
-
commandHint: '洛克.学生 [area] [account_type]',
|
|
1192
|
-
copyright: 'Koishi & WeGame Locke Kingdom Plugin',
|
|
1193
|
-
};
|
|
1194
|
-
}
|
|
1195
1156
|
function sessionTarget(session) {
|
|
1196
1157
|
return {
|
|
1197
1158
|
platform: session?.platform || session?.bot?.platform || '',
|
|
@@ -1866,23 +1827,6 @@ function register(deps) {
|
|
|
1866
1827
|
return `好友关系查询失败:${client.getLastErrorBrief()}`;
|
|
1867
1828
|
await sendImage(deps, session, 'friendship', buildFriendshipRenderData(res, userIds), `【好友关系】${userIds}`);
|
|
1868
1829
|
});
|
|
1869
|
-
ctx.command('洛克').subcommand('.学生 [area:number] [accountType:number]', '查询学生认证状态与学生活动福利')
|
|
1870
|
-
.alias('洛克学生')
|
|
1871
|
-
.action(async ({ session }, area = 101, accountType = 0) => {
|
|
1872
|
-
const fwToken = await (0, account_1.getPrimaryToken)(deps, session.userId);
|
|
1873
|
-
if (!fwToken)
|
|
1874
|
-
return (0, account_1.notLoggedInHint)();
|
|
1875
|
-
const userIdentifier = session.userId;
|
|
1876
|
-
const [stateRes, perksRes] = await Promise.all([
|
|
1877
|
-
client.getStudentState(ctx, fwToken, accountType, userIdentifier),
|
|
1878
|
-
client.getStudentPerks(ctx, fwToken, area, accountType, userIdentifier),
|
|
1879
|
-
]);
|
|
1880
|
-
if (!stateRes)
|
|
1881
|
-
return `学生认证状态查询失败:${client.getLastErrorBrief()}`;
|
|
1882
|
-
if (!perksRes)
|
|
1883
|
-
return `学生活动福利查询失败:${client.getLastErrorBrief()}`;
|
|
1884
|
-
await sendImage(deps, session, 'student', buildStudentRenderData(stateRes, perksRes, area, accountType), '【洛克学生】认证与福利信息');
|
|
1885
|
-
});
|
|
1886
1830
|
ctx.command('订阅家园菜园 [uid:string]', '订阅指定 UID 的家园菜园成熟提醒')
|
|
1887
1831
|
.action(async ({ session }, uid = '') => subscribeHome(deps, session, uid, 'garden'));
|
|
1888
1832
|
ctx.command('订阅家园灵感 [uid:string]', '订阅指定 UID 的家园精灵灵感完成提醒')
|
package/lib/index.js
CHANGED
package/lib/render.js
CHANGED
package/package.json
CHANGED
package/readme.md
CHANGED
|
@@ -10,10 +10,9 @@
|
|
|
10
10
|
---
|
|
11
11
|
|
|
12
12
|
临时APIKey(任选其一)
|
|
13
|
-
sk-
|
|
14
|
-
|
|
15
|
-
sk-
|
|
16
|
-
sk-5c14c1e5da063037d02c15e50285dd04
|
|
13
|
+
sk-0c1476b201301170e6360453becb27f5
|
|
14
|
+
|
|
15
|
+
sk-481029d0d4fc412ce9ebb391397c1e5c
|
|
17
16
|
|
|
18
17
|
---
|
|
19
18
|
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="zh-CN">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="utf-8">
|
|
5
|
-
<meta name="viewport" content="width=1280, initial-scale=1">
|
|
6
|
-
<link rel="stylesheet" href="{{_res_path}}render/student/style.css">
|
|
7
|
-
</head>
|
|
8
|
-
<body>
|
|
9
|
-
<div class="student-page">
|
|
10
|
-
<div class="page-header">
|
|
11
|
-
<div class="page-title">{{title}}</div>
|
|
12
|
-
<div class="page-subtitle">{{subtitle}}</div>
|
|
13
|
-
</div>
|
|
14
|
-
|
|
15
|
-
<div class="hero-card">
|
|
16
|
-
<div class="hero-title">{{heroTitle}}</div>
|
|
17
|
-
<div class="hero-value">{{heroValue}}</div>
|
|
18
|
-
<div class="hero-subvalue">{{heroSubvalue}}</div>
|
|
19
|
-
</div>
|
|
20
|
-
|
|
21
|
-
<div class="summary-grid">
|
|
22
|
-
{{each summaryCards item}}
|
|
23
|
-
<div class="summary-card">
|
|
24
|
-
<div class="summary-label">{{item.label}}</div>
|
|
25
|
-
<div class="summary-value">{{item.value}}</div>
|
|
26
|
-
</div>
|
|
27
|
-
{{/each}}
|
|
28
|
-
</div>
|
|
29
|
-
|
|
30
|
-
<div class="dual-grid">
|
|
31
|
-
<div class="panel-card">
|
|
32
|
-
<div class="section-title">认证信息</div>
|
|
33
|
-
<div class="detail-card">
|
|
34
|
-
{{each stateItems item}}
|
|
35
|
-
<div class="detail-row">
|
|
36
|
-
<div class="detail-label">{{item.label}}</div>
|
|
37
|
-
<div class="detail-value">{{item.value}}</div>
|
|
38
|
-
</div>
|
|
39
|
-
{{/each}}
|
|
40
|
-
</div>
|
|
41
|
-
<div class="panel-footer">认证接口:{{stateResult}}</div>
|
|
42
|
-
</div>
|
|
43
|
-
|
|
44
|
-
<div class="panel-card">
|
|
45
|
-
<div class="section-title">奖励信息</div>
|
|
46
|
-
<div class="perks-list">
|
|
47
|
-
{{each perkCards item}}
|
|
48
|
-
<div class="perk-card">
|
|
49
|
-
<div class="perk-top">
|
|
50
|
-
<div class="perk-icon-wrap">
|
|
51
|
-
{{if item.icon}}
|
|
52
|
-
<img src="{{item.icon}}" class="perk-icon" alt="{{item.name}}">
|
|
53
|
-
{{else}}
|
|
54
|
-
<div class="perk-icon perk-icon-fallback">?</div>
|
|
55
|
-
{{/if}}
|
|
56
|
-
</div>
|
|
57
|
-
<div class="perk-main">
|
|
58
|
-
<div class="perk-name">{{item.name}}</div>
|
|
59
|
-
<div class="perk-meta">ID {{item.id}} | 数量 x{{item.count}}</div>
|
|
60
|
-
</div>
|
|
61
|
-
<div class="perk-state">{{item.stateText}}</div>
|
|
62
|
-
</div>
|
|
63
|
-
<div class="perk-desc">{{item.desc}}</div>
|
|
64
|
-
</div>
|
|
65
|
-
{{/each}}
|
|
66
|
-
{{if !perkCards || !perkCards.length}}
|
|
67
|
-
<div class="empty-card">当前接口未返回奖励列表。</div>
|
|
68
|
-
{{/if}}
|
|
69
|
-
</div>
|
|
70
|
-
<div class="panel-footer">奖励接口:{{perksResult}}</div>
|
|
71
|
-
</div>
|
|
72
|
-
</div>
|
|
73
|
-
|
|
74
|
-
{{if detailItems && detailItems.length}}
|
|
75
|
-
<div class="panel-card extra-panel">
|
|
76
|
-
<div class="section-title">补充信息</div>
|
|
77
|
-
<div class="detail-card">
|
|
78
|
-
{{each detailItems item}}
|
|
79
|
-
<div class="detail-row">
|
|
80
|
-
<div class="detail-label">{{item.label}}</div>
|
|
81
|
-
<div class="detail-value">{{item.value}}</div>
|
|
82
|
-
</div>
|
|
83
|
-
{{/each}}
|
|
84
|
-
</div>
|
|
85
|
-
</div>
|
|
86
|
-
{{/if}}
|
|
87
|
-
|
|
88
|
-
{{if commandHint}}
|
|
89
|
-
<div class="command-hint">{{commandHint}}</div>
|
|
90
|
-
{{/if}}
|
|
91
|
-
|
|
92
|
-
<div class="footer">{{copyright}}</div>
|
|
93
|
-
</div>
|
|
94
|
-
</body>
|
|
95
|
-
</html>
|
|
@@ -1,255 +0,0 @@
|
|
|
1
|
-
@font-face {
|
|
2
|
-
font-family: "rocom-student";
|
|
3
|
-
src: url("../../ttf/HYWenHei-85W-1.ttf") format("truetype");
|
|
4
|
-
font-display: swap;
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
html,
|
|
8
|
-
body {
|
|
9
|
-
margin: 0;
|
|
10
|
-
padding: 26px;
|
|
11
|
-
background: #efe6d8;
|
|
12
|
-
display: inline-block;
|
|
13
|
-
font-family: "rocom-student", "Microsoft YaHei", "PingFang SC", sans-serif;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
.student-page {
|
|
17
|
-
width: 1260px;
|
|
18
|
-
padding: 34px 36px 30px;
|
|
19
|
-
box-sizing: border-box;
|
|
20
|
-
border-radius: 28px;
|
|
21
|
-
color: #322618;
|
|
22
|
-
background:
|
|
23
|
-
linear-gradient(rgba(40, 29, 18, 0.10), rgba(40, 29, 18, 0.10)),
|
|
24
|
-
url("../../img/ercode-bg.D1ccSQKH.png") center/cover no-repeat;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
.page-header {
|
|
28
|
-
padding-bottom: 18px;
|
|
29
|
-
border-bottom: 2px dashed rgba(141, 106, 68, 0.28);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
.page-title {
|
|
33
|
-
font-size: 44px;
|
|
34
|
-
line-height: 1.1;
|
|
35
|
-
font-weight: 800;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
.page-subtitle {
|
|
39
|
-
margin-top: 10px;
|
|
40
|
-
font-size: 22px;
|
|
41
|
-
line-height: 1.4;
|
|
42
|
-
color: #6d5944;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
.hero-card,
|
|
46
|
-
.summary-card,
|
|
47
|
-
.panel-card,
|
|
48
|
-
.command-hint,
|
|
49
|
-
.empty-card {
|
|
50
|
-
border: 1px solid rgba(141, 106, 68, 0.16);
|
|
51
|
-
border-radius: 20px;
|
|
52
|
-
background: rgba(255, 252, 247, 0.82);
|
|
53
|
-
box-shadow: 0 10px 26px rgba(83, 58, 35, 0.08);
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
.hero-card {
|
|
57
|
-
margin-top: 22px;
|
|
58
|
-
padding: 24px 26px;
|
|
59
|
-
background:
|
|
60
|
-
linear-gradient(135deg, rgba(237, 179, 89, 0.24), rgba(255, 251, 245, 0.88)),
|
|
61
|
-
rgba(255, 252, 247, 0.86);
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
.hero-title {
|
|
65
|
-
font-size: 20px;
|
|
66
|
-
color: #8b735b;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
.hero-value {
|
|
70
|
-
margin-top: 8px;
|
|
71
|
-
font-size: 42px;
|
|
72
|
-
line-height: 1.15;
|
|
73
|
-
font-weight: 800;
|
|
74
|
-
color: #2e2418;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
.hero-subvalue {
|
|
78
|
-
margin-top: 8px;
|
|
79
|
-
font-size: 22px;
|
|
80
|
-
color: #6d5944;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
.summary-grid {
|
|
84
|
-
display: grid;
|
|
85
|
-
grid-template-columns: repeat(3, 1fr);
|
|
86
|
-
gap: 16px;
|
|
87
|
-
margin-top: 22px;
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
.summary-card {
|
|
91
|
-
padding: 18px 20px;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
.summary-label {
|
|
95
|
-
font-size: 18px;
|
|
96
|
-
color: #8b735b;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
.summary-value {
|
|
100
|
-
margin-top: 10px;
|
|
101
|
-
font-size: 30px;
|
|
102
|
-
line-height: 1.2;
|
|
103
|
-
font-weight: 800;
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
.dual-grid {
|
|
107
|
-
display: grid;
|
|
108
|
-
grid-template-columns: 1fr 1.2fr;
|
|
109
|
-
gap: 18px;
|
|
110
|
-
margin-top: 24px;
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
.panel-card {
|
|
114
|
-
padding: 20px;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
.extra-panel {
|
|
118
|
-
margin-top: 18px;
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
.section-title {
|
|
122
|
-
margin-bottom: 14px;
|
|
123
|
-
font-size: 28px;
|
|
124
|
-
font-weight: 800;
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
.detail-card {
|
|
128
|
-
overflow: hidden;
|
|
129
|
-
border-radius: 18px;
|
|
130
|
-
background: rgba(255,255,255,0.42);
|
|
131
|
-
border: 1px solid rgba(141, 106, 68, 0.10);
|
|
132
|
-
}
|
|
133
|
-
|
|
134
|
-
.detail-row {
|
|
135
|
-
display: grid;
|
|
136
|
-
grid-template-columns: 220px 1fr;
|
|
137
|
-
gap: 16px;
|
|
138
|
-
padding: 15px 18px;
|
|
139
|
-
border-bottom: 1px solid rgba(141, 106, 68, 0.10);
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
.detail-row:last-child {
|
|
143
|
-
border-bottom: none;
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
.detail-label {
|
|
147
|
-
font-size: 20px;
|
|
148
|
-
font-weight: 700;
|
|
149
|
-
color: #6d5944;
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
.detail-value {
|
|
153
|
-
font-size: 20px;
|
|
154
|
-
color: #322618;
|
|
155
|
-
word-break: break-word;
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
.perks-list {
|
|
159
|
-
display: grid;
|
|
160
|
-
gap: 14px;
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
.perk-card {
|
|
164
|
-
padding: 16px;
|
|
165
|
-
border-radius: 18px;
|
|
166
|
-
background: rgba(255,255,255,0.42);
|
|
167
|
-
border: 1px solid rgba(141, 106, 68, 0.10);
|
|
168
|
-
}
|
|
169
|
-
|
|
170
|
-
.perk-top {
|
|
171
|
-
display: grid;
|
|
172
|
-
grid-template-columns: 72px 1fr auto;
|
|
173
|
-
gap: 14px;
|
|
174
|
-
align-items: center;
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
.perk-icon-wrap {
|
|
178
|
-
width: 72px;
|
|
179
|
-
height: 72px;
|
|
180
|
-
border-radius: 16px;
|
|
181
|
-
background: rgba(230, 219, 203, 0.58);
|
|
182
|
-
display: flex;
|
|
183
|
-
align-items: center;
|
|
184
|
-
justify-content: center;
|
|
185
|
-
overflow: hidden;
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
.perk-icon {
|
|
189
|
-
width: 100%;
|
|
190
|
-
height: 100%;
|
|
191
|
-
object-fit: cover;
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
.perk-icon-fallback {
|
|
195
|
-
display: flex;
|
|
196
|
-
align-items: center;
|
|
197
|
-
justify-content: center;
|
|
198
|
-
font-size: 28px;
|
|
199
|
-
font-weight: 800;
|
|
200
|
-
color: #8b735b;
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
.perk-name {
|
|
204
|
-
font-size: 24px;
|
|
205
|
-
font-weight: 800;
|
|
206
|
-
line-height: 1.2;
|
|
207
|
-
}
|
|
208
|
-
|
|
209
|
-
.perk-meta {
|
|
210
|
-
margin-top: 6px;
|
|
211
|
-
font-size: 17px;
|
|
212
|
-
color: #7a6550;
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
.perk-state {
|
|
216
|
-
padding: 8px 12px;
|
|
217
|
-
border-radius: 999px;
|
|
218
|
-
background: rgba(211, 144, 53, 0.14);
|
|
219
|
-
color: #9f6621;
|
|
220
|
-
font-size: 17px;
|
|
221
|
-
font-weight: 700;
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
.perk-desc {
|
|
225
|
-
margin-top: 12px;
|
|
226
|
-
font-size: 18px;
|
|
227
|
-
line-height: 1.5;
|
|
228
|
-
color: #4f3c29;
|
|
229
|
-
}
|
|
230
|
-
|
|
231
|
-
.panel-footer {
|
|
232
|
-
margin-top: 14px;
|
|
233
|
-
font-size: 18px;
|
|
234
|
-
color: #7a6550;
|
|
235
|
-
}
|
|
236
|
-
|
|
237
|
-
.empty-card {
|
|
238
|
-
padding: 24px;
|
|
239
|
-
font-size: 20px;
|
|
240
|
-
color: #6d5944;
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
.command-hint {
|
|
244
|
-
margin-top: 20px;
|
|
245
|
-
padding: 14px 18px;
|
|
246
|
-
font-size: 20px;
|
|
247
|
-
color: #6d5944;
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
.footer {
|
|
251
|
-
margin-top: 18px;
|
|
252
|
-
text-align: center;
|
|
253
|
-
font-size: 16px;
|
|
254
|
-
color: rgba(113, 93, 73, 0.88);
|
|
255
|
-
}
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="zh-CN">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="utf-8">
|
|
5
|
-
<meta name="viewport" content="width=1280, initial-scale=1">
|
|
6
|
-
<link rel="stylesheet" href="{{_res_path}}render/student-perks/style.css">
|
|
7
|
-
</head>
|
|
8
|
-
<body>
|
|
9
|
-
<div class="student-perks-page perks-page">
|
|
10
|
-
<div class="page-header">
|
|
11
|
-
<div class="page-title">{{title}}</div>
|
|
12
|
-
<div class="page-subtitle">{{subtitle}}</div>
|
|
13
|
-
</div>
|
|
14
|
-
|
|
15
|
-
<div class="hero-card">
|
|
16
|
-
<div class="hero-copy">
|
|
17
|
-
<div class="hero-title">{{heroTitle}}</div>
|
|
18
|
-
<div class="hero-value">{{heroValue}}</div>
|
|
19
|
-
<div class="hero-subvalue">{{heroSubvalue}}</div>
|
|
20
|
-
</div>
|
|
21
|
-
</div>
|
|
22
|
-
|
|
23
|
-
<div class="summary-grid">
|
|
24
|
-
{{each summaryCards item}}
|
|
25
|
-
<div class="summary-card">
|
|
26
|
-
<div class="summary-label">{{item.label}}</div>
|
|
27
|
-
<div class="summary-value">{{item.value}}</div>
|
|
28
|
-
</div>
|
|
29
|
-
{{/each}}
|
|
30
|
-
</div>
|
|
31
|
-
|
|
32
|
-
<div class="section-title">奖励列表</div>
|
|
33
|
-
<div class="perk-grid">
|
|
34
|
-
{{each perkCards item}}
|
|
35
|
-
<div class="perk-card">
|
|
36
|
-
<div class="perk-top">
|
|
37
|
-
<div class="perk-icon-wrap">
|
|
38
|
-
{{if item.icon}}
|
|
39
|
-
<img src="{{item.icon}}" class="perk-icon" alt="{{item.name}}">
|
|
40
|
-
{{else}}
|
|
41
|
-
<div class="perk-icon perk-icon-fallback">?</div>
|
|
42
|
-
{{/if}}
|
|
43
|
-
</div>
|
|
44
|
-
<div class="perk-main">
|
|
45
|
-
<div class="perk-name">{{item.name}}</div>
|
|
46
|
-
<div class="perk-meta">ID {{item.id}} | 数量 x{{item.count}}</div>
|
|
47
|
-
</div>
|
|
48
|
-
<div class="perk-state">{{item.stateText}}</div>
|
|
49
|
-
</div>
|
|
50
|
-
<div class="perk-desc">{{item.desc}}</div>
|
|
51
|
-
<div class="perk-code">状态码 {{item.stateCode}}</div>
|
|
52
|
-
</div>
|
|
53
|
-
{{/each}}
|
|
54
|
-
{{if !perkCards || !perkCards.length}}
|
|
55
|
-
<div class="empty-card">当前接口未返回奖励列表。</div>
|
|
56
|
-
{{/if}}
|
|
57
|
-
</div>
|
|
58
|
-
|
|
59
|
-
{{if detailItems && detailItems.length}}
|
|
60
|
-
<div class="section-title">补充信息</div>
|
|
61
|
-
<div class="detail-card">
|
|
62
|
-
{{each detailItems item}}
|
|
63
|
-
<div class="detail-row">
|
|
64
|
-
<div class="detail-label">{{item.label}}</div>
|
|
65
|
-
<div class="detail-value">{{item.value}}</div>
|
|
66
|
-
</div>
|
|
67
|
-
{{/each}}
|
|
68
|
-
</div>
|
|
69
|
-
{{/if}}
|
|
70
|
-
|
|
71
|
-
{{if commandHint}}
|
|
72
|
-
<div class="command-hint">{{commandHint}}</div>
|
|
73
|
-
{{/if}}
|
|
74
|
-
|
|
75
|
-
<div class="footer">{{copyright}}</div>
|
|
76
|
-
</div>
|
|
77
|
-
</body>
|
|
78
|
-
</html>
|
|
@@ -1,238 +0,0 @@
|
|
|
1
|
-
@font-face {
|
|
2
|
-
font-family: "rocom-perks";
|
|
3
|
-
src: url("../../ttf/HYWenHei-85W-1.ttf") format("truetype");
|
|
4
|
-
font-display: swap;
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
html,
|
|
8
|
-
body {
|
|
9
|
-
margin: 0;
|
|
10
|
-
padding: 26px;
|
|
11
|
-
background: #efe6d8;
|
|
12
|
-
display: inline-block;
|
|
13
|
-
font-family: "rocom-perks", "Microsoft YaHei", "PingFang SC", sans-serif;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
.perks-page {
|
|
17
|
-
width: 1260px;
|
|
18
|
-
padding: 34px 36px 30px;
|
|
19
|
-
box-sizing: border-box;
|
|
20
|
-
border-radius: 28px;
|
|
21
|
-
color: #322618;
|
|
22
|
-
background:
|
|
23
|
-
linear-gradient(rgba(40, 29, 18, 0.10), rgba(40, 29, 18, 0.10)),
|
|
24
|
-
url("../../img/ercode-bg.D1ccSQKH.png") center/cover no-repeat;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
.page-header {
|
|
28
|
-
padding-bottom: 18px;
|
|
29
|
-
border-bottom: 2px dashed rgba(141, 106, 68, 0.28);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
.page-title {
|
|
33
|
-
font-size: 44px;
|
|
34
|
-
line-height: 1.1;
|
|
35
|
-
font-weight: 800;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
.page-subtitle {
|
|
39
|
-
margin-top: 10px;
|
|
40
|
-
font-size: 22px;
|
|
41
|
-
line-height: 1.4;
|
|
42
|
-
color: #6d5944;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
.summary-grid {
|
|
46
|
-
display: grid;
|
|
47
|
-
grid-template-columns: repeat(3, 1fr);
|
|
48
|
-
gap: 16px;
|
|
49
|
-
margin-top: 22px;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
.summary-card,
|
|
53
|
-
.hero-card,
|
|
54
|
-
.perk-card,
|
|
55
|
-
.detail-card,
|
|
56
|
-
.command-hint,
|
|
57
|
-
.empty-card {
|
|
58
|
-
border: 1px solid rgba(141, 106, 68, 0.16);
|
|
59
|
-
border-radius: 20px;
|
|
60
|
-
background: rgba(255, 252, 247, 0.82);
|
|
61
|
-
box-shadow: 0 10px 26px rgba(83, 58, 35, 0.08);
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
.hero-card {
|
|
65
|
-
margin-top: 22px;
|
|
66
|
-
padding: 24px 26px;
|
|
67
|
-
background:
|
|
68
|
-
linear-gradient(135deg, rgba(237, 179, 89, 0.24), rgba(255, 251, 245, 0.88)),
|
|
69
|
-
rgba(255, 252, 247, 0.86);
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
.hero-title {
|
|
73
|
-
font-size: 20px;
|
|
74
|
-
color: #8b735b;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
.hero-value {
|
|
78
|
-
margin-top: 8px;
|
|
79
|
-
font-size: 42px;
|
|
80
|
-
line-height: 1.15;
|
|
81
|
-
font-weight: 800;
|
|
82
|
-
color: #2e2418;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
.hero-subvalue {
|
|
86
|
-
margin-top: 8px;
|
|
87
|
-
font-size: 22px;
|
|
88
|
-
color: #6d5944;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
.summary-card {
|
|
92
|
-
padding: 18px 20px;
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
.summary-label {
|
|
96
|
-
font-size: 18px;
|
|
97
|
-
color: #8b735b;
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
.summary-value {
|
|
101
|
-
margin-top: 10px;
|
|
102
|
-
font-size: 30px;
|
|
103
|
-
line-height: 1.2;
|
|
104
|
-
font-weight: 800;
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
.section-title {
|
|
108
|
-
margin: 28px 0 16px;
|
|
109
|
-
font-size: 28px;
|
|
110
|
-
font-weight: 800;
|
|
111
|
-
}
|
|
112
|
-
|
|
113
|
-
.perk-grid {
|
|
114
|
-
display: grid;
|
|
115
|
-
grid-template-columns: repeat(2, 1fr);
|
|
116
|
-
gap: 18px;
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
.perk-card {
|
|
120
|
-
padding: 20px;
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
.perk-top {
|
|
124
|
-
display: grid;
|
|
125
|
-
grid-template-columns: 84px 1fr auto;
|
|
126
|
-
gap: 16px;
|
|
127
|
-
align-items: center;
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
.perk-icon-wrap {
|
|
131
|
-
width: 84px;
|
|
132
|
-
height: 84px;
|
|
133
|
-
border-radius: 18px;
|
|
134
|
-
background: rgba(230, 219, 203, 0.58);
|
|
135
|
-
display: flex;
|
|
136
|
-
align-items: center;
|
|
137
|
-
justify-content: center;
|
|
138
|
-
overflow: hidden;
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
.perk-icon {
|
|
142
|
-
width: 100%;
|
|
143
|
-
height: 100%;
|
|
144
|
-
object-fit: cover;
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
.perk-icon-fallback {
|
|
148
|
-
display: flex;
|
|
149
|
-
align-items: center;
|
|
150
|
-
justify-content: center;
|
|
151
|
-
font-size: 28px;
|
|
152
|
-
font-weight: 800;
|
|
153
|
-
color: #8b735b;
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
.perk-name {
|
|
157
|
-
font-size: 28px;
|
|
158
|
-
font-weight: 800;
|
|
159
|
-
line-height: 1.2;
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
.perk-meta {
|
|
163
|
-
margin-top: 8px;
|
|
164
|
-
font-size: 18px;
|
|
165
|
-
color: #7a6550;
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
.perk-state {
|
|
169
|
-
padding: 8px 14px;
|
|
170
|
-
border-radius: 999px;
|
|
171
|
-
background: rgba(211, 144, 53, 0.14);
|
|
172
|
-
color: #9f6621;
|
|
173
|
-
font-size: 18px;
|
|
174
|
-
font-weight: 700;
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
.perk-desc {
|
|
178
|
-
margin-top: 16px;
|
|
179
|
-
font-size: 20px;
|
|
180
|
-
line-height: 1.55;
|
|
181
|
-
color: #4f3c29;
|
|
182
|
-
min-height: 62px;
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
.perk-code {
|
|
186
|
-
margin-top: 14px;
|
|
187
|
-
font-size: 17px;
|
|
188
|
-
color: #8b735b;
|
|
189
|
-
}
|
|
190
|
-
|
|
191
|
-
.detail-card {
|
|
192
|
-
overflow: hidden;
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
.detail-row {
|
|
196
|
-
display: grid;
|
|
197
|
-
grid-template-columns: 260px 1fr;
|
|
198
|
-
gap: 16px;
|
|
199
|
-
padding: 16px 20px;
|
|
200
|
-
border-bottom: 1px solid rgba(141, 106, 68, 0.10);
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
.detail-row:last-child {
|
|
204
|
-
border-bottom: none;
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
.detail-label {
|
|
208
|
-
font-size: 21px;
|
|
209
|
-
font-weight: 700;
|
|
210
|
-
color: #6d5944;
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
.detail-value {
|
|
214
|
-
font-size: 21px;
|
|
215
|
-
color: #322618;
|
|
216
|
-
word-break: break-word;
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
.empty-card {
|
|
220
|
-
grid-column: 1 / -1;
|
|
221
|
-
padding: 28px;
|
|
222
|
-
font-size: 22px;
|
|
223
|
-
color: #6d5944;
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
.command-hint {
|
|
227
|
-
margin-top: 20px;
|
|
228
|
-
padding: 14px 18px;
|
|
229
|
-
font-size: 20px;
|
|
230
|
-
color: #6d5944;
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
.footer {
|
|
234
|
-
margin-top: 18px;
|
|
235
|
-
text-align: center;
|
|
236
|
-
font-size: 16px;
|
|
237
|
-
color: rgba(113, 93, 73, 0.88);
|
|
238
|
-
}
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
<!DOCTYPE html>
|
|
2
|
-
<html lang="zh-CN">
|
|
3
|
-
<head>
|
|
4
|
-
<meta charset="utf-8">
|
|
5
|
-
<meta name="viewport" content="width=1200, initial-scale=1">
|
|
6
|
-
<link rel="stylesheet" href="{{_res_path}}render/student-state/style.css">
|
|
7
|
-
</head>
|
|
8
|
-
<body>
|
|
9
|
-
<div class="student-state-page state-page">
|
|
10
|
-
<div class="page-header">
|
|
11
|
-
<div class="page-title">{{title}}</div>
|
|
12
|
-
<div class="page-subtitle">{{subtitle}}</div>
|
|
13
|
-
</div>
|
|
14
|
-
|
|
15
|
-
<div class="hero-card">
|
|
16
|
-
<div class="hero-copy">
|
|
17
|
-
<div class="hero-title">{{heroTitle}}</div>
|
|
18
|
-
<div class="hero-value">{{heroValue}}</div>
|
|
19
|
-
<div class="hero-subvalue">{{heroSubvalue}}</div>
|
|
20
|
-
</div>
|
|
21
|
-
</div>
|
|
22
|
-
|
|
23
|
-
<div class="summary-grid">
|
|
24
|
-
{{each summaryCards item}}
|
|
25
|
-
<div class="summary-card">
|
|
26
|
-
<div class="summary-label">{{item.label}}</div>
|
|
27
|
-
<div class="summary-value">{{item.value}}</div>
|
|
28
|
-
</div>
|
|
29
|
-
{{/each}}
|
|
30
|
-
</div>
|
|
31
|
-
|
|
32
|
-
<div class="section-title">认证详情</div>
|
|
33
|
-
<div class="detail-card">
|
|
34
|
-
{{each detailItems item}}
|
|
35
|
-
<div class="detail-row">
|
|
36
|
-
<div class="detail-label">{{item.label}}</div>
|
|
37
|
-
<div class="detail-value">{{item.value}}</div>
|
|
38
|
-
</div>
|
|
39
|
-
{{/each}}
|
|
40
|
-
{{if !detailItems || !detailItems.length}}
|
|
41
|
-
<div class="empty-text">当前接口未返回更多认证字段。</div>
|
|
42
|
-
{{/if}}
|
|
43
|
-
</div>
|
|
44
|
-
|
|
45
|
-
{{if commandHint}}
|
|
46
|
-
<div class="command-hint">{{commandHint}}</div>
|
|
47
|
-
{{/if}}
|
|
48
|
-
|
|
49
|
-
<div class="footer">{{copyright}}</div>
|
|
50
|
-
</div>
|
|
51
|
-
</body>
|
|
52
|
-
</html>
|
|
@@ -1,157 +0,0 @@
|
|
|
1
|
-
@font-face {
|
|
2
|
-
font-family: "rocom-state";
|
|
3
|
-
src: url("../../ttf/HYWenHei-85W-1.ttf") format("truetype");
|
|
4
|
-
font-display: swap;
|
|
5
|
-
}
|
|
6
|
-
|
|
7
|
-
html,
|
|
8
|
-
body {
|
|
9
|
-
margin: 0;
|
|
10
|
-
padding: 26px;
|
|
11
|
-
background: #efe6d8;
|
|
12
|
-
display: inline-block;
|
|
13
|
-
font-family: "rocom-state", "Microsoft YaHei", "PingFang SC", sans-serif;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
.state-page {
|
|
17
|
-
width: 1180px;
|
|
18
|
-
padding: 34px 36px 30px;
|
|
19
|
-
box-sizing: border-box;
|
|
20
|
-
border-radius: 28px;
|
|
21
|
-
color: #322618;
|
|
22
|
-
background:
|
|
23
|
-
linear-gradient(rgba(40, 29, 18, 0.10), rgba(40, 29, 18, 0.10)),
|
|
24
|
-
url("../../img/ercode-bg.D1ccSQKH.png") center/cover no-repeat;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
.page-header {
|
|
28
|
-
padding-bottom: 18px;
|
|
29
|
-
border-bottom: 2px dashed rgba(141, 106, 68, 0.28);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
.page-title {
|
|
33
|
-
font-size: 44px;
|
|
34
|
-
line-height: 1.1;
|
|
35
|
-
font-weight: 800;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
.page-subtitle {
|
|
39
|
-
margin-top: 10px;
|
|
40
|
-
font-size: 22px;
|
|
41
|
-
line-height: 1.4;
|
|
42
|
-
color: #6d5944;
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
.summary-grid {
|
|
46
|
-
display: grid;
|
|
47
|
-
grid-template-columns: repeat(3, 1fr);
|
|
48
|
-
gap: 16px;
|
|
49
|
-
margin-top: 22px;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
.summary-card,
|
|
53
|
-
.hero-card,
|
|
54
|
-
.detail-card,
|
|
55
|
-
.command-hint {
|
|
56
|
-
border: 1px solid rgba(141, 106, 68, 0.16);
|
|
57
|
-
border-radius: 20px;
|
|
58
|
-
background: rgba(255, 252, 247, 0.82);
|
|
59
|
-
box-shadow: 0 10px 26px rgba(83, 58, 35, 0.08);
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
.hero-card {
|
|
63
|
-
margin-top: 22px;
|
|
64
|
-
padding: 24px 26px;
|
|
65
|
-
background:
|
|
66
|
-
linear-gradient(135deg, rgba(237, 179, 89, 0.24), rgba(255, 251, 245, 0.88)),
|
|
67
|
-
rgba(255, 252, 247, 0.86);
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
.hero-title {
|
|
71
|
-
font-size: 20px;
|
|
72
|
-
color: #8b735b;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
.hero-value {
|
|
76
|
-
margin-top: 8px;
|
|
77
|
-
font-size: 42px;
|
|
78
|
-
line-height: 1.15;
|
|
79
|
-
font-weight: 800;
|
|
80
|
-
color: #2e2418;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
.hero-subvalue {
|
|
84
|
-
margin-top: 8px;
|
|
85
|
-
font-size: 22px;
|
|
86
|
-
color: #6d5944;
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
.summary-card {
|
|
90
|
-
padding: 18px 20px;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
.summary-label {
|
|
94
|
-
font-size: 18px;
|
|
95
|
-
color: #8b735b;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
.summary-value {
|
|
99
|
-
margin-top: 10px;
|
|
100
|
-
font-size: 30px;
|
|
101
|
-
line-height: 1.2;
|
|
102
|
-
font-weight: 800;
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
.section-title {
|
|
106
|
-
margin: 28px 0 16px;
|
|
107
|
-
font-size: 28px;
|
|
108
|
-
font-weight: 800;
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
.detail-card {
|
|
112
|
-
overflow: hidden;
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
.detail-row {
|
|
116
|
-
display: grid;
|
|
117
|
-
grid-template-columns: 260px 1fr;
|
|
118
|
-
gap: 16px;
|
|
119
|
-
padding: 16px 20px;
|
|
120
|
-
border-bottom: 1px solid rgba(141, 106, 68, 0.10);
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
.detail-row:last-child {
|
|
124
|
-
border-bottom: none;
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
.detail-label {
|
|
128
|
-
font-size: 21px;
|
|
129
|
-
font-weight: 700;
|
|
130
|
-
color: #6d5944;
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
.detail-value {
|
|
134
|
-
font-size: 21px;
|
|
135
|
-
color: #322618;
|
|
136
|
-
word-break: break-word;
|
|
137
|
-
}
|
|
138
|
-
|
|
139
|
-
.empty-text {
|
|
140
|
-
padding: 26px;
|
|
141
|
-
font-size: 22px;
|
|
142
|
-
color: #6d5944;
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
.command-hint {
|
|
146
|
-
margin-top: 20px;
|
|
147
|
-
padding: 14px 18px;
|
|
148
|
-
font-size: 20px;
|
|
149
|
-
color: #6d5944;
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
.footer {
|
|
153
|
-
margin-top: 18px;
|
|
154
|
-
text-align: center;
|
|
155
|
-
font-size: 16px;
|
|
156
|
-
color: rgba(113, 93, 73, 0.88);
|
|
157
|
-
}
|