diff --git a/examples/docs/zh-CN/table.md b/examples/docs/zh-CN/table.md
index e17c37858e..41f31eea90 100644
--- a/examples/docs/zh-CN/table.md
+++ b/examples/docs/zh-CN/table.md
@@ -225,8 +225,26 @@
amount2: '4.1',
amount3: 15
}],
+ tableData7: [{
+ date: '2016-05-02',
+ name: '王小虎',
+ address: '上海市普陀区金沙江路 1518 弄'
+ }, {
+ date: '2016-05-04',
+ name: '王小虎',
+ address: '上海市普陀区金沙江路 1517 弄'
+ }, {
+ date: '2016-05-01',
+ name: '王小虎',
+ address: '上海市普陀区金沙江路 1519 弄'
+ }, {
+ date: '2016-05-03',
+ name: '王小虎',
+ address: '上海市普陀区金沙江路 1516 弄'
+ }],
currentRow: null,
- multipleSelection: []
+ multipleSelection: [],
+ search: '',
};
},
@@ -1648,6 +1666,78 @@
```
:::
+### 自定义表头
+
+表头支持自定义。
+
+:::demo 通过设置 [Scoped slot](https://cn.vuejs.org/v2/guide/components-slots.html#%E4%BD%9C%E7%94%A8%E5%9F%9F%E6%8F%92%E6%A7%BD) 来自定义表头。
+```html
+
+
+
+
+
+
+
+
+
+
+
+ Edit
+ Delete
+
+
+
+
+
+
+```
+:::
+
### 表尾合计行
若表格展示的是各类数字,可以在表尾显示各列的合计。
@@ -2111,3 +2201,4 @@
| name | 说明 |
|------|--------|
| — | 自定义列的内容,参数为 { row, column, $index } |
+| header | 自定义表头的内容. 参数为 { column, $index } |
\ No newline at end of file
diff --git a/packages/alert/src/main.vue b/packages/alert/src/main.vue
index 30eb620b24..20a529a7de 100644
--- a/packages/alert/src/main.vue
+++ b/packages/alert/src/main.vue
@@ -8,7 +8,9 @@
>
-
{{ title }}
+
+ {{ title }}
+
{{ description }}
diff --git a/packages/badge/src/main.vue b/packages/badge/src/main.vue
index 1d5cc3cc4f..dfc0e4ba57 100644
--- a/packages/badge/src/main.vue
+++ b/packages/badge/src/main.vue
@@ -6,8 +6,14 @@
v-show="!hidden && (content || content === 0 || isDot)"
v-text="content"
class="el-badge__content"
- :class="{ 'is-fixed': $slots.default, 'is-dot': isDot }"
- v-if="status == ''">
+ v-if="status == ''"
+ :class="[
+ 'el-badge__content--' + type,
+ {
+ 'is-fixed': $slots.default,
+ 'is-dot': isDot
+ }
+ ]">
-1;
+ }
+ }
},
computed: {
diff --git a/packages/cascader/src/main.vue b/packages/cascader/src/main.vue
index 0f855e8d92..a7bc1ef802 100644
--- a/packages/cascader/src/main.vue
+++ b/packages/cascader/src/main.vue
@@ -71,7 +71,7 @@ import emitter from 'setaria-ui/src/mixins/emitter';
import Locale from 'setaria-ui/src/mixins/locale';
import { t } from 'setaria-ui/src/locale';
import debounce from 'throttle-debounce/debounce';
-import { generateId, escapeRegexpString } from 'setaria-ui/src/utils/util';
+import { generateId, escapeRegexpString, isIE, isEdge } from 'setaria-ui/src/utils/util';
const popperMixin = {
props: {
@@ -223,8 +223,7 @@ export default {
return this.disabled || (this.elForm || {}).disabled;
},
readonly() {
- const isIE = !this.$isServer && !isNaN(Number(document.documentMode));
- return !this.filterable || (!isIE && !this.menuVisible);
+ return !this.filterable || (!isIE() && !isEdge() && !this.menuVisible);
}
},
diff --git a/packages/date-picker/src/basic/time-spinner.vue b/packages/date-picker/src/basic/time-spinner.vue
index dd3268163b..76ce418dad 100644
--- a/packages/date-picker/src/basic/time-spinner.vue
+++ b/packages/date-picker/src/basic/time-spinner.vue
@@ -27,9 +27,9 @@
ref="minutes">
{{ ('0' + key).slice(-2) }}
+ :class="{ 'active': key === minutes, disabled: !enabled }">{{ ('0' + key).slice(-2) }}
diff --git a/packages/theme-chalk/src/badge.scss b/packages/theme-chalk/src/badge.scss
index 9cacb3afaf..1669b1b5f6 100644
--- a/packages/theme-chalk/src/badge.scss
+++ b/packages/theme-chalk/src/badge.scss
@@ -37,6 +37,22 @@
right: 0;
border-radius: 50%;
}
+
+ @each $type in (primary, success, warning, info, danger) {
+ @include m($type) {
+ @if $type == primary {
+ background-color: $--color-primary;
+ } @else if $type == success {
+ background-color: $--color-success;
+ } @else if $type == warning {
+ background-color: $--color-warning;
+ } @else if $type == info {
+ background-color: $--color-info;
+ } @else {
+ background-color: $--color-danger;
+ }
+ }
+ }
}
@include e(status-dot) {
diff --git a/packages/theme-chalk/src/select.scss b/packages/theme-chalk/src/select.scss
index d37a337fb6..d11dcdca59 100644
--- a/packages/theme-chalk/src/select.scss
+++ b/packages/theme-chalk/src/select.scss
@@ -12,6 +12,11 @@
display: inline-block;
position: relative;
+ .el-select__tags
+ >span {
+ display: contents;
+ }
+
&:hover {
.el-input__inner {
border-color: $--select-border-color-hover;
diff --git a/packages/upload/src/upload-list.vue b/packages/upload/src/upload-list.vue
index 98d8440a1b..25457d9359 100644
--- a/packages/upload/src/upload-list.vue
+++ b/packages/upload/src/upload-list.vue
@@ -9,9 +9,9 @@
name="el-list"
>
-1;
+};
diff --git a/test/unit/specs/alert.spec.js b/test/unit/specs/alert.spec.js
index 502cca25a3..ee72483b8f 100644
--- a/test/unit/specs/alert.spec.js
+++ b/test/unit/specs/alert.spec.js
@@ -35,6 +35,16 @@ describe('Alert', () => {
.to.equal('Unbowed, Unbent, Unbroken');
});
+ it('title slot', () => {
+ vm = createVue(`
+
+ foo
+
+ `);
+
+ expect(vm.$el.querySelector('.el-alert__title').textContent).to.equal('foo');
+ });
+
it('close', () => {
vm = createVue({
template: `
diff --git a/test/unit/specs/select.spec.js b/test/unit/specs/select.spec.js
index cb19d5803b..b9ec39cd2a 100644
--- a/test/unit/specs/select.spec.js
+++ b/test/unit/specs/select.spec.js
@@ -285,9 +285,9 @@ describe('Select', () => {
vm.value = '选项1';
select.inputHovering = true;
setTimeout(() => {
- const icon = vm.$el.querySelector('.el-input__icon');
- expect(icon.classList.contains('el-icon-circle-close')).to.true;
- icon.click();
+ const iconClear = vm.$el.querySelector('.el-input__icon.el-icon-circle-close');
+ expect(iconClear).to.exist;
+ iconClear.click();
expect(vm.value).to.equal('');
done();
}, 100);
diff --git a/test/unit/specs/time-picker.spec.js b/test/unit/specs/time-picker.spec.js
index f4a4b56876..27248f7176 100644
--- a/test/unit/specs/time-picker.spec.js
+++ b/test/unit/specs/time-picker.spec.js
@@ -202,7 +202,7 @@ describe('TimePicker', () => {
it('selectableRange', done => {
vm = createTest(TimePicker, {
pickerOptions: {
- selectableRange: '18:30:00 - 20:30:00'
+ selectableRange: ['17:30:00 - 18:30:00', '18:50:00 - 20:30:00', '21:00:00 - 22:00:00']
}
}, true);
const input = vm.$el.querySelector('input');
@@ -218,8 +218,18 @@ describe('TimePicker', () => {
.map(node => Number(node.textContent));
hoursEl.querySelectorAll('.disabled')[0].click();
- expect(disabledHours).to.not.include.members([18, 19, 20]);
- done();
+ expect(disabledHours).to.not.include.members([17, 18, 19, 20, 21, 22]);
+
+ const minutesEl = list[1];
+ hoursEl.querySelectorAll('.el-time-spinner__item')[18].click();
+ setTimeout(_ => {
+ const disabledMinutes = [].slice
+ .call(minutesEl.querySelectorAll('.disabled'))
+ .map(node => Number(node.textContent));
+ expect(disabledMinutes.every(t => t > 30 && t < 50)).to.equal(true);
+ expect(disabledMinutes.length).to.equal(19);
+ done();
+ }, DELAY);
}, DELAY);
});