t20-common-lib 0.15.17 → 0.15.18

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "t20-common-lib",
3
- "version": "0.15.17",
3
+ "version": "0.15.18",
4
4
  "description": "T20",
5
5
  "private": false,
6
6
  "main": "dist/index.js",
@@ -58,7 +58,7 @@ export default {
58
58
  watch: {},
59
59
  methods: {
60
60
  changeFn(val) {
61
- this.$emit('change')
61
+ this.$emit('change', val)
62
62
  }
63
63
  }
64
64
  }
@@ -51,7 +51,9 @@ export default {
51
51
  return "";
52
52
  },
53
53
  set(val) {
54
- this.$emit("input", `${val},${this._value2 || this._value2===0?this._value2 : ''}`);
54
+ const nextValue = `${val},${this._value2 || this._value2===0?this._value2 : ''}`;
55
+ this.$emit("input", nextValue);
56
+ this.$emit("change", nextValue);
55
57
  },
56
58
  },
57
59
  _value2: {
@@ -62,7 +64,9 @@ export default {
62
64
  return "";
63
65
  },
64
66
  set(val) {
65
- this.$emit("input", `${this._value1},${val || val===0?val : ''}`);
67
+ const nextValue = `${this._value1},${val || val===0?val : ''}`;
68
+ this.$emit("input", nextValue);
69
+ this.$emit("change", nextValue);
66
70
  },
67
71
  },
68
72
  },
@@ -51,6 +51,7 @@ export default {
51
51
  set(value) {
52
52
  this.changeTime(value);
53
53
  this.$emit("input", value || []);
54
+ this.$emit("change", value || []);
54
55
  },
55
56
  },
56
57
  },
@@ -79,7 +79,9 @@ export default {
79
79
  return "";
80
80
  },
81
81
  set(val) {
82
- this.$emit("input", `${val}${this.value2}`);
82
+ const nextValue = `${val}${this.value2}`;
83
+ this.$emit("input", nextValue);
84
+ this.$emit("change", nextValue);
83
85
  },
84
86
  },
85
87
  value2: {
@@ -92,7 +94,9 @@ export default {
92
94
  return "D";
93
95
  },
94
96
  set(val) {
95
- this.$emit("input", `${this.value1}${val}`);
97
+ const nextValue = `${this.value1}${val}`;
98
+ this.$emit("input", nextValue);
99
+ this.$emit("change", nextValue);
96
100
  },
97
101
  },
98
102
  },
@@ -30,6 +30,7 @@ export default {
30
30
  },
31
31
  set(value) {
32
32
  this.$emit("input", value);
33
+ this.$emit("change", value);
33
34
  },
34
35
  },
35
36
  },
@@ -38,6 +38,7 @@ export default {
38
38
  methods: {
39
39
  changeTime(val) {
40
40
  this.$emit("input", val ? `${val[0]},${val[1]}` : '');
41
+ this.$emit("change", val ? `${val[0]},${val[1]}` : '');
41
42
  },
42
43
  },
43
44
  watch: {
@@ -118,7 +118,7 @@ export default {
118
118
  },
119
119
  async changeFn(val) {
120
120
  let item = Array.isArray(this.options) ? this.options.find(t => t.value == val) : {}
121
- this.$emit('change', item || {})
121
+ this.$emit('change', val, item || {})
122
122
  },
123
123
  async init() {
124
124
  if (!this.items?.api?.apiUrl || !this.items?.api?.requestMethod) {
@@ -34,6 +34,7 @@ export default {
34
34
  },
35
35
  set(value) {
36
36
  this.$emit("input", value);
37
+ this.$emit("change", value);
37
38
  },
38
39
  },
39
40
  },
@@ -30,6 +30,7 @@ export default {
30
30
  },
31
31
  set(value) {
32
32
  this.$emit("input", value);
33
+ this.$emit("change", value);
33
34
  },
34
35
  },
35
36
  _dNum() {
@@ -24,6 +24,7 @@ export default {
24
24
  changeTime() {
25
25
  this.$emit("update:label", this.startValue + "~" + this.endValue);
26
26
  this.$emit("input", [this.startValue, this.endValue]);
27
+ this.$emit("change", [this.startValue, this.endValue]);
27
28
  },
28
29
  },
29
30
  watch: {
@@ -243,7 +243,7 @@ export default {
243
243
  },
244
244
  changeFn(val) {
245
245
  let item = this.options.find(t => t.value == val);
246
- this.$emit("change", item)
246
+ this.$emit("change", val, item)
247
247
  },
248
248
  changVariable(val){
249
249
  if (val == '${inputValue}') return this.useDefaule ? (this.items?.api?.defaultInputValue || this.label ||this._value || "") : this.query;
@@ -41,6 +41,7 @@ export default {
41
41
  let res = (this.items.options || []).find(row => row.value == value)
42
42
  this.$emit(`update:label`, res?.label)
43
43
  this.$emit('input', value)
44
+ this.$emit('change', value)
44
45
  }
45
46
  },
46
47
  _options: {
@@ -39,6 +39,7 @@ export default {
39
39
  },
40
40
  set(value) {
41
41
  this.$emit("input", value);
42
+ this.$emit("change", value);
42
43
  },
43
44
  },
44
45
  },
@@ -129,7 +129,7 @@ export default {
129
129
  },
130
130
  changeTree(val) {
131
131
  let item = this.options.find(t => t[this.items?.api?.valueKey] == val)
132
- this.$emit('change', item)
132
+ this.$emit('change', val, item)
133
133
  }
134
134
  }
135
135
  }
@@ -25,6 +25,7 @@ export default {
25
25
  set(value) {
26
26
  this.$emit(`update:label`, value==1? this.$l('是'): this.$l('否'));
27
27
  this.$emit("input", value);
28
+ this.$emit("change", value);
28
29
  },
29
30
  },
30
31
  },
@@ -42,6 +42,7 @@ export default {
42
42
  },
43
43
  set(value) {
44
44
  this.$emit("input", value);
45
+ this.$emit("change", value);
45
46
  },
46
47
  },
47
48
  },
@@ -86,14 +86,8 @@
86
86
 
87
87
  <script>
88
88
  /**
89
- * 联动能力(由 linkageMethod / linkage 事件在页面侧编写逻辑):
90
- * 1. A 控制 B 显隐 — setFieldShow
91
- * 2. A 控制 B 必填 — setFieldRequired
92
- * 3. A 控制 B 可编辑 — setFieldEditable
93
- * 4. A 控制 B 值/名称回显或下拉项 — setFieldValue、setFieldLabelValue、setFieldOptions
94
- * 5. A 控制 B 渲染哪种组件 — setFieldElementType(须为 elementTypeChange 中已配置的枚举)
95
- *
96
- * fieldControlList:与 dynamicData 同时传入,仅在收到模版时按 fieldNo 与 elements[].prop 合并一次 isShow、showName→label、isRequired;之后渲染均以合并后的 mergedTemplateBase 为唯一数据源。
89
+ * fieldControlList:与 dynamicData 同时传入,仅在收到模版时按 fieldNo 与 elements[].prop
90
+ * 合并一次 isShow、showName→label、isRequired;之后渲染均以合并后的 mergedTemplateBase 为唯一数据源。
97
91
  */
98
92
  import { fileUploadTableMixin } from '../mixins/fileUpload'
99
93
  // 复用 Demo 中的字段组件,按模板的 elementType 动态渲染
@@ -124,11 +118,6 @@ export default {
124
118
  type: Object,
125
119
  default: () => ({})
126
120
  },
127
- // 页面侧联动处理函数,由外部自由编排联动逻辑
128
- linkageMethod: {
129
- type: Function,
130
- default: null
131
- },
132
121
  /** 字段控制配置,与 dynamicData 一并传入;仅整合一次 */
133
122
  fieldControlList: {
134
123
  type: Array,
@@ -173,7 +162,7 @@ export default {
173
162
  runtimeTemplate: { units: [] },
174
163
  // 联动写入的 options / elementType:每次从 mergedTemplateBase 克隆后会合并回来,避免被重置清空
175
164
  linkageFieldOverrides: {},
176
- // 避免联动写值导致 watch 循环触发
165
+ // 避免重建模板过程中 watch 循环触发
177
166
  isApplyingLinkage: false,
178
167
  // 模板字段类型 -> 组件名映射;后续扩展新组件时在这里补
179
168
  elementTypeChange: {
@@ -435,29 +424,6 @@ export default {
435
424
  })
436
425
  })
437
426
  },
438
- buildLinkageApi() {
439
- return {
440
- formData: this.formData,
441
- formGroups: this.formGroups,
442
- getGroup: this.getGroup,
443
- getField: this.getField,
444
- setGroupShow: this.setGroupShow,
445
- setFieldShow: this.setFieldShow,
446
- setFieldRequired: this.setFieldRequired,
447
- setFieldEditable: this.setFieldEditable,
448
- setFieldValue: this.setFieldValue,
449
- setFieldLabelValue: this.setFieldLabelValue,
450
- setFieldOptions: this.setFieldOptions,
451
- setFieldElementType: this.setFieldElementType
452
- }
453
- },
454
- runExternalLinkage() {
455
- const linkageApi = this.buildLinkageApi()
456
- if (typeof this.linkageMethod === 'function') {
457
- this.linkageMethod(linkageApi)
458
- }
459
- this.$emit('linkage', linkageApi)
460
- },
461
427
  applyFieldStates() {
462
428
  if (!this.mergedTemplateBase?.units) return
463
429
  this.isApplyingLinkage = true
@@ -473,14 +439,13 @@ export default {
473
439
  })
474
440
  this.runtimeTemplate = nextTemplate
475
441
  this.applyLinkageOverrides()
476
- this.runExternalLinkage()
477
442
  this.formGroups.forEach(group => {
478
443
  ;(group.elements || []).forEach(item => {
479
444
  this.setFieldRule(group.prop, item)
480
445
  })
481
446
  })
482
447
  this.$nextTick(() => {
483
- // linkageMethod 过程中可能改写显隐/必填规则,统一清理校验态,避免联动触发页面校验提示。
448
+ // 模板重建后统一清理校验态,避免规则变化导致页面出现历史校验提示。
484
449
  if (this.$refs.dynamicForms && typeof this.$refs.dynamicForms.clearValidate === 'function') {
485
450
  this.$refs.dynamicForms.clearValidate()
486
451
  }