@sheinoutmobile/shineoutmobile 1.8.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of @sheinoutmobile/shineoutmobile might be problematic. Click here for more details.

Files changed (171) hide show
  1. package/.eslintignore +20 -0
  2. package/.eslintrc +8 -0
  3. package/.gitlab-ci.yml +53 -0
  4. package/.yarnrc +1 -0
  5. package/CHANGELOG.md +8 -0
  6. package/README.md +14 -0
  7. package/build.config.js +6 -0
  8. package/doc.config.js +16 -0
  9. package/lib/index.esm.js +5414 -0
  10. package/lib/index.esm.js.map +1 -0
  11. package/lib/index.js +8 -0
  12. package/lib/index.js.map +1 -0
  13. package/package.json +47 -0
  14. package/src/component/button/button.jsx +83 -0
  15. package/src/component/button/index.jsx +3 -0
  16. package/src/component/button/style.less +132 -0
  17. package/src/component/cell/cell.jsx +71 -0
  18. package/src/component/cell/index.jsx +3 -0
  19. package/src/component/cell/style.less +86 -0
  20. package/src/component/cell-group/cell-group.jsx +26 -0
  21. package/src/component/cell-group/index.jsx +3 -0
  22. package/src/component/cell-group/style.less +22 -0
  23. package/src/component/checkbox/checkbox.jsx +92 -0
  24. package/src/component/checkbox/index.js +3 -0
  25. package/src/component/checkbox/kind/checkbox-button.jsx +41 -0
  26. package/src/component/checkbox/style.less +49 -0
  27. package/src/component/dialog/dialog.jsx +58 -0
  28. package/src/component/dialog/index.js +3 -0
  29. package/src/component/dialog/kind/dialog-alert.jsx +22 -0
  30. package/src/component/dialog/kind/dialog-confirm.jsx +54 -0
  31. package/src/component/dialog/style.less +80 -0
  32. package/src/component/drawer/drawer.jsx +151 -0
  33. package/src/component/drawer/index.jsx +3 -0
  34. package/src/component/drawer/js/tools.js +1 -0
  35. package/src/component/drawer/style.less +17 -0
  36. package/src/component/field/field.jsx +49 -0
  37. package/src/component/field/index.js +3 -0
  38. package/src/component/icon/icon.jsx +55 -0
  39. package/src/component/icon/index.jsx +19 -0
  40. package/src/component/icon/style.less +9 -0
  41. package/src/component/icons/index.js +3 -0
  42. package/src/component/icons/mrp.js +3 -0
  43. package/src/component/image-previewer/image-previewer.jsx +54 -0
  44. package/src/component/image-previewer/index.js +3 -0
  45. package/src/component/index-sort-list/group.jsx +49 -0
  46. package/src/component/index-sort-list/index-bar.jsx +34 -0
  47. package/src/component/index-sort-list/index.js +3 -0
  48. package/src/component/index-sort-list/js/rules.js +14 -0
  49. package/src/component/index-sort-list/js/sort-rule.js +41 -0
  50. package/src/component/index-sort-list/list.jsx +110 -0
  51. package/src/component/index-sort-list/style.less +109 -0
  52. package/src/component/input/index.js +3 -0
  53. package/src/component/input/input.jsx +285 -0
  54. package/src/component/input/style.less +77 -0
  55. package/src/component/list-view/index.js +3 -0
  56. package/src/component/list-view/jsx/empty.jsx +23 -0
  57. package/src/component/list-view/list-view.jsx +165 -0
  58. package/src/component/list-view/style.less +79 -0
  59. package/src/component/loading/index.js +3 -0
  60. package/src/component/loading/loading.jsx +97 -0
  61. package/src/component/loading/styles.less +128 -0
  62. package/src/component/multiple-selector/index.jsx +3 -0
  63. package/src/component/multiple-selector/item.jsx +23 -0
  64. package/src/component/multiple-selector/multiple-selector.jsx +116 -0
  65. package/src/component/multiple-selector/selector.jsx +41 -0
  66. package/src/component/multiple-selector/style.less +78 -0
  67. package/src/component/notice-bar/index.jsx +3 -0
  68. package/src/component/notice-bar/notice-bar.jsx +86 -0
  69. package/src/component/notice-bar/style.less +72 -0
  70. package/src/component/notify/index.js +37 -0
  71. package/src/component/notify/notify.jsx +125 -0
  72. package/src/component/notify/style.less +48 -0
  73. package/src/component/picker/drawPicker.jsx +110 -0
  74. package/src/component/picker/index.js +3 -0
  75. package/src/component/picker/picker.jsx +380 -0
  76. package/src/component/picker/pickerItem.jsx +31 -0
  77. package/src/component/picker/style.less +80 -0
  78. package/src/component/pull-refresh/index.js +3 -0
  79. package/src/component/pull-refresh/pull-refresh.jsx +46 -0
  80. package/src/component/search-bar/index.jsx +3 -0
  81. package/src/component/search-bar/search-bar.jsx +97 -0
  82. package/src/component/search-bar/style.less +52 -0
  83. package/src/component/sign/index.jsx +3 -0
  84. package/src/component/sign/sign.jsx +33 -0
  85. package/src/component/sign/style.less +56 -0
  86. package/src/component/sort-item/index.jsx +3 -0
  87. package/src/component/sort-item/sort-item.jsx +52 -0
  88. package/src/component/sort-item/style.less +52 -0
  89. package/src/component/subscript/index.js +3 -0
  90. package/src/component/subscript/style.less +63 -0
  91. package/src/component/subscript/subscript.jsx +77 -0
  92. package/src/component/tab/index.jsx +6 -0
  93. package/src/component/tab/nav-child.jsx +63 -0
  94. package/src/component/tab/panel.jsx +22 -0
  95. package/src/component/tab/style.less +87 -0
  96. package/src/component/tab/tab.jsx +195 -0
  97. package/src/component/tag/index.jsx +3 -0
  98. package/src/component/tag/style.less +56 -0
  99. package/src/component/tag/tag.jsx +52 -0
  100. package/src/component/toast/content.jsx +31 -0
  101. package/src/component/toast/index.js +3 -0
  102. package/src/component/toast/style.less +50 -0
  103. package/src/component/toast/toast.jsx +62 -0
  104. package/src/component/touchable/index.js +3 -0
  105. package/src/component/touchable/style.less +33 -0
  106. package/src/component/touchable/touchable.jsx +43 -0
  107. package/src/component/uploader/index.jsx +445 -0
  108. package/src/component/uploader/js/get-image-base64.js +31 -0
  109. package/src/component/uploader/js/get-image-detail.js +26 -0
  110. package/src/component/uploader/js/index.js +77 -0
  111. package/src/component/uploader/js/merge-class-name.js +14 -0
  112. package/src/component/uploader/js/old-compress-function.js +64 -0
  113. package/src/component/uploader/js/request.js +62 -0
  114. package/src/component/uploader/js/tools.js +115 -0
  115. package/src/component/uploader/jsx/config.jsx +36 -0
  116. package/src/component/uploader/jsx/img-preview.jsx +41 -0
  117. package/src/component/uploader/jsx/thumbnails.jsx +27 -0
  118. package/src/component/uploader/styles/index.less +158 -0
  119. package/src/index.js +1 -0
  120. package/src/index.jsx +64 -0
  121. package/src/styles/color.less +51 -0
  122. package/src/styles/font.less +14 -0
  123. package/src/styles/format-theme.less +27 -0
  124. package/src/styles/index.less +26 -0
  125. package/src/styles/spacing.less +3 -0
  126. package/src/styles/var.less +3 -0
  127. package/src/tools/create-body-container.js +47 -0
  128. package/src/tools/limit-body-scroll.js +17 -0
  129. package/src/tools/limit-document-scroll.js +12 -0
  130. package/src/tools/merge-class-name.js +14 -0
  131. package/src/tools/object-key-check.js +3 -0
  132. package/src/tools/pinyin.js +6 -0
  133. package/src/tools/proptypes.js +51 -0
  134. package/src/tools/style.less +14 -0
  135. package/test/cases/case-button01.assert.js +6 -0
  136. package/test/cases/case-button01.source.jsx +28 -0
  137. package/test/cases/case-checkbox01.assert.js +6 -0
  138. package/test/cases/case-checkbox01.source.jsx +20 -0
  139. package/test/cases/case-dialog01.assert.js +6 -0
  140. package/test/cases/case-dialog01.source.jsx +45 -0
  141. package/test/cases/case-drawer01.assert.js +6 -0
  142. package/test/cases/case-drawer01.source.jsx +85 -0
  143. package/test/cases/case-icons01.assert.js +6 -0
  144. package/test/cases/case-icons01.source.jsx +25 -0
  145. package/test/cases/case-indexSortList01.assert.js +6 -0
  146. package/test/cases/case-indexSortList01.source.jsx +74 -0
  147. package/test/cases/case-input01.assert.js +6 -0
  148. package/test/cases/case-input01.source.jsx +24 -0
  149. package/test/cases/case-listView01.assert.js +6 -0
  150. package/test/cases/case-listView01.source.jsx +64 -0
  151. package/test/cases/case-multiplePicker01.assert.js +6 -0
  152. package/test/cases/case-multiplePicker01.source.jsx +60 -0
  153. package/test/cases/case-multipleSelector01.assert.js +6 -0
  154. package/test/cases/case-multipleSelector01.source.jsx +49 -0
  155. package/test/cases/case-noticebar01.assert.js +6 -0
  156. package/test/cases/case-noticebar01.source.jsx +21 -0
  157. package/test/cases/case-picker01.assert.js +6 -0
  158. package/test/cases/case-picker01.source.jsx +61 -0
  159. package/test/cases/case-refresh01.assert.js +6 -0
  160. package/test/cases/case-refresh01.source.jsx +33 -0
  161. package/test/cases/case-sign01.assert.js +6 -0
  162. package/test/cases/case-sign01.source.jsx +21 -0
  163. package/test/cases/case-subscript01.assert.js +6 -0
  164. package/test/cases/case-subscript01.source.jsx +30 -0
  165. package/test/cases/case-tab01.assert.js +6 -0
  166. package/test/cases/case-tab01.source.jsx +51 -0
  167. package/test/cases/case-toast01.assert.js +6 -0
  168. package/test/cases/case-toast01.source.jsx +32 -0
  169. package/test/cases/case-uploader01.assert.js +6 -0
  170. package/test/cases/case-uploader01.source.jsx +45 -0
  171. package/test.config.js +25 -0
@@ -0,0 +1,33 @@
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import styles from './style.less';
4
+
5
+ import mergeClassName from '../../tools/merge-class-name';
6
+
7
+ const Sign = (args) => {
8
+ const { plain, text, className, color, ...other } = args;
9
+ const plainText = plain ? 'plain' : 'default';
10
+ return (
11
+ <span
12
+ {...other}
13
+ className={mergeClassName([className, styles[`sign-${plainText}`], styles[`sign-${plainText}-${color}`]])}
14
+ >
15
+ {text}
16
+ </span>
17
+ );
18
+ };
19
+
20
+ Sign.propTypes = {
21
+ text: PropTypes.node,
22
+ // size: PropTypes.oneOfType(['default', 'large']),
23
+ plain: PropTypes.bool,
24
+ color: PropTypes.oneOfType(['green', 'red', 'blue', 'purple', 'fuchsia', 'yellow']),
25
+ className: PropTypes.string,
26
+ };
27
+
28
+ Sign.defaultProps = {
29
+ // size: 'default',
30
+ color: 'green',
31
+ };
32
+
33
+ export default Sign;
@@ -0,0 +1,56 @@
1
+ @import "../../styles/color";
2
+
3
+ .sign-default {
4
+ display: inline-block;
5
+ padding: 2px 5px;
6
+ border-radius: 2px;
7
+ text-align: center;
8
+ font-size: 12px;
9
+
10
+ &-green {
11
+ background: #DCFAEA;
12
+ color: @green;
13
+ }
14
+ &-red {
15
+ background: #FFECEB;
16
+ color: @red;
17
+ }
18
+ &-blue {
19
+ background: #EBF5FF;
20
+ color: @blue;
21
+ }
22
+ &-purple {
23
+ background: #EBE6FF;
24
+ color: #8C68FE;
25
+ }
26
+ &-fuchsia {
27
+ background: #FEEBFF;
28
+ color: #B530FF;
29
+ }
30
+ &-yellow {
31
+ background: #FFFBEB;
32
+ color: #E6A117;
33
+ }
34
+ }
35
+
36
+ .sign-plain {
37
+ display: inline-block;
38
+ padding: 4px 10px;
39
+ border-radius: 4px;
40
+ text-align: center;
41
+ border: 1px solid;
42
+ font-size: 12px;
43
+
44
+ &-pink{
45
+ border-color: #FDD3D0;
46
+ color: #FB9088;
47
+ }
48
+ &-yellow{
49
+ border-color: #F6DDA1;
50
+ color: #E9AB17;
51
+ }
52
+ &-green{
53
+ border-color: #DCFAEA;
54
+ color: @green;
55
+ }
56
+ }
@@ -0,0 +1,3 @@
1
+ import SortItem from './sort-item';
2
+
3
+ export default SortItem;
@@ -0,0 +1,52 @@
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import styles from './style.less';
4
+
5
+ class SortItem extends React.Component {
6
+ render() {
7
+ const {
8
+ title, children, onChange, value, options, className, order, style
9
+ } = this.props;
10
+ const isDesc = options.desc === value;
11
+ const isAsc = options.asc === value;
12
+ return (
13
+ <div
14
+ style={style}
15
+ className={[styles.sortItem, className, (isDesc || isAsc) && styles.highlight].join(' ')}
16
+ onClick={() => {
17
+ const key = isDesc ? 'desc' : isAsc ? 'asc' : 'default';
18
+ console.log('key', key, order.findIndex(v => v === key))
19
+ onChange(options[order[order.findIndex(v => v === key)+1]]);
20
+ }}
21
+ >
22
+ <div className={styles.title}>{title || children}</div>
23
+ <span
24
+ className={[
25
+ styles.icon,
26
+ isDesc && styles.asc,
27
+ isAsc && styles.desc
28
+ ].join(' ')}
29
+ />
30
+ </div>
31
+ );
32
+ }
33
+ }
34
+
35
+ SortItem.propTypes = {
36
+ style: PropTypes.object,
37
+ title: PropTypes.oneOfType([PropTypes.string, PropTypes.element]),
38
+ value: PropTypes.any,
39
+ options: PropTypes.array,
40
+ onChange: PropTypes.func,
41
+ };
42
+
43
+ SortItem.defaultProps = {
44
+ options: {
45
+ desc: '0',
46
+ asc: '1',
47
+ default: undefined
48
+ }, // 升序=0;降序=1
49
+ order: ['default', 'asc', 'desc'],
50
+ };
51
+
52
+ export default SortItem;
@@ -0,0 +1,52 @@
1
+ @import "../../styles/var";
2
+
3
+ .sortItem{
4
+ display: inline-block;
5
+ cursor: pointer;
6
+ padding: 5px 10px 5px 8px;
7
+ font-size:14px;
8
+ font-family: @medium;
9
+ color: @text-color;
10
+ user-select: none;
11
+ .title{
12
+ display: inline-block;
13
+ color: @text-color;
14
+ }
15
+ &.highlight{
16
+ border-color: @primary-color;
17
+ color: @primary-color;
18
+ }
19
+ .icon {
20
+ position: relative;
21
+ margin-left: 4px;
22
+ top: 2px;
23
+ height: 14px;
24
+ display: inline-block;
25
+ &:before{
26
+ position: absolute;
27
+ content: '';
28
+ border-left: 4px solid transparent;
29
+ border-right: 4px solid transparent;
30
+ border-bottom: 4px solid #A5ABB8;
31
+ top: 2px;
32
+ }
33
+ &:after{
34
+ position: absolute;
35
+ content: '';
36
+ border-left: 4px solid transparent;
37
+ border-right: 4px solid transparent;
38
+ border-top: 4px solid #A5ABB8;
39
+ bottom: 2px;
40
+ }
41
+ }
42
+ .asc{
43
+ &:before{
44
+ border-bottom: 4px solid @primary-color;
45
+ }
46
+ }
47
+ .desc{
48
+ &:after{
49
+ border-top: 4px solid @primary-color;
50
+ }
51
+ }
52
+ }
@@ -0,0 +1,3 @@
1
+ import Subscript from './subscript';
2
+
3
+ export default Subscript;
@@ -0,0 +1,63 @@
1
+ @import "../../styles/color";
2
+
3
+ .container-default{
4
+ width: 100px;
5
+ height: 80px;
6
+ position: absolute;
7
+ top: 0;
8
+ left: 0;
9
+
10
+ overflow: hidden;
11
+ cursor: pointer;
12
+
13
+ .tag{
14
+ color: @white;
15
+ text-align: center;
16
+ position: absolute;
17
+ width: 100%;
18
+ left: -50%;
19
+ }
20
+
21
+ .blue{
22
+ background: @blue;
23
+ }
24
+ .green{
25
+ background: @green;
26
+ }
27
+ .red{
28
+ background: @red;
29
+ }
30
+ .orange{
31
+ background: @orange;
32
+ }
33
+ }
34
+
35
+ .container-full {
36
+ position: relative;
37
+ border-radius: inherit;
38
+ overflow: hidden;
39
+
40
+ .tag {
41
+ position: absolute;
42
+ color: @white;
43
+ display: flex;
44
+ justify-content: center;
45
+ align-items: flex-end;
46
+ padding-bottom: 2%;
47
+ }
48
+
49
+ .blue{
50
+ background: @blue;
51
+ }
52
+ .green{
53
+ background: @green;
54
+ }
55
+ .red{
56
+ background: @red;
57
+ }
58
+ .orange{
59
+ background: @orange;
60
+ }
61
+ }
62
+
63
+
@@ -0,0 +1,77 @@
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import styles from './style.less';
4
+ import mergeClassName from '../../tools/merge-class-name';
5
+
6
+ const Tag = (props) => {
7
+ const {
8
+ style = {},
9
+ className = '',
10
+ full,
11
+ size,
12
+ color,
13
+ text,
14
+ rotate,
15
+ lateX,
16
+ lateY,
17
+ ...otherProps
18
+ } = props;
19
+ const theme = full ? 'full' : 'default';
20
+
21
+ return (
22
+ <div
23
+ className={
24
+ mergeClassName([
25
+ styles[`container-${theme}`],
26
+ className,
27
+ ])
28
+ }
29
+ style={full ? {
30
+ width: size,
31
+ height: size,
32
+ } : {}}
33
+ {...otherProps}
34
+ >
35
+ <div
36
+ className={
37
+ mergeClassName([
38
+ styles.tag,
39
+ styles[color],
40
+ ])
41
+ }
42
+ style={full ? {
43
+ width: size,
44
+ height: size,
45
+ transform: `rotate(-45deg) translate(${parseInt(size, 10) / 5}px,-${parseInt(size, 10) / 5 * 2}px)`,
46
+ transformOrigin: `0 ${parseInt(size, 10)}px`,
47
+ ...style,
48
+ } : {
49
+ transform: `rotate(${rotate}) translate(${lateX}, ${lateY})`,
50
+ ...style,
51
+ }}
52
+ >
53
+ {text}
54
+ </div>
55
+ </div>
56
+ );
57
+ };
58
+
59
+ Tag.propTypes = {
60
+ color: PropTypes.oneOf(['blue', 'green', 'red', 'orange']),
61
+ text: PropTypes.node,
62
+ children: PropTypes.node,
63
+ rotate: PropTypes.string, // 旋转角度
64
+ lateX: PropTypes.string, // 离直角的左右距离
65
+ lateY: PropTypes.string, // 离直角的偏移距离
66
+ full: PropTypes.bool,
67
+ size: PropTypes.number,
68
+ };
69
+
70
+ Tag.defaultProps = {
71
+ color: 'blue',
72
+ rotate: '-45deg',
73
+ lateX: '8px',
74
+ lateY: '30px',
75
+ };
76
+
77
+ export default Tag;
@@ -0,0 +1,6 @@
1
+ import Tab from './tab';
2
+ import Panel from './panel';
3
+
4
+ Tab.Panel = Panel;
5
+
6
+ export default Tab;
@@ -0,0 +1,63 @@
1
+ import React, { PureComponent, createRef } from 'react';
2
+ import PropTypes from 'prop-types';
3
+ import styles from './style.less';
4
+
5
+ import mergeClassName from '../../tools/merge-class-name';
6
+
7
+ const setStyle = (width, auto) => {
8
+ const style = {};
9
+
10
+ if (auto) {
11
+ Object.assign(style, { minWidth: width });
12
+ } else {
13
+ Object.assign(style, { flex: 1 });
14
+ }
15
+
16
+ return style;
17
+ };
18
+
19
+ class Child extends PureComponent {
20
+ constructor(props) {
21
+ super(props);
22
+ this.navChild = createRef();
23
+ this.text = createRef();
24
+ this.click = this.click.bind(this);
25
+ }
26
+
27
+ click() {
28
+ const { name, onClick } = this.props;
29
+ onClick(name);
30
+ }
31
+
32
+ render() {
33
+ const { tab, name, active, color, width, autoWidth } = this.props;
34
+ return (
35
+ <div
36
+ ref={this.navChild}
37
+ style={setStyle(width, autoWidth)}
38
+ className={mergeClassName([styles['sm-tab'], name === active && styles[`sm-tab-active-${color}`]])}
39
+ onClick={this.click}
40
+ >
41
+ <span ref={this.text} className={styles['sm-ellipsis']}>{tab}</span>
42
+ </div>
43
+ );
44
+ }
45
+ }
46
+
47
+ Child.propTypes = {
48
+ name: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
49
+ tab: PropTypes.oneOfType([PropTypes.string, PropTypes.symbol]),
50
+ active: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
51
+ onClick: PropTypes.func,
52
+ color: PropTypes.oneOfType(['blue', 'red']),
53
+ width: PropTypes.string,
54
+ autoWidth: PropTypes.bool,
55
+ };
56
+
57
+ Child.defaultProps = {
58
+ color: 'blue',
59
+ width: '',
60
+ autoWidth: false,
61
+ };
62
+
63
+ export default Child;
@@ -0,0 +1,22 @@
1
+ import React from 'react';
2
+ import PropTypes from 'prop-types';
3
+
4
+ // 作为一个「跳板」的存在,目的是把tab和children传过去给tabs组件
5
+ class Panel extends React.PureComponent {
6
+ render() {
7
+ const { tab, name } = this.props;
8
+ return (
9
+ <div>
10
+ {tab}
11
+ {name}
12
+ </div>
13
+ );
14
+ }
15
+ }
16
+
17
+ Panel.propTypes = {
18
+ name: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),
19
+ tab: PropTypes.oneOfType([PropTypes.string, PropTypes.symbol]),
20
+ };
21
+
22
+ export default Panel;
@@ -0,0 +1,87 @@
1
+ @import "../../styles/font";
2
+ @import "../../styles/color";
3
+ @import "../../styles/index";
4
+
5
+ .sm-tabs {
6
+ //position: relative;
7
+ &-border {
8
+ border-bottom: 1px solid @gray-light;
9
+ }
10
+
11
+ overflow: hidden;
12
+
13
+ &-nav {
14
+ display: flex;
15
+
16
+ position: relative;
17
+
18
+ user-select: none;
19
+ //transition-duration: 0.15s;
20
+
21
+ &-scroll{
22
+ overflow-x: auto;
23
+ scroll-behavior: smooth; // 滚动的过渡效果
24
+ -webkit-overflow-scrolling: touch;
25
+
26
+ &::-webkit-scrollbar {
27
+ display: none;
28
+ }
29
+ }
30
+ }
31
+
32
+ &-line {
33
+ height: 3px;
34
+
35
+ position: absolute;
36
+ bottom: 0;
37
+ left: 0;
38
+ z-index: 1;
39
+
40
+ background-color: @blue;
41
+ border-radius: 3px;
42
+
43
+ transition-duration: 0.15s;
44
+
45
+ &-red {
46
+ background-color: @red;
47
+ }
48
+
49
+ &-blue {
50
+ background-color: @blue;
51
+ }
52
+ }
53
+ }
54
+
55
+ .sm-tab {
56
+ position: relative;
57
+
58
+ flex-shrink: 0;
59
+ box-sizing: border-box;
60
+ min-width: 0;
61
+ padding: 0 15px;
62
+ color: @gray-darker;
63
+ font-size: @size-normal;
64
+
65
+ text-align: center;
66
+ cursor: pointer;
67
+
68
+ span{
69
+ max-width: 100%;
70
+ display: inline-block; // 为了获取span中内容的长度
71
+ line-height: 40px;
72
+ }
73
+
74
+ &-active-blue{
75
+ color: @blue;
76
+ font-weight: @weight-bold;
77
+ }
78
+
79
+ &-active-red{
80
+ color: @red;
81
+ font-weight: @weight-bold;
82
+ }
83
+ }
84
+
85
+ .tab-header{
86
+ display: flex;
87
+ }