eoss-ui 0.5.64 → 0.5.66
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/CHANGELOG.md +929 -0
- package/lib/button-group.js +209 -44
- package/lib/button.js +65 -37
- package/lib/calendar.js +18 -6
- package/lib/data-table.js +116 -31
- package/lib/eoss-ui.common.js +1143 -719
- package/lib/form.js +22 -7
- package/lib/index.js +1 -1
- package/lib/login.js +11 -2
- package/lib/main.js +183 -121
- package/lib/selector.js +469 -429
- package/lib/theme-chalk/base.css +1 -1
- package/lib/theme-chalk/button-group.css +1 -1
- package/lib/theme-chalk/button.css +1 -1
- package/lib/theme-chalk/calendar.css +1 -1
- package/lib/theme-chalk/index.css +1 -1
- package/lib/theme-chalk/main.css +1 -1
- package/lib/theme-chalk/menu.css +1 -1
- package/lib/theme-chalk/sizer.css +1 -1
- package/lib/theme-chalk/tree.css +1 -1
- package/lib/theme-chalk/upload.css +1 -1
- package/lib/toolbar.js +6 -0
- package/lib/upload.js +9 -7
- package/package.json +2 -2
- package/packages/button/src/main.vue +96 -56
- package/packages/button-group/src/main.vue +72 -8
- package/packages/calendar/src/main.vue +16 -5
- package/packages/data-table/src/children.vue +3 -1
- package/packages/data-table/src/column.vue +1 -1
- package/packages/data-table/src/main.vue +55 -10
- package/packages/form/src/main.vue +19 -5
- package/packages/login/src/main.vue +8 -0
- package/packages/main/src/main.vue +141 -96
- package/packages/selector/src/main.vue +31 -5
- package/packages/theme-chalk/lib/base.css +1 -1
- package/packages/theme-chalk/lib/button-group.css +1 -1
- package/packages/theme-chalk/lib/button.css +1 -1
- package/packages/theme-chalk/lib/calendar.css +1 -1
- package/packages/theme-chalk/lib/index.css +1 -1
- package/packages/theme-chalk/lib/main.css +1 -1
- package/packages/theme-chalk/lib/menu.css +1 -1
- package/packages/theme-chalk/lib/sizer.css +1 -1
- package/packages/theme-chalk/lib/tree.css +1 -1
- package/packages/theme-chalk/lib/upload.css +1 -1
- package/packages/theme-chalk/src/base.scss +3 -0
- package/packages/theme-chalk/src/button-group.scss +149 -0
- package/packages/theme-chalk/src/button.scss +6 -0
- package/packages/theme-chalk/src/calendar.scss +3 -0
- package/packages/theme-chalk/src/tree.scss +1 -0
- package/packages/toolbar/src/main.vue +6 -0
- package/packages/upload/src/main.vue +4 -2
- package/src/index.js +1 -1
package/lib/upload.js
CHANGED
|
@@ -3828,8 +3828,8 @@ module.exports = require("js-base64");
|
|
|
3828
3828
|
// ESM COMPAT FLAG
|
|
3829
3829
|
__webpack_require__.r(__webpack_exports__);
|
|
3830
3830
|
|
|
3831
|
-
// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/upload/src/main.vue?vue&type=template&id=
|
|
3832
|
-
var
|
|
3831
|
+
// CONCATENATED MODULE: ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib??vue-loader-options!./packages/upload/src/main.vue?vue&type=template&id=33bc9a52&
|
|
3832
|
+
var mainvue_type_template_id_33bc9a52_render = function () {
|
|
3833
3833
|
var _vm = this
|
|
3834
3834
|
var _h = _vm.$createElement
|
|
3835
3835
|
var _c = _vm._self._c || _h
|
|
@@ -3843,7 +3843,7 @@ var mainvue_type_template_id_789e2154_render = function () {
|
|
|
3843
3843
|
class: [
|
|
3844
3844
|
{
|
|
3845
3845
|
"es-avatar-uploader": _vm.portrait,
|
|
3846
|
-
"es-upload-readonly": _vm.isReadonly,
|
|
3846
|
+
"es-upload-readonly": _vm.isReadonly && !_vm.downloads,
|
|
3847
3847
|
},
|
|
3848
3848
|
"es-upload-" + _vm.listType,
|
|
3849
3849
|
],
|
|
@@ -4210,10 +4210,10 @@ var mainvue_type_template_id_789e2154_render = function () {
|
|
|
4210
4210
|
: _vm._e()
|
|
4211
4211
|
}
|
|
4212
4212
|
var staticRenderFns = []
|
|
4213
|
-
|
|
4213
|
+
mainvue_type_template_id_33bc9a52_render._withStripped = true
|
|
4214
4214
|
|
|
4215
4215
|
|
|
4216
|
-
// CONCATENATED MODULE: ./packages/upload/src/main.vue?vue&type=template&id=
|
|
4216
|
+
// CONCATENATED MODULE: ./packages/upload/src/main.vue?vue&type=template&id=33bc9a52&
|
|
4217
4217
|
|
|
4218
4218
|
// EXTERNAL MODULE: ./src/config/api.js
|
|
4219
4219
|
var api = __webpack_require__(1);
|
|
@@ -4960,7 +4960,9 @@ var _props;
|
|
|
4960
4960
|
}
|
|
4961
4961
|
});
|
|
4962
4962
|
_this3.filesTotalSize = filesTotalSize;
|
|
4963
|
-
|
|
4963
|
+
if (_this3.lists.length) {
|
|
4964
|
+
_this3.$emit('input', _this3.lists);
|
|
4965
|
+
}
|
|
4964
4966
|
}
|
|
4965
4967
|
} else {
|
|
4966
4968
|
var msg = res.msg || '系统错误,请联系管理员!';
|
|
@@ -5313,7 +5315,7 @@ var componentNormalizer = __webpack_require__(3);
|
|
|
5313
5315
|
|
|
5314
5316
|
var component = Object(componentNormalizer["a" /* default */])(
|
|
5315
5317
|
src_mainvue_type_script_lang_js_,
|
|
5316
|
-
|
|
5318
|
+
mainvue_type_template_id_33bc9a52_render,
|
|
5317
5319
|
staticRenderFns,
|
|
5318
5320
|
false,
|
|
5319
5321
|
null,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "eoss-ui",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.66",
|
|
4
4
|
"description": "eoss内部业务组件",
|
|
5
5
|
"main": "lib/eoss-ui.common.js",
|
|
6
6
|
"files": [
|
|
@@ -97,7 +97,7 @@
|
|
|
97
97
|
"cp-cli": "^1.0.2",
|
|
98
98
|
"cross-env": "^3.1.3",
|
|
99
99
|
"css-loader": "^2.1.0",
|
|
100
|
-
"eoss-element": "^0.2.
|
|
100
|
+
"eoss-element": "^0.2.96",
|
|
101
101
|
"es6-promise": "^4.0.5",
|
|
102
102
|
"eslint": "4.18.2",
|
|
103
103
|
"eslint-config-elemefe": "0.1.1",
|
|
@@ -47,7 +47,9 @@ export default {
|
|
|
47
47
|
text: String,
|
|
48
48
|
onClick: Function,
|
|
49
49
|
badge: [Object, Number],
|
|
50
|
-
float: String
|
|
50
|
+
float: String,
|
|
51
|
+
selector: Boolean,
|
|
52
|
+
upload: Boolean
|
|
51
53
|
},
|
|
52
54
|
computed: {
|
|
53
55
|
_type() {
|
|
@@ -260,68 +262,90 @@ export default {
|
|
|
260
262
|
}
|
|
261
263
|
let tag = 'el-button';
|
|
262
264
|
let clas = ['es-button'];
|
|
263
|
-
let props = {
|
|
265
|
+
let props = {};
|
|
264
266
|
let attrs = {};
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
}
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
267
|
+
let listeners = {};
|
|
268
|
+
let config = {};
|
|
269
|
+
if (this.selector) {
|
|
270
|
+
tag = 'es-selector';
|
|
271
|
+
props = {
|
|
272
|
+
reset: true,
|
|
273
|
+
...this.$attrs,
|
|
274
|
+
button: { type: this._type, size: this.size }
|
|
275
|
+
};
|
|
276
|
+
listeners = this.$listeners;
|
|
277
|
+
} else if (this.upload) {
|
|
278
|
+
tag = 'es-upload';
|
|
279
|
+
props = { ...this.$attrs, showFileList: false };
|
|
280
|
+
listeners = this.$listeners;
|
|
281
|
+
config = {
|
|
282
|
+
type: this._type,
|
|
283
|
+
size: this.size
|
|
284
|
+
};
|
|
285
|
+
} else {
|
|
286
|
+
props = { ...this.$attrs, type: this._type, size: this.size };
|
|
287
|
+
listeners = { ...this.$listeners, click: this.handleClick };
|
|
288
|
+
if (this.link && !this.open) {
|
|
289
|
+
const link = this.param
|
|
290
|
+
? util.urlJoinParams({ url: this.link, param: this.param })
|
|
291
|
+
: this.link;
|
|
292
|
+
attrs = { href: link };
|
|
293
|
+
tag = 'a';
|
|
294
|
+
clas = clas.concat([
|
|
295
|
+
'el-button',
|
|
296
|
+
this._type ? `el-button--${this._type}` : 'el-button--default',
|
|
297
|
+
this.size ? `el-button--${this.size}` : '',
|
|
298
|
+
this.float ? `es-button--${this.float}` : ''
|
|
299
|
+
]);
|
|
290
300
|
}
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
{
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
301
|
+
if (this.badge) {
|
|
302
|
+
let config = {};
|
|
303
|
+
if (typeof this.badge === 'number') {
|
|
304
|
+
config = { class: 'es-button-badge', props: { value: this.badge } };
|
|
305
|
+
} else {
|
|
306
|
+
let { value, max, isDot, hidden, type } = this.badge;
|
|
307
|
+
config = {
|
|
308
|
+
class: this.badge.class
|
|
309
|
+
? this.badge.class + ' es-button-badge'
|
|
310
|
+
: 'es-button-badge',
|
|
311
|
+
props: { value, max, isDot, hidden, type }
|
|
312
|
+
};
|
|
313
|
+
}
|
|
314
|
+
return h('el-badge', config, [
|
|
315
|
+
h(
|
|
316
|
+
tag,
|
|
317
|
+
{
|
|
318
|
+
class: clas,
|
|
319
|
+
props: { ...this.$attrs, ...props },
|
|
320
|
+
attrs: attrs,
|
|
321
|
+
on: { ...this.$listeners, click: this.handleClick },
|
|
322
|
+
directives: [
|
|
323
|
+
{
|
|
324
|
+
name: 'show',
|
|
325
|
+
value: !this.hide
|
|
326
|
+
}
|
|
314
327
|
]
|
|
315
|
-
|
|
316
|
-
|
|
328
|
+
},
|
|
329
|
+
this.iconPlacement === 'start'
|
|
330
|
+
? [
|
|
331
|
+
this.icon ? h('i', { class: this.icon }) : '',
|
|
332
|
+
this.$slots.default || this.text
|
|
333
|
+
]
|
|
334
|
+
: [
|
|
335
|
+
this.$slots.default || this.text,
|
|
336
|
+
this.icon ? h('i', { class: this.icon }) : ''
|
|
337
|
+
]
|
|
338
|
+
)
|
|
339
|
+
]);
|
|
340
|
+
}
|
|
317
341
|
}
|
|
318
342
|
return h(
|
|
319
343
|
tag,
|
|
320
344
|
{
|
|
321
345
|
class: clas,
|
|
322
|
-
props:
|
|
346
|
+
props: props,
|
|
323
347
|
attrs: attrs,
|
|
324
|
-
on:
|
|
348
|
+
on: listeners,
|
|
325
349
|
directives: [
|
|
326
350
|
{
|
|
327
351
|
name: 'show',
|
|
@@ -332,10 +356,26 @@ export default {
|
|
|
332
356
|
this.iconPlacement === 'start'
|
|
333
357
|
? [
|
|
334
358
|
this.icon ? h('i', { class: this.icon }) : '',
|
|
335
|
-
this
|
|
359
|
+
this.upload
|
|
360
|
+
? h(
|
|
361
|
+
'el-button',
|
|
362
|
+
{
|
|
363
|
+
props: config
|
|
364
|
+
},
|
|
365
|
+
[this.$slots.default || this.text]
|
|
366
|
+
)
|
|
367
|
+
: this.$slots.default || this.text
|
|
336
368
|
]
|
|
337
369
|
: [
|
|
338
|
-
this
|
|
370
|
+
this.upload
|
|
371
|
+
? h(
|
|
372
|
+
'el-button',
|
|
373
|
+
{
|
|
374
|
+
props: config
|
|
375
|
+
},
|
|
376
|
+
[this.$slots.default || this.text]
|
|
377
|
+
)
|
|
378
|
+
: this.$slots.default || this.text,
|
|
339
379
|
this.icon ? h('i', { class: this.icon }) : ''
|
|
340
380
|
]
|
|
341
381
|
);
|
|
@@ -7,20 +7,31 @@
|
|
|
7
7
|
v-if="item.upload || (item.code && item.ownId)"
|
|
8
8
|
class="el-button"
|
|
9
9
|
v-bind="{
|
|
10
|
-
...
|
|
10
|
+
...exclAttribute({
|
|
11
|
+
data: item,
|
|
12
|
+
attrs: ['events']
|
|
13
|
+
}),
|
|
14
|
+
...parseProps(),
|
|
11
15
|
method: 'post',
|
|
12
16
|
btnSize: size,
|
|
13
17
|
showFileList: false,
|
|
14
18
|
selectType: item.type ? item.type : ''
|
|
15
19
|
}"
|
|
20
|
+
v-on="item.events"
|
|
16
21
|
></es-upload>
|
|
17
22
|
<es-button
|
|
18
23
|
v-else
|
|
19
24
|
:stop="stop"
|
|
20
|
-
v-bind="
|
|
25
|
+
v-bind="
|
|
26
|
+
exclAttribute({
|
|
27
|
+
data: item,
|
|
28
|
+
attrs: ['events']
|
|
29
|
+
})
|
|
30
|
+
"
|
|
21
31
|
:key="index"
|
|
22
32
|
:size="size"
|
|
23
33
|
:type="item.type"
|
|
34
|
+
v-on="item.events"
|
|
24
35
|
@click="handleClick({ ...data, handle: item })"
|
|
25
36
|
>
|
|
26
37
|
{{
|
|
@@ -34,6 +45,7 @@
|
|
|
34
45
|
</template>
|
|
35
46
|
<el-dropdown
|
|
36
47
|
v-if="other.length > 0"
|
|
48
|
+
ref="dropdown"
|
|
37
49
|
@command="handleCommand"
|
|
38
50
|
@visible-change="handleChange"
|
|
39
51
|
:trigger="trigger"
|
|
@@ -55,12 +67,53 @@
|
|
|
55
67
|
v-for="(item, index) in other"
|
|
56
68
|
:key="index"
|
|
57
69
|
:command="item"
|
|
70
|
+
:class="{ 'es-dropdown-padding': item.upload || item.selector }"
|
|
58
71
|
>
|
|
59
|
-
<
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
72
|
+
<es-upload
|
|
73
|
+
v-if="item.upload || (item.code && item.ownId)"
|
|
74
|
+
class="es-dropdown-upload"
|
|
75
|
+
v-bind="{
|
|
76
|
+
...exclAttribute({
|
|
77
|
+
data: item,
|
|
78
|
+
attrs: ['events']
|
|
79
|
+
}),
|
|
80
|
+
...parseProps(),
|
|
81
|
+
method: 'post',
|
|
82
|
+
showFileList: false,
|
|
83
|
+
selectType: 'text'
|
|
84
|
+
}"
|
|
85
|
+
v-on="item.events"
|
|
86
|
+
></es-upload>
|
|
87
|
+
<es-selector
|
|
88
|
+
v-else-if="item.selector"
|
|
89
|
+
class="es-dropdown-selector"
|
|
90
|
+
v-bind="{
|
|
91
|
+
reset: true,
|
|
92
|
+
...exclAttribute({
|
|
93
|
+
data: item,
|
|
94
|
+
attrs: ['events', 'type', 'value']
|
|
95
|
+
}),
|
|
96
|
+
businessData: data
|
|
97
|
+
}"
|
|
98
|
+
v-on="item.events"
|
|
99
|
+
:button="{ size: 'medium', type: 'text' }"
|
|
100
|
+
>
|
|
101
|
+
<i :class="item.icon" v-if="item.icon"></i
|
|
102
|
+
>{{
|
|
103
|
+
item.template
|
|
104
|
+
? item.template({ ...data, config: item })
|
|
105
|
+
: item.text
|
|
106
|
+
}}
|
|
107
|
+
</es-selector>
|
|
108
|
+
<template v-else>
|
|
109
|
+
<i :class="item.icon" v-if="item.icon"></i
|
|
110
|
+
>{{
|
|
111
|
+
item.template
|
|
112
|
+
? item.template({ ...data, config: item })
|
|
113
|
+
: item.text
|
|
114
|
+
}}
|
|
115
|
+
</template>
|
|
116
|
+
</el-dropdown-item>
|
|
64
117
|
</el-dropdown-menu>
|
|
65
118
|
</el-dropdown>
|
|
66
119
|
</el-button-group>
|
|
@@ -97,7 +150,8 @@ export default {
|
|
|
97
150
|
placement: {
|
|
98
151
|
type: String,
|
|
99
152
|
default: 'bottom'
|
|
100
|
-
}
|
|
153
|
+
},
|
|
154
|
+
parseData: Function
|
|
101
155
|
},
|
|
102
156
|
computed: {
|
|
103
157
|
btns() {
|
|
@@ -126,6 +180,9 @@ export default {
|
|
|
126
180
|
this.resetWidth();
|
|
127
181
|
},
|
|
128
182
|
methods: {
|
|
183
|
+
exclAttribute({ data, attrs }) {
|
|
184
|
+
return util.exclAttribute({ data, attrs });
|
|
185
|
+
},
|
|
129
186
|
getBtns() {
|
|
130
187
|
let useCaseCodes = util.getStorage('useCaseCodes');
|
|
131
188
|
let keyword =
|
|
@@ -166,6 +223,10 @@ export default {
|
|
|
166
223
|
this.$emit('handle-click', obj);
|
|
167
224
|
},
|
|
168
225
|
handleCommand(res) {
|
|
226
|
+
if (res.upload || res.selector) {
|
|
227
|
+
this.$refs.dropdown.hide();
|
|
228
|
+
return false;
|
|
229
|
+
}
|
|
169
230
|
this.$emit('handleClick', { ...this.data, handle: res });
|
|
170
231
|
this.$emit('handle-click', { ...this.data, handle: res });
|
|
171
232
|
},
|
|
@@ -183,6 +244,9 @@ export default {
|
|
|
183
244
|
this.$emit('input', w + 'px');
|
|
184
245
|
}
|
|
185
246
|
});
|
|
247
|
+
},
|
|
248
|
+
parseProps() {
|
|
249
|
+
return this.parseData && this.data ? this.parseData(this.data) : {};
|
|
186
250
|
}
|
|
187
251
|
}
|
|
188
252
|
};
|
|
@@ -22,7 +22,7 @@
|
|
|
22
22
|
{{ item }}
|
|
23
23
|
</li>
|
|
24
24
|
</ul>
|
|
25
|
-
<ul class="es-calendar-days">
|
|
25
|
+
<ul class="es-calendar-days" :style="{ height: _height }">
|
|
26
26
|
<li
|
|
27
27
|
class="es-day"
|
|
28
28
|
@click="handleClick(item)"
|
|
@@ -34,7 +34,8 @@
|
|
|
34
34
|
:class="{
|
|
35
35
|
'es-disabled-day': item.type == 0,
|
|
36
36
|
'es-today': isSelect(item, today) && mark,
|
|
37
|
-
'es-select': isSelect(item, select)
|
|
37
|
+
'es-select': isSelect(item, select),
|
|
38
|
+
'es-disabled': item.disabled
|
|
38
39
|
}"
|
|
39
40
|
>
|
|
40
41
|
{{ item.date }}
|
|
@@ -78,7 +79,9 @@ export default {
|
|
|
78
79
|
type: Boolean,
|
|
79
80
|
default: true
|
|
80
81
|
},
|
|
81
|
-
mark: Boolean
|
|
82
|
+
mark: Boolean,
|
|
83
|
+
disabled: Boolean,
|
|
84
|
+
height: String
|
|
82
85
|
},
|
|
83
86
|
watch: {
|
|
84
87
|
date: {
|
|
@@ -115,6 +118,9 @@ export default {
|
|
|
115
118
|
}
|
|
116
119
|
}
|
|
117
120
|
});
|
|
121
|
+
},
|
|
122
|
+
_height() {
|
|
123
|
+
return this.height && this.all ? parseInt(this.height) + 'px' : '';
|
|
118
124
|
}
|
|
119
125
|
},
|
|
120
126
|
data() {
|
|
@@ -191,6 +197,9 @@ export default {
|
|
|
191
197
|
return target == `${year}/${month}/${date}`;
|
|
192
198
|
},
|
|
193
199
|
handleClick(res) {
|
|
200
|
+
if (res.disabled) {
|
|
201
|
+
return false;
|
|
202
|
+
}
|
|
194
203
|
let { year, month, date } = res;
|
|
195
204
|
this.selectDate = date;
|
|
196
205
|
this.select = `${year}/${month}/${date}`;
|
|
@@ -322,7 +331,8 @@ export default {
|
|
|
322
331
|
date: i,
|
|
323
332
|
type: 0,
|
|
324
333
|
year: month == 0 ? year - 1 : year,
|
|
325
|
-
month: month == 0 ? 12 : month
|
|
334
|
+
month: month == 0 ? 12 : month,
|
|
335
|
+
disabled: this.disabled
|
|
326
336
|
});
|
|
327
337
|
}
|
|
328
338
|
}
|
|
@@ -343,7 +353,8 @@ export default {
|
|
|
343
353
|
date: i,
|
|
344
354
|
type: 0,
|
|
345
355
|
year: month == 11 ? year + 1 : year,
|
|
346
|
-
month: month == 11 ? 1 : month + 2
|
|
356
|
+
month: month == 11 ? 1 : month + 2,
|
|
357
|
+
disabled: this.disabled
|
|
347
358
|
});
|
|
348
359
|
}
|
|
349
360
|
}
|
|
@@ -8,7 +8,8 @@
|
|
|
8
8
|
v-bind="{
|
|
9
9
|
...$attrs,
|
|
10
10
|
...item,
|
|
11
|
-
indexs: index
|
|
11
|
+
indexs: index,
|
|
12
|
+
...(dragSort ? { ...item, fixed: false } : item)
|
|
12
13
|
}"
|
|
13
14
|
v-on="$listeners"
|
|
14
15
|
></children
|
|
@@ -24,6 +25,7 @@ export default {
|
|
|
24
25
|
[column.name]: column
|
|
25
26
|
},
|
|
26
27
|
props: {
|
|
28
|
+
dragSort: Boolean,
|
|
27
29
|
children: Array,
|
|
28
30
|
childHead: Array
|
|
29
31
|
},
|
|
@@ -479,7 +479,7 @@ export default {
|
|
|
479
479
|
width: [Number, String],
|
|
480
480
|
minWidth: [Number, String],
|
|
481
481
|
hide: Boolean,
|
|
482
|
-
showOverflowTooltip: Boolean,
|
|
482
|
+
showOverflowTooltip: [Boolean, Number],
|
|
483
483
|
render: [Function, String],
|
|
484
484
|
contents: Array,
|
|
485
485
|
events: [Array, Object],
|
|
@@ -43,7 +43,6 @@
|
|
|
43
43
|
ref="oaTable"
|
|
44
44
|
v-bind="{
|
|
45
45
|
...$attrs,
|
|
46
|
-
data: datas,
|
|
47
46
|
emptyText: emptyText,
|
|
48
47
|
showSummary: showTotal,
|
|
49
48
|
sumText: sumText || totalText,
|
|
@@ -54,28 +53,46 @@
|
|
|
54
53
|
: undefined,
|
|
55
54
|
border: _border,
|
|
56
55
|
infiniteScroll: getTableData,
|
|
57
|
-
infiniteScrollDisabled: infiniteDisabled
|
|
56
|
+
infiniteScrollDisabled: infiniteDisabled,
|
|
57
|
+
dragSort: dragSort,
|
|
58
|
+
dragSortClass: dragSortIcon
|
|
58
59
|
}"
|
|
60
|
+
:data.sync="datas"
|
|
59
61
|
v-on="{
|
|
60
62
|
...$listeners,
|
|
61
63
|
'row-click': rowClick,
|
|
62
64
|
'selection-change': selectionChange,
|
|
63
65
|
'filter-column': handleFilterColumn,
|
|
64
|
-
'sort-change': handleSortChange
|
|
66
|
+
'sort-change': handleSortChange,
|
|
67
|
+
'update-drag-sort': handleUpdateDragSort
|
|
65
68
|
}"
|
|
66
69
|
:class="
|
|
67
70
|
'es-table' +
|
|
68
71
|
(theadBorder && border != 'none' ? ' es-thead-border' : '')
|
|
69
72
|
"
|
|
70
73
|
>
|
|
74
|
+
<!-- <el-table-column v-if="dragSort" width="32" fixed>
|
|
75
|
+
<template slot-scope="scope">
|
|
76
|
+
<es-icon :contents="dragSortIcon"></es-icon>
|
|
77
|
+
</template>
|
|
78
|
+
</el-table-column> -->
|
|
71
79
|
<slot name="prepend"></slot>
|
|
72
80
|
<slot></slot>
|
|
73
81
|
<template v-for="(item, index) in theads">
|
|
74
82
|
<template v-if="item.hide !== true">
|
|
75
83
|
<el-table-column
|
|
76
|
-
v-if="item.type === '
|
|
84
|
+
v-if="item.type === 'sort'"
|
|
85
|
+
width="32"
|
|
86
|
+
:key="index"
|
|
87
|
+
>
|
|
88
|
+
<template slot-scope="scope">
|
|
89
|
+
<es-icon class="es-move" :contents="dragSortIcon"></es-icon>
|
|
90
|
+
</template>
|
|
91
|
+
</el-table-column>
|
|
92
|
+
<el-table-column
|
|
93
|
+
v-else-if="item.type === 'index' || item.type === 'selection'"
|
|
77
94
|
:key="index"
|
|
78
|
-
v-bind="item"
|
|
95
|
+
v-bind="dragSort ? { ...item, fixed: false } : item"
|
|
79
96
|
></el-table-column>
|
|
80
97
|
<children
|
|
81
98
|
v-else
|
|
@@ -86,7 +103,8 @@
|
|
|
86
103
|
form: form,
|
|
87
104
|
readonly: readonly,
|
|
88
105
|
optionData: optionDatas,
|
|
89
|
-
|
|
106
|
+
dragSort: dragSort,
|
|
107
|
+
...(dragSort ? { ...item, fixed: false } : item)
|
|
90
108
|
}"
|
|
91
109
|
v-on="{
|
|
92
110
|
handleClick: handleClick,
|
|
@@ -402,6 +420,11 @@ export default {
|
|
|
402
420
|
default() {
|
|
403
421
|
return {};
|
|
404
422
|
}
|
|
423
|
+
},
|
|
424
|
+
dragSort: Boolean,
|
|
425
|
+
dragSortIcon: {
|
|
426
|
+
type: String,
|
|
427
|
+
default: 'es-icon-caidan'
|
|
405
428
|
}
|
|
406
429
|
},
|
|
407
430
|
data() {
|
|
@@ -430,7 +453,8 @@ export default {
|
|
|
430
453
|
icon: true,
|
|
431
454
|
show: true,
|
|
432
455
|
sysCodes: [],
|
|
433
|
-
infiniteDisabled: this.infiniteScroll
|
|
456
|
+
infiniteDisabled: this.infiniteScroll,
|
|
457
|
+
isUpadeData: false
|
|
434
458
|
};
|
|
435
459
|
},
|
|
436
460
|
computed: {
|
|
@@ -450,7 +474,23 @@ export default {
|
|
|
450
474
|
theads: {
|
|
451
475
|
get() {
|
|
452
476
|
let thead = [];
|
|
453
|
-
|
|
477
|
+
let types = this.theadData
|
|
478
|
+
.filter((item) => {
|
|
479
|
+
return (
|
|
480
|
+
item.type == 'selection' ||
|
|
481
|
+
item.type == 'index' ||
|
|
482
|
+
item.type == 'sort'
|
|
483
|
+
);
|
|
484
|
+
})
|
|
485
|
+
.map((item) => {
|
|
486
|
+
return item.type;
|
|
487
|
+
});
|
|
488
|
+
if (this.dragSort && !types.includes('sort')) {
|
|
489
|
+
thead.push({
|
|
490
|
+
type: 'sort'
|
|
491
|
+
});
|
|
492
|
+
}
|
|
493
|
+
if (this.checkbox && !types.includes('selection')) {
|
|
454
494
|
thead.push({
|
|
455
495
|
type: 'selection',
|
|
456
496
|
width: '55',
|
|
@@ -460,7 +500,7 @@ export default {
|
|
|
460
500
|
reserveSelection: this.reserveSelection
|
|
461
501
|
});
|
|
462
502
|
}
|
|
463
|
-
if (this.numbers) {
|
|
503
|
+
if (this.numbers && !types.includes('index')) {
|
|
464
504
|
let index = 1;
|
|
465
505
|
if (this.infiniteScroll) {
|
|
466
506
|
index = typeof this.index == 'boolean' ? 1 : this.index;
|
|
@@ -476,7 +516,8 @@ export default {
|
|
|
476
516
|
width: '70',
|
|
477
517
|
align: 'center',
|
|
478
518
|
fixed: 'left',
|
|
479
|
-
index: index
|
|
519
|
+
index: index,
|
|
520
|
+
filterIcon: this.filter ? 'es-icon-biao' : undefined
|
|
480
521
|
});
|
|
481
522
|
}
|
|
482
523
|
if (this.theadData.length) {
|
|
@@ -512,6 +553,7 @@ export default {
|
|
|
512
553
|
return this.data;
|
|
513
554
|
},
|
|
514
555
|
set(val) {
|
|
556
|
+
this.$emit('update:data', val);
|
|
515
557
|
return val;
|
|
516
558
|
}
|
|
517
559
|
},
|
|
@@ -1481,6 +1523,9 @@ export default {
|
|
|
1481
1523
|
}
|
|
1482
1524
|
this.$emit('sort-change', res);
|
|
1483
1525
|
},
|
|
1526
|
+
handleUpdateDragSort(data, event) {
|
|
1527
|
+
this.$emit('update-drag-sort', data, event);
|
|
1528
|
+
},
|
|
1484
1529
|
mergeThead(res) {
|
|
1485
1530
|
this.theadData = res;
|
|
1486
1531
|
this.icon = true;
|