diff --git a/build/config.js b/build/config.js index ec94fe191..d32d2eebc 100644 --- a/build/config.js +++ b/build/config.js @@ -15,6 +15,7 @@ Object.keys(dependencies).forEach(function (key) { externals['element-ui/src/utils/clickoutside'] = 'element-ui/lib/utils/clickoutside'; externals['element-ui/src/utils/popper'] = 'element-ui/lib/utils/popper'; externals['element-ui/src/utils/vue-popper'] = 'element-ui/lib/utils/vue-popper'; +externals['element-ui/src/utils/resize-event'] = 'element-ui/lib/utils/resize-event'; exports.externals = Object.assign({ vue: 'vue' diff --git a/packages/select/src/select.vue b/packages/select/src/select.vue index 0e5664133..b3dc46413 100644 --- a/packages/select/src/select.vue +++ b/packages/select/src/select.vue @@ -71,6 +71,7 @@ import debounce from 'throttle-debounce/debounce'; import Clickoutside from 'element-ui/src/utils/clickoutside'; import { addClass, removeClass, hasClass } from 'wind-dom/src/class'; + import { addResizeListener, removeResizeListener } from 'element-ui/src/utils/resize-event'; export default { mixins: [emitter], @@ -505,6 +506,10 @@ this.options.splice(index, 1); } this.broadcast('option', 'resetIndex'); + }, + + resetInputWidth() { + this.inputWidth = this.$refs.reference.$el.getBoundingClientRect().width; } }, @@ -528,6 +533,7 @@ }, mounted() { + addResizeListener(this.$el, this.resetInputWidth); if (this.remote && this.multiple && Array.isArray(this.value)) { this.selected = this.options.reduce((prev, curr) => { return this.value.indexOf(curr.value) > -1 ? prev.concat(curr) : prev; @@ -541,6 +547,10 @@ this.inputWidth = this.$refs.reference.$el.getBoundingClientRect().width; } }); + }, + + destroyed() { + if (this.resetInputWidth) removeResizeListener(this.$el, this.resetInputWidth); } }; diff --git a/packages/table/src/table.vue b/packages/table/src/table.vue index 33935e826..74ae0a745 100644 --- a/packages/table/src/table.vue +++ b/packages/table/src/table.vue @@ -86,7 +86,7 @@