Commit 12fd2dc5807a57c76a18aa415de7116569738147

Authored by anykno
Committed by GitHub
2 parents b3dbdba9 d6070b23

Merge branch '2.0' into table_render

examples/components/table.vue 0 → 100644
  1 +<template>
  2 + <Table width="550" border :columns="columns2" :data="data3"></Table>
  3 +</template>
  4 +<script>
  5 + export default {
  6 + name: 'etable',
  7 + data () {
  8 + return {
  9 + columns2: [
  10 + {
  11 + title: '姓名',
  12 + key: 'name',
  13 + width: 100,
  14 + fixed: 'left'
  15 + },
  16 + {
  17 + title: '年龄',
  18 + key: 'age',
  19 + width: 100
  20 + },
  21 + {
  22 + title: '省份',
  23 + key: 'province',
  24 + width: 100
  25 + },
  26 + {
  27 + title: '市区',
  28 + key: 'city',
  29 + width: 100
  30 + },
  31 + {
  32 + title: '地址',
  33 + key: 'address',
  34 + width: 200
  35 + },
  36 + {
  37 + title: '邮编',
  38 + key: 'zip',
  39 + width: 100
  40 + },
  41 + {
  42 + title: '操作',
  43 + key: 'action',
  44 + fixed: 'right',
  45 + width: 120,
  46 + render: (h, params) => {
  47 + return h('div', [
  48 + h('Button', {
  49 + props: {
  50 + type: 'text',
  51 + size: 'small'
  52 + }
  53 + }, '查看'),
  54 + h('Button', {
  55 + props: {
  56 + type: 'text',
  57 + size: 'small'
  58 + }
  59 + }, '编辑')
  60 + ]);
  61 + }
  62 + }
  63 + ],
  64 + data3: [
  65 + {
  66 + name: '王小明',
  67 + age: 18,
  68 + address: '北京市朝阳区芍药居',
  69 + province: '北京市',
  70 + city: '朝阳区',
  71 + zip: 100000
  72 + },
  73 + {
  74 + name: '张小刚',
  75 + age: 25,
  76 + address: '北京市海淀区西二旗',
  77 + province: '北京市',
  78 + city: '海淀区',
  79 + zip: 100000
  80 + },
  81 + {
  82 + name: '李小红',
  83 + age: 30,
  84 + address: '上海市浦东新区世纪大道',
  85 + province: '上海市',
  86 + city: '浦东新区',
  87 + zip: 100000
  88 + },
  89 + {
  90 + name: '周小伟',
  91 + age: 26,
  92 + address: '深圳市南山区深南大道',
  93 + province: '广东',
  94 + city: '南山区',
  95 + zip: 100000
  96 + }
  97 + ]
  98 + }
  99 + }
  100 + }
  101 +</script>
... ...
examples/routers/notice.vue
... ... @@ -14,7 +14,7 @@
14 14 mounted () {
15 15 this.$Notice.config({
16 16 top: 150,
17   - duration: 3
  17 + duration: 30
18 18 });
19 19 }
20 20 }
... ...
examples/routers/table.vue
1 1 <template>
2   - <div>
3   - <Table border :columns="columns7" :data="data6"></Table>
4   - <Button @click="handleAdd"> + 1</Button>
5   - </div>
  2 + <Table border :columns="columns7" :data="data6" @on-expand="expand"></Table>
6 3 </template>
7 4 <script>
8   - import abc from '../components/test.vue';
  5 + import etable from '../components/table.vue';
9 6 export default {
10   - components: { abc },
  7 + components: { etable },
11 8 data () {
12 9 return {
13   - data1: 1,
14   - self: this,
15 10 columns7: [
16 11 {
  12 + type: 'expand',
  13 + width: 50,
  14 + render: (h, params) => {
  15 +// return h(etable);
  16 + return h('div', params.row.name)
  17 + }
  18 + },
  19 + {
17 20 title: '姓名',
18 21 key: 'name',
19   -// render (row, column, index) {
20   -// return `<abc></abc>`;
21   -// }
22   - render: (h, row, column, index) => {
  22 + render: (h, params) => {
23 23 return h('div', [
24   - h('Button',{
25   - on: {
26   - click: this.handleClick
  24 + h('Icon', {
  25 + props: {
  26 + type: 'person'
27 27 }
28   - }, 'hello')
29   - ])
  28 + }),
  29 + h('strong', params.row.name)
  30 + ]);
30 31 }
31 32 },
32 33 {
33 34 title: '年龄',
34   - key: 'age'
  35 + key: 'age',
  36 + sortable: true
35 37 },
36 38 {
37 39 title: '地址',
... ... @@ -42,9 +44,35 @@
42 44 key: 'action',
43 45 width: 150,
44 46 align: 'center',
45   -// render (row, column, index) {
46   -// return `<i-button type="primary" size="small" @click="show(${index})">查看</i-button> <i-button type="error" size="small" @click="remove(${index})">删除</i-button>`;
47   -// }
  47 + render: (h, params) => {
  48 + return h('div', [
  49 + h('Button', {
  50 + props: {
  51 + type: 'primary',
  52 + size: 'small'
  53 + },
  54 + style: {
  55 + marginRight: '5px'
  56 + },
  57 + on: {
  58 + click: () => {
  59 + this.show(params.index)
  60 + }
  61 + }
  62 + }, '查看'),
  63 + h('Button', {
  64 + props: {
  65 + type: 'error',
  66 + size: 'small'
  67 + },
  68 + on: {
  69 + click: () => {
  70 + this.remove(params.index)
  71 + }
  72 + }
  73 + }, '删除')
  74 + ]);
  75 + }
48 76 }
49 77 ],
50 78 data6: [
... ... @@ -61,7 +89,8 @@
61 89 {
62 90 name: '李小红',
63 91 age: 30,
64   - address: '上海市浦东新区世纪大道'
  92 + address: '上海市浦东新区世纪大道',
  93 + _expanded: true
65 94 },
66 95 {
67 96 name: '周小伟',
... ... @@ -71,11 +100,6 @@
71 100 ]
72 101 }
73 102 },
74   - computed: {
75   - ttt () {
76   - return this.data1 + 1;
77   - }
78   - },
79 103 methods: {
80 104 show (index) {
81 105 this.$Modal.info({
... ... @@ -86,11 +110,9 @@
86 110 remove (index) {
87 111 this.data6.splice(index, 1);
88 112 },
89   - handleAdd () {
90   - this.data1++;
91   - },
92   - handleClick () {
93   - this.$Message.info('111')
  113 + expand (row, s) {
  114 +// console.log(row);
  115 +// console.log(s);
94 116 }
95 117 }
96 118 }
... ...
examples/routers/transfer.vue
... ... @@ -178,7 +178,7 @@
178 178 setTimeout(function() {
179 179 console.log('--1');
180 180 // _this.data1 = null;
181   - _this.data1 = _this.getMockData1();
  181 +// _this.data1 = _this.getMockData1();
182 182 console.log('-fetch-', _this.data1);
183 183  
184 184 }, 1500);
... ...
src/components/back-top/back-top.vue
... ... @@ -67,7 +67,8 @@
67 67 this.backTop = window.pageYOffset >= this.height;
68 68 },
69 69 back () {
70   - scrollTop(window, document.body.scrollTop, 0, this.duration);
  70 + const sTop = document.documentElement.scrollTop || document.body.scrollTop;
  71 + scrollTop(window, sTop, 0, this.duration);
71 72 this.$emit('on-click');
72 73 }
73 74 }
... ...
src/components/input/input.vue
... ... @@ -37,6 +37,7 @@
37 37 :readonly="readonly"
38 38 :name="name"
39 39 :value="value"
  40 + :autofocus="autofocus"
40 41 @keyup.enter="handleEnter"
41 42 @focus="handleFocus"
42 43 @blur="handleBlur"
... ...
src/components/select/select.vue
... ... @@ -155,6 +155,8 @@
155 155 if (!this.model.length) {
156 156 status = true;
157 157 }
  158 + } else if( this.model === null){
  159 + status = true;
158 160 }
159 161  
160 162 return status;
... ...
src/components/table/cell.vue
... ... @@ -4,18 +4,25 @@
4 4 <template v-if="renderType === 'selection'">
5 5 <Checkbox :value="checked" @on-change="toggleSelect" :disabled="disabled"></Checkbox>
6 6 </template>
  7 +
7 8 <template v-if="renderType === 'html'"><span v-html="row[column.key]"></span></template>
8 9 <template v-if="renderType === 'normal'"><span>{{row[column.key]}}</span></template>
  10 + <template v-if="renderType === 'expand'">
  11 + <div :class="expandCls" @click="toggleExpand">
  12 + <Icon type="ios-arrow-right"></Icon>
  13 + </div>
  14 + </template>
9 15 </div>
10 16 </template>
11 17 <script>
12 18 import Vue from 'vue';
  19 + import Icon from '../icon/icon.vue';
13 20 import Checkbox from '../checkbox/checkbox.vue';
14 21 import { findComponentUpward } from '../../utils/assist';
15 22  
16 23 export default {
17 24 name: 'TableCell',
18   - components: { Checkbox },
  25 + components: { Icon, Checkbox },
19 26 props: {
20 27 prefixCls: String,
21 28 row: Object,
... ... @@ -24,6 +31,7 @@
24 31 index: Number, // _index of data
25 32 checked: Boolean,
26 33 disabled: Boolean,
  34 + expanded: Boolean,
27 35 fixed: {
28 36 type: [Boolean, String],
29 37 default: false
... ... @@ -42,20 +50,30 @@
42 50 `${this.prefixCls}-cell`,
43 51 {
44 52 [`${this.prefixCls}-hidden`]: !this.fixed && this.column.fixed && (this.column.fixed === 'left' || this.column.fixed === 'right'),
45   - [`${this.prefixCls}-cell-ellipsis`]: this.column.ellipsis || false
  53 + [`${this.prefixCls}-cell-ellipsis`]: this.column.ellipsis || false,
  54 + [`${this.prefixCls}-cell-with-expand`]: this.renderType === 'expand'
  55 + }
  56 + ];
  57 + },
  58 + expandCls () {
  59 + return [
  60 + `${this.prefixCls}-cell-expand`,
  61 + {
  62 + [`${this.prefixCls}-cell-expand-expanded`]: this.expanded
46 63 }
47 64 ];
48 65 }
49 66 },
50 67 methods: {
51 68 compile () {
52   - if (this.column.render) {
  69 + if (this.column.render && this.renderType === 'render') {
53 70 // 兼容真 Render,后期废弃旧用法
54 71 let isRealRender = true;
55 72 const Table = findComponentUpward(this, 'Table');
56 73 if (Table.context) isRealRender = false;
57 74  
58 75 if (isRealRender) {
  76 + this.$el.innerHTML = '';
59 77 const component = new Vue({
60 78 functional: true,
61 79 render: (h) => {
... ... @@ -114,6 +132,9 @@
114 132 },
115 133 toggleSelect () {
116 134 this.$parent.$parent.toggleSelect(this.index);
  135 + },
  136 + toggleExpand () {
  137 + this.$parent.$parent.toggleExpand(this.index);
117 138 }
118 139 },
119 140 created () {
... ... @@ -123,6 +144,8 @@
123 144 this.renderType = 'selection';
124 145 } else if (this.column.type === 'html') {
125 146 this.renderType = 'html';
  147 + } else if (this.column.type === 'expand') {
  148 + this.renderType = 'expand';
126 149 } else if (this.column.render) {
127 150 this.renderType = 'render';
128 151 } else {
... ...
src/components/table/expand.vue 0 → 100644
  1 +<template>
  2 + <div ref="cell"></div>
  3 +</template>
  4 +<script>
  5 + import Vue from 'vue';
  6 + export default {
  7 + name: 'TableExpand',
  8 + props: {
  9 + row: Object,
  10 + render: Function,
  11 + index: Number,
  12 + },
  13 + methods: {
  14 + compile () {
  15 + if (this.render) {
  16 + this.$el.innerHTML = '';
  17 + const component = new Vue({
  18 + functional: true,
  19 + render: (h) => {
  20 + return this.render(h, {
  21 + row: this.row,
  22 + index: this.index
  23 + });
  24 + }
  25 + });
  26 + const Cell = component.$mount();
  27 + this.$refs.cell.appendChild(Cell.$el);
  28 + }
  29 + }
  30 + },
  31 + mounted () {
  32 + this.$nextTick(() => {
  33 + this.compile();
  34 + });
  35 + }
  36 + };
  37 +</script>
0 38 \ No newline at end of file
... ...
src/components/table/table-body.vue
... ... @@ -4,39 +4,47 @@
4 4 <col v-for="(column, index) in columns" :width="setCellWidth(column, index, false)">
5 5 </colgroup>
6 6 <tbody :class="[prefixCls + '-tbody']">
7   - <tr
8   - v-for="(row, index) in data"
9   - :key="row"
10   - :class="rowClasses(row._index)"
11   - @mouseenter.stop="handleMouseIn(row._index)"
12   - @mouseleave.stop="handleMouseOut(row._index)"
13   - @click.stop="clickCurrentRow(row._index)"
14   - @dblclick.stop="dblclickCurrentRow(row._index)">
15   - <td v-for="column in columns" :class="alignCls(column, row)">
16   - <Cell
17   - :fixed="fixed"
18   - :prefix-cls="prefixCls"
19   - :row="row"
20   - :column="column"
21   - :natural-index="index"
22   - :index="row._index"
23   - :checked="rowChecked(row._index)"
24   - :disabled="rowDisabled(row._index)"
  7 + <template v-for="(row, index) in data">
  8 + <tr
  9 + :key="row"
  10 + :class="rowClasses(row._index)"
  11 + @mouseenter.stop="handleMouseIn(row._index)"
  12 + @mouseleave.stop="handleMouseOut(row._index)"
  13 + @click.stop="clickCurrentRow(row._index)"
  14 + @dblclick.stop="dblclickCurrentRow(row._index)">
  15 + <td v-for="column in columns" :class="alignCls(column, row)">
  16 + <Cell
  17 + :fixed="fixed"
  18 + :prefix-cls="prefixCls"
  19 + :row="row"
  20 + :column="column"
  21 + :natural-index="index"
  22 + :index="row._index"
  23 + :checked="rowChecked(row._index)"
  24 + :disabled="rowDisabled(row._index)"
  25 + :expanded="rowExpanded(row._index)"
25 26 ></Cell>
26   - </td>
27   - </tr>
  27 + </td>
  28 + </tr>
  29 + <tr v-if="rowExpanded(row._index)">
  30 + <td :colspan="columns.length" :class="prefixCls + '-expanded-cell'">
  31 + <Expand :row="row" :render="expandRender" :index="row._index"></Expand>
  32 + </td>
  33 + </tr>
  34 + </template>
28 35 </tbody>
29 36 </table>
30 37 </template>
31 38 <script>
32 39 // todo :key="row"
33 40 import Cell from './cell.vue';
  41 + import Expand from './expand.vue';
34 42 import Mixin from './mixin';
35 43  
36 44 export default {
37 45 name: 'TableBody',
38 46 mixins: [ Mixin ],
39   - components: { Cell },
  47 + components: { Cell, Expand },
40 48 props: {
41 49 prefixCls: String,
42 50 styleObject: Object,
... ... @@ -49,6 +57,20 @@
49 57 default: false
50 58 }
51 59 },
  60 + computed: {
  61 + expandRender () {
  62 + let render = function () {
  63 + return '';
  64 + };
  65 + for (let i = 0; i < this.columns.length; i++) {
  66 + const column = this.columns[i];
  67 + if (column.type && column.type === 'expand') {
  68 + if (column.render) render = column.render;
  69 + }
  70 + }
  71 + return render;
  72 + }
  73 + },
52 74 methods: {
53 75 rowClasses (_index) {
54 76 return [
... ... @@ -66,6 +88,9 @@
66 88 rowDisabled(_index){
67 89 return this.objData[_index] && this.objData[_index]._isDisabled;
68 90 },
  91 + rowExpanded(_index){
  92 + return this.objData[_index] && this.objData[_index]._isExpanded;
  93 + },
69 94 rowClsName (_index) {
70 95 return this.$parent.rowClassName(this.objData[_index], _index);
71 96 },
... ...
src/components/table/table-head.vue
... ... @@ -7,7 +7,8 @@
7 7 <tr>
8 8 <th v-for="(column, index) in columns" :class="alignCls(column)">
9 9 <div :class="cellClasses(column)">
10   - <template v-if="column.type === 'selection'"><Checkbox :value="isSelectAll" @on-change="selectAll"></Checkbox></template>
  10 + <template v-if="column.type === 'expand'"></template>
  11 + <template v-else-if="column.type === 'selection'"><Checkbox :value="isSelectAll" @on-change="selectAll"></Checkbox></template>
11 12 <template v-else>
12 13 <span v-html="renderHeader(column, index)"></span>
13 14 <span :class="[prefixCls + '-sort']" v-if="column.sortable">
... ...
src/components/table/table.vue
... ... @@ -404,6 +404,18 @@
404 404 }
405 405 this.$emit('on-selection-change', selection);
406 406 },
  407 + toggleExpand (_index) {
  408 + let data = {};
  409 +
  410 + for (let i in this.objData) {
  411 + if (parseInt(i) === _index) {
  412 + data = this.objData[i];
  413 + }
  414 + }
  415 + const status = !data._isExpanded;
  416 + this.objData[_index]._isExpanded = status;
  417 + this.$emit('on-expand', JSON.parse(JSON.stringify(this.cloneData[_index])), status);
  418 + },
407 419 selectAll (status) {
408 420 // this.rebuildData.forEach((data) => {
409 421 // if(this.objData[data._index]._isDisabled){
... ... @@ -581,9 +593,9 @@
581 593 this.data.forEach((row, index) => {
582 594 const newRow = deepCopy(row);// todo 直接替换
583 595 newRow._isHover = false;
584   - if(newRow._disabled){
  596 + if (newRow._disabled) {
585 597 newRow._isDisabled = newRow._disabled;
586   - }else{
  598 + } else {
587 599 newRow._isDisabled = false;
588 600 }
589 601 if (newRow._checked) {
... ... @@ -591,6 +603,11 @@
591 603 } else {
592 604 newRow._isChecked = false;
593 605 }
  606 + if (newRow._expanded) {
  607 + newRow._isExpanded = newRow._expanded;
  608 + } else {
  609 + newRow._isExpanded = false;
  610 + }
594 611 if (newRow._highlight) {
595 612 newRow._isHighlight = newRow._highlight;
596 613 } else {
... ...
src/components/transfer/list.vue
... ... @@ -2,7 +2,7 @@
2 2 <div :class="classes" :style="listStyle">
3 3 <div :class="prefixCls + '-header'">
4 4 <Checkbox :value="checkedAll" :disabled="checkedAllDisabled" @on-change="toggleSelectAll"></Checkbox>
5   - <span>{{ title }}</span>
  5 + <span :class="prefixCls + '-header-title'" @click="toggleSelectAll(!checkedAll)">{{ title }}</span>
6 6 <span :class="prefixCls + '-header-count'">{{ count }}</span>
7 7 </div>
8 8 <div :class="bodyClasses">
... ...
src/locale/lang/ru-RU.js 0 → 100644
  1 +export default {
  2 + i: {
  3 + select: {
  4 + placeholder: 'Выбрать',
  5 + noMatch: 'Нет соответствующих данных',
  6 + loading: 'Загрузка'
  7 + },
  8 + table: {
  9 + noDataText: 'Нет данных',
  10 + noFilteredDataText: 'Нет данных по фильтру',
  11 + confirmFilter: 'Подтвердить',
  12 + resetFilter: 'Сброс',
  13 + clearFilter: 'Все'
  14 + },
  15 + datepicker: {
  16 + selectDate: 'Выбрать дату',
  17 + selectTime: 'Выбрать время',
  18 + startTime: 'Начальное время',
  19 + endTime: 'Конечное время',
  20 + clear: 'Очистить',
  21 + ok: 'OK',
  22 + month: '',
  23 + month1: 'Январь',
  24 + month2: 'Февраль',
  25 + month3: 'Март',
  26 + month4: 'Апрель',
  27 + month5: 'Май',
  28 + month6: 'Июнь',
  29 + month7: 'Июль',
  30 + month8: 'Август',
  31 + month9: 'Сентябрь',
  32 + month10: 'Октябрь',
  33 + month11: 'Ноябрь',
  34 + month12: 'Декабрь',
  35 + year: '',
  36 + weeks: {
  37 + sun: 'Вс',
  38 + mon: 'Пн',
  39 + tue: 'Вт',
  40 + wed: 'Ср',
  41 + thu: 'Чт',
  42 + fri: 'Пт',
  43 + sat: 'Сб'
  44 + },
  45 + months: {
  46 + m1: 'Янв',
  47 + m2: 'Фев',
  48 + m3: 'Мар',
  49 + m4: 'Апр',
  50 + m5: 'Май',
  51 + m6: 'Июн',
  52 + m7: 'Июл',
  53 + m8: 'Авг',
  54 + m9: 'Сен',
  55 + m10: 'Окт',
  56 + m11: 'Ноя',
  57 + m12: 'Дек'
  58 + }
  59 + },
  60 + transfer: {
  61 + titles: {
  62 + source: 'Источник',
  63 + target: 'Цель'
  64 + },
  65 + filterPlaceholder: 'Искать здесь',
  66 + notFoundText: 'Не Найдено'
  67 + },
  68 + modal: {
  69 + okText: 'OK',
  70 + cancelText: 'Отменить'
  71 + },
  72 + poptip: {
  73 + okText: 'OK',
  74 + cancelText: 'Отменить'
  75 + },
  76 + page: {
  77 + prev: 'Пред. страница',
  78 + next: 'След. страница',
  79 + total: 'Всего',
  80 + item: 'пункт',
  81 + items: 'пункты',
  82 + prev5: 'Пред. 5 страниц',
  83 + next5: 'След. 5 страниц',
  84 + page: '/page',
  85 + goto: 'Идти к',
  86 + p: ''
  87 + },
  88 + rate: {
  89 + star: 'Звезда',
  90 + stars: 'Звезды'
  91 + },
  92 + tree: {
  93 + emptyText: 'Нет данных'
  94 + }
  95 + }
  96 +};
0 97 \ No newline at end of file
... ...
src/styles/components/notice.less
... ... @@ -50,6 +50,7 @@
50 50 white-space: nowrap;
51 51 }
52 52 &-with-desc &-title{
  53 + font-weight: bold;
53 54 margin-bottom: 8px;
54 55 }
55 56 &-with-desc&-with-icon &-title{
... ... @@ -58,7 +59,8 @@
58 59  
59 60 &-desc {
60 61 font-size: 12px;
61   - color: @legend-color;
  62 + //color: @legend-color;
  63 + color: @text-color;
62 64 text-align: justify;
63 65 line-height: 1.5;
64 66 }
... ...
src/styles/components/table.less
... ... @@ -145,6 +145,24 @@
145 145 overflow: hidden;
146 146 text-overflow: ellipsis;
147 147 }
  148 +
  149 + &-with-expand{
  150 + height: 47px;
  151 + line-height: 47px;
  152 + padding: 0;
  153 + text-align: center;
  154 + }
  155 +
  156 + &-expand{
  157 + cursor: pointer;
  158 + transition: transform @transition-time @ease-in-out;
  159 + i{
  160 + font-size: @font-size-base;
  161 + }
  162 + &-expanded{
  163 + transform: rotate(90deg);
  164 + }
  165 + }
148 166 }
149 167 &-hidden{
150 168 visibility: hidden;
... ... @@ -156,6 +174,11 @@
156 174 vertical-align: middle;
157 175 }
158 176  
  177 + td&-expanded-cell{
  178 + padding: 20px 50px;
  179 + background: @table-thead-bg;
  180 + }
  181 +
159 182 &-stripe &-body,
160 183 &-stripe &-fixed-body
161 184 {
... ... @@ -184,6 +207,13 @@
184 207 height: 60px;
185 208 line-height: 60px;
186 209 }
  210 + .@{table-prefix-cls}-cell-with-expand{
  211 + height: 59px;
  212 + line-height: 59px;
  213 + i{
  214 + font-size: @font-size-base+2;
  215 + }
  216 + }
187 217 }
188 218  
189 219 &-small{
... ... @@ -197,6 +227,10 @@
197 227 height: 40px;
198 228 line-height: 40px;
199 229 }
  230 + .@{table-prefix-cls}-cell-with-expand{
  231 + height: 39px;
  232 + line-height: 39px;
  233 + }
200 234 }
201 235  
202 236 &-row-highlight,
... ...
src/styles/components/transfer.less
... ... @@ -31,6 +31,10 @@
31 31 left: 0;
32 32 width: 100%;
33 33  
  34 + &-title{
  35 + cursor: pointer;
  36 + }
  37 +
34 38 & > span{
35 39 padding-left: 4px;
36 40 }
... ...
src/styles/custom.less
... ... @@ -3,25 +3,25 @@
3 3 @css-prefix-iconfont : ivu-icon;
4 4  
5 5 // Color
6   -@primary-color : #3399ff;
  6 +@primary-color : #2d8cf0;
7 7 @info-color : #2db7f5;
8   -@success-color : #00cc66;
  8 +@success-color : #19be6b;
9 9 @warning-color : #ff9900;
10   -@error-color : #ff3300;
11   -@link-color : #3399ff;
  10 +@error-color : #ed3f14;
  11 +@link-color : #2D8cF0;
12 12 @link-hover-color : tint(@link-color, 20%);
13 13 @link-active-color : shade(@link-color, 5%);
14 14 @selected-color : fade(@primary-color, 90%);
15 15 @tooltip-color : #fff;
16   -@subsidiary-color : #9ea7b4;
  16 +@subsidiary-color : #80848f;
17 17 @rate-star-color : #f5a623;
18 18  
19 19 // Base
20 20 @body-background : #fff;
21 21 @font-family : "Helvetica Neue",Helvetica,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","微软雅黑",Arial,sans-serif;
22 22 @code-family : Consolas,Menlo,Courier,monospace;
23   -@title-color : #464c5b;
24   -@text-color : #657180;
  23 +@title-color : #1c2438;
  24 +@text-color : #495060;
25 25 @font-size-base : 14px;
26 26 @font-size-small : 12px;
27 27 @line-height-base : 1.5;
... ... @@ -31,16 +31,16 @@
31 31 @cursor-disabled : not-allowed;
32 32  
33 33 // Border color
34   -@border-color-base : #d7dde4; // outside
35   -@border-color-split : #e3e8ee; // inside
  34 +@border-color-base : #dddee1; // outside
  35 +@border-color-split : #e9eaec; // inside
36 36  
37 37 // Background color
38 38 @background-color-base : #f7f7f7; // base
39 39 @background-color-select-hover: @input-disabled-bg;
40 40 @tooltip-bg : rgba(70, 76, 91, .9);
41 41 @head-bg : #f9fafc;
42   -@table-thead-bg : #f5f7f9;
43   -@table-td-stripe-bg : #f5f7f9;
  42 +@table-thead-bg : #f8f8f9;
  43 +@table-td-stripe-bg : #f8f8f9;
44 44 @table-td-hover-bg : #ebf7ff;
45 45 @table-td-highlight-bg : #ebf7ff;
46 46 @menu-dark-active-bg : #313540;
... ... @@ -66,7 +66,7 @@
66 66 @btn-border-radius-small: 3px;
67 67 @btn-group-border : shade(@primary-color, 5%);
68 68  
69   -@btn-disable-color : #c3cbd6;
  69 +@btn-disable-color : #bbbec4;
70 70 @btn-disable-bg : @background-color-base;
71 71 @btn-disable-border : @border-color-base;
72 72  
... ...
src/styles/mixins/button.less
... ... @@ -133,7 +133,7 @@
133 133 line-height: @line-height-base;
134 134 user-select: none;
135 135 .button-size(@btn-padding-base; @btn-font-size; @btn-border-radius);
136   - transform: translate3d(0, 0, 0);
  136 + //transform: translate3d(0, 0, 0);
137 137 //transition: all @transition-time linear;
138 138 transition: color @transition-time linear, background-color @transition-time linear, border @transition-time linear;
139 139  
... ...