renusify 1.1.3 → 1.1.5

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 (33) hide show
  1. package/components/avatar/index.vue +29 -23
  2. package/components/bar/bottomNavigationCircle.vue +7 -3
  3. package/components/form/address.vue +7 -2
  4. package/components/form/camInput.vue +8 -2
  5. package/components/form/check-input.vue +94 -93
  6. package/components/form/checkbox.vue +1 -1
  7. package/components/form/datePicker/index.vue +20 -20
  8. package/components/form/fileUploader/file.js +21 -3
  9. package/components/form/fileUploader/index.vue +12 -2
  10. package/components/form/fileUploader/single.vue +3 -2
  11. package/components/form/group-input.vue +45 -35
  12. package/components/form/input.vue +5 -4
  13. package/components/form/inputTel/index.vue +175 -161
  14. package/components/form/mask-input.vue +12 -11
  15. package/components/form/number.vue +24 -12
  16. package/components/form/range.vue +25 -1
  17. package/components/form/select.vue +17 -11
  18. package/components/form/text-editor/index.vue +13 -9
  19. package/components/form/unique/index.vue +2 -1
  20. package/components/formCreator/index.vue +60 -6
  21. package/components/img/index.vue +12 -2
  22. package/components/img/svgImg.vue +43 -0
  23. package/components/infinite/div.vue +2 -1
  24. package/components/infinite/page.vue +24 -23
  25. package/components/list/index.vue +32 -30
  26. package/components/map/index.vue +323 -306
  27. package/components/searchBox/index.vue +4 -2
  28. package/components/table/crud/footer.vue +2 -1
  29. package/components/table/crud/header.vue +2 -2
  30. package/components/table/crud/index.vue +462 -457
  31. package/components/tree/index.vue +13 -12
  32. package/components/tree/tree-element.vue +5 -2
  33. package/package.json +1 -1
@@ -24,17 +24,18 @@
24
24
  props: {
25
25
  size: {
26
26
  type: [Number, String],
27
- default: 48
27
+ default: 48
28
28
  },
29
- elevation: {
30
- type: String,
31
- default: 'none'
32
- },
33
- editable: {
34
- type: String
35
- },
36
- flat: Boolean,
37
- tile: Boolean
29
+ elevation: {
30
+ type: String,
31
+ default: 'none'
32
+ },
33
+ editable: {
34
+ type: String
35
+ },
36
+ flat: Boolean,
37
+ tile: Boolean,
38
+ headers: Object
38
39
  },
39
40
  data() {
40
41
  return {
@@ -58,19 +59,24 @@
58
59
  this.$refs.file.click()
59
60
  },
60
61
  saveImage() {
61
- this.loading = true
62
- let fileData = new FormData()
63
- fileData.append('file', this.files[0])
64
- this.$axios.post(this.editable, fileData,
65
- {
66
- headers: {'Content-Type': 'multipart/form-data'},
67
- onUploadProgress: function (progressEvent) {
68
- this.uploadPercentage = Math.min(parseInt(Math.floor((progressEvent.loaded * 100) / progressEvent.total)), 98)
69
- }.bind(this),
70
- cancelToken: this.CancelTokenSource.token
71
- }
72
- )
73
- .then(() => {
62
+ this.loading = true
63
+ let fileData = new FormData()
64
+ fileData.append('file', this.files[0])
65
+ let headers = this.headers
66
+ if (!headers) {
67
+ headers = {}
68
+ }
69
+ headers['Content-Type'] = 'multipart/form-data'
70
+ this.$axios.post(this.editable, fileData,
71
+ {
72
+ headers: headers,
73
+ onUploadProgress: function (progressEvent) {
74
+ this.uploadPercentage = Math.min(parseInt(Math.floor((progressEvent.loaded * 100) / progressEvent.total)), 98)
75
+ }.bind(this),
76
+ cancelToken: this.CancelTokenSource.token
77
+ }
78
+ )
79
+ .then(() => {
74
80
  this.loading = false
75
81
  this.k+=1
76
82
  }, () => {
@@ -7,9 +7,13 @@
7
7
  :key="i"
8
8
  >
9
9
  <div class="navigation-item-icon">
10
- <r-icon v-html="item.icon"></r-icon>
10
+ <slot name="icon" :item="item">
11
+ <r-icon v-html="item.icon"></r-icon>
12
+ </slot>
13
+ </div>
14
+ <div class="navigation-item-text">
15
+ <slot name="name" :item="item">{{ item.name }}</slot>
11
16
  </div>
12
- <div class="navigation-item-text">{{ item.name }}</div>
13
17
  </router-link>
14
18
  </nav>
15
19
  </template>
@@ -77,7 +81,7 @@ export default {
77
81
  bottom: 31px;
78
82
  background-color: currentColor;
79
83
  border-radius: 50%;
80
- padding: 15px;
84
+ padding: 12px;
81
85
  width: 50px;
82
86
  height: 50px;
83
87
  border: 3px solid white;
@@ -2,10 +2,12 @@
2
2
  <r-select-input
3
3
  :label="$t('country','renusify')"
4
4
  v-model="country"
5
+ v-if="!defaultCountry"
5
6
  @update:model-value="emit(true,true)"
6
7
  value="id"
7
8
  :searchLink="`https://codenus.com/api/apps/address?lang=${$r.lang}`"
8
9
  :rules="required?['required']:[]"
10
+ :headers="{'Authorization':''}"
9
11
  :tile="tile">
10
12
  </r-select-input>
11
13
  <r-select-input :label="$t('state','renusify')"
@@ -17,6 +19,7 @@
17
19
  :searchLink="country&&`https://codenus.com/api/apps/address/${country['id']}?lang=${$r.lang}`"
18
20
  :rules="required?['required']:[]"
19
21
  value="id"
22
+ :headers="{'Authorization':''}"
20
23
  :tile="tile">
21
24
 
22
25
  </r-select-input>
@@ -29,6 +32,7 @@
29
32
  :searchLink="state&&`https://codenus.com/api/apps/address/${country['id']}/${state['id']}?lang=${$r.lang}`"
30
33
  :rules="required?['required']:[]"
31
34
  value="id"
35
+ :headers="{'Authorization':''}"
32
36
  :tile="tile">
33
37
 
34
38
  </r-select-input>
@@ -55,12 +59,13 @@ export default {
55
59
  hideCity: Boolean,
56
60
  hideZipCode: Boolean,
57
61
  hideStreet: Boolean,
58
- tile: Boolean,
62
+ tile: {type: Boolean, default: undefined},
63
+ defaultCountry: Object,
59
64
  modelValue: Object
60
65
  },
61
66
  data() {
62
67
  return {
63
- country: this.modelValue ? this.modelValue.country : null,
68
+ country: this.modelValue ? this.modelValue.country : this.defaultCountry,
64
69
  state: this.modelValue ? this.modelValue.state : null,
65
70
  city: this.modelValue ? this.modelValue.city : null,
66
71
  zip_code: this.modelValue ? this.modelValue.zip_code : null,
@@ -131,6 +131,7 @@ export default {
131
131
  default: 3,
132
132
  type: Number,
133
133
  },
134
+ headers: Object
134
135
  },
135
136
  data() {
136
137
  return {
@@ -240,9 +241,14 @@ export default {
240
241
  const blob = new Blob(this.recordedBlobs, {type: this.type});
241
242
  let fileData = new FormData();
242
243
  fileData.append("file", blob, "user.webm");
244
+ let headers = this.headers
245
+ if (!headers) {
246
+ headers = {}
247
+ }
248
+ headers['Content-Type'] = 'multipart/form-data'
243
249
  this.$axios
244
250
  .post(this.uploadLink, fileData, {
245
- headers: {"Content-Type": "multipart/form-data"},
251
+ headers: headers,
246
252
  onUploadProgress: function (progressEvent) {
247
253
  this.uploadPercentage = Math.min(
248
254
  parseInt(
@@ -329,7 +335,7 @@ export default {
329
335
  this.$axios
330
336
  .delete(this.uploadLink, {
331
337
  data: {link: link},
332
- })
338
+ }, {headers: this.headers})
333
339
  .then(() => {
334
340
  this.files.splice(i, 1);
335
341
  this.emit();
@@ -1,104 +1,105 @@
1
1
  <template>
2
- <r-input :class="`${$r.prefix}check-input`" :active="active"
3
- :model-value="lazyValue"
4
- inputControlClass="pe-0"
5
- :msg="msg"
6
- :error="pass===false"
7
- @click.prevent="handleClick">
8
- <div class="check-input-container v-center">
9
- <input :autofocus="autofocus"
10
- :type="type"
11
- @focusin="active=true"
12
- @focusout="active=false"
13
- @input="emit"
14
- :value="lazyValue"
15
- autocomplete="no"
16
- ref="input"
17
- />
18
- <r-btn size="small"
19
- :rounded="$attrs.tile===undefined||$attrs.tile===false"
20
- :loading="loading" @click.prevent="check()" class="elevation-none mx-1">
21
- {{$t('check','renusify')}}
22
- <r-icon v-if="pass!==null && pass!==false" v-html="$r.icons.check" exact width="20" height="20"></r-icon>
23
- <r-icon v-if=" pass===false" v-html="$r.icons.close" width="20" height="20"></r-icon>
24
- </r-btn>
25
- </div>
26
- </r-input>
2
+ <r-input :class="`${$r.prefix}check-input`" :active="active"
3
+ :model-value="lazyValue"
4
+ inputControlClass="pe-0"
5
+ :msg="msg"
6
+ :error="pass===false"
7
+ @click.prevent="handleClick">
8
+ <div class="check-input-container v-center">
9
+ <input :autofocus="autofocus"
10
+ :type="type"
11
+ @focusin="active=true"
12
+ @focusout="active=false"
13
+ @input="emit"
14
+ :value="lazyValue"
15
+ autocomplete="no"
16
+ ref="input"
17
+ />
18
+ <r-btn size="small"
19
+ :rounded="$attrs.tile===undefined||$attrs.tile===false"
20
+ :loading="loading" @click.prevent="check()" class="elevation-none mx-1">
21
+ {{ $t('check', 'renusify') }}
22
+ <r-icon v-if="pass!==null && pass!==false" v-html="$r.icons.check" exact width="20" height="20"></r-icon>
23
+ <r-icon v-if=" pass===false" v-html="$r.icons.close" width="20" height="20"></r-icon>
24
+ </r-btn>
25
+ </div>
26
+ </r-input>
27
27
  </template>
28
28
  <script>
29
- export default {
30
- name: 'r-check-input',
31
- props: {
32
- type: {
33
- type: String,
34
- default: 'text'
35
- },
36
- name: {
37
- type: String,
38
- default: 'text'
39
- },
40
- link: String,
41
- modelValue: [String, Number],
42
- autofocus: Boolean,
43
- },
29
+ export default {
30
+ name: 'r-check-input',
31
+ props: {
32
+ type: {
33
+ type: String,
34
+ default: 'text'
35
+ },
36
+ name: {
37
+ type: String,
38
+ default: 'text'
39
+ },
40
+ link: String,
41
+ modelValue: [String, Number],
42
+ autofocus: Boolean,
43
+ headers: Object
44
+ },
44
45
 
45
- data() {
46
- return {
47
- lazyValue: this.modelValue,
48
- msg: null,
49
- pass: null,
50
- loading: false,
51
- active: false
52
- }
53
- },
54
- watch: {
55
- modelValue() {
56
- this.msg = null
57
- this.pass = null
58
- this.$emit('data', {})
59
- this.lazyValue = this.modelValue
60
- }
61
- },
62
- methods: {
63
- check() {
64
- if (this.link) {
65
- this.loading = true
66
- this.$axios.post(this.link, {
67
- [this.name]: this.lazyValue
68
- }).then(({data}) => {
69
- this.$emit('data', data)
70
- this.msg = null
71
- this.loading = false
72
- this.pass = true
73
- }, ({response}) => {
74
- if (response.data.msg) {
75
- this.msg = this.$t(response.data.msg,'renusify')
76
- }
77
- this.$emit('data', response.data)
78
- this.loading = false
79
- this.pass = false
80
- })
81
- }
46
+ data() {
47
+ return {
48
+ lazyValue: this.modelValue,
49
+ msg: null,
50
+ pass: null,
51
+ loading: false,
52
+ active: false
53
+ }
54
+ },
55
+ watch: {
56
+ modelValue() {
57
+ this.msg = null
58
+ this.pass = null
59
+ this.$emit('data', {})
60
+ this.lazyValue = this.modelValue
61
+ }
62
+ },
63
+ methods: {
64
+ check() {
65
+ if (this.link) {
66
+ this.loading = true
67
+ this.$axios.post(this.link, {
68
+ [this.name]: this.lazyValue
69
+ }, {headers: this.headers}).then(({data}) => {
70
+ this.$emit('data', data)
71
+ this.msg = null
72
+ this.loading = false
73
+ this.pass = true
74
+ }, ({response}) => {
75
+ if (response.data.msg) {
76
+ this.msg = this.$t(response.data.msg, 'renusify')
77
+ }
78
+ this.$emit('data', response.data)
79
+ this.loading = false
80
+ this.pass = false
81
+ })
82
+ }
82
83
 
83
- },
84
- handleClick(e) {
85
- this.$refs.input.focus()
86
- },
87
- emit(e) {
88
- this.lazyValue=e.target.value
89
- this.$emit('update:modelValue', this.lazyValue)
90
- }
91
- }
84
+ },
85
+ handleClick(e) {
86
+ this.$refs.input.focus()
87
+ },
88
+ emit(e) {
89
+ this.lazyValue = e.target.value
90
+ this.$emit('update:modelValue', this.lazyValue)
92
91
  }
92
+ }
93
+ }
93
94
 
94
95
  </script>
95
96
  <style lang="scss">
96
- @import "../../style/include";
97
+ @import "../../style/include";
97
98
 
98
- .#{$prefix}check-input {
99
- .check-input-container {
100
- display: flex;
101
- width: 100%;
102
- }
103
- }
99
+ .#{$prefix}check-input {
100
+ .check-input-container {
101
+ display: flex;
102
+ width: 100%;
103
+ }
104
+ }
104
105
  </style>
@@ -18,7 +18,7 @@
18
18
  </span>
19
19
  <span class="ms-2 color-primary-text" @click="emit">
20
20
  <span class="color-error-text" v-if="isRequired">*</span>
21
- {{ label }}
21
+ <slot name="label">{{ label }}</slot>
22
22
  </span>
23
23
  </div>
24
24
  </template>
@@ -5,17 +5,17 @@
5
5
  />
6
6
  </r-input>
7
7
  <r-modal :model-value="show" @update:model-value="close()" :closebtn="false" closable class="text-center">
8
- <div v-if="!showTime" :class="`${$r.prefix}date-picker`">
9
- <div class="sheet">
10
- <r-container>
11
- <r-row>
12
- <r-col class="col-auto">
13
- <r-btn v-if="tab!=='month'" icon
14
- @click.prevent="tab==='day'?incrementMonth(-1):incrementYear(-12)">
15
- <r-icon v-html="$r.icons.arrow_left"></r-icon>
16
- </r-btn>
17
- </r-col>
18
- <r-col class="text-center">
8
+ <div v-if="!showTime" :class="`${$r.prefix}date-input`">
9
+ <div class="sheet">
10
+ <r-container>
11
+ <r-row>
12
+ <r-col class="col-auto">
13
+ <r-btn v-if="tab!=='month'" icon
14
+ @click.prevent="tab==='day'?incrementMonth(-1):incrementYear(-12)">
15
+ <r-icon v-html="$r.icons.arrow_left"></r-icon>
16
+ </r-btn>
17
+ </r-col>
18
+ <r-col class="text-center">
19
19
  <r-btn class="me-2" text @click.prevent="tab==='month'?tab='day':tab='month'">
20
20
  <r-icon v-html="tab==='month'?$r.icons.chevron_up:$r.icons.chevron_down"></r-icon>
21
21
  {{
@@ -370,17 +370,17 @@ export default {
370
370
  <style lang="scss">
371
371
  @import "../../../style/include";
372
372
 
373
- .#{$prefix}date-picker {
374
- position: relative;
375
- display: inline-block;
376
- font-size: 10px;
377
- color: #303030;
373
+ .#{$prefix}date-input {
374
+ position: relative;
375
+ display: inline-block;
376
+ font-size: 10px;
377
+ color: #303030;
378
378
 
379
- .cell {
380
- &.today {
381
- color: var(--color-one);
379
+ .cell {
380
+ &.today {
381
+ color: var(--color-one);
382
382
 
383
- .cellContent {
383
+ .cellContent {
384
384
  border: solid 1px var(--color-one);
385
385
  }
386
386
  }
@@ -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">
@@ -81,6 +82,15 @@ export default {
81
82
  }
82
83
  },
83
84
  computed: {
85
+ attrs() {
86
+ let l = {}
87
+ for (let k in this.$attrs) {
88
+ if (k !== 'label') {
89
+ l[k] = this.$attrs[k]
90
+ }
91
+ }
92
+ return l
93
+ },
84
94
  labelFile() {
85
95
  let l = this.$attrs.label || ''
86
96
  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
@@ -167,6 +167,7 @@ export default {
167
167
  height: 200px;
168
168
  z-index: -2;
169
169
  opacity: 0.8;
170
+ max-width: 100%;
170
171
  }
171
172
 
172
173
  .icon-100 {
@@ -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="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="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="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 {
@@ -48,7 +50,9 @@ export default {
48
50
  modelValue: Array,
49
51
  size: Number,
50
52
  disableAdd: Boolean,
51
- template: Object
53
+ translate: Boolean,
54
+ template: Object,
55
+ addBtnClass: {'type': String, default: 'text-center'}
52
56
  },
53
57
  data() {
54
58
  return {
@@ -68,6 +72,12 @@ export default {
68
72
  }
69
73
  },
70
74
  methods: {
75
+ t(k) {
76
+ if (this.translate) {
77
+ return this.$t(k)
78
+ }
79
+ return k
80
+ },
71
81
  disDel(value) {
72
82
  this.disabledDel[value] = true
73
83
  },
@@ -133,4 +143,4 @@ export default {
133
143
  }
134
144
  }
135
145
  }
136
- </style>
146
+ </style>