matrix_components 2.0.478 → 2.0.500

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/README.md CHANGED
@@ -33,6 +33,13 @@ Matrix Components 是一个功能丰富的 Vue 3 企业级组件库,提供办
33
33
  ### 浸润线:
34
34
  ![emh1eWluZw==](https://tc-cdn.processon.com/po/605c2da663768970077b1422-695db6d88dbb075444370b13)
35
35
 
36
+ ```
37
+ version:2.0.500
38
+ 2026-01-23
39
+ 更新日志:
40
+ 1.修改NsSaturationLine文字字体
41
+ ```
42
+
36
43
  ```
37
44
  version:2.0.478
38
45
  2026-01-13
@@ -66,6 +66,20 @@
66
66
  gapV="10px"
67
67
  ></NsForm>
68
68
  </NsFormTitle>
69
+ <NsFormTitle title="一维数组配置(新功能)">
70
+ <NsForm
71
+ ref="row5Ref"
72
+ :readOnly="state.readOnly"
73
+ backgroundColor="#fff"
74
+ :model="state.model"
75
+ :rows="state.rows5"
76
+ formPropKey="rows5"
77
+ labelColor="#606266"
78
+ labelWidth="150"
79
+ gapH="300px"
80
+ gapV="10px"
81
+ ></NsForm>
82
+ </NsFormTitle>
69
83
  </el-form>
70
84
  </div>
71
85
  </div>
@@ -115,6 +129,7 @@ const row1Ref = ref()
115
129
  const row2Ref = ref()
116
130
  const row3Ref = ref()
117
131
  const row4Ref = ref()
132
+ const row5Ref = ref()
118
133
 
119
134
  const state = reactive({
120
135
  formData: {},
@@ -481,6 +496,104 @@ const state = reactive({
481
496
  },
482
497
  ],
483
498
  ],
499
+ // 一维数组配置示例 - 使用span属性控制布局,支持自动换行
500
+ // 说明:当一行中的span总和达到24时,会自动换到下一行
501
+ // 第一行:field1(6) + field2(6) + field3(6) + field4(6) = 24(满行)
502
+ // 第二行:field5(12) + field6(12) = 24(满行)
503
+ // 第三行:field7(8) + field8(8) + field9(8) = 24(满行)
504
+ // 第四行:field10(40%≈10) + field11(60%≈14) = 24(满行)
505
+ // 第五行:field12和field13未配置span,自动平分剩余空间
506
+ rows5: [
507
+ {
508
+ key: 'field1',
509
+ label: '字段1(25%)',
510
+ value: '',
511
+ component: 'ElInput',
512
+ span: 6,
513
+ },
514
+ {
515
+ key: 'field2',
516
+ label: '字段2(25%)',
517
+ value: '',
518
+ component: 'ElInput',
519
+ span: 6,
520
+ },
521
+ {
522
+ key: 'field3',
523
+ label: '字段3(25%)',
524
+ value: '',
525
+ component: 'ElInput',
526
+ span: 6,
527
+ },
528
+ {
529
+ key: 'field4',
530
+ label: '字段4(25%)',
531
+ value: '',
532
+ component: 'ElInput',
533
+ span: 6,
534
+ },
535
+ {
536
+ key: 'field5',
537
+ label: '字段5(50%)',
538
+ value: '',
539
+ component: 'ElInput',
540
+ span: 12,
541
+ },
542
+ {
543
+ key: 'field6',
544
+ label: '字段6(50%)',
545
+ value: '',
546
+ component: 'ElInput',
547
+ span: 12,
548
+ },
549
+ {
550
+ key: 'field7',
551
+ label: '字段7(33.33%)',
552
+ value: '',
553
+ component: 'ElInput',
554
+ span: 8,
555
+ },
556
+ {
557
+ key: 'field8',
558
+ label: '字段8(33.33%)',
559
+ value: '',
560
+ component: 'ElInput',
561
+ span: 8,
562
+ },
563
+ {
564
+ key: 'field9',
565
+ label: '字段9(33.33%)',
566
+ value: '',
567
+ component: 'ElInput',
568
+ span: 8,
569
+ },
570
+ {
571
+ key: 'field10',
572
+ label: '字段10(使用百分比40%)',
573
+ value: '',
574
+ component: 'ElInput',
575
+ span: '40%',
576
+ },
577
+ {
578
+ key: 'field11',
579
+ label: '字段11(使用百分比60%)',
580
+ value: '',
581
+ component: 'ElInput',
582
+ span: '60%',
583
+ },
584
+ {
585
+ key: 'field12',
586
+ label: '字段12(自动平分)',
587
+ value: '',
588
+ component: 'ElInput',
589
+ },
590
+ {
591
+ key: 'field13',
592
+ label: '字段13(自动平分)',
593
+ value: '',
594
+ component: 'ElInput',
595
+ },
596
+ ],
484
597
  })
485
598
 
486
599
  function changeHandler(v) {
@@ -527,7 +640,8 @@ async function getFormData() {
527
640
  const data2 = row2Ref.value?.getFormKvData?.()
528
641
  const data3 = row3Ref.value?.getFormKvData?.()
529
642
  const data4 = row4Ref.value?.getFormKvData?.()
530
- const data = { ...data1, ...data2, ...data3, ...data4 }
643
+ const data5 = row5Ref.value?.getFormKvData?.()
644
+ const data = { ...data1, ...data2, ...data3, ...data4, ...data5 }
531
645
  state.formData = data
532
646
  ElMessage.success('表单校验成功')
533
647
  return data
@@ -542,6 +656,7 @@ async function resetFormData() {
542
656
  row2Ref.value?.resetForm?.()
543
657
  row3Ref.value?.resetForm?.()
544
658
  row4Ref.value?.resetForm?.()
659
+ row5Ref.value?.resetForm?.()
545
660
  setTimeout(() => {
546
661
  // 重置表单验证状态
547
662
  formRef.value?.clearValidate?.()
@@ -572,11 +687,13 @@ async function getDetail() {
572
687
  row2Ref.value?.resetForm()
573
688
  row3Ref.value?.resetForm()
574
689
  row4Ref.value?.resetForm()
690
+ row5Ref.value?.resetForm()
575
691
  setTimeout(() => {
576
692
  row1Ref.value?.setFormData?.(res)
577
693
  row2Ref.value?.setFormData?.(res)
578
694
  row3Ref.value?.setFormData?.(res)
579
695
  row4Ref.value?.setFormData?.(res)
696
+ row5Ref.value?.setFormData?.(res)
580
697
  }, 10)
581
698
  return
582
699
  // 特殊处理
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <NsImage :src="src" :apiUrl="apiUrl" :hasPreview="hasPreview">
3
3
  <img
4
- :src="ThemeVar.VARS.getPropertyValue('--matrix-empty-img')"
4
+ :src="errorSrc"
5
5
  style="width: 100%; height: 100%"
6
6
  @click.stop
7
7
  />
@@ -10,8 +10,8 @@
10
10
 
11
11
  <script setup lang="ts">
12
12
  import { reactive, ref } from 'vue';
13
- import { ThemeVar } from '../../packages/utils/loadCssVars'
14
- const src = ref('')
13
+ import src from '@/assets/b.jpg'
14
+ import errorSrc from '@/assets/a.png'
15
15
  const hasPreview = ref(true)
16
16
  const apiUrl = reactive( {
17
17
  type: Object,
@@ -22,6 +22,7 @@ const apiUrl = reactive( {
22
22
  params: {},
23
23
  }),
24
24
  })
25
+
25
26
  </script>
26
27
  <style lang="scss" scoped>
27
28
  </style>
@@ -4,9 +4,14 @@
4
4
  </div>
5
5
  </template>
6
6
  <script setup lang="ts" name="">
7
- import { ref } from 'vue';
7
+ import { onMounted, ref } from 'vue';
8
+ const msg = ref()
8
9
 
9
- const msg = ref('好的,我可以为您写一个项目需求文档的模板。由于知识库为空,我将基于通用项目管理知识和最佳实践来构建此文档。请注意,这只是一个模板,您需要根据您的具体项目进行调整和完善。\n\n---\n\n## 项目需求文档\n\n**项目名称:** [在此处填写项目名称]\n\n**版本:** 1.0\n\n**日期:** 2023年10月27日\n\n**作者:** [您的姓名/团队名称]\n\n### 1. 引言\n\n**1.1 目的**\n\n本文档旨在详细描述[项目名称]的项目需求,为项目的规划、设计、开发、测试和部署提供明确的指导和依据。\n\n**1.2 范围**\n\n本文档涵盖项目的目标、功能、性能、用户界面、安全、约束条件以及验收标准。\n\n**1.3 目标读者**\n\n* 项目经理\n* 开发团队\n* 测试团队\n* 业务分析师\n* 利益相关者\n\n### 2. 项目背景\n\n**2.1 背景描述**\n\n[详细描述项目产生的背景,以及项目解决的问题或满足的需求。]\n\n**2.2 现有系统/流程描述**\n\n[如果项目涉及替换或改进现有系统/流程,请详细描述现有系统/流程的情况。]\n\n### 3. 项目目标\n\n**3.1 业务目标**\n\n[描述项目对业务的影响,例如提高效率、降低成本、增加收入等。]\n\n**3.2 用户目标**\n\n[描述用户通过使用项目后可以获得什么价值。]\n\n### 4. 功能需求\n\n| ID | 功能描述 | 优先级 | 备注 |\n|---|---|---|---|\n| 1 | [功能描述1] | 高 | [相关信息] |\n| 2 | [功能描述2] | 中 | [相关信息] |\n| 3 | [功能描述3] | 低 | [相关信息] |\n| ... | ... | ... | ... |\n\n* **优先级:** 高 (必须实现)、中 (重要但可推迟)、低 (可选功能)\n\n### 5. 非功能需求\n\n**5.1 性能需求**\n\n* 响应时间:[例如:页面加载时间不超过3秒]\n* 并发用户数:[例如:支持1000个并发用户]\n* 数据存储容量:[例如:需要存储1TB的数据]\n\n**5.2 安全需求**\n\n* 用户认证:[例如:采用用户名/密码认证、OAuth认证]\n* 数据加密:[例如:采用SSL/TLS加密传输数据]\n* 权限控制:[例如:不同用户具有不同的权限]\n\n**5.3 可用性需求**\n\n* 系统可用时间:[例如:99.9%可用性]\n* 故障恢复:[例如:数据备份和恢复机制]\n\n**5.4 可靠性需求**\n\n* 错误率:[例如:系统错误率低于0.1%]\n\n**5.5 可维护性需求**\n\n* 代码可读性:[例如:代码规范、注释]\n* 模块化设计:[例如:采用模块化架构]\n\n**5.6 可扩展性需求**\n\n* 系统架构:[例如:支持水平扩展]\n\n### 6. 用户界面 (UI) 需求\n\n* 界面风格:[例如:简洁、现代]\n* 布局:[例如:响应式布局]\n* 主要页面:[例如:首页、登录页面、功能页面]\n* [可包含UI原型图或线框图]\n\n### 7. 约束条件\n\n* 技术限制:[例如:使用的技术栈]\n* 预算限制:[例如:项目预算]\n* 时间限制:[例如:项目截止日期]\n* 资源限制:[例如:人力资源]\n\n### 8. 验收标准\n\n* 功能测试:所有功能模块必须通过测试。\n* 性能测试:系统必须满足性能需求。\n* 安全测试:系统必须通过安全测试。\n* 用户验收测试:用户必须对系统感到满意。\n\n### 9. 风险评估\n\n| 风险描述 | 可能性 | 影响 | 缓解措施 |\n|---|---|---|---|\n| [风险1] | 高 | 高 | [缓解措施1] |\n| [风险2] | 中 | 中 | [缓解措施2] |\n| ... | ... | ... | ... |\n\n### 10. 术语表\n\n* [术语1:定义]\n* [术语2:定义]\n* ...\n\n---\n\n请注意,这是一个通用模板。您需要根据您的具体项目需求进行修改和完善。 由于**知识库中未找到您要的答案!**,我无法根据任何特定信息为您定制文档。 如果您能提供更详细的项目信息,我可以更好地帮助您')
10
+ onMounted(async () => {
11
+ const readme = await fetch(`${import.meta.env.VITE_BASE_URL}README.md`)
12
+ const txt = await readme.text();
13
+ msg.value = txt
14
+ })
10
15
  </script>
11
16
  <style lang="scss" scoped>
12
17
  .dm {