Commit 3b005863389ce544cf09b2ed428d1e30284f6d10

Authored by 梁灏
1 parent ba3e34e0

update Cascader

update Cascader
src/components/cascader/cascader.vue
... ... @@ -141,6 +141,7 @@
141 141 emitValue (val, oldVal) {
142 142 if (JSON.stringify(val) !== oldVal) {
143 143 this.$emit('on-change', this.value, JSON.parse(JSON.stringify(this.selected)));
  144 + this.$dispatch('on-form-change', this.value, JSON.parse(JSON.stringify(this.selected)));
144 145 }
145 146 }
146 147 },
... ... @@ -168,6 +169,12 @@
168 169 if (lastValue && !fromInit) {
169 170 this.handleClose();
170 171 }
  172 + },
  173 + 'on-form-blur' () {
  174 + return false;
  175 + },
  176 + 'on-form-change' () {
  177 + return false;
171 178 }
172 179 },
173 180 watch: {
... ...
src/styles/components/cascader.less
... ... @@ -3,6 +3,7 @@
3 3  
4 4 .@{cascader-prefix-cls} {
5 5 position: relative;
  6 + line-height: normal;
6 7  
7 8 .@{css-prefix}input{
8 9 display: block;
... ...
test/routers/form.vue
... ... @@ -155,6 +155,9 @@
155 155 <form-item label="两个日期" prop="date2">
156 156 <Date-picker :value.sync="form.date2" type="daterange" placement="bottom-start" placeholder="选择日期" @on-change="c"></Date-picker>
157 157 </form-item>
  158 + <form-item label="级联" prop="cascader">
  159 + <Cascader :data="data" :value.sync="form.cascader"></Cascader>
  160 + </form-item>
158 161 <form-item>
159 162 <i-button type="primary" @click="onSubmit('form')">提交</i-button>
160 163 </form-item>
... ... @@ -166,6 +169,53 @@
166 169 props: {},
167 170 data () {
168 171 return {
  172 + data: [{
  173 + value: 'beijing',
  174 + label: '北京',
  175 + children: [
  176 + {
  177 + value: 'gugong',
  178 + label: '故宫'
  179 + },
  180 + {
  181 + value: 'tiantan',
  182 + label: '天坛'
  183 + },
  184 + {
  185 + value: 'wangfujing',
  186 + label: '王府井'
  187 + }
  188 + ]
  189 + }, {
  190 + value: 'jiangsu',
  191 + label: '江苏',
  192 + children: [
  193 + {
  194 + value: 'nanjing',
  195 + label: '南京',
  196 + children: [
  197 + {
  198 + value: 'fuzimiao',
  199 + label: '夫子庙',
  200 + }
  201 + ]
  202 + },
  203 + {
  204 + value: 'suzhou',
  205 + label: '苏州',
  206 + children: [
  207 + {
  208 + value: 'zhuozhengyuan',
  209 + label: '拙政园',
  210 + },
  211 + {
  212 + value: 'shizilin',
  213 + label: '狮子林',
  214 + }
  215 + ]
  216 + }
  217 + ],
  218 + }],
169 219 cityList: [
170 220 {
171 221 value: 'beijing',
... ... @@ -202,7 +252,8 @@
202 252 selectm: [],
203 253 slider: [40, 50],
204 254 date: '',
205   - date2: ''
  255 + date2: '',
  256 + cascader: []
206 257 },
207 258 rules: {
208 259 mail: [
... ... @@ -272,6 +323,11 @@
272 323 }
273 324 }
274 325 }
  326 + ],
  327 + cascader: [
  328 + {
  329 + type: 'array', required: true
  330 + }
275 331 ]
276 332 }
277 333 }
... ...