vue_zhongyou 1.0.12 → 1.0.13
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
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
v-model="formData[field.field]"
|
|
9
9
|
:type="field.type === 'textarea' ? 'textarea' : 'text'"
|
|
10
10
|
:label="field.label"
|
|
11
|
-
:label-width="60"
|
|
11
|
+
:label-width="field.labelWidth || 60"
|
|
12
12
|
:placeholder="field.placeholder || `请输入${field.label}`"
|
|
13
13
|
:rules="field.rules || []"
|
|
14
14
|
:maxlength="field.maxlength"
|
|
@@ -20,7 +20,12 @@
|
|
|
20
20
|
/>
|
|
21
21
|
|
|
22
22
|
<!-- 单选 -->
|
|
23
|
-
<van-field
|
|
23
|
+
<van-field
|
|
24
|
+
v-else-if="field.type === 'radio'"
|
|
25
|
+
name="radio"
|
|
26
|
+
:label="field.label"
|
|
27
|
+
:label-width="field.labelWidth || 60"
|
|
28
|
+
:rules="field.rules || []">
|
|
24
29
|
<template #input>
|
|
25
30
|
<van-radio-group
|
|
26
31
|
v-model="formData[field.field]"
|
|
@@ -41,7 +46,12 @@
|
|
|
41
46
|
|
|
42
47
|
|
|
43
48
|
<!-- 多选 -->
|
|
44
|
-
<van-field
|
|
49
|
+
<van-field
|
|
50
|
+
v-else-if="field.type === 'checkbox'"
|
|
51
|
+
name="checkboxGroup"
|
|
52
|
+
:label="field.label"
|
|
53
|
+
:label-width="field.labelWidth || 60"
|
|
54
|
+
:rules="field.rules || []">
|
|
45
55
|
<template #input>
|
|
46
56
|
<van-checkbox-group
|
|
47
57
|
v-model="formData[field.field]"
|
|
@@ -66,6 +76,7 @@
|
|
|
66
76
|
is-link
|
|
67
77
|
readonly
|
|
68
78
|
:label="field.label"
|
|
79
|
+
:label-width="field.labelWidth || 60"
|
|
69
80
|
:placeholder="field.placeholder || `请选择${field.label}`"
|
|
70
81
|
:model-value="getSelectLabel(field)"
|
|
71
82
|
:rules="field.rules || []"
|
|
@@ -78,6 +89,7 @@
|
|
|
78
89
|
is-link
|
|
79
90
|
readonly
|
|
80
91
|
:label="field.label"
|
|
92
|
+
:label-width="field.labelWidth || 60"
|
|
81
93
|
:placeholder="field.placeholder || '请选择时间范围'"
|
|
82
94
|
:rules="field.rules || []"
|
|
83
95
|
:model-value="getDateRangeText(field)"
|
|
@@ -90,7 +102,7 @@
|
|
|
90
102
|
is-link
|
|
91
103
|
readonly
|
|
92
104
|
:label="field.label"
|
|
93
|
-
:label-width="60"
|
|
105
|
+
:label-width="field.labelWidth || 60"
|
|
94
106
|
:placeholder="field.placeholder || '请选择日期时间范围'"
|
|
95
107
|
:model-value="getDateTimeRangeText(field)"
|
|
96
108
|
:rules="field.rules || []"
|
|
@@ -103,6 +115,7 @@
|
|
|
103
115
|
is-link
|
|
104
116
|
readonly
|
|
105
117
|
:label="field.label"
|
|
118
|
+
:label-width="field.labelWidth || 60"
|
|
106
119
|
:placeholder="field.placeholder || '请选择地址'"
|
|
107
120
|
:rules="field.rules || []"
|
|
108
121
|
:model-value="getAddressText(field)"
|
|
@@ -115,7 +128,7 @@
|
|
|
115
128
|
is-link
|
|
116
129
|
readonly
|
|
117
130
|
:label="field.label"
|
|
118
|
-
:label-width="60"
|
|
131
|
+
:label-width="field.labelWidth || 60"
|
|
119
132
|
:placeholder="field.placeholder || '请选择日期时间'"
|
|
120
133
|
:model-value="getDateTimeText(field)"
|
|
121
134
|
:rules="field.rules || []"
|
|
@@ -344,21 +357,31 @@ watch(
|
|
|
344
357
|
|
|
345
358
|
const updateFieldValue = (field, value) => {
|
|
346
359
|
formData[field] = value
|
|
347
|
-
emit('update:modelValue', snapshot())
|
|
348
360
|
emit('change', { field, value, values: snapshot() })
|
|
349
361
|
}
|
|
350
362
|
|
|
351
363
|
const handleSubmit = () => {
|
|
364
|
+
emit('update:modelValue', snapshot())
|
|
352
365
|
emit('submit', snapshot())
|
|
353
366
|
}
|
|
354
367
|
|
|
355
368
|
const handleReset = () => {
|
|
369
|
+
// 清空表单数据
|
|
370
|
+
Object.keys(formData).forEach(key => {
|
|
371
|
+
delete formData[key]
|
|
372
|
+
})
|
|
373
|
+
|
|
356
374
|
// 清除保存的datetime值
|
|
357
375
|
Object.keys(dateTimeValues.value).forEach(key => {
|
|
358
376
|
delete dateTimeValues.value[key]
|
|
359
377
|
})
|
|
360
378
|
|
|
361
|
-
|
|
379
|
+
// 重新初始化表单数据为空值
|
|
380
|
+
normalizedSchema.value.forEach((field) => {
|
|
381
|
+
const key = field.field
|
|
382
|
+
formData[key] = getDefaultValue(field.type)
|
|
383
|
+
})
|
|
384
|
+
|
|
362
385
|
emit('update:modelValue', snapshot())
|
|
363
386
|
emit('reset', snapshot())
|
|
364
387
|
}
|
|
@@ -383,6 +406,9 @@ const onSelectConfirm = ({ selectedOptions }) => {
|
|
|
383
406
|
const option = selectedOptions?.[0]
|
|
384
407
|
if (option && selectPopup.value.field) {
|
|
385
408
|
updateFieldValue(selectPopup.value.field.field, option.value)
|
|
409
|
+
|
|
410
|
+
// 触发modelValue更新
|
|
411
|
+
emit('update:modelValue', snapshot())
|
|
386
412
|
}
|
|
387
413
|
closeSelect()
|
|
388
414
|
}
|
|
@@ -481,6 +507,9 @@ const confirmDateTimeRange = () => {
|
|
|
481
507
|
// 更新表单数据
|
|
482
508
|
if (dateTimeRangePopup.value.field) {
|
|
483
509
|
updateFieldValue(dateTimeRangePopup.value.field.field, [startDateStr, endDateStr])
|
|
510
|
+
|
|
511
|
+
// 触发modelValue更新
|
|
512
|
+
emit('update:modelValue', snapshot())
|
|
484
513
|
}
|
|
485
514
|
// 关闭弹窗
|
|
486
515
|
closeDateTimeRange()
|
|
@@ -556,6 +585,10 @@ const onDateRangeConfirm = (values) => {
|
|
|
556
585
|
}
|
|
557
586
|
const [start, end] = values
|
|
558
587
|
updateFieldValue(dateRangePopup.value.field.field, [formatDate(start), formatDate(end)])
|
|
588
|
+
|
|
589
|
+
// 触发modelValue更新
|
|
590
|
+
emit('update:modelValue', snapshot())
|
|
591
|
+
|
|
559
592
|
closeDateRange()
|
|
560
593
|
}
|
|
561
594
|
|
|
@@ -606,6 +639,10 @@ const onAddressConfirm = ({ selectedOptions }) => {
|
|
|
606
639
|
county: county?.text || '',
|
|
607
640
|
code: county?.value || city?.value || province?.value || ''
|
|
608
641
|
})
|
|
642
|
+
|
|
643
|
+
// 触发modelValue更新
|
|
644
|
+
emit('update:modelValue', snapshot())
|
|
645
|
+
|
|
609
646
|
closeAddressPicker()
|
|
610
647
|
}
|
|
611
648
|
|
|
@@ -624,16 +661,24 @@ const openDateTime = (field) => {
|
|
|
624
661
|
// 检查是否已有该字段的保存值
|
|
625
662
|
const savedTime = dateTimeValues.value[field.field]
|
|
626
663
|
|
|
627
|
-
//
|
|
664
|
+
// 检查表单数据中是否有该字段的值
|
|
665
|
+
const formValue = formData[field.field]
|
|
666
|
+
|
|
628
667
|
if (savedTime) {
|
|
668
|
+
// 如果已经有保存的时间,则使用保存的时间
|
|
629
669
|
dateTimePopup.value.selectedTime = new Date(savedTime)
|
|
670
|
+
} else if (formValue) {
|
|
671
|
+
// 如果表单数据中有该字段的值,则使用表单数据中的值
|
|
672
|
+
dateTimePopup.value.selectedTime = typeof formValue === 'string' ? reverseFormatDateTime(formValue) : new Date(formValue)
|
|
673
|
+
} else if (field.defaultValue) {
|
|
674
|
+
// 如果字段有默认值,则使用字段的默认值
|
|
675
|
+
dateTimePopup.value.selectedTime = typeof field.defaultValue === 'string' ? reverseFormatDateTime(field.defaultValue) : new Date(field.defaultValue)
|
|
630
676
|
} else {
|
|
677
|
+
// 否则设置默认时间为当天8:30
|
|
631
678
|
const today = new Date()
|
|
632
679
|
const defaultTime = new Date(today)
|
|
633
680
|
defaultTime.setHours(8, 30, 0, 0)
|
|
634
|
-
|
|
635
|
-
// 将field的时间转换为日期时间格式
|
|
636
|
-
dateTimePopup.value.selectedTime = typeof field.defaultValue === 'string' ? reverseFormatDateTime(field.defaultValue) : defaultTime
|
|
681
|
+
dateTimePopup.value.selectedTime = defaultTime
|
|
637
682
|
}
|
|
638
683
|
|
|
639
684
|
// 更新当前小时值
|
|
@@ -659,6 +704,9 @@ const confirmDateTime = () => {
|
|
|
659
704
|
|
|
660
705
|
// 更新表单数据
|
|
661
706
|
updateFieldValue(dateTimePopup.value.field.field, dateTimeStr)
|
|
707
|
+
|
|
708
|
+
// 触发modelValue更新
|
|
709
|
+
emit('update:modelValue', snapshot())
|
|
662
710
|
}
|
|
663
711
|
|
|
664
712
|
// 关闭弹窗
|