three-trees-ui 1.0.95 → 1.0.96

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.
@@ -16,23 +16,33 @@
16
16
  @click="showDialog"
17
17
  >
18
18
  <div
19
- v-if="inputWriteable"
20
- class="el-input el-input--suffix"
21
- :class="{ 'custom-selector-mobile': isMobile }"
19
+ ref="tagSpans"
20
+ style="width: calc(100% - 25px);"
21
+ :class="{
22
+ 'el-select__tags_readonly': !inputWriteable,
23
+ 'el-select__tags': inputWriteable,
24
+ }"
22
25
  >
23
- <div v-if="isMobile" class="custom-selector-mobile-box">
24
- <div
26
+ <span class="tag-wrap">
27
+ <span
25
28
  v-for="(item, index) in demensions"
26
29
  :key="index"
27
- class="common-selector-tag"
30
+ class="el-tag el-tag--info el-tag--small"
31
+ @click.stop
28
32
  >
29
- <span>{{ item.name }}</span>
30
- <i class="el-icon-error" @click.stop="handleRemove(item)"></i>
31
- </div>
32
- </div>
33
+ <span class="el-select__tags-text">{{ item.name }}</span>
34
+ <i
35
+ v-if="inputWriteable"
36
+ class="el-tag__close el-icon-close"
37
+ @click="handleRemove(item)"
38
+ ></i>
39
+ </span>
40
+ </span>
41
+ </div>
42
+ <div v-if="inputWriteable" class="el-input el-input--suffix">
33
43
  <input
34
44
  ref="inputEl"
35
- v-model="calcInputValue"
45
+ v-model="value"
36
46
  v-validate="inputValidate"
37
47
  type="text"
38
48
  readonly="readonly"
@@ -40,6 +50,10 @@
40
50
  autocomplete="off"
41
51
  class="el-input__inner"
42
52
  :placeholder="placeholder"
53
+ :style="{
54
+ height: inputSuffixHeight + 'px',
55
+ lineHeight: inputSuffixHeight + 'px',
56
+ }"
43
57
  />
44
58
  <span class="el-input__suffix">
45
59
  <span class="el-input__suffix-inner">
@@ -48,13 +62,9 @@
48
62
  </span>
49
63
  </span>
50
64
  </div>
51
- <div v-else class="el-select__tags_readonly">
52
- <span>{{ calcInputValue }}</span>
53
- </div>
54
65
  </div>
55
66
  <ht-field-tail :field-name="inputName" :input-value="value" />
56
67
  <el-dialog
57
- v-if="dialogVisible"
58
68
  title="选择维度"
59
69
  :visible.sync="dialogVisible"
60
70
  class="dialog-selector__wrapper"
@@ -206,10 +216,6 @@
206
216
  mode: {
207
217
  type: String,
208
218
  },
209
- formInputsDisplay: {
210
- type: String,
211
- default: 'inline',
212
- },
213
219
  },
214
220
  data() {
215
221
  return {
@@ -221,17 +227,6 @@
221
227
  }
222
228
  },
223
229
  computed: {
224
- calcInputValue: function() {
225
- let name = ''
226
- if (this.demensions) {
227
- name = this.demensions
228
- .map((k) => {
229
- return k.name
230
- })
231
- .join(',')
232
- }
233
- return name
234
- },
235
230
  primaryField: function() {
236
231
  return this.config && this.config.hasOwnProperty('id')
237
232
  ? 'id'
@@ -290,8 +285,14 @@
290
285
  // 通过valueChange事件发布值变更消息
291
286
  this.$emit('valueChange', ary.join(','), newVal)
292
287
  setTimeout(() => {
288
+ if (newVal.length > 0) {
289
+ this.calacInputSuffixHeight()
290
+ } else {
291
+ this.inputSuffixHeight = 30
292
+ }
293
293
  if (this.$refs.inputEl) {
294
- this.$validator.validate(this.inputName)
294
+ this.$refs.inputEl.focus()
295
+ this.$refs.inputEl.blur()
295
296
  }
296
297
  }, 10)
297
298
  },
@@ -370,13 +371,14 @@
370
371
  this.demensions = tmpAry
371
372
  }
372
373
  },
373
- async showDialog() {
374
+ showDialog() {
374
375
  if (!this.inputWriteable) {
375
376
  return
376
377
  }
377
378
  this.dialogVisible = true
378
- await this.$nextTick()
379
- this.$refs.selector.onShow()
379
+ setTimeout(() => {
380
+ this.$refs.selector.onShow()
381
+ })
380
382
  },
381
383
  handleClose(done) {
382
384
  this.$refs.selector.onHide()
@@ -399,12 +401,12 @@
399
401
  },
400
402
  // 更新当前输入框的高度来适配已选数据的高度
401
403
  calacInputSuffixHeight() {
402
- // if (!this.$refs.tagSpans) return
403
- // if (this.$refs.tagSpans.offsetHeight) {
404
- // this.inputSuffixHeight = this.$refs.tagSpans.offsetHeight + 5
405
- // } else {
406
- // this.inputSuffixHeight = 30
407
- // }
404
+ if (!this.$refs.tagSpans) return
405
+ if (this.$refs.tagSpans.offsetHeight) {
406
+ this.inputSuffixHeight = this.$refs.tagSpans.offsetHeight + 5
407
+ } else {
408
+ this.inputSuffixHeight = 30
409
+ }
408
410
  },
409
411
  },
410
412
  }
@@ -425,10 +427,7 @@
425
427
  position: relative;
426
428
  top: 50%;
427
429
  }
428
- .el-input__inner {
429
- height: 32px;
430
- line-height: 32px;
431
- }
430
+
432
431
  .el-input__inner[aria-invalid='true'] {
433
432
  border-color: #f56c6c;
434
433
  }
@@ -16,23 +16,33 @@
16
16
  @click="showDialog"
17
17
  >
18
18
  <div
19
- v-if="inputWriteable"
20
- class="el-input el-input--suffix"
21
- :class="{ 'custom-selector-mobile': isMobile }"
19
+ ref="tagSpans"
20
+ style="width: calc(100% - 25px);"
21
+ :class="{
22
+ 'el-select__tags_readonly': !inputWriteable,
23
+ 'el-select__tags': inputWriteable,
24
+ }"
22
25
  >
23
- <div v-if="isMobile" class="custom-selector-mobile-box">
24
- <div
26
+ <span class="tag-wrap">
27
+ <span
25
28
  v-for="(item, index) in selectors"
26
29
  :key="index"
27
- class="common-selector-tag"
30
+ class="el-tag el-tag--info el-tag--small"
31
+ @click.stop
28
32
  >
29
- <span>{{ item.name }}</span>
30
- <i class="el-icon-error" @click.stop="handleRemove(item)"></i>
31
- </div>
32
- </div>
33
+ <span class="el-select__tags-text">{{ item.name }}</span>
34
+ <i
35
+ v-if="inputWriteable"
36
+ class="el-tag__close el-icon-close"
37
+ @click="handleRemove(item)"
38
+ ></i>
39
+ </span>
40
+ </span>
41
+ </div>
42
+ <div v-if="inputWriteable" class="el-input el-input--suffix">
33
43
  <input
34
44
  ref="inputEl"
35
- v-model="calcInputValue"
45
+ v-model="value"
36
46
  v-validate="inputValidate"
37
47
  type="text"
38
48
  readonly="readonly"
@@ -40,6 +50,10 @@
40
50
  autocomplete="off"
41
51
  class="el-input__inner"
42
52
  :placeholder="placeholder"
53
+ :style="{
54
+ height: inputSuffixHeight + 'px',
55
+ lineHeight: inputSuffixHeight + 'px',
56
+ }"
43
57
  />
44
58
  <span class="el-input__suffix">
45
59
  <span class="el-input__suffix-inner">
@@ -48,54 +62,49 @@
48
62
  </span>
49
63
  </span>
50
64
  </div>
51
- <div v-else class="el-select__tags_readonly">
52
- <span>{{ calcInputValue }}</span>
53
- </div>
54
65
  </div>
55
66
  <ht-field-tail :field-name="inputName" :input-value="value" />
56
- <template v-if="isDialogShow">
57
- <job-selector-mobile-dialog
58
- v-if="isMobile"
59
- ref="jobSelectorMobileDialog"
60
- v-model="selectors"
61
- :search-placeholder="searchPlaceholder"
62
- :single="single"
63
- :data="data"
64
- :pagination="pagination"
65
- :select-label="selectLabel"
66
- :quick-search-props="quickSearchProps"
67
- :append-to-body="appendToBody"
68
- :title="title"
69
- :primary-field="primaryField"
70
- @search="(word) => $emit('search', word)"
71
- @reset="() => $emit('reset')"
72
- @row-click="(row) => $emit('row-click', row)"
73
- @select-data="(data) => $emit('select-data', data)"
74
- @page-change="(page) => $emit('page-change', page)"
75
- />
76
- <job-selector-dialog
77
- v-else
78
- ref="jobSelectorDialog"
79
- v-model="selectors"
80
- :search-placeholder="searchPlaceholder"
81
- :single="single"
82
- :data="data"
83
- :table-columns="tableColumns"
84
- :pagination="pagination"
85
- :select-label="selectLabel"
86
- :quick-search-props="quickSearchProps"
87
- :append-to-body="appendToBody"
88
- :title="title"
89
- :primary-field="primaryField"
90
- :mode="mode"
91
- @search="(word) => $emit('search', word)"
92
- @reset="() => $emit('reset')"
93
- @row-click="(row) => $emit('row-click', row)"
94
- @select-data="(data) => $emit('select-data', data)"
95
- @page-change="(page) => $emit('page-change', page)"
96
- @size-change="(size) => $emit('size-change', size)"
97
- />
98
- </template>
67
+ <job-selector-mobile-dialog
68
+ v-if="isMobile"
69
+ ref="jobSelectorMobileDialog"
70
+ v-model="selectors"
71
+ :search-placeholder="searchPlaceholder"
72
+ :single="single"
73
+ :data="data"
74
+ :pagination="pagination"
75
+ :select-label="selectLabel"
76
+ :quick-search-props="quickSearchProps"
77
+ :append-to-body="appendToBody"
78
+ :title="title"
79
+ :primary-field="primaryField"
80
+ @search="(word) => $emit('search', word)"
81
+ @reset="() => $emit('reset')"
82
+ @row-click="(row) => $emit('row-click', row)"
83
+ @select-data="(data) => $emit('select-data', data)"
84
+ @page-change="(page) => $emit('page-change', page)"
85
+ />
86
+ <job-selector-dialog
87
+ v-else
88
+ ref="jobSelectorDialog"
89
+ v-model="selectors"
90
+ :search-placeholder="searchPlaceholder"
91
+ :single="single"
92
+ :data="data"
93
+ :table-columns="tableColumns"
94
+ :pagination="pagination"
95
+ :select-label="selectLabel"
96
+ :quick-search-props="quickSearchProps"
97
+ :append-to-body="appendToBody"
98
+ :title="title"
99
+ :primary-field="primaryField"
100
+ :mode="mode"
101
+ @search="(word) => $emit('search', word)"
102
+ @reset="() => $emit('reset')"
103
+ @row-click="(row) => $emit('row-click', row)"
104
+ @select-data="(data) => $emit('select-data', data)"
105
+ @page-change="(page) => $emit('page-change', page)"
106
+ @size-change="(size) => $emit('size-change', size)"
107
+ />
99
108
  </div>
100
109
  </template>
101
110
  <script>
@@ -172,23 +181,11 @@
172
181
  },
173
182
  data() {
174
183
  return {
175
- isDialogShow: false,
176
184
  inputSuffixHeight: 30,
177
185
  selectors: [],
178
186
  }
179
187
  },
180
188
  computed: {
181
- calcInputValue: function() {
182
- let name = ''
183
- if (this.selectors) {
184
- name = this.selectors
185
- .map((k) => {
186
- return k.name
187
- })
188
- .join(',')
189
- }
190
- return name
191
- },
192
189
  primaryField: function() {
193
190
  return this.config && this.config.hasOwnProperty('id')
194
191
  ? 'id'
@@ -238,8 +235,14 @@
238
235
  // 通过valueChange事件发布值变更消息
239
236
  this.$emit('valueChange', ary.join(','), newVal)
240
237
  setTimeout(() => {
238
+ if (newVal.length > 0) {
239
+ this.calacInputSuffixHeight()
240
+ } else {
241
+ this.inputSuffixHeight = 30
242
+ }
241
243
  if (this.$refs.inputEl) {
242
- this.$validator.validate(this.inputName)
244
+ this.$refs.inputEl.focus()
245
+ this.$refs.inputEl.blur()
243
246
  }
244
247
  }, 10)
245
248
  },
@@ -293,14 +296,10 @@
293
296
  this.selectors = tmpAry
294
297
  }
295
298
  },
296
- async showDialog() {
299
+ showDialog() {
297
300
  if (!this.inputWriteable) {
298
301
  return
299
302
  }
300
- if (this.isDialogShow === false) {
301
- this.isDialogShow = true
302
- await this.$nextTick()
303
- }
304
303
  if (this.isMobile) {
305
304
  this.$refs.jobSelectorMobileDialog.showDialog()
306
305
  } else {
@@ -316,12 +315,12 @@
316
315
  },
317
316
  // 更新当前输入框的高度来适配已选数据的高度
318
317
  calacInputSuffixHeight() {
319
- // if (!this.$refs.tagSpans) return
320
- // if (this.$refs.tagSpans.offsetHeight) {
321
- // this.inputSuffixHeight = this.$refs.tagSpans.offsetHeight + 5
322
- // } else {
323
- // this.inputSuffixHeight = 30
324
- // }
318
+ if (!this.$refs.tagSpans) return
319
+ if (this.$refs.tagSpans.offsetHeight) {
320
+ this.inputSuffixHeight = this.$refs.tagSpans.offsetHeight + 5
321
+ } else {
322
+ this.inputSuffixHeight = 30
323
+ }
325
324
  },
326
325
  },
327
326
  }
@@ -336,10 +335,7 @@
336
335
  position: relative;
337
336
  top: 50%;
338
337
  }
339
- .el-input__inner {
340
- height: 32px;
341
- line-height: 32px;
342
- }
338
+
343
339
  .el-input__inner[aria-invalid='true'] {
344
340
  border-color: #f56c6c;
345
341
  }
@@ -1,9 +1,9 @@
1
1
  <template>
2
- <div name="online-form" :class="{ 'is-mobile-online-form': isMobile }">
2
+ <div name="online-form">
3
3
  <el-skeleton v-if="loadStatus == 0" :rows="6" animated />
4
4
  <component
5
- :is="currentComponent"
6
5
  v-else-if="loadStatus > 0"
6
+ v-bind:is="currentComponent"
7
7
  :name="formName"
8
8
  :data="data"
9
9
  :permission="permission"
@@ -31,13 +31,12 @@
31
31
  import onlineSubtable from '@/mixins/onlineSubtable.js'
32
32
  import regionValidator from '@/mixins/regionValidator.js'
33
33
  import emitter from '@/mixins/emitter.js'
34
- import mobileMode from '@/mixins/mobileMode.js'
35
34
 
36
35
  import Vue from 'vue'
37
36
  export default {
38
37
  name: 'HtOnlineForm',
39
38
  componentName: 'HtOnlineForm',
40
- mixins: [regionValidator, emitter, mobileMode],
39
+ mixins: [regionValidator, emitter],
41
40
  props: {
42
41
  html: String,
43
42
  data: Object,
@@ -183,11 +182,6 @@
183
182
  default: false,
184
183
  },
185
184
  },
186
- data() {
187
- return {
188
- subDivCollapse: [],
189
- }
190
- },
191
185
  template: this.html,
192
186
  })
193
187
  },
@@ -195,29 +189,6 @@
195
189
  }
196
190
  </script>
197
191
  <style lang="scss">
198
- .is-mobile-online-form {
199
- .ht-form-item {
200
- .el-form-item__label {
201
- width: 76px !important;
202
- overflow: hidden;
203
- text-overflow: ellipsis;
204
- white-space: nowrap;
205
- text-align: left;
206
- > span {
207
- display: inline-block;
208
- max-width: 100%;
209
- font-size: 14px;
210
- color: #656a72;
211
- margin-left: 0 !important;
212
- overflow: hidden;
213
- text-overflow: ellipsis;
214
- }
215
- }
216
- .el-form-item__content {
217
- margin-left: 76px !important;
218
- }
219
- }
220
- }
221
192
  .transition {
222
193
  outline: 1px dotted #85a5ff;
223
194
  outline-width: 2px;
@@ -337,7 +308,7 @@
337
308
  width: 100%;
338
309
  }
339
310
  .el-input {
340
- width: 100%;
311
+ width: 100% !important;
341
312
  }
342
313
  .amap-page-container {
343
314
  .amap-toolbar,
@@ -470,7 +441,6 @@
470
441
  }
471
442
 
472
443
  .el-icon-copy-document,
473
- .el-icon-edit,
474
444
  .el-icon-delete {
475
445
  display: inline-block;
476
446
  border: 1px solid #409eff;
@@ -479,9 +449,6 @@
479
449
  color: #409eff;
480
450
  background: #fff;
481
451
  }
482
- .el-button + .el-button {
483
- margin-left: 4px;
484
- }
485
452
  }
486
453
 
487
454
  .el-icon-arrow-right:before {
@@ -555,7 +522,6 @@
555
522
  }
556
523
 
557
524
  .el-icon-copy-document,
558
- .el-icon-edit,
559
525
  .el-icon-delete {
560
526
  display: inline-block;
561
527
  border: 1px solid #409eff;
@@ -589,24 +555,6 @@
589
555
  }
590
556
  }
591
557
  }
592
- .sonDetail_lable_box,
593
- .sonDetail_lable_value {
594
- width: calc(100% - 70px);
595
- .sonDetail_lable_item {
596
- font-weight: 500;
597
- }
598
- > div {
599
- flex: 1;
600
- display: -webkit-box;
601
- -webkit-box-orient: vertical;
602
- -webkit-line-clamp: 2;
603
- overflow: hidden;
604
- text-overflow: ellipsis;
605
- word-break: break-all;
606
- line-height: normal;
607
- text-align: center;
608
- }
609
- }
610
558
  }
611
559
 
612
560
  ::v-deep .el-table__header {