Commit 65b41a2d6f73314771e6035f94ea5bbeee39e65c

Authored by 梁灏
1 parent 96a6cb6c

fixed #635

examples/routers/cascader.vue
1   -<!--<template>-->
2   - <!--<div>-->
3   - <!--<Cascader :data="data" v-model="value1"></Cascader>-->
4   - <!--{{ value1 }}-->
5   - <!--<div @click="c">change</div>-->
6   - <!--</div>-->
7   -<!--</template>-->
8   -<!--<script>-->
9   - <!--export default {-->
10   - <!--data () {-->
11   - <!--return {-->
12   - <!--value1: [],-->
13   - <!--data: [{-->
14   - <!--value: 'beijing',-->
15   - <!--label: '北京',-->
16   - <!--children: [-->
17   - <!--{-->
18   - <!--value: 'gugong',-->
19   - <!--label: '故宫'-->
20   - <!--},-->
21   - <!--{-->
22   - <!--value: 'tiantan',-->
23   - <!--label: '天坛'-->
24   - <!--},-->
25   - <!--{-->
26   - <!--value: 'wangfujing',-->
27   - <!--label: '王府井'-->
28   - <!--}-->
29   - <!--]-->
30   - <!--}, {-->
31   - <!--value: 'jiangsu',-->
32   - <!--label: '江苏',-->
33   - <!--children: [-->
34   - <!--{-->
35   - <!--value: 'nanjing',-->
36   - <!--label: '南京',-->
37   - <!--children: [-->
38   - <!--{-->
39   - <!--value: 'fuzimiao',-->
40   - <!--label: '夫子庙',-->
41   - <!--}-->
42   - <!--]-->
43   - <!--},-->
44   - <!--{-->
45   - <!--value: 'suzhou',-->
46   - <!--label: '苏州',-->
47   - <!--children: [-->
48   - <!--{-->
49   - <!--value: 'zhuozhengyuan',-->
50   - <!--label: '拙政园',-->
51   - <!--},-->
52   - <!--{-->
53   - <!--value: 'shizilin',-->
54   - <!--label: '狮子林',-->
55   - <!--}-->
56   - <!--]-->
57   - <!--}-->
58   - <!--],-->
59   - <!--}]-->
60   - <!--}-->
61   - <!--},-->
62   - <!--methods: {-->
63   - <!--c () {-->
64   - <!--this.value1 = ['jiangsu', 'suzhou', 'zhuozhengyuan']-->
65   - <!--}-->
66   - <!--}-->
67   - <!--}-->
68   -<!--</script>-->
69   -
70   -
71 1 <template>
72 2 <div>
73   - <Cascader :data="data" v-model="value2"></Cascader>
74   - {{ value2 }}
75   - <Button @click="c">clear</Button>
  3 + <Cascader :data="data2" v-model="v1" disabled clearable></Cascader>
  4 + <Cascader :data="data2" clearable></Cascader>
76 5 </div>
77 6 </template>
78 7 <script>
79 8 export default {
80 9 data () {
81 10 return {
82   - value2: ['beijing', 'gugong'],
83   - data: []
84   - }
85   - },
86   - methods: {
87   - c () {
88   - this.value2 = []
89   - }
90   - },
91   - mounted () {
92   - this.data = [{
93   - value: 'beijing',
94   - label: '北京',
95   - children: [
96   - {
97   - value: 'gugong',
98   - label: '故宫'
99   - },
100   - {
101   - value: 'tiantan',
102   - label: '天坛'
103   - },
104   - {
105   - value: 'wangfujing',
106   - label: '王府井'
107   - }
108   - ]
109   - }, {
110   - value: 'jiangsu',
111   - label: '江苏',
112   - children: [
113   - {
  11 + v1: ['zhejiang', 'hangzhou', 'xihu'],
  12 + data2: [{
  13 + value: 'zhejiang',
  14 + label: '浙江',
  15 + children: [{
  16 + value: 'hangzhou',
  17 + label: '杭州',
  18 + children: [{
  19 + value: 'xihu',
  20 + label: '西湖'
  21 + }]
  22 + }]
  23 + }, {
  24 + value: 'jiangsu',
  25 + label: '江苏',
  26 + disabled: true,
  27 + children: [{
114 28 value: 'nanjing',
115 29 label: '南京',
116   - children: [
117   - {
118   - value: 'fuzimiao',
119   - label: '夫子庙',
120   - }
121   - ]
122   - },
123   - {
124   - value: 'suzhou',
125   - label: '苏州',
126   - children: [
127   - {
128   - value: 'zhuozhengyuan',
129   - label: '拙政园',
130   - },
131   - {
132   - value: 'shizilin',
133   - label: '狮子林',
134   - }
135   - ]
136   - }
137   - ],
138   - }]
  30 + children: [{
  31 + value: 'zhonghuamen',
  32 + label: '中华门'
  33 + }]
  34 + }]
  35 + }]
  36 + }
139 37 }
140 38 }
141 39 </script>
... ...
src/components/cascader/cascader.vue
... ... @@ -112,7 +112,7 @@
112 112 ];
113 113 },
114 114 showCloseIcon () {
115   - return this.currentValue && this.currentValue.length && this.clearable;
  115 + return this.currentValue && this.currentValue.length && this.clearable && !this.disabled;
116 116 },
117 117 displayRender () {
118 118 let label = [];
... ... @@ -125,6 +125,7 @@
125 125 },
126 126 methods: {
127 127 clearSelect () {
  128 + if (this.disabled) return false;
128 129 const oldVal = JSON.stringify(this.currentValue);
129 130 this.currentValue = this.selected = this.tmpSelected = [];
130 131 this.handleClose();
... ...