renusify 1.1.4 → 1.2.0

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.
Files changed (84) hide show
  1. package/components/app/notify/notification.vue +2 -1
  2. package/components/app/toast/index.vue +7 -2
  3. package/components/app/toast/toast.vue +2 -0
  4. package/components/avatar/index.vue +29 -23
  5. package/components/bar/bottomNavigationCircle.vue +8 -3
  6. package/components/bar/scss/bottomNav.scss +1 -1
  7. package/components/bar/toolbar/laptop.vue +4 -4
  8. package/components/bar/toolbar/mixin.js +1 -2
  9. package/components/bar/toolbar/mobile.vue +5 -4
  10. package/components/breadcrumb/index.vue +1 -0
  11. package/components/button/buttonConfirm.vue +1 -1
  12. package/components/button/buttonGroup.vue +1 -0
  13. package/components/button/style.scss +1 -0
  14. package/components/calendar/index.vue +1 -0
  15. package/components/calendar/month.vue +1 -0
  16. package/components/calendar/year.vue +1 -0
  17. package/components/chat/chatInput.vue +1 -0
  18. package/components/chat/chatMsg.vue +1 -0
  19. package/components/chat/index.vue +1 -0
  20. package/components/chip/index.vue +1 -0
  21. package/components/codeEditor/index.vue +0 -2
  22. package/components/confirm/index.vue +1 -0
  23. package/components/countdown/index.vue +1 -0
  24. package/components/float/index.vue +1 -0
  25. package/components/form/address.vue +6 -2
  26. package/components/form/camInput.vue +10 -3
  27. package/components/form/check-input.vue +95 -94
  28. package/components/form/checkbox.vue +1 -1
  29. package/components/form/colorPicker/index.vue +1 -0
  30. package/components/form/colorPicker/picker.vue +1 -0
  31. package/components/form/datePicker/index.vue +349 -348
  32. package/components/form/datePicker/month.vue +1 -0
  33. package/components/form/datePicker/year.vue +1 -0
  34. package/components/form/fileUploader/file.js +21 -3
  35. package/components/form/fileUploader/index.vue +13 -2
  36. package/components/form/fileUploader/single.vue +4 -2
  37. package/components/form/form.vue +1 -0
  38. package/components/form/group-input.vue +42 -38
  39. package/components/form/input.vue +253 -1
  40. package/components/form/inputTel/index.vue +22 -12
  41. package/components/form/json/JsonView.vue +95 -94
  42. package/components/form/json/index.vue +2 -0
  43. package/components/form/mask-input.vue +1 -0
  44. package/components/form/number.vue +25 -12
  45. package/components/form/password.vue +121 -121
  46. package/components/form/radioInput.vue +1 -0
  47. package/components/form/range.vue +26 -1
  48. package/components/form/rating.vue +13 -1
  49. package/components/form/select.vue +67 -4
  50. package/components/form/switch.vue +64 -2
  51. package/components/form/text-area.vue +1 -1
  52. package/components/form/text-editor/index.vue +18 -11
  53. package/components/form/text-input.vue +1 -1
  54. package/components/form/timepicker/index.vue +2 -1
  55. package/components/form/timepicker/range.vue +2 -1
  56. package/components/form/timepicker/timepicker.vue +2 -1
  57. package/components/form/unique/index.vue +3 -1
  58. package/components/form/unit-input.vue +2 -1
  59. package/components/formCreator/index.vue +8 -6
  60. package/components/html2pdf/index.vue +1 -0
  61. package/components/img/index.vue +12 -2
  62. package/components/img/svgImg.vue +43 -0
  63. package/components/infinite/div.vue +2 -1
  64. package/components/infinite/page.vue +24 -23
  65. package/components/list/index.vue +35 -32
  66. package/components/map/index.vue +324 -306
  67. package/components/map/route.vue +1 -0
  68. package/components/map/select.vue +1 -0
  69. package/components/menu/index.vue +1 -0
  70. package/components/modal/index.vue +1 -0
  71. package/components/searchBox/index.vue +5 -3
  72. package/components/slider/index.vue +1 -0
  73. package/components/table/crud/footer.vue +1 -1
  74. package/components/table/crud/header.vue +10 -4
  75. package/components/table/crud/index.vue +463 -458
  76. package/components/tabs/index.vue +1 -0
  77. package/components/tree/index.vue +15 -13
  78. package/components/tree/tree-element.vue +8 -4
  79. package/package.json +1 -1
  80. package/style/colors.scss +1 -1
  81. package/components/form/scss/input.scss +0 -249
  82. package/components/form/scss/rating.scss +0 -9
  83. package/components/form/scss/select.scss +0 -55
  84. package/components/form/scss/switch.scss +0 -68
@@ -21,6 +21,7 @@ export default {
21
21
  locale: String,
22
22
  year: Number
23
23
  },
24
+ emits:['update:modelValue'],
24
25
  data() {
25
26
  return {
26
27
  p: 0
@@ -21,6 +21,7 @@ export default {
21
21
  locale: String,
22
22
  month: Number
23
23
  },
24
+ emits:['update:modelValue'],
24
25
  methods: {
25
26
  emit(n) {
26
27
  this.$emit('update:model-value', n)
@@ -1,4 +1,7 @@
1
1
  export default {
2
+ props: {
3
+ headers: Object
4
+ },
2
5
  data() {
3
6
  return {
4
7
  imageStatus: 'inProgress',
@@ -95,9 +98,23 @@ export default {
95
98
  this.imageStatus = 'inProgress'
96
99
  let fileData = new FormData()
97
100
  fileData.append('file', this.file)
98
- this.$axios.post(this.uploadLink, fileData,
101
+ let headers = this.headers
102
+ if (!headers) {
103
+ headers = {}
104
+ }
105
+ headers['Content-Type'] = 'multipart/form-data'
106
+ let link = this.uploadLink
107
+ if (this.maxFileSize) {
108
+ if (link.indexOf('?') === -1) {
109
+ link += '?'
110
+ } else {
111
+ link += '&'
112
+ }
113
+ link += 'max_size=' + this.maxFileSize
114
+ }
115
+ this.$axios.post(link, fileData,
99
116
  {
100
- headers: {'Content-Type': 'multipart/form-data'},
117
+ headers: headers,
101
118
  onUploadProgress: function (progressEvent) {
102
119
  this.uploadPercentage = Math.min(parseInt(Math.floor((progressEvent.loaded * 100) / progressEvent.total)), 98)
103
120
  }.bind(this),
@@ -117,7 +134,8 @@ export default {
117
134
  deleteImage() {
118
135
  this.$axios.delete(this.uploadLink,
119
136
  {
120
- data: {link: this.fileLink}
137
+ data: {link: this.fileLink},
138
+ headers: this.headers
121
139
  }
122
140
  )
123
141
  },
@@ -1,8 +1,9 @@
1
1
  <template>
2
2
  <r-input :class="[`${$r.prefix}file-uploader`]"
3
- :model-value="filesLinks.length>0?filesLinks:null" hide
3
+ :model-value="filesLinks.length>0?filesLinks:null"
4
+ hide
4
5
  :label="labelFile"
5
- :rules="$attrs.rules"
6
+ v-bind="attrs"
6
7
  labelControlClass="label-fixed">
7
8
  <r-row no-gutters>
8
9
  <template :key="meta?file['url']:file" v-for="(file,n) in filesLinks">
@@ -63,6 +64,7 @@ export default {
63
64
  meta: Array,
64
65
  metaRequired: {type: Boolean, default: true}
65
66
  },
67
+ emits:['update:modelValue','add'],
66
68
  components: {
67
69
  single
68
70
  },
@@ -81,6 +83,15 @@ export default {
81
83
  }
82
84
  },
83
85
  computed: {
86
+ attrs() {
87
+ let l = {}
88
+ for (let k in this.$attrs) {
89
+ if (k !== 'label') {
90
+ l[k] = this.$attrs[k]
91
+ }
92
+ }
93
+ return l
94
+ },
84
95
  labelFile() {
85
96
  let l = this.$attrs.label || ''
86
97
  if (this.maxFileSize) {
@@ -14,8 +14,8 @@
14
14
  >
15
15
  {{ `% ${uploadPercentage}` }}
16
16
  </r-progress-circle>
17
- <r-btn @click.prevent="$helper.copy(fileLink)" class="image-copy" icon>
18
- <r-icon v-html="$r.icons.copy"></r-icon>
17
+ <r-btn :href="'/'+fileLink" class="image-copy" icon>
18
+ <r-icon v-html="$r.icons.eye"></r-icon>
19
19
  </r-btn>
20
20
  <img v-if="isImg()" :class="`image ${imageStatus} `" :src="getUrl(file)">
21
21
  <r-icon v-else
@@ -70,6 +70,7 @@ export default {
70
70
  },
71
71
  metaRequired: Boolean
72
72
  },
73
+ emits:['file-link','select'],
73
74
  data() {
74
75
  return {
75
76
  showAdd: true,
@@ -167,6 +168,7 @@ export default {
167
168
  height: 200px;
168
169
  z-index: -2;
169
170
  opacity: 0.8;
171
+ max-width: 100%;
170
172
  }
171
173
 
172
174
  .icon-100 {
@@ -18,6 +18,7 @@ export default {
18
18
  props: {
19
19
  modelValue: Boolean
20
20
  },
21
+ emits:['update:modelValue'],
21
22
  data: () => ({
22
23
  inputs: [],
23
24
  watchers: [],
@@ -1,43 +1,45 @@
1
1
  <template>
2
- <div :class="`${$r.prefix}group-input`">
3
- <label>{{ label }}</label>
4
- <div class="group-holder" v-for="(item,i) in modelValue" :key="i">
5
- <div class="group-slot">
6
- <slot :item="item" :index="i" :disableDel="disDel">
7
- <div class="d-flex flex-wrap pt-5">
8
- <template v-for="(v,k) in item" :key="i+'-'+k">
9
- <r-text-input v-if="typeof v==='string'" class="flex-grow-0 me-1" :label="t(k)"
10
- v-model="item[k]"></r-text-input>
11
- <r-number-input v-else-if="typeof v==='number'" class="flex-grow-0 me-1" :label="t(k)"
12
- v-model="item[k]"></r-number-input>
13
- <r-switch-input v-else-if="typeof v==='boolean'" class="flex-grow-0 me-1" :label="t(k)"
14
- v-model="item[k]"></r-switch-input>
2
+ <r-input :class="`${$r.prefix}group-input`"
3
+ :model-value="modelValue"
4
+ hide>
5
+ <div class="w-full">
6
+ <div class="group-holder" v-for="(item,i) in modelValue" :key="i">
7
+ <div class="group-slot">
8
+ <slot :item="item" :index="i" :disableDel="disDel">
9
+ <div class="d-flex flex-wrap pt-5">
10
+ <template v-for="(v,k) in item" :key="i+'-'+k">
11
+ <r-text-input v-if="typeof v==='string'" class="flex-grow-0 me-1" :label="t(k)"
12
+ v-model="item[k]"></r-text-input>
13
+ <r-number-input v-else-if="typeof v==='number'" class="flex-grow-0 me-1" :label="t(k)"
14
+ v-model="item[k]"></r-number-input>
15
+ <r-switch-input v-else-if="typeof v==='boolean'" class="flex-grow-0 me-1" :label="t(k)"
16
+ v-model="item[k]"></r-switch-input>
15
17
  </template>
16
18
  </div>
17
19
  </slot>
18
20
  </div>
19
- <div class="group-action">
20
- <r-btn icon text>
21
- <r-icon v-html="$r.icons.chevron_up" :class="{'icon-disabled':i===0}" @click.prevent="up(i)"></r-icon>
22
- </r-btn>
23
- <r-btn icon text>
24
- <r-icon v-html="$r.icons.chevron_down" :class="{'icon-disabled':i===modelValue.length-1}"
25
- @click.prevent="down(i)"></r-icon>
26
- </r-btn>
27
- <r-btn v-if="!disableItems.includes(item[itemKey])" icon class="color-error-text" text @click.prevent="del(i)">
28
- <r-icon v-html="$r.icons.delete"></r-icon>
29
- </r-btn>
21
+ <div class="group-action">
22
+ <r-btn icon text>
23
+ <r-icon v-html="$r.icons.chevron_up" :class="{'icon-disabled':i===0}" @click.prevent="up(i)"></r-icon>
24
+ </r-btn>
25
+ <r-btn icon text>
26
+ <r-icon v-html="$r.icons.chevron_down" :class="{'icon-disabled':i===modelValue.length-1}"
27
+ @click.prevent="down(i)"></r-icon>
28
+ </r-btn>
29
+ <r-btn v-if="!disableItems.includes(item[itemKey])" icon text @click.prevent="del(i)">
30
+ <r-icon v-html="$r.icons.delete" class="color-error-text"></r-icon>
31
+ </r-btn>
32
+ </div>
33
+ </div>
34
+ <div class="mt-5" :class="addBtnClass">
35
+ <transition name="scale">
36
+ <r-btn v-if="show_add" class="color-success" icon @click.prevent="add">
37
+ <r-icon v-html="$r.icons.plus" class="color-white-text"></r-icon>
38
+ </r-btn>
39
+ </transition>
30
40
  </div>
31
41
  </div>
32
- <div class="text-center mt-5">
33
- <transition name="scale">
34
- <r-btn v-if="show_add" class="color-success" icon @click.prevent="add">
35
- <r-icon v-html="$r.icons.plus"></r-icon>
36
- </r-btn>
37
- </transition>
38
- </div>
39
-
40
- </div>
42
+ </r-input>
41
43
  </template>
42
44
  <script>
43
45
  export default {
@@ -49,8 +51,10 @@ export default {
49
51
  size: Number,
50
52
  disableAdd: Boolean,
51
53
  translate: Boolean,
52
- template: Object
54
+ template: Object,
55
+ addBtnClass: {'type': String, default: 'text-center'}
53
56
  },
57
+ emits:['update:modelValue','add','delete'],
54
58
  data() {
55
59
  return {
56
60
  disabledDel: {}
@@ -83,14 +87,14 @@ export default {
83
87
  let a = this.modelValue || []
84
88
  a.push(this.$helper.clearProxy(this.template))
85
89
  this.$emit('add', true)
86
- this.$emit('update:model-value', a)
90
+ this.$emit('update:modelValue', a)
87
91
  }
88
92
  },
89
93
  del(i) {
90
94
  let a = this.modelValue || []
91
95
  a.splice(i, 1)
92
96
  this.$emit('delete', i)
93
- this.$emit('update:model-value', a)
97
+ this.$emit('update:modelValue', a)
94
98
  },
95
99
  up(i) {
96
100
  if (i === 0) {
@@ -98,7 +102,7 @@ export default {
98
102
  }
99
103
  let a = this.modelValue || []
100
104
  a = this.array_move(a, i, i - 1)
101
- this.$emit('update:model-value', a)
105
+ this.$emit('update:modelValue', a)
102
106
  },
103
107
  down(i) {
104
108
  if (i === this.modelValue.length - 1) {
@@ -106,7 +110,7 @@ export default {
106
110
  }
107
111
  let a = this.modelValue || []
108
112
  a = this.array_move(a, i, i + 1)
109
- this.$emit('update:model-value', a)
113
+ this.$emit('update:modelValue', a)
110
114
  },
111
115
  array_move(arr, old_index, new_index) {
112
116
  if (new_index >= arr.length) {
@@ -34,7 +34,6 @@
34
34
  </div>
35
35
  </template>
36
36
  <script>
37
- import './scss/input.scss'
38
37
 
39
38
  export default {
40
39
  name: 'r-input',
@@ -67,6 +66,7 @@ export default {
67
66
  },
68
67
  validateOnBlur: {type: Boolean, default: undefined}
69
68
  },
69
+ emits:['pre-icon','icon','update:modelValue'],
70
70
  data() {
71
71
  return {
72
72
  uid: 'input_' + this.$helper.uniqueId(),
@@ -283,3 +283,255 @@ export default {
283
283
  }
284
284
 
285
285
  </script>
286
+ <style lang="scss">
287
+ @import '../../style/include';
288
+
289
+
290
+ .#{$prefix}input-container {
291
+ position: relative;
292
+ align-items: flex-start;
293
+ display: flex;
294
+ flex: 1 1 auto;
295
+ flex-direction: column;
296
+ line-height: 24px;
297
+ font-size: 1rem;
298
+ letter-spacing: normal;
299
+ margin-top: 20px;
300
+
301
+ &.input-ltr {
302
+ input {
303
+ direction: ltr;
304
+ }
305
+ }
306
+
307
+ &:not(.input-disabled) {
308
+ input,
309
+ textarea, .label, .#{$prefix}icon, .#{$prefix}btn {
310
+ color: var(--color-text-primary)
311
+ }
312
+ }
313
+
314
+ input::placeholder,
315
+ textarea::placeholder {
316
+ color: var(--color-text-disabled)
317
+ }
318
+
319
+ &.input-disabled {
320
+ * {
321
+ color: var(--color-text-disabled)
322
+ }
323
+ }
324
+
325
+ .input-control {
326
+ border: solid 1px var(--color-border)
327
+ }
328
+
329
+ &.input-disabled {
330
+ pointer-events: none;
331
+ }
332
+
333
+ input {
334
+ max-height: 32px
335
+ }
336
+
337
+ input,
338
+ textarea {
339
+ flex: 1 1 auto;
340
+ line-height: 20px;
341
+ padding: 8px 0 8px;
342
+ max-width: 100%;
343
+ min-width: 0px;
344
+ width: 100%;
345
+ outline: none;
346
+ position: relative;
347
+
348
+ &[type=text ]::-ms-clear {
349
+ display: none
350
+ }
351
+
352
+ &:invalid {
353
+ box-shadow: none
354
+ }
355
+
356
+ &:focus,
357
+ &:active {
358
+ outline: none
359
+ }
360
+ }
361
+
362
+ .input-control {
363
+ display: flex;
364
+ flex-direction: column;
365
+ height: 40px;
366
+ flex-grow: 1;
367
+ flex-wrap: wrap;
368
+ width: 100%;
369
+ align-items: flex-start;
370
+ justify-content: center;
371
+ position: relative;
372
+ .after-icon {
373
+ position: absolute;
374
+ cursor: pointer;
375
+ @include ltr() {
376
+ right: 5px;
377
+ }
378
+ @include rtl() {
379
+ left: 5px;
380
+ }
381
+
382
+ }
383
+ .pre-icon {
384
+ position: absolute;
385
+ cursor: pointer;
386
+ @include ltr() {
387
+ left: 5px;
388
+ }
389
+ @include rtl() {
390
+ right: 5px;
391
+ }
392
+
393
+ }
394
+
395
+ &:not(.input-tile) {
396
+ padding: 0 16px;
397
+ border-radius: 20px;
398
+ }
399
+
400
+ &.input-tile {
401
+ padding: 0 8px;
402
+ border-radius: 4px;
403
+ }
404
+ }
405
+
406
+ &.hide-detail {
407
+
408
+ > .input-control {
409
+ border: unset !important;
410
+ height: auto;
411
+ padding: 0;
412
+ }
413
+ }
414
+
415
+ .label {
416
+ white-space: nowrap;
417
+ position: absolute;
418
+ z-index: 0;
419
+ top: 8px;
420
+ transition: $primary-transition;
421
+
422
+ @include ltr() {
423
+ left: 15px;
424
+ transform-origin: top left;
425
+ }
426
+
427
+ @include rtl() {
428
+ right: 15px;
429
+ transform-origin: top right;
430
+ }
431
+ }
432
+
433
+ :not(.input-tile) {
434
+ .label-active {
435
+ @include ltr() {
436
+ transform: translateY(-27px) translateX(5px) scale(.9);
437
+ }
438
+ @include rtl() {
439
+ transform: translateY(-27px) translateX(-5px) scale(.9);
440
+ }
441
+ transition: $primary-transition
442
+ }
443
+ }
444
+
445
+ .label-fixed {
446
+ transform: none !important;
447
+ top: -20px !important;
448
+ @include ltr() {
449
+ left: 0 !important;
450
+ }
451
+ @include rtl() {
452
+ right: 0 !important;
453
+ }
454
+ }
455
+
456
+ .input-tile {
457
+ .label-active {
458
+ @include ltr() {
459
+ transform: translateY(-27px) translateX(-8px) scale(.9);
460
+ }
461
+ @include rtl() {
462
+ transform: translateY(-27px) translateX(8px) scale(.9);
463
+ }
464
+ transition: $primary-transition
465
+ }
466
+ }
467
+
468
+ &.input-focused {
469
+ .input-control {
470
+ border: solid 1px currentColor;
471
+ }
472
+
473
+ .#{$prefix}icon, .#{$prefix}btn {
474
+ color: currentColor !important;
475
+ }
476
+
477
+ :not(.input-tile) {
478
+ .label {
479
+ color: currentColor !important;
480
+ @include ltr() {
481
+ transform: translateY(-27px) translateX(5px) scale(.9);
482
+ }
483
+ @include rtl() {
484
+ transform: translateY(-27px) translateX(-5px) scale(.9);
485
+ }
486
+ transition: $primary-transition
487
+ }
488
+ }
489
+
490
+ .input-tile {
491
+ .label {
492
+ color: currentColor !important;
493
+ @include ltr() {
494
+ transform: translateY(-27px) translateX(-8px) scale(.9);
495
+ }
496
+ @include rtl() {
497
+ transform: translateY(-27px) translateX(8px) scale(.9);
498
+ }
499
+ transition: $primary-transition
500
+ }
501
+ }
502
+ }
503
+
504
+ .massage {
505
+ display: none;
506
+ margin-left: 10px;
507
+
508
+ &-active {
509
+ display: block;
510
+ }
511
+ }
512
+
513
+
514
+ &.color-error-text {
515
+ .label {
516
+ color: currentColor;
517
+ }
518
+
519
+ .input-control {
520
+ border: solid 1px currentColor;
521
+ }
522
+ }
523
+
524
+ &.text-area {
525
+ .input-control {
526
+ height: auto;
527
+
528
+ &:not(.input-tile) {
529
+ border-radius: 15px;
530
+ }
531
+ }
532
+
533
+ }
534
+ }
535
+
536
+
537
+ </style>
@@ -20,17 +20,17 @@
20
20
  </r-list>
21
21
  </r-card>
22
22
  </r-modal>
23
- <r-btn class="btn-country ltr mx-1"
24
- :rounded="!tile" :disabled="!select||readonly" @click.stop="toggleDropdown" outlined>
23
+ <r-btn class="btn-country ltr ms-1"
24
+ :rounded="!c_tile" :disabled="!select||readonly" @click.stop="toggleDropdown" outlined>
25
25
  <div :class="activeCountry.iso2.toLowerCase()" class="iti-flag"></div>
26
26
  <span class="country-code pa-1"> +{{ activeCountry.dialCode }} </span>
27
27
  <span class="dropdown-arrow">{{ open ? "▲" : "▼" }}</span>
28
28
  </r-btn>
29
29
  <r-text-input class="input-phone" :label="label?label:$t('phone','renusify')"
30
30
  @update:model-value="emit"
31
- :tile="tile"
31
+ :tile="c_tile"
32
32
  :readonly="readonly"
33
- :rules="required?['required']:[]"
33
+ :rules="required?['required','number']:['number']"
34
34
  v-model="tel.phone"
35
35
  >
36
36
  </r-text-input>
@@ -56,7 +56,7 @@ export default {
56
56
  type: String,
57
57
  default: ''
58
58
  },
59
- tile: Boolean,
59
+ tile: {type: Boolean, default: undefined},
60
60
  required: Boolean,
61
61
  readonly: Boolean,
62
62
  select: {
@@ -65,6 +65,7 @@ export default {
65
65
  }
66
66
 
67
67
  },
68
+ emits:['update:modelValue'],
68
69
  data() {
69
70
  return {
70
71
  tel: {
@@ -89,6 +90,14 @@ export default {
89
90
  this.activeCountry.dialCode = this.tel.country_code
90
91
  }
91
92
  },
93
+ computed: {
94
+ c_tile() {
95
+ if (this.tile === undefined && this.$r.inputs.tile) {
96
+ return this.$r.inputs.tile
97
+ }
98
+ return this.tile
99
+ },
100
+ },
92
101
  methods: {
93
102
  initializeCountry() {
94
103
  /**
@@ -143,15 +152,16 @@ export default {
143
152
  return
144
153
  }
145
154
  this.tel.country_code = this.activeCountry.dialCode
146
- if (this.tel.phone.startsWith('0')) {
147
- setTimeout(() => {
155
+
156
+ setTimeout(() => {
157
+ this.tel.phone = this.$helper.replacer(this.tel.phone, ' ', '')
158
+ if (this.tel.phone.startsWith('0')) {
148
159
  this.tel.phone = this.tel.phone.substr(1, this.tel.phone.length)
149
160
  this.$emit('update:modelValue', this.tel.country_code + ' ' + this.tel.phone)
150
- }, 1)
151
- } else {
152
- this.$emit('update:modelValue', this.tel.country_code + ' ' + this.tel.phone)
153
-
154
- }
161
+ } else {
162
+ this.$emit('update:modelValue', this.tel.country_code + ' ' + this.tel.phone)
163
+ }
164
+ }, 10)
155
165
 
156
166
  },
157
167
  toggleDropdown() {