Commit 4e23e47c9494d1aa2be79d0fee94c0ab7c591770

Authored by 梁灏
1 parent c1963810

update Cascader

src/components/cascader/cascader.vue
@@ -36,7 +36,7 @@ @@ -36,7 +36,7 @@
36 [selectPrefixCls + '-item-disabled']: item.disabled 36 [selectPrefixCls + '-item-disabled']: item.disabled
37 }]" 37 }]"
38 v-for="(item, index) in querySelections" 38 v-for="(item, index) in querySelections"
39 - @click="handleSelectItem(index)">{{ item.label }}</li> 39 + @click="handleSelectItem(index)" v-html="item.display"></li>
40 </ul> 40 </ul>
41 </div> 41 </div>
42 </div> 42 </div>
@@ -179,6 +179,7 @@ @@ -179,6 +179,7 @@
179 selections.push({ 179 selections.push({
180 label: item.__label, 180 label: item.__label,
181 value: item.__value, 181 value: item.__value,
  182 + display: item.__label,
182 item: item, 183 item: item,
183 disabled: !!item.disabled 184 disabled: !!item.disabled
184 }); 185 });
@@ -186,7 +187,10 @@ @@ -186,7 +187,10 @@
186 } 187 }
187 } 188 }
188 getSelections(this.data); 189 getSelections(this.data);
189 - selections = selections.filter(item => item.label.indexOf(this.query) > -1); 190 + selections = selections.filter(item => item.label.indexOf(this.query) > -1).map(item => {
  191 + item.display = item.display.replace(new RegExp(this.query, 'g'), `<span>${this.query}</span>`);
  192 + return item;
  193 + });
190 return selections; 194 return selections;
191 } 195 }
192 }, 196 },
@@ -245,7 +249,6 @@ @@ -245,7 +249,6 @@
245 const item = this.querySelections[index]; 249 const item = this.querySelections[index];
246 250
247 if (item.item.disabled) return false; 251 if (item.item.disabled) return false;
248 - // todo 还有bug,选完,删除后,失焦,不能回到上次选择的  
249 this.query = ''; 252 this.query = '';
250 this.$refs.input.currentValue = ''; 253 this.$refs.input.currentValue = '';
251 const oldVal = JSON.stringify(this.currentValue); 254 const oldVal = JSON.stringify(this.currentValue);
src/styles/components/cascader.less
@@ -71,6 +71,9 @@ @@ -71,6 +71,9 @@
71 } 71 }
72 72
73 .select-item(@cascader-prefix-cls, @cascader-item-prefix-cls); 73 .select-item(@cascader-prefix-cls, @cascader-item-prefix-cls);
  74 + .ivu-select-item span{
  75 + color: @error-color;
  76 + }
74 77
75 &-dropdown{ 78 &-dropdown{
76 padding: 5px 0; 79 padding: 5px 0;