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.
- package/LICENSE +21 -21
- package/lib/three-trees-ui.common.js +626 -835
- package/lib/three-trees-ui.css +1 -1
- package/lib/three-trees-ui.umd.js +626 -835
- package/lib/three-trees-ui.umd.min.js +1 -1
- package/package.json +2 -4
- package/packages/Collapse/src/HtCollapse.vue +1 -4
- package/packages/CustomDialog/src/customDialog.vue +9 -26
- package/packages/CustomDialog/src/main.vue +115 -171
- package/packages/DimensionSelector/src/main.vue +43 -44
- package/packages/JobSelector/src/main.vue +81 -85
- package/packages/OnlineForm/src/Form.vue +4 -56
- package/packages/OrgSelector/src/main.vue +85 -87
- package/packages/PostSelector/src/main.vue +81 -86
- package/packages/Preview/src/FrameViewer.vue +5 -6
- package/packages/RoleSelector/src/main.vue +81 -87
- package/packages/UserSelector/src/main.vue +101 -96
- package/src/directive/formulas.js +1 -7
- package/src/index.js +0 -2
- package/src/mixins/onlineSubtable.js +19 -50
- package/src/styles/selector.scss +2 -42
- package/src/styles/variables.scss +5 -6
- package/src/utils.js +0 -7
- package/packages/SubEditModeDialog/index.js +0 -7
- package/packages/SubEditModeDialog/src/main.vue +0 -115
|
@@ -16,23 +16,33 @@
|
|
|
16
16
|
@click="showDialog"
|
|
17
17
|
>
|
|
18
18
|
<div
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
:class="{
|
|
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
|
-
<
|
|
24
|
-
<
|
|
26
|
+
<span class="tag-wrap">
|
|
27
|
+
<span
|
|
25
28
|
v-for="(item, index) in demensions"
|
|
26
29
|
:key="index"
|
|
27
|
-
class="
|
|
30
|
+
class="el-tag el-tag--info el-tag--small"
|
|
31
|
+
@click.stop
|
|
28
32
|
>
|
|
29
|
-
<span>{{ item.name }}</span>
|
|
30
|
-
<i
|
|
31
|
-
|
|
32
|
-
|
|
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="
|
|
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.$
|
|
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
|
-
|
|
374
|
+
showDialog() {
|
|
374
375
|
if (!this.inputWriteable) {
|
|
375
376
|
return
|
|
376
377
|
}
|
|
377
378
|
this.dialogVisible = true
|
|
378
|
-
|
|
379
|
-
|
|
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
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
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
|
-
|
|
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
|
-
|
|
20
|
-
|
|
21
|
-
:class="{
|
|
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
|
-
<
|
|
24
|
-
<
|
|
26
|
+
<span class="tag-wrap">
|
|
27
|
+
<span
|
|
25
28
|
v-for="(item, index) in selectors"
|
|
26
29
|
:key="index"
|
|
27
|
-
class="
|
|
30
|
+
class="el-tag el-tag--info el-tag--small"
|
|
31
|
+
@click.stop
|
|
28
32
|
>
|
|
29
|
-
<span>{{ item.name }}</span>
|
|
30
|
-
<i
|
|
31
|
-
|
|
32
|
-
|
|
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="
|
|
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
|
-
<
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
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.$
|
|
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
|
-
|
|
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
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
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
|
-
|
|
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"
|
|
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
|
|
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 {
|