appsnbcbweicheng 1.2.25 → 1.2.27

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,765 +0,0 @@
1
- <template>
2
- <div class="event-interpretation">
3
- <!-- 筛选区域 -->
4
- <el-card class="filter-card" shadow="never">
5
- <el-form
6
- :inline="true"
7
- :model="searchForm"
8
- class="search-form"
9
- label-width="100px"
10
- size="small"
11
- >
12
- <el-form-item label="基金简称">
13
- <el-input
14
- v-model="searchForm.fundAbbr"
15
- placeholder="请输入基金简称"
16
- clearable
17
- style="width: 200px"
18
- :maxlength="64"
19
- show-word-limit
20
- @input="handleFundAbbrInput"
21
- />
22
- </el-form-item>
23
- <el-form-item label="基金代码">
24
- <el-input
25
- v-model="searchForm.fundCode"
26
- placeholder="请输入基金代码"
27
- clearable
28
- style="width: 200px"
29
- show-word-limit
30
- :maxlength="6"
31
- @input="handleFundCodeInput"
32
- />
33
- </el-form-item>
34
- <el-form-item label="解读框架">
35
- <el-select
36
- v-model="searchForm.explainFrame"
37
- multiple
38
- filterable
39
- placeholder="请选择解读框架"
40
- clearable
41
- style="width: 300px"
42
- >
43
- <el-option
44
- v-for="item in explainFrameOptions"
45
- :key="item.value"
46
- :label="item.label"
47
- :value="item.value"
48
- />
49
- </el-select>
50
- </el-form-item>
51
- <el-form-item label="数据截止日期">
52
- <el-date-picker
53
- v-model="searchForm.date"
54
- type="date"
55
- placeholder="选择数据截止日期"
56
- value-format="yyyy-MM-dd"
57
- clearable
58
- style="width: 200px"
59
- :picker-options="endDatePickerOptions"
60
- />
61
- </el-form-item>
62
- <el-form-item label="解读发布时间">
63
- <el-date-picker
64
- v-model="searchForm.startDateRange"
65
- type="daterange"
66
- range-separator="至"
67
- start-placeholder="开始日期"
68
- end-placeholder="结束日期"
69
- value-format="yyyy-MM-dd"
70
- :picker-options="datePickerOptions"
71
- clearable
72
- style="width: 280px"
73
- />
74
- </el-form-item>
75
- <el-form-item>
76
- <el-button type="primary" @click="handleSearch">查询</el-button>
77
- <el-button @click="handleReset">重置</el-button>
78
- </el-form-item>
79
- </el-form>
80
- </el-card>
81
-
82
- <!-- 展示区域 -->
83
- <el-card class="display-card" shadow="never">
84
- <!-- 描述部分 -->
85
- <div class="description-section">
86
- <div class="description-left">
87
- <span class="fund-summary">{{ fundSummary }}</span>
88
- </div>
89
- <div class="description-right">
90
- <span class="text">2025年12月24号新增789条数据,0条未操作。</span>
91
- <el-button type="primary" size="small" @click="openStatisticsDialog"
92
- >数据覆盖度统计</el-button
93
- >
94
- </div>
95
- </div>
96
-
97
- <!-- 表格 -->
98
- <el-table
99
- :data="tableData"
100
- border
101
- stripe
102
- class="result-table"
103
- size="small"
104
- :default-sort="{ prop: 'fundCode', order: 'ascending' }"
105
- @sort-change="handleSortChange"
106
- >
107
- <el-table-column type="index" label="序号" width="60" fixed="left" />
108
- <el-table-column prop="fundAbbr" label="基金简称" min-width="150" fixed="left">
109
- </el-table-column>
110
- <el-table-column
111
- prop="fundCode"
112
- label="基金代码"
113
- width="120"
114
- sortable="custom"
115
- fixed="left"
116
- />
117
- <el-table-column prop="explainFrame" label="解读框架" min-width="150" />
118
- <el-table-column prop="category" label="基金分类" min-width="120" />
119
- <el-table-column prop="explainContent" label="解读内容" min-width="200">
120
- <template slot-scope="{ row }">
121
- <div class="expandable-content">
122
- <div
123
- :class="{
124
- 'content-collapse': !row.expandExplainContent,
125
- 'content-expanded': row.expandExplainContent,
126
- }"
127
- >
128
- {{ row.explainContent }}
129
- </div>
130
- <el-button
131
- v-if="shouldShowExpand(row.explainContent)"
132
- type="text"
133
- size="mini"
134
- @click="toggleExpand(row, 'explainContent')"
135
- >
136
- {{ row.expandExplainContent ? '收起' : '展开' }}
137
- </el-button>
138
- </div>
139
- </template>
140
- </el-table-column>
141
- <el-table-column prop="explainDimensions" label="解读维度" min-width="150">
142
- <template slot-scope="{ row }">
143
- <div class="expandable-content">
144
- <div
145
- :class="{
146
- 'content-expanded': row.expandExplainDimensions,
147
- 'content-collapse': !row.expandExplainDimensions,
148
- }"
149
- >
150
- {{ row.explainDimensions }}
151
- </div>
152
- <el-button
153
- v-if="shouldShowExpand(row.explainDimensions)"
154
- type="text"
155
- size="mini"
156
- @click="toggleExpand(row, 'explainDimensions')"
157
- >
158
- {{ row.expandExplainDimensions ? '收起' : '展开' }}
159
- </el-button>
160
- </div>
161
- </template>
162
- </el-table-column>
163
- <el-table-column prop="explainDirection" label="解读方向" min-width="120">
164
- <template slot-scope="{ row }">
165
- <div class="expandable-content">
166
- <div
167
- :class="{
168
- 'content-expanded': row.expandExplainDirection,
169
- 'content-collapse': !row.expandExplainDirection,
170
- }"
171
- >
172
- {{ row.explainDirection }}
173
- </div>
174
- <el-button
175
- v-if="shouldShowExpand(row.explainDirection)"
176
- type="text"
177
- size="mini"
178
- @click="toggleExpand(row, 'explainDirection')"
179
- >
180
- {{ row.expandExplainDirection ? '收起' : '展开' }}
181
- </el-button>
182
- </div>
183
- </template>
184
- </el-table-column>
185
- <el-table-column prop="date" label="数据截止日期" width="120" />
186
- <el-table-column prop="startDate" label="解读发布时间" width="120" sortable="custom" />
187
- </el-table>
188
- <div class="pagination-container">
189
- <el-pagination
190
- background
191
- @size-change="handleSizeChange"
192
- @current-change="handleCurrentChange"
193
- :current-page="pagination.currentPage"
194
- :page-sizes="[10, 20, 50, 100]"
195
- :page-size="pagination.pageSize"
196
- layout="total, sizes, prev, pager, next, jumper"
197
- :total="pagination.total"
198
- >
199
- </el-pagination>
200
- </div>
201
- </el-card>
202
-
203
- <!-- 数据统计弹窗 -->
204
- <el-dialog
205
- title="数据统计"
206
- :visible.sync="statisticsDialogVisible"
207
- width="1200px"
208
- :close-on-click-modal="false"
209
- >
210
- <!-- 上部分:数据总量 -->
211
- <div class="statistics-top">
212
- <!-- 第一行 -->
213
- <div class="statistics-row">
214
- <div class="statistics-item-left">
215
- <span class="label">基金总量:</span>
216
- <span class="value">{{ statisticsData.fundTotal }}</span>
217
- </div>
218
- <div class="statistics-item-right">
219
- <span class="label">数据截止日期:</span>
220
- <span class="value">{{ statisticsData.date }}</span>
221
- <el-button type="primary" size="small" style="margin-left: 10px" @click="handleExport">
222
- 数据导出
223
- </el-button>
224
- </div>
225
- </div>
226
- <!-- 第二行:三列展示 -->
227
- <div class="statistics-row statistics-three-columns">
228
- <div class="statistics-column">
229
- <div class="column-label">应跑基金总量</div>
230
- <div class="column-value">{{ statisticsData.shouldRunTotal }}</div>
231
- </div>
232
- <div class="statistics-column">
233
- <div class="column-label">有论据基金总量</div>
234
- <div class="column-value">{{ statisticsData.withArgumentTotal }}</div>
235
- </div>
236
- <div class="statistics-column">
237
- <div class="column-label">兜底基金总量</div>
238
- <div class="column-value">{{ statisticsData.fallbackTotal }}</div>
239
- </div>
240
- </div>
241
- </div>
242
-
243
- <!-- 下部分:数据分布 -->
244
- <div class="statistics-bottom">
245
- <div class="section-title">数据分布</div>
246
- <el-table
247
- :data="distributionTableData"
248
- row-key="index"
249
- border
250
- :default-expand-all="false"
251
- :tree-props="{ children: 'children', hasChildren: 'hasChildren' }"
252
- >
253
- style="width: 100%; margin-bottom: 20px;" >
254
- <el-table-column prop="index" label="框架序号" width="120" />
255
- <el-table-column prop="frameName" label="解读框架" />
256
- <el-table-column prop="argument" label="有值论据" />
257
- <el-table-column prop="nums" label="命中数量" />
258
- <el-table-column label="占基金总量比例">
259
- <template slot-scope="scope"> {{ scope.row.rate }}% </template>
260
- </el-table-column>
261
- </el-table>
262
- </div>
263
-
264
- <span slot="footer" class="dialog-footer">
265
- <el-button @click="statisticsDialogVisible = false">关 闭</el-button>
266
- </span>
267
- </el-dialog>
268
- </div>
269
- </template>
270
-
271
- <script>
272
- export default {
273
- name: 'EventInterpretation',
274
- data() {
275
- return {
276
- // 筛选表单
277
- searchForm: {
278
- fundAbbr: '',
279
- fundCode: '',
280
- explainFrame: [],
281
- date: '',
282
- startDateRange: [],
283
- },
284
- // 解读框架选项
285
- explainFrameOptions: [
286
- { label: '框架A', value: 'frameA' },
287
- { label: '框架B', value: 'frameB' },
288
- { label: '框架C', value: 'frameC' },
289
- { label: '框架D', value: 'frameD' },
290
- ],
291
- endDatePickerOptions: {
292
- disabledDate(time) {
293
- const now = new Date()
294
- const oneMonthAgo = new Date(now.getTime() - 30 * 24 * 60 * 60 * 1000)
295
- const isWeekend = time.getDay() === 0 || time.getDay() === 6
296
- return (
297
- time.getTime() > now.getTime() || time.getTime() < oneMonthAgo.getTime() || isWeekend
298
- )
299
- },
300
- },
301
- // 日期选择器配置(限制一月内)
302
- datePickerOptions: {
303
- disabledDate(time) {
304
- const now = new Date()
305
- const oneMonthAgo = new Date(now.getTime() - 30 * 24 * 60 * 60 * 1000)
306
- return time.getTime() > now.getTime() || time.getTime() < oneMonthAgo.getTime()
307
- },
308
- },
309
- // 基金一句话描述
310
- fundSummary: '这是一只优秀的基金产品,具有良好的市场表现和投资价值。',
311
- // 基金简称搜索
312
- fundAbbrSearch: '',
313
- // 原始表格数据
314
- originalTableData: [
315
- {
316
- id: 1,
317
- fundAbbr: '基金A',
318
- fundCode: '000001',
319
- explainFrame: '框架A',
320
- category: '股票型',
321
- explainContent:
322
- '11111111111111111111111111111111111111111这是一段很长的解读内容,需要展示在表格中,当内容超过3行时需要显示展开按钮来查看更多内容。这是一段很长的解读内容,需要展示在表格中,当内容超过3行时需要显示展开按钮来查看更多内容。这是一段很长的解读内容,需要展示在表格中,当内容超过3行时需要显示展开按钮来查看更多内容。',
323
- explainDimensions:
324
- 'qwqw1211111111111111111111111111111111111111111111111111111222222222222222222222222维度1、维度2、维度3、维度4、维度5',
325
- explainDirection:
326
- '11111111111111111111111111111222222222222222222222222222222221212222222222222222222222221111向上、向下、持平、向上、向下、持平',
327
- date: '2024-01-15',
328
- startDate: '2024-01-20',
329
- expandExplainContent: false,
330
- expandExplainDimensions: false,
331
- expandExplainDirection: false,
332
- },
333
- {
334
- id: 2,
335
- fundAbbr: '基金B',
336
- fundCode: '000002',
337
- explainFrame: '框架B',
338
- category: '混合型',
339
- explainContent: '解读内容B',
340
- explainDimensions: '维度B',
341
- explainDirection: '方向B',
342
- date: '2024-01-16',
343
- startDate: '2024-01-21',
344
- expandExplainContent: false,
345
- expandExplainDimensions: false,
346
- expandExplainDirection: false,
347
- },
348
- ],
349
- // 排序配置
350
- sortConfig: {
351
- prop: 'fundCode',
352
- order: 'ascending',
353
- },
354
- // 统计弹窗显示状态
355
- statisticsDialogVisible: false,
356
- // 统计数据
357
- statisticsData: {
358
- fundTotal: 100,
359
- date: '2024-01-15',
360
- shouldRunTotal: 80,
361
- withArgumentTotal: 65,
362
- fallbackTotal: 15,
363
- },
364
- // 临时修改 distributionTableData 数据(删除 hasChildren 字段)
365
- distributionTableData: [
366
- {
367
- index: '1',
368
- frameName: '框架A',
369
- argument: '论据A1',
370
- nums: 30,
371
- rate: 30,
372
- // 移除 hasChildren: true
373
- children: [
374
- { index: '1-1', frameName: '框架A-子项1', argument: '论据A1-1', nums: 20, rate: 20 },
375
- { index: '1-2', frameName: '框架A-子项2', argument: '论据A1-2', nums: 10, rate: 10 },
376
- ],
377
- },
378
- {
379
- index: '2',
380
- frameName: '框架B',
381
- argument: '论据B1',
382
- nums: 25,
383
- rate: 25,
384
- // 移除 hasChildren: true
385
- children: [
386
- { index: '2-1', frameName: '框架B-子项1', argument: '论据B1-1', nums: 15, rate: 15 },
387
- { index: '2-2', frameName: '框架B-子项2', argument: '论据B1-2', nums: 10, rate: 10 },
388
- ],
389
- },
390
- ],
391
- // 展开的行
392
- expandedRows: {},
393
- // 分页配置
394
- pagination: {
395
- currentPage: 1,
396
- pageSize: 10,
397
- total: 0,
398
- },
399
- }
400
- },
401
- computed: {
402
- // 过滤后的所有数据(不分页)
403
- filteredData() {
404
- let data = [...this.originalTableData]
405
-
406
- // 基金简称模糊查询
407
- if (this.fundAbbrSearch) {
408
- data = data.filter(item => item.fundAbbr && item.fundAbbr.includes(this.fundAbbrSearch))
409
- }
410
-
411
- // 其他筛选条件
412
- if (this.searchForm.fundAbbr) {
413
- data = data.filter(
414
- item => item.fundAbbr && item.fundAbbr.includes(this.searchForm.fundAbbr),
415
- )
416
- }
417
- if (this.searchForm.fundCode) {
418
- data = data.filter(
419
- item => item.fundCode && item.fundCode.includes(this.searchForm.fundCode),
420
- )
421
- }
422
- if (this.searchForm.explainFrame && this.searchForm.explainFrame.length > 0) {
423
- data = data.filter(item => this.searchForm.explainFrame.includes(item.explainFrame))
424
- }
425
- if (this.searchForm.date) {
426
- data = data.filter(item => item.date === this.searchForm.date)
427
- }
428
- if (this.searchForm.startDateRange && this.searchForm.startDateRange.length === 2) {
429
- const [startDate, endDate] = this.searchForm.startDateRange
430
- data = data.filter(item => {
431
- return item.startDate >= startDate && item.startDate <= endDate
432
- })
433
- }
434
-
435
- // 排序
436
- if (this.sortConfig.prop) {
437
- data.sort((a, b) => {
438
- const aVal = a[this.sortConfig.prop]
439
- const bVal = b[this.sortConfig.prop]
440
- if (this.sortConfig.order === 'ascending') {
441
- return aVal > bVal ? 1 : aVal < bVal ? -1 : 0
442
- } else {
443
- return aVal < bVal ? 1 : aVal > bVal ? -1 : 0
444
- }
445
- })
446
- }
447
-
448
- return data
449
- },
450
- // 分页后的表格数据
451
- tableData() {
452
- const { currentPage, pageSize } = this.pagination
453
- const start = (currentPage - 1) * pageSize
454
- const end = start + pageSize
455
- return this.filteredData.slice(start, end)
456
- },
457
- },
458
- watch: {
459
- // 监听过滤后的数据变化,更新总数
460
- filteredData: {
461
- handler(val) {
462
- this.pagination.total = val.length
463
- },
464
- immediate: true,
465
- },
466
- },
467
- mounted() {
468
- // 初始化原始数据
469
- this.originalTableData = JSON.parse(JSON.stringify(this.originalTableData))
470
- },
471
- methods: {
472
- // 基金简称输入(仅中文,且最多 64 个中文字符)
473
- handleFundAbbrInput(value) {
474
- if (!value) {
475
- this.searchForm.fundAbbr = ''
476
- return
477
- }
478
- // 只保留中文字符
479
- const chineseOnly = value.match(/[\u4e00-\u9fa5]/g)
480
- const result = chineseOnly ? chineseOnly.join('') : ''
481
- // 限制最多 64 个中文字符
482
- this.searchForm.fundAbbr = result.slice(0, 64)
483
- },
484
- // 基金代码输入(仅数字和字母,最多 6 位)
485
- handleFundCodeInput(value) {
486
- if (!value) {
487
- this.searchForm.fundCode = ''
488
- return
489
- }
490
- const matched = value.match(/[0-9a-zA-Z]/g)
491
- const result = matched ? matched.join('') : ''
492
- this.searchForm.fundCode = result.slice(0, 6)
493
- },
494
- // 查询
495
- handleSearch() {
496
- console.log('查询条件:', this.searchForm)
497
- this.pagination.currentPage = 1
498
- // TODO: 实现查询逻辑
499
- },
500
- // 分页大小改变
501
- handleSizeChange(val) {
502
- console.log(`每页 ${val} 条`)
503
- this.pagination.pageSize = val
504
- this.handleSearch()
505
- },
506
- // 当前页改变
507
- handleCurrentChange(val) {
508
- console.log(`当前页: ${val}`)
509
- this.pagination.currentPage = val
510
- },
511
- // 重置
512
- handleReset() {
513
- this.searchForm = {
514
- fundAbbr: '',
515
- fundCode: '',
516
- explainFrame: [],
517
- date: '',
518
- startDateRange: [],
519
- }
520
- },
521
- // 表格排序
522
- handleSortChange({ prop, order }) {
523
- if (prop === 'fundCode' || prop === 'startDate') {
524
- this.sortConfig = { prop, order }
525
- // TODO: 实现排序逻辑
526
- console.log('排序:', { prop, order })
527
- }
528
- },
529
- // // 基金简称筛选
530
- // handleFundAbbrFilter() {
531
- // // 通过 computed 属性自动过滤
532
- // },
533
- // 判断是否需要显示展开按钮(超过3行)
534
- shouldShowExpand(content) {
535
- if (!content) return false
536
- // 简单的判断:如果内容长度超过某个阈值,认为超过3行
537
- // 实际可以使用更精确的方法,比如计算实际行数
538
- return content.length > 100
539
- },
540
- // 切换展开/收起
541
- toggleExpand(row, field) {
542
- const expandField = `expand${field.charAt(0).toUpperCase() + field.slice(1)}`
543
- this.$set(row, expandField, !row[expandField])
544
- },
545
- // 打开统计弹窗
546
- openStatisticsDialog() {
547
- // TODO: 根据当前表格数据查询统计数据
548
- this.statisticsDialogVisible = true
549
- },
550
- // 数据导出
551
- handleExport() {
552
- // TODO: 实现数据导出逻辑
553
- this.$message.success('导出功能开发中...')
554
- },
555
- },
556
- }
557
- </script>
558
-
559
- <style scoped lang="scss">
560
- .event-interpretation {
561
- padding: 20px;
562
- background-color: #f5f7fa;
563
- min-height: calc(100vh - 40px);
564
-
565
- .filter-card {
566
- margin-bottom: 20px;
567
- background-color: #fff;
568
-
569
- .search-form {
570
- padding: 10px 0;
571
- }
572
- }
573
-
574
- .display-card {
575
- background-color: #fff;
576
-
577
- .description-section {
578
- display: flex;
579
- justify-content: space-between;
580
- align-items: center;
581
- padding: 15px 0;
582
- border-bottom: 1px solid #ebeef5;
583
- margin-bottom: 15px;
584
-
585
- .description-left {
586
- flex: 1;
587
-
588
- .fund-summary {
589
- font-size: 14px;
590
- color: #606266;
591
- }
592
- }
593
-
594
- .description-right {
595
- display: flex;
596
- align-items: center;
597
- gap: 10px;
598
-
599
- .text {
600
- font-size: 14px;
601
- color: #606266;
602
- }
603
- }
604
- }
605
-
606
- .result-table {
607
- .expandable-content {
608
- width: 100%;
609
-
610
- /* 折叠状态样式(明确类名) */
611
- .content-collapse {
612
- display: -webkit-box;
613
- -webkit-line-clamp: 3;
614
- line-clamp: 3;
615
- -webkit-box-orient: vertical;
616
- overflow: hidden;
617
- text-overflow: ellipsis;
618
- white-space: normal;
619
- word-wrap: break-word;
620
- }
621
-
622
- /* 展开状态样式 */
623
- .content-expanded {
624
- white-space: normal;
625
- word-wrap: break-word;
626
- overflow: visible;
627
- /* 确保展开后内容完全显示 */
628
- }
629
-
630
- /* 按钮样式优化 */
631
- .el-button {
632
- margin-top: 5px;
633
- color: #409eff;
634
- }
635
- }
636
-
637
- // .expandable-content {
638
- // .content-expanded {
639
- // white-space: normal;
640
- // word-wrap: break-word;
641
- // }
642
-
643
- // div:not(.content-expanded) {
644
- // display: -webkit-box;
645
- // -webkit-line-clamp: 3;
646
- // line-clamp: 3;
647
- // -webkit-box-orient: vertical;
648
- // overflow: hidden;
649
- // text-overflow: ellipsis;
650
- // white-space: normal;
651
- // word-wrap: break-word;
652
- // }
653
- // }
654
- }
655
- }
656
-
657
- // 统计弹窗样式
658
- .statistics-top {
659
- margin-bottom: 30px;
660
-
661
- .statistics-row {
662
- display: flex;
663
- justify-content: space-between;
664
- align-items: center;
665
- margin-bottom: 20px;
666
-
667
- &.statistics-three-columns {
668
- display: flex;
669
- gap: 20px;
670
- margin-top: 20px;
671
-
672
- .statistics-column {
673
- flex: 1;
674
- padding: 15px;
675
- background-color: #f5f7fa;
676
- border-radius: 4px;
677
- text-align: center;
678
-
679
- .column-label {
680
- font-size: 14px;
681
- color: #606266;
682
- margin-bottom: 10px;
683
- }
684
-
685
- .column-value {
686
- font-size: 24px;
687
- font-weight: bold;
688
- color: #409eff;
689
- }
690
- }
691
- }
692
-
693
- .statistics-item-left,
694
- .statistics-item-right {
695
- display: flex;
696
- align-items: center;
697
-
698
- .label {
699
- font-size: 14px;
700
- color: #606266;
701
- margin-right: 5px;
702
- }
703
-
704
- .value {
705
- font-size: 14px;
706
- color: #303133;
707
- font-weight: 500;
708
- }
709
- }
710
- }
711
- }
712
-
713
- .statistics-bottom {
714
- .section-title {
715
- font-size: 16px;
716
- font-weight: bold;
717
- color: #303133;
718
- margin-bottom: 15px;
719
- }
720
-
721
- .distribution-table {
722
- .expand-icon {
723
- cursor: pointer;
724
- display: inline-block;
725
- width: 20px;
726
- text-align: center;
727
- color: #409eff;
728
- margin-right: 5px;
729
- user-select: none;
730
- }
731
-
732
- .index-text {
733
- cursor: pointer;
734
- user-select: none;
735
- color: #409eff;
736
-
737
- &:hover {
738
- text-decoration: underline;
739
- }
740
- }
741
- }
742
- }
743
-
744
- /* 电脑端表单样式 */
745
- .search-form {
746
- display: flex;
747
- align-items: center;
748
- gap: 15px;
749
- /* 统一表单项之间的间距,替代默认margin的混乱 */
750
- flex-wrap: wrap;
751
- /* 极端窄屏(如小尺寸电脑)时自动换行,避免溢出 */
752
- }
753
-
754
- /* 清除Element默认的表单项底边距,避免布局错位 */
755
- .search-form :deep(.el-form-item) {
756
- margin-bottom: 0;
757
- }
758
-
759
- .pagination-container {
760
- margin-top: 20px;
761
- display: flex;
762
- justify-content: flex-end;
763
- }
764
- }
765
- </style>