Commit 952ddb518e702ec051eff89c024acb045fe7d97e

Authored by 梁灏
1 parent 29264399

update Cascader

src/components/cascader/cascader.vue
... ... @@ -29,7 +29,7 @@
29 29 :disabled="disabled"
30 30 :change-on-select="changeOnSelect"
31 31 :trigger="trigger"></Caspanel>
32   - <div :class="[prefixCls + '-dropdown']" v-show="filterable && query !== ''">
  32 + <div :class="[prefixCls + '-dropdown']" v-show="filterable && query !== '' && querySelections.length">
33 33 <ul :class="[selectPrefixCls + '-dropdown-list']">
34 34 <li
35 35 :class="[selectPrefixCls + '-item', {
... ... @@ -39,6 +39,7 @@
39 39 @click="handleSelectItem(index)" v-html="item.display"></li>
40 40 </ul>
41 41 </div>
  42 + <ul v-show="filterable && query !== '' && !querySelections.length" :class="[prefixCls + '-not-found-tip']"><li>{{ localeNotFoundText }}</li></ul>
42 43 </div>
43 44 </Drop>
44 45 </transition>
... ... @@ -113,6 +114,9 @@
113 114 filterable: {
114 115 type: Boolean,
115 116 default: false
  117 + },
  118 + notFoundText: {
  119 + type: String
116 120 }
117 121 },
118 122 data () {
... ... @@ -135,7 +139,8 @@
135 139 [`${prefixCls}-show-clear`]: this.showCloseIcon,
136 140 [`${prefixCls}-size-${this.size}`]: !!this.size,
137 141 [`${prefixCls}-visible`]: this.visible,
138   - [`${prefixCls}-disabled`]: this.disabled
  142 + [`${prefixCls}-disabled`]: this.disabled,
  143 + [`${prefixCls}-not-found`]: this.filterable && this.query !== '' && !this.querySelections.length
139 144 }
140 145 ];
141 146 },
... ... @@ -163,6 +168,13 @@
163 168 inputPlaceholder () {
164 169 return this.filterable && this.currentValue.length ? null : this.localePlaceholder;
165 170 },
  171 + localeNotFoundText () {
  172 + if (this.notFoundText === undefined) {
  173 + return this.t('i.select.noMatch');
  174 + } else {
  175 + return this.notFoundText;
  176 + }
  177 + },
166 178 querySelections () {
167 179 let selections = [];
168 180 function getSelections (arr, label, value) {
... ...
src/styles/components/cascader.less
... ... @@ -79,6 +79,15 @@
79 79 padding: 5px 0;
80 80 }
81 81  
  82 + &-not-found-tip{
  83 + padding: 5px 0;
  84 + text-align: center;
  85 + color: @btn-disable-color;
  86 + }
  87 + &-not-found .@{select-dropdown-prefix-cls} {
  88 + width: 100%;
  89 + }
  90 +
82 91 &-menu{
83 92 display: inline-block;
84 93 min-width: 100px;
... ...