three-trees-ui 1.0.99 → 1.1.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.
- package/lib/three-trees-ui.common.js +506 -808
- package/lib/three-trees-ui.css +1 -1
- package/lib/three-trees-ui.umd.js +506 -808
- 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 +5 -155
- package/packages/OrgSelector/src/main.vue +85 -87
- package/packages/PostSelector/src/main.vue +81 -86
- package/packages/RoleSelector/src/main.vue +81 -87
- package/packages/TemplateForm/src/main.vue +0 -1
- 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 -63
- 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,35 @@
|
|
|
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
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
+
<span class="el-select__tags-text">
|
|
34
|
+
{{ showPath ? item.pathName : item.name }}
|
|
35
|
+
</span>
|
|
36
|
+
<i
|
|
37
|
+
v-if="inputWriteable"
|
|
38
|
+
class="el-tag__close el-icon-close"
|
|
39
|
+
@click="handleRemove(item)"
|
|
40
|
+
></i>
|
|
41
|
+
</span>
|
|
42
|
+
</span>
|
|
43
|
+
</div>
|
|
44
|
+
<div v-if="inputWriteable" class="el-input el-input--suffix">
|
|
33
45
|
<input
|
|
34
46
|
ref="inputEl"
|
|
35
|
-
v-model="
|
|
47
|
+
v-model="value"
|
|
36
48
|
v-validate="inputValidate"
|
|
37
49
|
type="text"
|
|
38
50
|
readonly="readonly"
|
|
@@ -40,6 +52,10 @@
|
|
|
40
52
|
autocomplete="off"
|
|
41
53
|
class="el-input__inner"
|
|
42
54
|
:placeholder="placeholder"
|
|
55
|
+
:style="{
|
|
56
|
+
height: inputSuffixHeight + 'px',
|
|
57
|
+
lineHeight: inputSuffixHeight + 'px',
|
|
58
|
+
}"
|
|
43
59
|
/>
|
|
44
60
|
<span class="el-input__suffix">
|
|
45
61
|
<span class="el-input__suffix-inner">
|
|
@@ -48,56 +64,51 @@
|
|
|
48
64
|
</span>
|
|
49
65
|
</span>
|
|
50
66
|
</div>
|
|
51
|
-
<div v-else class="el-select__tags_readonly">
|
|
52
|
-
<span>{{ calcInputValue }}</span>
|
|
53
|
-
</div>
|
|
54
67
|
</div>
|
|
55
68
|
<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
|
-
|
|
99
|
-
/>
|
|
100
|
-
</template>
|
|
69
|
+
<org-selector-dialog
|
|
70
|
+
v-if="!isMobile"
|
|
71
|
+
ref="orgSelectorDialog"
|
|
72
|
+
v-model="selectors"
|
|
73
|
+
:title="title"
|
|
74
|
+
:append-to-body="appendToBody"
|
|
75
|
+
:data="data"
|
|
76
|
+
:pagination="pagination"
|
|
77
|
+
:select-label="selectLabel"
|
|
78
|
+
:quick-search-props="quickSearchProps"
|
|
79
|
+
:single="single"
|
|
80
|
+
:search-placeholder="searchPlaceholder"
|
|
81
|
+
:primary-field="primaryField"
|
|
82
|
+
:mode="mode"
|
|
83
|
+
@filter-type-change="(type) => $emit('filter-type-change', type)"
|
|
84
|
+
@search="(word) => $emit('search', word)"
|
|
85
|
+
@reset="() => $emit('reset')"
|
|
86
|
+
@row-click="(row) => $emit('row-click', row)"
|
|
87
|
+
@select-data="(data) => $emit('select-data', data)"
|
|
88
|
+
@page-change="(page) => $emit('page-change', page)"
|
|
89
|
+
@size-change="(size) => $emit('size-change', size)"
|
|
90
|
+
@contact-group-change="(group) => $emit('contact-group-change', group)"
|
|
91
|
+
@load-org="(org) => $emit('load-org', org)"
|
|
92
|
+
@load-policy-org="(policy) => $emit('load-policy-org', policy)"
|
|
93
|
+
/>
|
|
94
|
+
<org-selector-mobile-dialog
|
|
95
|
+
v-else
|
|
96
|
+
ref="orgSelectorMobileDialog"
|
|
97
|
+
v-model="selectors"
|
|
98
|
+
:title="title"
|
|
99
|
+
:append-to-body="appendToBody"
|
|
100
|
+
:data="data"
|
|
101
|
+
:pagination="pagination"
|
|
102
|
+
:select-label="selectLabel"
|
|
103
|
+
:single="single"
|
|
104
|
+
:search-placeholder="searchPlaceholder"
|
|
105
|
+
:primary-field="primaryField"
|
|
106
|
+
@search="(word) => $emit('search', word)"
|
|
107
|
+
@reset="() => $emit('reset')"
|
|
108
|
+
@row-click="(row) => $emit('row-click', row)"
|
|
109
|
+
@select-data="(data) => $emit('select-data', data)"
|
|
110
|
+
@page-change="(page) => $emit('page-change', page)"
|
|
111
|
+
/>
|
|
101
112
|
</div>
|
|
102
113
|
</template>
|
|
103
114
|
<script>
|
|
@@ -175,23 +186,11 @@
|
|
|
175
186
|
},
|
|
176
187
|
data() {
|
|
177
188
|
return {
|
|
178
|
-
isDialogShow: false,
|
|
179
189
|
inputSuffixHeight: 30,
|
|
180
190
|
selectors: [],
|
|
181
191
|
}
|
|
182
192
|
},
|
|
183
193
|
computed: {
|
|
184
|
-
calcInputValue: function() {
|
|
185
|
-
let name = ''
|
|
186
|
-
if (this.selectors) {
|
|
187
|
-
name = this.selectors
|
|
188
|
-
.map((k) => {
|
|
189
|
-
return this.showPath ? k.pathName : k.name
|
|
190
|
-
})
|
|
191
|
-
.join(',')
|
|
192
|
-
}
|
|
193
|
-
return name
|
|
194
|
-
},
|
|
195
194
|
primaryField: function() {
|
|
196
195
|
return this.config && this.config.hasOwnProperty('id')
|
|
197
196
|
? 'id'
|
|
@@ -263,8 +262,14 @@
|
|
|
263
262
|
// 通过valueChange事件发布值变更消息
|
|
264
263
|
this.$emit('valueChange', ary.join(','), newVal)
|
|
265
264
|
setTimeout(() => {
|
|
265
|
+
if (newVal.length > 0) {
|
|
266
|
+
this.calacInputSuffixHeight()
|
|
267
|
+
} else {
|
|
268
|
+
this.inputSuffixHeight = 30
|
|
269
|
+
}
|
|
266
270
|
if (this.$refs.inputEl) {
|
|
267
|
-
this.$
|
|
271
|
+
this.$refs.inputEl.focus()
|
|
272
|
+
this.$refs.inputEl.blur()
|
|
268
273
|
}
|
|
269
274
|
}, 10)
|
|
270
275
|
},
|
|
@@ -345,14 +350,10 @@
|
|
|
345
350
|
this.selectors = tmpAry
|
|
346
351
|
}
|
|
347
352
|
},
|
|
348
|
-
|
|
353
|
+
showDialog() {
|
|
349
354
|
if (!this.inputWriteable) {
|
|
350
355
|
return
|
|
351
356
|
}
|
|
352
|
-
if (this.isDialogShow === false) {
|
|
353
|
-
this.isDialogShow = true
|
|
354
|
-
await this.$nextTick()
|
|
355
|
-
}
|
|
356
357
|
if (this.isMobile) {
|
|
357
358
|
this.$refs.orgSelectorMobileDialog.showDialog()
|
|
358
359
|
} else {
|
|
@@ -368,12 +369,12 @@
|
|
|
368
369
|
},
|
|
369
370
|
// 更新当前输入框的高度来适配已选数据的高度
|
|
370
371
|
calacInputSuffixHeight() {
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
372
|
+
if (!this.$refs.tagSpans) return
|
|
373
|
+
if (this.$refs.tagSpans.offsetHeight) {
|
|
374
|
+
this.inputSuffixHeight = this.$refs.tagSpans.offsetHeight + 5
|
|
375
|
+
} else {
|
|
376
|
+
this.inputSuffixHeight = 30
|
|
377
|
+
}
|
|
377
378
|
},
|
|
378
379
|
},
|
|
379
380
|
}
|
|
@@ -390,10 +391,7 @@
|
|
|
390
391
|
position: relative;
|
|
391
392
|
top: 50%;
|
|
392
393
|
}
|
|
393
|
-
|
|
394
|
-
height: 32px;
|
|
395
|
-
line-height: 32px;
|
|
396
|
-
}
|
|
394
|
+
|
|
397
395
|
.el-input__inner[aria-invalid='true'] {
|
|
398
396
|
border-color: #f56c6c;
|
|
399
397
|
}
|
|
@@ -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,55 +62,50 @@
|
|
|
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
|
-
/>
|
|
99
|
-
</template>
|
|
67
|
+
<post-selector-dialog
|
|
68
|
+
v-if="!isMobile"
|
|
69
|
+
ref="postSelectorDialog"
|
|
70
|
+
v-model="selectors"
|
|
71
|
+
:title="title"
|
|
72
|
+
:append-to-body="appendToBody"
|
|
73
|
+
:data="data"
|
|
74
|
+
:pagination="pagination"
|
|
75
|
+
:select-label="selectLabel"
|
|
76
|
+
:quick-search-props="quickSearchProps"
|
|
77
|
+
:single="single"
|
|
78
|
+
:search-placeholder="searchPlaceholder"
|
|
79
|
+
:primary-field="primaryField"
|
|
80
|
+
:mode="mode"
|
|
81
|
+
@filter-type-change="(type) => $emit('filter-type-change', type)"
|
|
82
|
+
@search="(word) => $emit('search', word)"
|
|
83
|
+
@reset="() => $emit('reset')"
|
|
84
|
+
@row-click="(row) => $emit('row-click', row)"
|
|
85
|
+
@select-data="(data) => $emit('select-data', data)"
|
|
86
|
+
@page-change="(page) => $emit('page-change', page)"
|
|
87
|
+
@size-change="(size) => $emit('size-change', size)"
|
|
88
|
+
@load-org-post="(org) => $emit('load-org-post', org)"
|
|
89
|
+
@load-policy-post="(policy) => $emit('load-policy-post', policy)"
|
|
90
|
+
/>
|
|
91
|
+
<post-selector-mobile-dialog
|
|
92
|
+
v-else
|
|
93
|
+
ref="postSelectorMobileDialog"
|
|
94
|
+
v-model="selectors"
|
|
95
|
+
:title="title"
|
|
96
|
+
:append-to-body="appendToBody"
|
|
97
|
+
:data="data"
|
|
98
|
+
:pagination="pagination"
|
|
99
|
+
:select-label="selectLabel"
|
|
100
|
+
:single="single"
|
|
101
|
+
:search-placeholder="searchPlaceholder"
|
|
102
|
+
:primary-field="primaryField"
|
|
103
|
+
@search="(word) => $emit('search', word)"
|
|
104
|
+
@reset="() => $emit('reset')"
|
|
105
|
+
@row-click="(row) => $emit('row-click', row)"
|
|
106
|
+
@select-data="(data) => $emit('select-data', data)"
|
|
107
|
+
@page-change="(page) => $emit('page-change', page)"
|
|
108
|
+
/>
|
|
100
109
|
</div>
|
|
101
110
|
</template>
|
|
102
111
|
<script>
|
|
@@ -176,23 +185,11 @@
|
|
|
176
185
|
},
|
|
177
186
|
data() {
|
|
178
187
|
return {
|
|
179
|
-
isDialogShow: false,
|
|
180
188
|
inputSuffixHeight: 30,
|
|
181
189
|
selectors: [],
|
|
182
190
|
}
|
|
183
191
|
},
|
|
184
192
|
computed: {
|
|
185
|
-
calcInputValue: function() {
|
|
186
|
-
let name = ''
|
|
187
|
-
if (this.selectors) {
|
|
188
|
-
name = this.selectors
|
|
189
|
-
.map((k) => {
|
|
190
|
-
return k.name
|
|
191
|
-
})
|
|
192
|
-
.join(',')
|
|
193
|
-
}
|
|
194
|
-
return name
|
|
195
|
-
},
|
|
196
193
|
primaryField: function() {
|
|
197
194
|
return this.config && this.config.hasOwnProperty('id')
|
|
198
195
|
? 'id'
|
|
@@ -251,8 +248,14 @@
|
|
|
251
248
|
// 通过valueChange事件发布值变更消息
|
|
252
249
|
this.$emit('valueChange', ary.join(','), newVal)
|
|
253
250
|
setTimeout(() => {
|
|
251
|
+
if (newVal.length > 0) {
|
|
252
|
+
this.calacInputSuffixHeight()
|
|
253
|
+
} else {
|
|
254
|
+
this.inputSuffixHeight = 30
|
|
255
|
+
}
|
|
254
256
|
if (this.$refs.inputEl) {
|
|
255
|
-
this.$
|
|
257
|
+
this.$refs.inputEl.focus()
|
|
258
|
+
this.$refs.inputEl.blur()
|
|
256
259
|
}
|
|
257
260
|
}, 10)
|
|
258
261
|
},
|
|
@@ -318,14 +321,10 @@
|
|
|
318
321
|
this.selectors = tmpAry
|
|
319
322
|
}
|
|
320
323
|
},
|
|
321
|
-
|
|
324
|
+
showDialog() {
|
|
322
325
|
if (!this.inputWriteable) {
|
|
323
326
|
return
|
|
324
327
|
}
|
|
325
|
-
if (this.isDialogShow === false) {
|
|
326
|
-
this.isDialogShow = true
|
|
327
|
-
await this.$nextTick()
|
|
328
|
-
}
|
|
329
328
|
if (this.isMobile) {
|
|
330
329
|
this.$refs.postSelectorMobileDialog.showDialog()
|
|
331
330
|
} else {
|
|
@@ -341,12 +340,12 @@
|
|
|
341
340
|
},
|
|
342
341
|
// 更新当前输入框的高度来适配已选数据的高度
|
|
343
342
|
calacInputSuffixHeight() {
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
343
|
+
if (!this.$refs.tagSpans) return
|
|
344
|
+
if (this.$refs.tagSpans.offsetHeight) {
|
|
345
|
+
this.inputSuffixHeight = this.$refs.tagSpans.offsetHeight + 5
|
|
346
|
+
} else {
|
|
347
|
+
this.inputSuffixHeight = 30
|
|
348
|
+
}
|
|
350
349
|
},
|
|
351
350
|
},
|
|
352
351
|
}
|
|
@@ -357,10 +356,6 @@
|
|
|
357
356
|
margin-left: 1px;
|
|
358
357
|
}
|
|
359
358
|
|
|
360
|
-
.el-input__inner {
|
|
361
|
-
height: 32px;
|
|
362
|
-
line-height: 32px;
|
|
363
|
-
}
|
|
364
359
|
.el-select__tags_readonly {
|
|
365
360
|
position: relative;
|
|
366
361
|
top: 50%;
|