vue2-client 1.16.62 → 1.16.64
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/.claude/settings.local.json +7 -2
- package/.serena/project.yml +67 -0
- package/CLAUDE.md +12 -4
- package/package.json +1 -1
- package/src/assets/img/paymentMethod/icon1.png +0 -0
- package/src/assets/img/paymentMethod/icon2.png +0 -0
- package/src/assets/img/paymentMethod/icon3.png +0 -0
- package/src/assets/img/paymentMethod/icon4.png +0 -0
- package/src/assets/img/paymentMethod/icon5.png +0 -0
- package/src/assets/img/paymentMethod/icon6.png +0 -0
- package/src/base-client/components/common/HIS/demo.vue +14 -14
- package/src/base-client/components/common/Upload/Upload.vue +4 -4
- package/src/base-client/components/common/XCollapse/XCollapse.vue +34 -20
- package/src/base-client/components/common/XReport/XReportHospitalizationDemo.vue +45 -0
- package/src/base-client/components/common/XReportGrid/XReportDemo.vue +1 -1
- package/src/base-client/components/common/XReportGrid/XReportTrGroup.vue +19 -5
- package/src/base-client/components/his/XCharge/XChargeDemo.vue +0 -1
- package/src/base-client/components/his/XHDescriptions/XHDescriptions.vue +357 -170
- package/src/base-client/components/his/XSidebar/XSidebar.vue +123 -27
- package/src/pages/WorkflowDetail/WorkFlowDemo3.vue +203 -203
- package/src/router/async/router.map.js +1 -0
- package/src-base-client/components/his/XCharge/README.md +0 -0
- package/src-base-client/components/his/XCharge/XCharge.vue +0 -0
|
@@ -7,10 +7,15 @@
|
|
|
7
7
|
"mcp__context7__resolve-library-id",
|
|
8
8
|
"mcp__context7__get-library-docs",
|
|
9
9
|
"WebFetch(domain:github.com)",
|
|
10
|
-
"Bash(npm run serve:*)"
|
|
10
|
+
"Bash(npm run serve:*)",
|
|
11
|
+
"mcp__serena__get_current_config",
|
|
12
|
+
"mcp__serena__activate_project",
|
|
13
|
+
"mcp__serena__get_symbols_overview",
|
|
14
|
+
"mcp__serena__list_dir",
|
|
15
|
+
"mcp__serena__find_file"
|
|
11
16
|
],
|
|
12
17
|
"deny": [],
|
|
13
18
|
"ask": [],
|
|
14
19
|
"defaultMode": "acceptEdits"
|
|
15
20
|
}
|
|
16
|
-
}
|
|
21
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# language of the project (csharp, python, rust, java, typescript, go, cpp, or ruby)
|
|
2
|
+
# * For C, use cpp
|
|
3
|
+
# * For JavaScript, use typescript
|
|
4
|
+
# Special requirements:
|
|
5
|
+
# * csharp: Requires the presence of a .sln file in the project folder.
|
|
6
|
+
language: typescript
|
|
7
|
+
|
|
8
|
+
# whether to use the project's gitignore file to ignore files
|
|
9
|
+
# Added on 2025-04-07
|
|
10
|
+
ignore_all_files_in_gitignore: true
|
|
11
|
+
# list of additional paths to ignore
|
|
12
|
+
# same syntax as gitignore, so you can use * and **
|
|
13
|
+
# Was previously called `ignored_dirs`, please update your config if you are using that.
|
|
14
|
+
# Added (renamed) on 2025-04-07
|
|
15
|
+
ignored_paths: []
|
|
16
|
+
|
|
17
|
+
# whether the project is in read-only mode
|
|
18
|
+
# If set to true, all editing tools will be disabled and attempts to use them will result in an error
|
|
19
|
+
# Added on 2025-04-18
|
|
20
|
+
read_only: false
|
|
21
|
+
|
|
22
|
+
# list of tool names to exclude. We recommend not excluding any tools, see the readme for more details.
|
|
23
|
+
# Below is the complete list of tools for convenience.
|
|
24
|
+
# To make sure you have the latest list of tools, and to view their descriptions,
|
|
25
|
+
# execute `uv run scripts/print_tool_overview.py`.
|
|
26
|
+
#
|
|
27
|
+
# * `activate_project`: Activates a project by name.
|
|
28
|
+
# * `check_onboarding_performed`: Checks whether project onboarding was already performed.
|
|
29
|
+
# * `create_text_file`: Creates/overwrites a file in the project directory.
|
|
30
|
+
# * `delete_lines`: Deletes a range of lines within a file.
|
|
31
|
+
# * `delete_memory`: Deletes a memory from Serena's project-specific memory store.
|
|
32
|
+
# * `execute_shell_command`: Executes a shell command.
|
|
33
|
+
# * `find_referencing_code_snippets`: Finds code snippets in which the symbol at the given location is referenced.
|
|
34
|
+
# * `find_referencing_symbols`: Finds symbols that reference the symbol at the given location (optionally filtered by type).
|
|
35
|
+
# * `find_symbol`: Performs a global (or local) search for symbols with/containing a given name/substring (optionally filtered by type).
|
|
36
|
+
# * `get_current_config`: Prints the current configuration of the agent, including the active and available projects, tools, contexts, and modes.
|
|
37
|
+
# * `get_symbols_overview`: Gets an overview of the top-level symbols defined in a given file.
|
|
38
|
+
# * `initial_instructions`: Gets the initial instructions for the current project.
|
|
39
|
+
# Should only be used in settings where the system prompt cannot be set,
|
|
40
|
+
# e.g. in clients you have no control over, like Claude Desktop.
|
|
41
|
+
# * `insert_after_symbol`: Inserts content after the end of the definition of a given symbol.
|
|
42
|
+
# * `insert_at_line`: Inserts content at a given line in a file.
|
|
43
|
+
# * `insert_before_symbol`: Inserts content before the beginning of the definition of a given symbol.
|
|
44
|
+
# * `list_dir`: Lists files and directories in the given directory (optionally with recursion).
|
|
45
|
+
# * `list_memories`: Lists memories in Serena's project-specific memory store.
|
|
46
|
+
# * `onboarding`: Performs onboarding (identifying the project structure and essential tasks, e.g. for testing or building).
|
|
47
|
+
# * `prepare_for_new_conversation`: Provides instructions for preparing for a new conversation (in order to continue with the necessary context).
|
|
48
|
+
# * `read_file`: Reads a file within the project directory.
|
|
49
|
+
# * `read_memory`: Reads the memory with the given name from Serena's project-specific memory store.
|
|
50
|
+
# * `remove_project`: Removes a project from the Serena configuration.
|
|
51
|
+
# * `replace_lines`: Replaces a range of lines within a file with new content.
|
|
52
|
+
# * `replace_symbol_body`: Replaces the full definition of a symbol.
|
|
53
|
+
# * `restart_language_server`: Restarts the language server, may be necessary when edits not through Serena happen.
|
|
54
|
+
# * `search_for_pattern`: Performs a search for a pattern in the project.
|
|
55
|
+
# * `summarize_changes`: Provides instructions for summarizing the changes made to the codebase.
|
|
56
|
+
# * `switch_modes`: Activates modes by providing a list of their names
|
|
57
|
+
# * `think_about_collected_information`: Thinking tool for pondering the completeness of collected information.
|
|
58
|
+
# * `think_about_task_adherence`: Thinking tool for determining whether the agent is still on track with the current task.
|
|
59
|
+
# * `think_about_whether_you_are_done`: Thinking tool for determining whether the task is truly completed.
|
|
60
|
+
# * `write_memory`: Writes a named memory (for future reference) to Serena's project-specific memory store.
|
|
61
|
+
excluded_tools: []
|
|
62
|
+
|
|
63
|
+
# initial prompt for the project. It will always be given to the LLM upon activating the project
|
|
64
|
+
# (contrary to the memories, which are loaded on demand).
|
|
65
|
+
initial_prompt: ""
|
|
66
|
+
|
|
67
|
+
project_name: "vue2-client"
|
package/CLAUDE.md
CHANGED
|
@@ -83,8 +83,16 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
|
|
|
83
83
|
- 环境变量控制API端点和功能标志
|
|
84
84
|
|
|
85
85
|
### 代码风格指南(来自.cursorrules)
|
|
86
|
-
-
|
|
87
|
-
-
|
|
88
|
-
-
|
|
86
|
+
- 使用Vue 2.7组合API和setup语法糖,避免选项API(除非修改现有代码)
|
|
87
|
+
- 目录名使用kebab-case(如components/auth-wizard)
|
|
88
|
+
- 组件名使用PascalCase(如AuthWizard.vue)
|
|
89
|
+
- 可组合函数使用camelCase(如useAuthState.js)
|
|
89
90
|
- 方法和计算属性使用箭头函数
|
|
90
|
-
-
|
|
91
|
+
- 避免条件语句中不必要的花括号,使用简洁语法
|
|
92
|
+
- 模块化和迭代式代码,避免重复
|
|
93
|
+
|
|
94
|
+
### 重要配置说明
|
|
95
|
+
- **NODE_OPTIONS**: Windows环境需要设置`--openssl-legacy-provider`解决OpenSSL兼容性问题
|
|
96
|
+
- **Webpack别名**: 引入项目需添加别名配置:`@vue2-client` → `node_modules/vue2-client/src`
|
|
97
|
+
- **端口**: 开发服务器默认运行在8020端口
|
|
98
|
+
- **ESLint**: 开发模式默认禁用ESLint(--no-eslint),使用`npm run lint`单独执行检查
|
package/package.json
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="h-tab-demo">
|
|
3
|
-
<!-- <!– XTab –>-->
|
|
4
|
-
<!-- <a-card title="XTab">-->
|
|
5
|
-
<!-- <h-tab-->
|
|
6
|
-
<!-- configName="openPrescriptionTab"-->
|
|
7
|
-
<!-- serverName="af-his"-->
|
|
8
|
-
<!-- />-->
|
|
9
|
-
<!-- </a-card>-->
|
|
3
|
+
<!-- <!– XTab –>-->
|
|
4
|
+
<!-- <a-card title="XTab">-->
|
|
5
|
+
<!-- <h-tab-->
|
|
6
|
+
<!-- configName="openPrescriptionTab"-->
|
|
7
|
+
<!-- serverName="af-his"-->
|
|
8
|
+
<!-- />-->
|
|
9
|
+
<!-- </a-card>-->
|
|
10
10
|
|
|
11
11
|
<!-- HFormTable -->
|
|
12
12
|
<a-card title="HFormTable" style="margin-top: 20px;">
|
|
@@ -30,13 +30,13 @@
|
|
|
30
30
|
<!-- :left-hide="true"-->
|
|
31
31
|
<!-- />-->
|
|
32
32
|
<!-- </a-card>-->
|
|
33
|
-
<!-- <!– HButtons –>-->
|
|
34
|
-
<!-- <a-card title="HButtons" style="margin-top: 20px;">-->
|
|
35
|
-
<!-- <h-buttons-->
|
|
36
|
-
<!-- queryParamsName="outpatientAdviceGroup"-->
|
|
37
|
-
<!-- serviceName="af-his"-->
|
|
38
|
-
<!-- />-->
|
|
39
|
-
<!-- </a-card>-->
|
|
33
|
+
<!-- <!– HButtons –>-->
|
|
34
|
+
<!-- <a-card title="HButtons" style="margin-top: 20px;">-->
|
|
35
|
+
<!-- <h-buttons-->
|
|
36
|
+
<!-- queryParamsName="outpatientAdviceGroup"-->
|
|
37
|
+
<!-- serviceName="af-his"-->
|
|
38
|
+
<!-- />-->
|
|
39
|
+
<!-- </a-card>-->
|
|
40
40
|
</div>
|
|
41
41
|
</template>
|
|
42
42
|
|
|
@@ -48,10 +48,10 @@
|
|
|
48
48
|
:file-list="uploadedFileList"
|
|
49
49
|
:remove="deleteFileItem"
|
|
50
50
|
:show-upload-list="{
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
51
|
+
showRemoveIcon: !readOnly,
|
|
52
|
+
showPreviewIcon: true,
|
|
53
|
+
showDownloadIcon: false
|
|
54
|
+
}"
|
|
55
55
|
list-type="picture-card">
|
|
56
56
|
<a-icon v-if="!readOnly" type="plus"/>
|
|
57
57
|
<div v-if="!readOnly" class="ant-upload-text">
|
|
@@ -330,14 +330,14 @@ export default {
|
|
|
330
330
|
})
|
|
331
331
|
this.$forceUpdate()
|
|
332
332
|
}
|
|
333
|
-
//
|
|
334
|
-
this.activeKey = (this.config.showData || []).map((_, i) => i.toString())
|
|
335
|
-
// 初始化关闭所有折叠面板
|
|
333
|
+
// 根据配置决定是否展开面板
|
|
336
334
|
const shouldCollapseAll = this.config.collapseAllByDefault || false
|
|
337
335
|
if (shouldCollapseAll) {
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
336
|
+
// 如果配置为默认关闭,直接设置为空数组,避免展开动画
|
|
337
|
+
this.activeKey = []
|
|
338
|
+
} else {
|
|
339
|
+
// 默认展开当前页的所有面板
|
|
340
|
+
this.activeKey = (this.config.showData || []).map((_, i) => i.toString())
|
|
341
341
|
}
|
|
342
342
|
})
|
|
343
343
|
})
|
|
@@ -429,11 +429,10 @@ export default {
|
|
|
429
429
|
:deep(.ant-collapse-header) {
|
|
430
430
|
display: flex;
|
|
431
431
|
position: relative;
|
|
432
|
-
border-bottom: v-bind('config.showLine ? "1px solid #000000" : "none"');
|
|
432
|
+
// border-bottom: v-bind('config.showLine ? "1px solid #000000" : "none"');
|
|
433
433
|
align-items: center !important;
|
|
434
434
|
background-color: #ffffff;
|
|
435
435
|
padding: 12px 16px !important; /* 确保头部有足够的内边距 */
|
|
436
|
-
min-height: 50px; /* 设置头部最小高度 */
|
|
437
436
|
}
|
|
438
437
|
|
|
439
438
|
:deep(.ant-collapse-header-text) {
|
|
@@ -466,7 +465,9 @@ export default {
|
|
|
466
465
|
height: 12px;
|
|
467
466
|
border-radius: 6px;
|
|
468
467
|
background: #3362DA;
|
|
469
|
-
margin:
|
|
468
|
+
margin-top: 15px;
|
|
469
|
+
margin-left: 11px;
|
|
470
|
+
margin-bottom: 12px;
|
|
470
471
|
flex-shrink: 0;
|
|
471
472
|
}
|
|
472
473
|
|
|
@@ -620,9 +621,14 @@ export default {
|
|
|
620
621
|
|
|
621
622
|
/* 当前页码样式 */
|
|
622
623
|
:deep(.ant-pagination .ant-pagination-item-active) {
|
|
623
|
-
background: #
|
|
624
|
+
background: #0057FE !important;
|
|
624
625
|
border: 1px solid #1890ff;
|
|
625
|
-
color: #
|
|
626
|
+
color: #FFFFFF !important;
|
|
627
|
+
}
|
|
628
|
+
|
|
629
|
+
/* 确保选中页码文字颜色生效 */
|
|
630
|
+
:deep(.ant-pagination .ant-pagination-item-active a) {
|
|
631
|
+
color: #FFFFFF !important;
|
|
626
632
|
}
|
|
627
633
|
|
|
628
634
|
/* 禁用状态样式 */
|
|
@@ -642,14 +648,15 @@ export default {
|
|
|
642
648
|
&.xcollapse-style1 {
|
|
643
649
|
height: auto; /* 允许根据内容自适应高度,避免滚动被限制 */
|
|
644
650
|
min-height: 600px;
|
|
645
|
-
.blue-circle-icon { margin: 0 !important; }
|
|
646
651
|
.header-text {
|
|
647
652
|
font-family: "Source Han Sans";
|
|
648
653
|
font-size: 16px;
|
|
649
654
|
font-weight: 700;
|
|
650
|
-
line-height:
|
|
655
|
+
line-height: 23px;
|
|
651
656
|
letter-spacing: 0em;
|
|
652
657
|
color: #313131;
|
|
658
|
+
margin-top: 8px;
|
|
659
|
+
margin-bottom: 8px;
|
|
653
660
|
margin-right: 0 !important;
|
|
654
661
|
}
|
|
655
662
|
|
|
@@ -657,9 +664,11 @@ export default {
|
|
|
657
664
|
font-family: "Source Han Sans";
|
|
658
665
|
font-size: 16px;
|
|
659
666
|
font-weight: 700;
|
|
660
|
-
line-height:
|
|
667
|
+
line-height: 23px;
|
|
661
668
|
text-align: right;
|
|
662
669
|
color: #313131;
|
|
670
|
+
margin-top: 9px;
|
|
671
|
+
margin-bottom: 7px;
|
|
663
672
|
margin-left: 28.14px;
|
|
664
673
|
letter-spacing: 0em
|
|
665
674
|
}
|
|
@@ -668,8 +677,10 @@ export default {
|
|
|
668
677
|
font-family: "Source Han Sans";
|
|
669
678
|
font-size: 16px;
|
|
670
679
|
font-weight: 400;
|
|
671
|
-
line-height:
|
|
680
|
+
line-height: 23px;
|
|
672
681
|
text-align: right;
|
|
682
|
+
margin-top: 9px;
|
|
683
|
+
margin-bottom: 7px;
|
|
673
684
|
color: #313131;
|
|
674
685
|
letter-spacing: 0em;
|
|
675
686
|
}
|
|
@@ -684,7 +695,7 @@ export default {
|
|
|
684
695
|
width: 564px;
|
|
685
696
|
min-height: auto;
|
|
686
697
|
height: auto;
|
|
687
|
-
margin:
|
|
698
|
+
margin-bottom:10px;
|
|
688
699
|
background: #FFFFFF; // 独立白底
|
|
689
700
|
box-sizing: border-box;
|
|
690
701
|
border: 1px solid #E5E9F0; // 每个面板自身边框
|
|
@@ -693,15 +704,18 @@ export default {
|
|
|
693
704
|
:deep(.ant-collapse > .ant-collapse-item:first-child) { margin-top: 0; }
|
|
694
705
|
:deep(.ant-collapse > .ant-collapse-item:last-child) { margin-bottom: 0; }
|
|
695
706
|
|
|
696
|
-
:deep(.ant-collapse-content > .ant-collapse-content-box) {
|
|
707
|
+
:deep(.ant-collapse-content > .ant-collapse-content-box) {
|
|
708
|
+
background: #FFFFFF;
|
|
709
|
+
padding: 0px !important; /* 自定义边距:上9px 右12px 下10px 左11px */
|
|
710
|
+
}
|
|
697
711
|
|
|
698
712
|
// 表头:恢复合适的上下内边距,去掉顶部额外空白
|
|
699
713
|
:deep(.ant-collapse-header) {
|
|
700
714
|
background: #FFFFFF;
|
|
701
|
-
padding: 0px 0px;
|
|
702
|
-
|
|
703
|
-
height: 39px;
|
|
715
|
+
padding: 0px 0px !important;
|
|
716
|
+
height: 41px !important;
|
|
704
717
|
border-bottom: none !important; // 移除标题处下边线,避免与外边框连为一体
|
|
718
|
+
border: 1px solid #E5E9F0; // 每个面板自身边框
|
|
705
719
|
}
|
|
706
720
|
}
|
|
707
721
|
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div id="xreport-hosp-demo">
|
|
3
|
+
<a-space style="margin-bottom: 12px;">
|
|
4
|
+
<a-button type="primary" @click="doInit">手动初始化</a-button>
|
|
5
|
+
</a-space>
|
|
6
|
+
<XReport
|
|
7
|
+
ref="reportRef"
|
|
8
|
+
:edit-mode="true"
|
|
9
|
+
:show-save-button="true"
|
|
10
|
+
:show-img-in-cell="false"
|
|
11
|
+
:use-oss-for-img="false"
|
|
12
|
+
server-name="af-his"
|
|
13
|
+
@updateImg="onUpdateImg"/>
|
|
14
|
+
</div>
|
|
15
|
+
</template>
|
|
16
|
+
|
|
17
|
+
<script setup>
|
|
18
|
+
import { ref } from 'vue'
|
|
19
|
+
import XReport from '@vue2-client/base-client/components/common/XReport'
|
|
20
|
+
|
|
21
|
+
const reportRef = ref(null)
|
|
22
|
+
|
|
23
|
+
const payload = {
|
|
24
|
+
arr: [
|
|
25
|
+
{ BQ: '病房区', RY: 0, CY: 0, CW: 0, SW: 0, SS: 0, ZC: 0, ZR: 0, ZY: 0 },
|
|
26
|
+
{ BQ: '感染科', RY: 0, CY: 0, CW: 0, SW: 0, SS: 0, ZC: 0, ZR: 0, ZY: 0 },
|
|
27
|
+
{ BQ: '骨科病区', RY: 0, CY: 0, CW: 0, SW: 0, SS: 0, ZC: 0, ZR: 0, ZY: 0 },
|
|
28
|
+
{ BQ: '呼吸科病区', RY: 0, CY: 0, CW: 0, SW: 0, SS: 0, ZC: 0, ZR: 0, ZY: 0 },
|
|
29
|
+
{ BQ: '急症科病区', RY: 0, CY: 0, CW: 0, SW: 0, SS: 0, ZC: 0, ZR: 0, ZY: 0 },
|
|
30
|
+
{ BQ: '内科二病区', RY: 0, CY: 0, CW: 0, SW: 0, SS: 0, ZC: 0, ZR: 0, ZY: 0 }
|
|
31
|
+
]
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
const doInit = async () => {
|
|
35
|
+
if (!reportRef.value || !reportRef.value.init) return
|
|
36
|
+
await reportRef.value.init({
|
|
37
|
+
configName: 'hospitalizationStatsReport',
|
|
38
|
+
configData: payload
|
|
39
|
+
})
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
const onUpdateImg = data => {
|
|
43
|
+
console.warn('updateImg:', data)
|
|
44
|
+
}
|
|
45
|
+
</script>
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
:key="cellIndex"
|
|
8
8
|
:ref="`trGroup_${ cell.slotRef || cellIndex}`"
|
|
9
9
|
@hook:mounted="(h)=>applyAllStyles(cell,cellIndex)"
|
|
10
|
-
:span="calculateColSpan(cell)">
|
|
10
|
+
:span="calculateColSpan(cell, columns)">
|
|
11
11
|
<div id="report_widget" v-if="isWidget">
|
|
12
12
|
<!-- 插槽渲染 -->
|
|
13
13
|
<template v-if="Array.isArray(cell)">
|
|
@@ -337,10 +337,24 @@ export default {
|
|
|
337
337
|
listClick (data) {
|
|
338
338
|
this.$emit('listClick', data)
|
|
339
339
|
},
|
|
340
|
-
calculateColSpan (cell) {
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
340
|
+
calculateColSpan (cell, columns) {
|
|
341
|
+
// 1. 获取当前 cell 的原始 colSpan 值
|
|
342
|
+
const currentColSpan = Array.isArray(cell)
|
|
343
|
+
? cell[0][0]?.colSpan || 1
|
|
344
|
+
: (cell?.colSpan ?? cell?.def?.colSpan ?? 1)
|
|
345
|
+
|
|
346
|
+
// 2. 计算整行所有 cell 的 colSpan 总和
|
|
347
|
+
const totalColSpan = columns.reduce((sum, c) => {
|
|
348
|
+
const span = Array.isArray(c)
|
|
349
|
+
? c[0][0]?.colSpan || 1
|
|
350
|
+
: (c?.colSpan ?? c?.def?.colSpan ?? 1)
|
|
351
|
+
return sum + span
|
|
352
|
+
}, 0)
|
|
353
|
+
|
|
354
|
+
// 3. 智能判断:总和 > 12 为新配置(24份),≤ 12 为旧配置(12份需要×2)
|
|
355
|
+
const multiplier = totalColSpan > 12 ? 1 : 2
|
|
356
|
+
|
|
357
|
+
return currentColSpan * multiplier
|
|
344
358
|
},
|
|
345
359
|
applyAllStyles (cell, cellIndex) {
|
|
346
360
|
// 应用组件样式
|