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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vue_zhongyou",
3
- "version": "1.0.12",
3
+ "version": "1.0.13",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "keywords": [],
@@ -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 v-else-if="field.type === 'radio'" name="radio" :label="field.label" :rules="field.rules || []">
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 v-else-if="field.type === 'checkbox'" name="checkboxGroup" :label="field.label" :rules="field.rules || []">
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
- initializeFormData()
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
- // 如果已经有保存的时间,则使用保存的时间,否则设置默认时间为当天8:30
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
  // 关闭弹窗