@cecee/document-flip-book 1.0.16 → 1.0.17

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.
@@ -1,674 +1,682 @@
1
- .common-header-bar {
1
+ .common-header-bar {
2
+ display: flex;
3
+ align-items: center;
4
+ justify-content: space-between;
5
+ height: 50px;
6
+ padding: 0 16px;
7
+ background: #fff;
8
+ border-bottom: 1px solid #f0f0f0;
9
+
10
+ .header-left,
11
+ .header-right,
12
+ .header-item {
2
13
  display: flex;
3
14
  align-items: center;
4
- justify-content: space-between;
5
- height: 50px;
6
- padding: 0 16px;
7
- background: #fff;
8
- border-bottom: 1px solid #f0f0f0;
9
-
10
- .header-left,
11
- .header-right,
12
- .header-item {
13
- display: flex;
14
- align-items: center;
15
- }
16
-
17
- .header-title {
18
- font-size: 18px;
19
- font-weight: bold;
20
- margin-right: 16px;
21
- }
22
-
23
- .dfb-divider {
24
- width: 1px;
25
- height: 18px;
26
- background: #e8e8e8;
27
- margin: 0 8px;
28
- }
29
15
  }
30
16
 
31
- .book-page {
32
- width: 100%;
33
- height: 100%;
34
- background: #9F7D4E;
35
- padding: 22px;
17
+ .header-title {
18
+ font-size: 18px;
19
+ font-weight: bold;
20
+ margin-right: 16px;
36
21
  }
37
22
 
38
- .book-view {
39
- box-shadow: 0 0 18px rgba(0, 0, 0, 0.18);
40
- position: relative;
41
- overflow: hidden;
42
-
43
- // 页面内侧阴影(靠近中缝处的深度感)
44
- &::before {
45
- content: "";
46
- position: absolute;
47
- top: 0;
48
- bottom: 0;
49
- width: 20px;
50
- z-index: 5;
51
- pointer-events: none;
52
- transition: opacity 0.3s ease;
53
- }
54
-
55
- // 偶数页(通常是右页)阴影在左侧
56
- &:nth-child(even)::before {
57
- left: 0;
58
- background: linear-gradient(to right, rgba(0, 0, 0, 0.12) 0%, rgba(0, 0, 0, 0.05) 40%, transparent 100%);
59
- }
60
-
61
- // 奇数页(通常是左页)阴影在右侧
62
- &:nth-child(odd)::before {
63
- right: 0;
64
- background: linear-gradient(to left, rgba(0, 0, 0, 0.12) 0%, rgba(0, 0, 0, 0.05) 40%, transparent 100%);
65
- }
66
-
67
- // 封面页(第一页)通常不需要这种内部阴影,或者阴影较弱
68
- &:first-child::before {
69
- opacity: 0.3;
70
- }
23
+ .dfb-divider {
24
+ width: 1px;
25
+ height: 18px;
26
+ background: #e8e8e8;
27
+ margin: 0 8px;
71
28
  }
72
-
73
- .header-nav-btn {
74
- padding: 0 7px;
29
+ }
30
+
31
+ .book-page {
32
+ width: 100%;
33
+ height: 100%;
34
+ background: #9F7D4E;
35
+ padding: 22px;
36
+ }
37
+
38
+ .book-view {
39
+ box-shadow: 0 0 18px rgba(0, 0, 0, 0.18);
40
+ position: relative;
41
+ overflow: hidden;
42
+
43
+ // 页面内侧阴影(靠近中缝处的深度感)
44
+ &::before {
45
+ content: "";
46
+ position: absolute;
47
+ top: 0;
48
+ bottom: 0;
49
+ width: 20px;
50
+ z-index: 5;
51
+ pointer-events: none;
52
+ transition: opacity 0.3s ease;
75
53
  }
76
54
 
77
- .dfb-HTMLFlipBook {
78
- overflow: hidden;
79
- background: #fff;
55
+ // 偶数页(通常是右页)阴影在左侧
56
+ &:nth-child(even)::before {
57
+ left: 0;
58
+ background: linear-gradient(to right, rgba(0, 0, 0, 0.12) 0%, rgba(0, 0, 0, 0.05) 40%, transparent 100%);
80
59
  }
81
60
 
82
- .dfb-root {
83
- display: flex;
84
- flex-direction: column;
85
- height: 100%;
86
- min-width: 1000px;
87
- overflow: hidden;
88
- background: #fff;
89
-
90
- &.is-fullscreen-modal {
91
- position: fixed;
92
- top: 0;
93
- left: 0;
94
- width: 100vw;
95
- height: 100vh;
96
- z-index: 1001;
97
- background: #fff;
98
- animation: dfb-fade-in 0.3s ease;
99
- }
61
+ // 奇数页(通常是左页)阴影在右侧
62
+ &:nth-child(odd)::before {
63
+ right: 0;
64
+ background: linear-gradient(to left, rgba(0, 0, 0, 0.12) 0%, rgba(0, 0, 0, 0.05) 40%, transparent 100%);
100
65
  }
101
66
 
102
- @keyframes dfb-fade-in {
103
- from {
104
- opacity: 0;
105
- transform: scale(0.95);
106
- }
107
-
108
- to {
109
- opacity: 1;
110
- transform: scale(1);
111
- }
67
+ // 封面页(第一页)通常不需要这种内部阴影,或者阴影较弱
68
+ &:first-child::before {
69
+ opacity: 0.3;
112
70
  }
113
-
114
- .dfb-header {
115
- display: flex;
116
- align-items: center;
117
- justify-content: space-between;
118
- height: 55px;
119
- padding: 10px 10px;
71
+ }
72
+
73
+ .header-nav-btn {
74
+ padding: 0 7px;
75
+ }
76
+
77
+ .dfb-HTMLFlipBook {
78
+ overflow: hidden;
79
+ background: #fff;
80
+ }
81
+
82
+ .dfb-root {
83
+ display: flex;
84
+ flex-direction: column;
85
+ height: 100%;
86
+ min-width: 1000px;
87
+ overflow: hidden;
88
+ background: #fff;
89
+
90
+ &.is-fullscreen-modal {
91
+ position: fixed;
92
+ top: 0;
93
+ left: 0;
94
+ width: 100vw;
95
+ height: 100vh;
96
+ z-index: 1001;
120
97
  background: #fff;
121
- border-bottom: 1px solid #f0f0f0;
122
-
123
- .dfb-search-btn {
124
- height: 30px;
125
- }
126
-
127
- &-left-group {
128
- display: flex;
129
- align-items: center;
130
- gap: 4px;
131
- }
132
-
133
- &-right-group {
134
- display: flex;
135
- align-items: center;
136
- gap: 16px;
137
- }
138
-
139
- .dfb-divider {
140
- height: 18px;
141
- background: #e8e8e8;
142
- margin: 0 8px;
143
- }
144
-
145
- .ant-btn-link {
146
- color: #000;
147
- font-size: 14px;
148
- padding: 0 8px;
149
- height: auto;
150
-
151
- &:hover {
152
- color: #1677ff;
153
- }
154
-
155
- &:disabled {
156
- color: #d9d9d9;
157
- cursor: not-allowed;
158
- }
159
- }
160
-
161
- // 搜索框样式
162
- &-search-wrap {
163
- display: flex;
164
- align-items: center;
165
- gap: 8px;
166
- }
167
-
168
- &-search-input {
169
- width: 220px;
170
- height: 36px;
171
- border-radius: 6px;
172
-
173
- &:hover,
174
- &:focus {
175
- border-color: #4096ff;
176
- }
177
- }
98
+ animation: dfb-fade-in 0.3s ease;
99
+ }
100
+ }
178
101
 
179
- &-search-btn {
180
- height: 36px;
181
- border-radius: 6px;
182
- padding: 0 16px;
183
- }
102
+ @keyframes dfb-fade-in {
103
+ from {
104
+ opacity: 0;
105
+ transform: scale(0.95);
184
106
  }
185
107
 
186
- .dfb-headerTitle {
187
- font-size: 18px;
188
- font-weight: 600;
189
- color: #111827;
108
+ to {
109
+ opacity: 1;
110
+ transform: scale(1);
111
+ }
112
+ }
113
+
114
+ .dfb-header {
115
+ display: flex;
116
+ align-items: center;
117
+ justify-content: space-between;
118
+ height: 55px;
119
+ padding: 10px 10px;
120
+ background: #fff;
121
+ border-bottom: 1px solid #f0f0f0;
122
+
123
+ .dfb-search-btn {
124
+ height: 30px;
190
125
  }
191
126
 
192
- .dfb-headerLeftActions {
127
+ &-left-group {
193
128
  display: flex;
194
129
  align-items: center;
195
- gap: 6px;
130
+ gap: 4px;
196
131
  }
197
132
 
198
- .dfb-headerCenter {
133
+ &-right-group {
199
134
  display: flex;
200
135
  align-items: center;
201
- gap: 4px;
202
- color: #111827;
136
+ gap: 16px;
203
137
  }
204
138
 
205
- .dfb-pageIndicator {
206
- display: inline-flex;
207
- align-items: center;
208
- justify-content: center;
209
- min-width: 66px;
210
- font-weight: 600;
211
- color: #111827;
139
+ .dfb-divider {
140
+ height: 18px;
141
+ background: #e8e8e8;
142
+ margin: 0 8px;
212
143
  }
213
144
 
214
- .dfb-headerRight {
215
- display: flex;
216
- align-items: center;
217
- gap: 10px;
145
+ .ant-btn-link {
146
+ color: #000;
147
+ font-size: 14px;
148
+ padding: 0 8px;
149
+ height: auto;
150
+
151
+ &:hover {
152
+ color: #1677ff;
153
+ }
154
+
155
+ &:disabled {
156
+ color: #d9d9d9;
157
+ cursor: not-allowed;
158
+ }
218
159
  }
219
160
 
220
- .dfb-searchWrap {
161
+ // 搜索框样式
162
+ &-search-wrap {
221
163
  display: flex;
222
164
  align-items: center;
223
165
  gap: 8px;
224
166
  }
225
167
 
226
- .dfb-searchInput {
227
- width: 280px;
228
- }
168
+ &-search-input {
169
+ width: 220px;
170
+ height: 36px;
171
+ border-radius: 6px;
229
172
 
230
- .dfb-searchBtn {
231
- padding: 0 14px;
173
+ &:hover,
174
+ &:focus {
175
+ border-color: #4096ff;
176
+ }
232
177
  }
233
178
 
234
- .dfb-stage {
235
- flex: 1;
236
- display: flex;
237
- overflow: auto;
238
- padding: 20px;
239
- position: relative;
240
- justify-content: center;
241
- min-width: 100px;
179
+ &-search-btn {
180
+ height: 36px;
181
+ border-radius: 6px;
182
+ padding: 0 16px;
183
+ }
184
+ }
185
+
186
+ .dfb-headerTitle {
187
+ font-size: 18px;
188
+ font-weight: 600;
189
+ color: #111827;
190
+ }
191
+
192
+ .dfb-headerLeftActions {
193
+ display: flex;
194
+ align-items: center;
195
+ gap: 6px;
196
+ }
197
+
198
+ .dfb-headerCenter {
199
+ display: flex;
200
+ align-items: center;
201
+ gap: 4px;
202
+ color: #111827;
203
+ }
204
+
205
+ .dfb-pageIndicator {
206
+ display: inline-flex;
207
+ align-items: center;
208
+ justify-content: center;
209
+ min-width: 66px;
210
+ font-weight: 600;
211
+ color: #111827;
212
+ }
213
+
214
+ .dfb-headerRight {
215
+ display: flex;
216
+ align-items: center;
217
+ gap: 10px;
218
+ }
219
+
220
+ .dfb-searchWrap {
221
+ display: flex;
222
+ align-items: center;
223
+ gap: 8px;
224
+ }
225
+
226
+ .dfb-searchInput {
227
+ width: 280px;
228
+ }
229
+
230
+ .dfb-searchBtn {
231
+ padding: 0 14px;
232
+ }
233
+
234
+ .dfb-stage {
235
+ flex: 1;
236
+ display: flex;
237
+ overflow: auto;
238
+ padding: 20px;
239
+ position: relative;
240
+ justify-content: center;
241
+ min-width: 100px;
242
+
243
+ // 解决 AntD Spin 嵌套导致的布局问题
244
+ .ant-spin-nested-loading {
245
+ width: 100%;
246
+ height: 100%;
242
247
 
243
- // 解决 AntD Spin 嵌套导致的布局问题
244
- .ant-spin-nested-loading {
248
+ .ant-spin-container {
245
249
  width: 100%;
246
250
  height: 100%;
247
-
248
- .ant-spin-container {
249
- width: 100%;
250
- height: 100%;
251
- display: flex;
252
- flex-direction: column;
253
- }
251
+ display: flex;
252
+ flex-direction: column;
254
253
  }
255
254
  }
256
-
257
- .dfb-sideTabs {
258
- position: absolute;
259
- right: 2px; // 调整位置,使其紧贴书本边缘
255
+ }
256
+
257
+ .dfb-sideTabs {
258
+ position: absolute;
259
+ right: 2px; // 调整位置,使其紧贴书本边缘
260
+ top: 40px;
261
+ display: flex;
262
+ flex-direction: column;
263
+ gap: 6px; //
264
+ z-index: 10;
265
+ transition: all 0.3s ease;
266
+
267
+ &.is-on-cover {
268
+ right: -42px; // 封面是单页模式,标签需要向左移动(进入书壳内部边缘)
260
269
  top: 40px;
270
+ }
271
+
272
+ .dfb-sideTab {
273
+ width: 42px;
274
+ min-height: 80px;
275
+ padding: 12px 6px 12px 10px;
276
+ border: none;
277
+ border-radius: 0 6px 6px 0;
278
+ cursor: pointer;
279
+ color: #fff;
280
+ font-size: 13px;
281
+ font-weight: 500;
282
+ line-height: 1.2;
283
+ writing-mode: vertical-rl;
284
+ text-align: center;
285
+ transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
286
+ box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.1);
287
+ position: relative;
288
+ overflow: hidden;
261
289
  display: flex;
262
- flex-direction: column;
263
- gap: 6px; //
264
- z-index: 10;
265
- transition: all 0.3s ease;
290
+ align-items: center;
291
+ justify-content: center;
266
292
 
267
- &.is-on-cover {
268
- right: -42px; // 封面是单页模式,标签需要向左移动(进入书壳内部边缘)
269
- top: 40px;
293
+ // 标签左侧的装饰条(仅在选中态或悬浮态显示,模拟折痕)
294
+ &::before {
295
+ content: "";
296
+ position: absolute;
297
+ left: 0;
298
+ top: 0;
299
+ bottom: 0;
300
+ width: 0; // 默认宽度为 0
301
+ background: rgba(255, 255, 255, 0.35);
302
+ transition: all 0.2s ease;
303
+ opacity: 0;
270
304
  }
271
305
 
272
- .dfb-sideTab {
273
- width: 42px;
274
- min-height: 80px;
275
- padding: 12px 6px 12px 10px;
276
- border: none;
277
- border-radius: 0 6px 6px 0;
278
- cursor: pointer;
279
- color: #fff;
280
- font-size: 13px;
281
- font-weight: 500;
282
- line-height: 1.2;
283
- writing-mode: vertical-rl;
284
- text-align: center;
285
- transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1);
286
- box-shadow: 2px 2px 5px rgba(0, 0, 0, 0.1);
287
- position: relative;
288
- overflow: hidden;
289
- display: flex;
290
- align-items: center;
291
- justify-content: center;
292
-
293
- // 标签左侧的装饰条(仅在选中态或悬浮态显示,模拟折痕)
294
- &::before {
295
- content: "";
296
- position: absolute;
297
- left: 0;
298
- top: 0;
299
- bottom: 0;
300
- width: 0; // 默认宽度为 0
301
- background: rgba(255, 255, 255, 0.35);
302
- transition: all 0.2s ease;
303
- opacity: 0;
304
- }
305
-
306
306
 
307
307
 
308
- &.is-active {
309
- position: relative;
310
- left: -10px;
311
- width: 52px; // 选中态更长
312
- padding-left: 16px;
313
- font-weight: 700;
314
- box-shadow: 5px 2px 12px rgba(0, 0, 0, 0.2);
315
- z-index: 12;
316
- font-size: 14px;
317
-
318
- &::before {
319
- width: 8px; // 选中态条纹显示且最宽
320
- opacity: 1;
321
- background: rgba(255, 255, 255, 0.4);
322
- }
323
- }
308
+ &.is-active {
309
+ position: relative;
310
+ left: -10px;
311
+ width: 52px; // 选中态更长
312
+ padding-left: 16px;
313
+ font-weight: 700;
314
+ box-shadow: 5px 2px 12px rgba(0, 0, 0, 0.2);
315
+ z-index: 12;
316
+ font-size: 14px;
324
317
 
325
- .dfb-sideTabText {
326
- letter-spacing: 2px;
327
- filter: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.1));
318
+ &::before {
319
+ width: 8px; // 选中态条纹显示且最宽
320
+ opacity: 1;
321
+ background: rgba(255, 255, 255, 0.4);
328
322
  }
329
323
  }
330
324
 
325
+ .dfb-sideTabText {
326
+ letter-spacing: 2px;
327
+ filter: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.1));
328
+ }
331
329
  }
332
330
 
333
- .is-on-activeTab {
334
- right: 12px !important;
335
- }
336
-
337
- .dfb-book-wrapper {
338
- display: block;
339
- margin: auto; // 关键:在 flex 容器中使用 margin: auto 实现完美居中且溢出时可滚动到顶部
340
- position: relative;
341
- min-width: 300px;
342
- }
343
-
344
- .dfb-bookShell1 {
345
- position: relative;
346
- padding: 18px 0 18px 54px;
347
- background: transparent;
348
- transition: background-color 0.3s ease;
331
+ }
332
+
333
+ .is-on-activeTab {
334
+ right: 12px !important;
335
+ }
336
+
337
+ .dfb-book-wrapper {
338
+ display: block;
339
+ margin: auto; // 关键:在 flex 容器中使用 margin: auto 实现完美居中且溢出时可滚动到顶部
340
+ position: relative;
341
+ min-width: 300px;
342
+ }
343
+
344
+ .dfb-bookShell1 {
345
+ position: relative;
346
+ padding: 18px 0 18px 54px;
347
+ background: transparent;
348
+ transition: background-color 0.3s ease;
349
+ }
350
+
351
+ .dfb-bookShell {
352
+ position: relative;
353
+ padding: 18px 54px;
354
+ background: #9F7D4E;
355
+ transition: background-color 0.3s ease;
356
+
357
+ &::after {
358
+ content: "";
359
+ position: absolute;
360
+ top: 0;
361
+ left: 0;
362
+ right: 0;
363
+ bottom: 0;
364
+ background-image: url("https://www.transparenttextures.com/patterns/leather.png");
365
+ opacity: 0.1;
366
+ pointer-events: none;
367
+ border-radius: 8px;
349
368
  }
350
369
 
351
- .dfb-bookShell {
352
- position: relative;
353
- padding: 18px 54px;
354
- background: #9F7D4E;
355
- transition: background-color 0.3s ease;
370
+ // 书本中缝分割线
371
+ .dfb-book-spine {
372
+ position: absolute;
373
+ left: 50%;
374
+ top: 18px;
375
+ bottom: 18px;
376
+ width: 2px;
377
+ transform: translateX(-50%);
378
+ background: rgba(0, 0, 0, 0.2);
379
+ box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
380
+ z-index: 5;
381
+ pointer-events: none;
382
+ transition: opacity 0.3s ease;
356
383
 
357
- &::after {
384
+ &::before {
358
385
  content: "";
359
386
  position: absolute;
387
+ left: -4px;
360
388
  top: 0;
361
- left: 0;
362
- right: 0;
363
389
  bottom: 0;
364
- background-image: url("https://www.transparenttextures.com/patterns/leather.png");
365
- opacity: 0.1;
366
- pointer-events: none;
367
- border-radius: 8px;
368
- }
369
-
370
- // 书本中缝分割线
371
- .dfb-book-spine {
372
- position: absolute;
373
- left: 50%;
374
- top: 18px;
375
- bottom: 18px;
376
- width: 2px;
377
- transform: translateX(-50%);
378
- background: rgba(0, 0, 0, 0.2);
379
- box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
380
- z-index: 5;
381
- pointer-events: none;
382
- transition: opacity 0.3s ease;
383
-
384
- &::before {
385
- content: "";
386
- position: absolute;
387
- left: -4px;
388
- top: 0;
389
- bottom: 0;
390
- width: 10px;
391
- background: linear-gradient(to right, transparent, rgba(0, 0, 0, 0.15), transparent);
392
- }
390
+ width: 10px;
391
+ background: linear-gradient(to right, transparent, rgba(0, 0, 0, 0.15), transparent);
393
392
  }
394
393
  }
394
+ }
395
395
 
396
- .dfb-cover {
397
- width: 100%;
398
- height: 100%;
399
- display: grid;
400
- place-items: center;
401
- background: #9F7D4E;
402
- color: #111;
403
- font-size: 46px;
404
- font-weight: 800;
405
- letter-spacing: 8px;
406
- border: 3px solid rgba(0, 0, 0, 0.55);
407
- }
396
+ .dfb-cover {
397
+ width: 100%;
398
+ height: 100%;
399
+ display: grid;
400
+ place-items: center;
401
+ background: #9F7D4E;
402
+ color: #111;
403
+ font-size: 46px;
404
+ font-weight: 800;
405
+ letter-spacing: 8px;
406
+ border: 3px solid rgba(0, 0, 0, 0.55);
407
+ }
408
408
 
409
409
 
410
410
 
411
411
 
412
- .export-modal {
413
- .ant-modal-content {
414
- border-radius: 8px;
415
- padding: 24px;
416
- }
412
+ .export-modal {
413
+ .ant-modal-content {
414
+ border-radius: 8px;
415
+ padding: 24px;
416
+ }
417
417
 
418
- .export-radio {
419
- .ant-radio-wrapper {
420
- padding: 8px 0;
421
- }
418
+ .export-radio {
419
+ .ant-radio-wrapper {
420
+ padding: 8px 0;
422
421
  }
423
422
  }
423
+ }
424
+
425
+ .archive-cover {
426
+ width: 100%;
427
+ height: 100%;
428
+ background: #9F7D4E; // 棕黄色背景
429
+ display: flex;
430
+ align-items: center;
431
+ justify-content: center;
432
+ color: #000;
433
+ font-family: "SimSun", "STSong", serif;
434
+ padding: 40px;
435
+ box-sizing: border-box;
436
+
437
+ &__outer-border {
438
+ border: 5px solid #000;
439
+ width: 100%;
440
+ height: 100%;
441
+ padding: 4px;
442
+ box-sizing: border-box;
443
+ display: flex;
444
+ }
424
445
 
425
- .archive-cover {
446
+ &__inner {
447
+ border: 1px solid #000;
426
448
  width: 100%;
427
449
  height: 100%;
428
- background: #9F7D4E; // 棕黄色背景
450
+ padding: 20px 20px;
451
+ box-sizing: border-box;
429
452
  display: flex;
453
+ flex-direction: column;
430
454
  align-items: center;
431
- justify-content: center;
432
- color: #000;
433
- font-family: "SimSun", "STSong", serif;
434
- padding: 40px;
435
- box-sizing: border-box;
455
+ background: transparent;
456
+ }
436
457
 
437
- &__outer-border {
438
- border: 5px solid #000;
439
- width: 100%;
440
- height: 100%;
441
- padding: 4px;
442
- box-sizing: border-box;
443
- display: flex;
444
- }
458
+ &__company {
459
+ font-size: 26px;
460
+ font-weight: bold;
461
+ margin-top: 10px;
462
+ margin-bottom: 30px;
463
+ letter-spacing: 4px;
464
+ text-align: center;
465
+ }
445
466
 
446
- &__inner {
447
- border: 1px solid #000;
448
- width: 100%;
449
- height: 100%;
450
- padding: 20px 20px;
451
- box-sizing: border-box;
452
- display: flex;
453
- flex-direction: column;
454
- align-items: center;
455
- background: transparent;
456
- }
467
+ &__title {
468
+ font-size: 42px;
469
+ font-weight: 900;
470
+ margin-bottom: 22px;
471
+ letter-spacing: 16px;
472
+ text-align: center;
473
+ line-height: 1;
474
+ }
457
475
 
458
- &__company {
459
- font-size: 26px;
460
- font-weight: bold;
461
- margin-top: 10px;
462
- margin-bottom: 30px;
463
- letter-spacing: 4px;
464
- text-align: center;
465
- }
476
+ &__table {
477
+ width: 100%;
478
+ border-collapse: collapse;
479
+ border: 2px solid #000;
480
+ margin-bottom: 10px;
466
481
 
467
- &__title {
468
- font-size: 42px;
469
- font-weight: 900;
470
- margin-bottom: 22px;
471
- letter-spacing: 16px;
482
+ td {
483
+ border: 1.5px solid #000;
484
+ height: 30px;
485
+ padding: 4px 12px;
486
+ vertical-align: middle;
472
487
  text-align: center;
473
- line-height: 1;
474
- }
475
-
476
- &__table {
477
- width: 100%;
478
- border-collapse: collapse;
479
- border: 2px solid #000;
480
- margin-bottom: 10px;
481
-
482
- td {
483
- border: 1.5px solid #000;
484
- height: 30px;
485
- padding: 4px 12px;
486
- vertical-align: middle;
487
- text-align: center;
488
- font-size: 16px;
489
- font-weight: 600;
488
+ font-size: 16px;
489
+ font-weight: 600;
490
490
 
491
- &.label {
492
- width: 120px;
493
- background: rgba(0, 0, 0, 0.04);
494
- font-weight: 900;
495
- }
491
+ &.label {
492
+ width: 120px;
493
+ background: rgba(0, 0, 0, 0.04);
494
+ font-weight: 900;
495
+ }
496
496
 
497
- &.value {
498
- text-align: center;
499
- }
497
+ &.value {
498
+ text-align: center;
499
+ }
500
500
 
501
- &.tall-row {
502
- height: 100px;
503
- line-height: 1.4;
504
- padding: 10px 15px;
505
- }
501
+ &.tall-row {
502
+ height: 100px;
503
+ line-height: 1.4;
504
+ padding: 10px 15px;
506
505
  }
507
506
  }
507
+ }
508
508
 
509
- &__stats-row {
510
- height: 54px !important;
509
+ &__stats-row {
510
+ height: 54px !important;
511
511
 
512
- .stats-content {
513
- display: flex;
514
- justify-content: center;
515
- align-items: center;
516
- width: 100%;
517
- font-size: 20px;
518
- font-weight: 700;
519
- gap: 30px;
520
-
521
- .num {
522
- font-family: "Times New Roman", serif;
523
- font-size: 24px;
524
- margin: 0 5px;
525
- min-width: 30px;
526
- display: inline-block;
527
- text-align: center;
528
- border-bottom: none; // 如果需要下划线可以加,但图片里没有
529
- }
512
+ .stats-content {
513
+ display: flex;
514
+ justify-content: center;
515
+ align-items: center;
516
+ width: 100%;
517
+ font-size: 20px;
518
+ font-weight: 700;
519
+ gap: 30px;
520
+
521
+ .num {
522
+ font-family: "Times New Roman", serif;
523
+ font-size: 24px;
524
+ margin: 0 5px;
525
+ min-width: 30px;
526
+ display: inline-block;
527
+ text-align: center;
528
+ border-bottom: none; // 如果需要下划线可以加,但图片里没有
530
529
  }
531
530
  }
532
531
  }
532
+ }
533
+
534
+ // 项目模式封面样式
535
+ .project-cover-container {
536
+ // position: absolute;
537
+ // left: 15px;
538
+ // top: 0px;
539
+ // width: calc(100% - 15px);
540
+ width: 100%;
541
+ height: 100%;
542
+ z-index: 20;
543
+ box-sizing: border-box;
544
+ display: flex;
545
+ flex-direction: column;
546
+ font-family: "SimSun", "STSong", serif;
547
+ padding: 30px;
548
+
549
+ // 移除 react-pageflip 默认添加的样式影响
550
+ &.stf__item {
551
+ background-color: transparent !important;
552
+ box-shadow: none !important;
553
+
554
+ &.--hard,
555
+ &.--soft,
556
+ &.--simple,
557
+ &.--right {
558
+ background-color: transparent !important;
559
+ }
560
+ }
533
561
 
534
- // 项目模式封面样式
535
- .project-cover-container {
536
- // position: absolute;
537
- // left: 15px;
538
- // top: 0px;
539
- // width: calc(100% - 15px);
540
- width: 100%;
562
+ .project-cover-border-outer {
563
+ border: 5px solid #000;
564
+ padding: 5px;
541
565
  height: 100%;
542
- z-index: 20;
543
566
  box-sizing: border-box;
567
+ }
568
+
569
+ .project-cover-border-inner {
570
+ border: 2px solid #000;
571
+ height: 100%;
544
572
  display: flex;
545
573
  flex-direction: column;
546
- font-family: "SimSun", "STSong", serif;
547
- padding: 30px;
574
+ box-sizing: border-box;
575
+ }
548
576
 
549
- // 移除 react-pageflip 默认添加的样式影响
550
- &.stf__item {
551
- background-color: transparent !important;
552
- box-shadow: none !important;
577
+ .project-cover-header {
578
+ text-align: center;
579
+ color: #000;
580
+ // padding: 8px 0;
553
581
 
554
- &.--hard,
555
- &.--soft,
556
- &.--simple,
557
- &.--right {
558
- background-color: transparent !important;
559
- }
560
- }
582
+ .project-cover-title {
583
+ height: 110px;
584
+ line-height: 110px;
561
585
 
562
- .project-cover-border-outer {
563
- border: 5px solid #000;
564
- padding: 5px;
565
- height: 100%;
566
- box-sizing: border-box;
586
+ font-size: 54px;
587
+ font-weight: 900;
588
+ letter-spacing: 8px;
589
+ // margin: 22px 0;
567
590
  }
591
+ }
568
592
 
569
- .project-cover-border-inner {
570
- border: 2px solid #000;
571
- height: 100%;
593
+ .project-cover-stats-row {
594
+ display: flex;
595
+ border-bottom: 1px solid #000;
596
+ border-top: 1px solid #000;
597
+ margin-top: -1px;
598
+
599
+ .stat-cell-label {
600
+ flex: 1;
601
+ text-align: center;
602
+ height: 52px;
603
+ line-height: 52px;
604
+ // padding: 8px;
605
+ border-right: 1px solid #000;
572
606
  display: flex;
573
- flex-direction: column;
574
- box-sizing: border-box;
607
+ align-items: center;
608
+ justify-content: center;
609
+ gap: 8px;
575
610
  }
576
611
 
577
- .project-cover-header {
612
+ .stat-cell-value {
613
+ flex: 1;
578
614
  text-align: center;
579
- color: #000;
580
- padding: 8px 0;
615
+ height: 52px;
616
+ line-height: 52px;
617
+ border-right: 1px solid #000;
618
+ font-family: "Times New Roman", serif;
619
+ font-size: 18px;
620
+ font-weight: bold;
581
621
 
582
- .project-cover-title {
583
- font-size: 54px;
584
- margin: 0;
585
- font-weight: 900;
586
- letter-spacing: 8px;
587
- padding: 20px 0;
622
+ &:last-child {
623
+ border-right: none;
588
624
  }
589
625
  }
626
+ }
627
+
628
+ .project-cover-details {
629
+ // flex: 1;
630
+ display: flex;
631
+ flex-direction: column;
590
632
 
591
- .project-cover-stats-row {
633
+ .detail-row {
592
634
  display: flex;
593
635
  border-bottom: 1px solid #000;
594
- border-top: 1px solid #000;
595
- margin-top: -1px;
636
+ height: 40px;
596
637
 
597
- .stat-cell-label {
598
- flex: 1;
599
- text-align: center;
600
- padding: 12px;
638
+ .detail-label {
639
+ width: 100px;
640
+ padding-left: 28px;
641
+ line-height: 40px;
642
+ font-weight: bold;
601
643
  border-right: 1px solid #000;
602
- display: flex;
603
- align-items: center;
604
- justify-content: center;
605
- gap: 8px;
606
644
  }
607
645
 
608
- .stat-cell-value {
646
+ .detail-value {
647
+ padding-left: 28px;
648
+ line-height: 40px;
609
649
  flex: 1;
610
- text-align: center;
611
- padding: 12px;
612
- border-right: 1px solid #000;
613
- font-family: "Times New Roman", serif;
614
- font-size: 18px;
615
- font-weight: bold;
616
-
617
- &:last-child {
618
- border-right: none;
619
- }
650
+ font-weight: 600;
620
651
  }
621
652
  }
653
+ }
622
654
 
623
- .project-cover-details {
624
- // flex: 1;
655
+ .project-cover-footer {
656
+ .footer-row {
625
657
  display: flex;
626
- flex-direction: column;
658
+ border-bottom: 1px solid #000;
627
659
 
628
- .detail-row {
660
+ .footer-cell {
661
+ flex: 1;
662
+ text-align: center;
663
+ height: 45px;
664
+ line-height: 45px;
665
+ border-right: 1px solid #000;
666
+ font-weight: bold;
629
667
  display: flex;
630
- border-bottom: 1px solid #000;
631
-
632
- .detail-label {
633
- width: 100px;
634
- padding: 12px;
635
- font-weight: bold;
636
- border-right: 1px solid #000;
637
- }
638
-
639
- .detail-value {
640
- flex: 1;
641
- padding: 12px;
668
+ align-items: center;
669
+ justify-content: center;
670
+ font-size: 16px;
642
671
 
643
- font-weight: 600;
672
+ &:last-child {
673
+ border-right: none;
644
674
  }
645
675
  }
646
- }
647
676
 
648
- .project-cover-footer {
649
- .footer-row {
650
- display: flex;
651
- border-bottom: 1px solid #000;
652
-
653
- .footer-cell {
654
- flex: 1;
655
- text-align: center;
656
- padding: 12px;
657
- border-right: 1px solid #000;
658
- font-weight: bold;
659
- display: flex;
660
- align-items: center;
661
- justify-content: center;
662
- font-size: 16px;
663
-
664
- &:last-child {
665
- border-right: none;
666
- }
667
- }
668
-
669
- &.no-bottom-border {
670
- border-bottom: none;
671
- }
677
+ &.no-bottom-border {
678
+ border-bottom: none;
672
679
  }
673
680
  }
674
- }
681
+ }
682
+ }