diff --git a/src/components/cascader/cascader.vue b/src/components/cascader/cascader.vue index a27017c..95285c9 100644 --- a/src/components/cascader/cascader.vue +++ b/src/components/cascader/cascader.vue @@ -87,7 +87,8 @@ prefixCls: prefixCls, visible: false, selected: [], - tmpSelected: [] + tmpSelected: [], + updatingValue: false // to fix set value in changeOnSelect type }; }, computed: { @@ -162,6 +163,7 @@ }); if (!fromInit) { + this.updatingValue = true; this.value = newVal; this.emitValue(this.value, oldVal); } @@ -186,7 +188,11 @@ } }, value () { - this.updateSelected(); + if (this.updatingValue) { + this.updatingValue = false; + return; + } + this.updateSelected(true); } } }; diff --git a/test/routers/cascader.vue b/test/routers/cascader.vue index 9a28966..d73eb94 100644 --- a/test/routers/cascader.vue +++ b/test/routers/cascader.vue @@ -1,80 +1,72 @@ <template> - <div v-for="item in list"> - <Cascader :data="data" change-on-select :render-format="format"></Cascader> - </div> - <i-button @click="add">add</i-button> - <i-button @click="remove">remove</i-button> + <Cascader :data="data" :value.sync="value" change-on-select></Cascader> </template> <script> export default { data () { return { - list: [ - { - a: 1 - } - ], - data: [{ - value: 'beijing', - label: '北京', - children: [ - { - value: 'gugong', - label: '故宫' - }, - { - value: 'tiantan', - label: '天坛' - }, - { - value: 'wangfujing', - label: '王府井' - } - ] - }, { - value: 'jiangsu', - label: '江苏', - children: [ - { - value: 'nanjing', - label: '南京', - children: [ - { - value: 'fuzimiao', - label: '夫子庙' - } - ] - }, - { - value: 'suzhou', - label: '苏州', - children: [ - { - value: 'zhuozhengyuan', - label: '拙政园' - }, - { - value: 'shizilin', - label: '狮子林' - } - ] - } - ] - }] + value: [], + data: [] } }, methods: { - add () { - this.list.push({ - a: 2 - }) - }, - remove () { - this.list.splice(0, 1); - }, - format (labels) { - return labels.join(' - '); + updateData () { + setTimeout(() => { + this.data = [{ + value: 'beijing', + label: '北京', + children: [ + { + value: 'gugong', + label: '故宫' + }, + { + value: 'tiantan', + label: '天坛' + }, + { + value: 'wangfujing', + label: '王府井' + } + ] + }, { + value: 'jiangsu', + label: '江苏', + children: [ + { + value: 'nanjing', + label: '南京', + children: [ + { + value: 'fuzimiao', + label: '夫子庙' + } + ] + }, + { + value: 'suzhou', + label: '苏州', + children: [ + { + value: 'zhuozhengyuan', + label: '拙政园' + }, + { + value: 'shizilin', + label: '狮子林' + } + ] + } + ] + }]; + setTimeout(() => { + this.value = ['beijing', 'tiantan']; + }, 1000); + }, 1000); } + }, + ready () { + this.updateData(); } } </script> diff --git a/test/routers/table.vue b/test/routers/table.vue index 6139dad..5ec55fb 100644 --- a/test/routers/table.vue +++ b/test/routers/table.vue @@ -1,36 +1,37 @@ <style> - /*.ivu-table .demo-table-info-row td{*/ - /*background-color: #2db7f5;*/ - /*color: #fff;*/ - /*}*/ - /*.ivu-table .demo-table-error-row td{*/ - /*background-color: #ff6600;*/ - /*color: #fff;*/ - /*}*/ - .ivu-table .table-age-col{ - background: #ff6600; + .ivu-table .demo-table-info-row td{ + background-color: #2db7f5; + color: #fff; } - .ivu-table .table-name-col{ - background: #2db7f5; + .ivu-table .demo-table-error-row td{ + background-color: #ff6600; + color: #fff; } - .ivu-table .table-address-col{ - background: #187; + .ivu-table .demo-table-info-column{ + background-color: #2db7f5; + color: #fff; + border-bottom: 1px solid #2db7f5; } - .ivu-table .class-cell-age{ - background: #187; + .ivu-table .demo-table-info-cell-name { + background-color: #2db7f5; color: #fff; } - .ivu-table .class-cell-address{ - background: #f60; + .ivu-table .demo-table-info-cell-age { + background-color: #ff6600; color: #fff; } - .ivu-table .class-cell-name{ - background: #2db7f5; + .ivu-table .demo-table-info-cell-address { + background-color: #187; color: #fff; } </style> <template> + <p>自定义行样式:</p> <i-table :row-class-name="rowClassName" :columns="columns1" :data="data1"></i-table> + <p>自定义列样式:</p> + <i-table :columns="columns9" :data="data1"></i-table> + <p>自定义任意单元格样式:</p> + <i-table :columns="columns1" :data="data8"></i-table> </template> <script> export default { @@ -38,37 +39,38 @@ return { columns1: [ { - type: 'selection', - width: 60, - align: 'center' + title: '姓名', + key: 'name' }, { + title: '年龄', + key: 'age' + }, + { + title: '地址', + key: 'address' + } + ], + columns9: [ + { title: '姓名', - key: 'name', -// fixed: 'right', -// className: 'table-name-col' + key: 'name' }, { title: '年龄', key: 'age', -// fixed: 'right', -// className: 'table-age-col' + className: 'demo-table-info-column' }, { title: '地址', - key: 'address', -// className: 'table-address-col' + key: 'address' } ], data1: [ { name: '王小明', age: 18, - address: '北京市朝阳区芍药居', - cellClassName: { - age: 'class-cell-age', - address: 'class-cell-address' - } + address: '北京市朝阳区芍药居' }, { name: '张小刚', @@ -78,15 +80,41 @@ { name: '李小红', age: 30, - address: '上海市浦东新区世纪大道', + address: '上海市浦东新区世纪大道' + }, + { + name: '周小伟', + age: 26, + address: '深圳市南山区深南大道' + } + ], + data8: [ + { + name: '王小明', + age: 18, + address: '北京市朝阳区芍药居' + }, + { + name: '张小刚', + age: 25, + address: '北京市海淀区西二旗', cellClassName: { - name: 'class-cell-name' + age: 'demo-table-info-cell-age', + address: 'demo-table-info-cell-address' } }, { + name: '李小红', + age: 30, + address: '上海市浦东新区世纪大道' + }, + { name: '周小伟', age: 26, - address: '深圳市南山区深南大道' + address: '深圳市南山区深南大道', + cellClassName: { + name: 'demo-table-info-cell-name' + } } ] } -- libgit2 0.21.4