meixioacomponent 1.1.49 → 2.0.1

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.
Files changed (107) hide show
  1. package/lib/components/index.d.ts +1 -1
  2. package/lib/components/index.d.ts.map +1 -1
  3. package/lib/components/index.js +3 -3
  4. package/lib/config/use/UseImg.d.ts.map +1 -1
  5. package/lib/config/use/UseImg.js +1 -0
  6. package/lib/meixioacomponent.common.js +17531 -38668
  7. package/lib/meixioacomponent.umd.js +17584 -38721
  8. package/lib/meixioacomponent.umd.min.js +6 -159
  9. package/lib/style/font-family.less +2 -1
  10. package/lib/style/index.less +9 -2
  11. package/lib/style/meixioacomponenticonfont/TCloudNumberVF.ttf +0 -0
  12. package/lib/style/tableStyle.less +15 -13
  13. package/lib/style/tdesignStyle.less +9 -0
  14. package/lib/style/variables.less +1 -1
  15. package/package.json +3 -3
  16. package/packages/components/base/baseAppendix/baseAppendix.vue +12 -11
  17. package/packages/components/base/baseArea/baseArea.vue +49 -54
  18. package/packages/components/base/baseAvatar/baseAvatar.vue +16 -14
  19. package/packages/components/base/baseButton/baseButton.vue +80 -0
  20. package/packages/components/base/baseButton/index.js +6 -0
  21. package/packages/components/base/baseButtonHandle/baseButtonHandle.vue +36 -4
  22. package/packages/components/base/baseDialog/index.vue +131 -102
  23. package/packages/components/base/baseDialogTable/dialogTable.vue +1 -0
  24. package/packages/components/base/baseDrawer/index.vue +119 -89
  25. package/packages/components/base/baseEdito/baseEdito.vue +56 -50
  26. package/packages/components/base/baseFixedHeader/baseFixedHeader.vue +44 -37
  27. package/packages/components/base/baseImageViewer/image-viewer.vue +29 -311
  28. package/packages/components/base/baseImg/baseImg.vue +8 -7
  29. package/packages/components/base/baseInforWrap/baseInforWrap.vue +14 -7
  30. package/packages/components/base/baseLineInfoItem/baseLineInfoItem.vue +4 -4
  31. package/packages/components/base/baseList/index.vue +10 -23
  32. package/packages/components/base/baseMoverVerifiBar/baseMoverVerifiBar.vue +7 -13
  33. package/packages/components/base/baseNumberInput/index.vue +42 -158
  34. package/packages/components/base/basePagination/index.vue +24 -31
  35. package/packages/components/base/basePlainTable/basePlainTable.vue +89 -183
  36. package/packages/components/base/basePopoverButton/index.vue +45 -36
  37. package/packages/components/base/baseSection/baseSection.vue +17 -8
  38. package/packages/components/base/baseSingleImgUpload/index.vue +2 -2
  39. package/packages/components/base/baseSkeleton/baseSkeleton.vue +0 -1
  40. package/packages/components/base/baseStoreSelect/index.vue +48 -64
  41. package/packages/components/base/baseTag/index.vue +12 -96
  42. package/packages/components/base/baseText/index.vue +66 -79
  43. package/packages/components/base/baseTimeLine/baseTimeLineLeft.vue +1 -1
  44. package/packages/components/base/baseTimeLine/baseTimeLineRight.vue +1 -1
  45. package/packages/components/base/baseTimeTypeSelect/base_time_type_select.vue +73 -78
  46. package/packages/components/base/baseToggle/toggle.vue +28 -48
  47. package/packages/components/base/baseTreeSelect/index.vue +20 -147
  48. package/packages/components/base/baseUpload/baseUploadItem.vue +74 -77
  49. package/packages/components/base/baseUpload/mixins.js +0 -1
  50. package/packages/components/base/baseUpload/uploadMediaView.vue +14 -13
  51. package/packages/components/base/baseUploadImgAndName/index.vue +28 -11
  52. package/packages/components/base/baseUploadTemplate/index.vue +27 -11
  53. package/packages/components/base/baseVideo/index.vue +9 -7
  54. package/packages/components/base/upload/upload.vue +17 -14
  55. package/packages/components/base/upload/uploadItem.vue +40 -46
  56. package/packages/components/dialogCache/index.vue +30 -24
  57. package/packages/components/index.js +3 -3
  58. package/packages/components/index.ts +4 -3
  59. package/packages/components/mixins/tableSectionMixins.js +0 -12
  60. package/packages/components/proForm/dialogForm/baseDialogForm.vue +17 -14
  61. package/packages/components/proForm/proForm/proFormItem/pro_form_item.vue +95 -79
  62. package/packages/components/proForm/proForm/pro_form.vue +47 -52
  63. package/packages/components/proPageTable/oaProTableSearch/oa_pro-table-search.vue +2 -2
  64. package/packages/components/proPageTable/oaProTableSearch/oa_pro_screen.vue +19 -10
  65. package/packages/components/proPageTable/oaProTableSearch/oa_pro_screen_item.vue +28 -27
  66. package/packages/components/proPageTable/oa_pro_colum_config.vue +8 -10
  67. package/packages/components/proPageTable/oa_pro_footer.vue +15 -15
  68. package/packages/components/proPageTable/oa_pro_table-header.vue +19 -31
  69. package/packages/components/proPageTable/oa_pro_table.vue +208 -284
  70. package/packages/components/proPageTable/oa_pro_table_check_handle_bar.vue +28 -16
  71. package/packages/components/searchHeader/searchHeader.vue +16 -17
  72. package/packages/components/style/font-family.less +2 -1
  73. package/packages/components/style/index.less +9 -2
  74. package/packages/components/style/meixioacomponenticonfont/TCloudNumberVF.ttf +0 -0
  75. package/packages/components/style/tableStyle.less +15 -13
  76. package/packages/components/style/tdesignStyle.less +9 -0
  77. package/packages/components/style/variables.less +1 -1
  78. package/packages/config/use/UseImg.js +1 -0
  79. package/packages/config/use/UseImg.ts +1 -0
  80. package/packages/utils/upload.js +61 -72
  81. package/packages/utils/utils.js +316 -276
  82. package/lib/fonts/element-icons.f1a45d74.ttf +0 -0
  83. package/lib/fonts/element-icons.ff18efd1.woff +0 -0
  84. package/lib/style/element/common_class.less +0 -3
  85. package/lib/style/element/fonts/element-icons.ttf +0 -0
  86. package/lib/style/element/fonts/element-icons.woff +0 -0
  87. package/lib/style/element/index.css +0 -30219
  88. package/packages/components/base/elDatePicker/basic/date-table.vue +0 -441
  89. package/packages/components/base/elDatePicker/basic/month-table.vue +0 -269
  90. package/packages/components/base/elDatePicker/basic/time-spinner.vue +0 -304
  91. package/packages/components/base/elDatePicker/basic/year-table.vue +0 -111
  92. package/packages/components/base/elDatePicker/index.js +0 -6
  93. package/packages/components/base/elDatePicker/index.vue +0 -28
  94. package/packages/components/base/elDatePicker/panel/date-range.vue +0 -680
  95. package/packages/components/base/elDatePicker/panel/date.vue +0 -609
  96. package/packages/components/base/elDatePicker/panel/month-range.vue +0 -289
  97. package/packages/components/base/elDatePicker/panel/time-range.vue +0 -248
  98. package/packages/components/base/elDatePicker/panel/time-select.vue +0 -178
  99. package/packages/components/base/elDatePicker/panel/time.vue +0 -186
  100. package/packages/components/base/elDatePicker/picker/date-picker.js +0 -55
  101. package/packages/components/base/elDatePicker/picker/time-picker.js +0 -39
  102. package/packages/components/base/elDatePicker/picker/time-select.js +0 -21
  103. package/packages/components/base/elDatePicker/picker.vue +0 -956
  104. package/packages/components/style/element/common_class.less +0 -3
  105. package/packages/components/style/element/fonts/element-icons.ttf +0 -0
  106. package/packages/components/style/element/fonts/element-icons.woff +0 -0
  107. package/packages/components/style/element/index.css +0 -30219
@@ -1,16 +1,9 @@
1
1
  <template>
2
2
 
3
- <div :class="[size]" class="tag-wrap">
4
- <!-- 当是纯色的时候-->
5
- <el-tag v-if="type=== 'pure' " :size="size" :type="stateType" class="tag" effect="dark">{{
6
- stateText
7
- }}
8
- </el-tag>
3
+ <div class="tag-wrap" v-if="stateText">
4
+ <t-tag v-if="type==='pure'" :size="componentSize" :theme="stateType">{{ stateText }}</t-tag>
9
5
 
10
- <!-- 当是简单的时候-->
11
- <div v-else-if="type==='simple' " :class="[stateType]" class="simple-tag-wrap">
12
- <p>{{ stateText }}</p>
13
- </div>
6
+ <t-tag v-else-if="type==='simple'" :size="componentSize" variant="light">{{ stateText }}</t-tag>
14
7
 
15
8
 
16
9
  <base-store-select
@@ -23,10 +16,13 @@
23
16
  @selectDataComplated="selectDataComplated"
24
17
  ></base-store-select>
25
18
  </div>
19
+
20
+ <base-text v-else :content="false"></base-text>
26
21
  </template>
27
22
 
28
23
  <script>
29
24
  import {stateTagMixin} from "./stateTag";
25
+ import {TransomComponentSize} from "../../../utils/utils";
30
26
 
31
27
  export default {
32
28
  name: 'baseTag',
@@ -43,6 +39,12 @@ export default {
43
39
  default: 'pure'
44
40
  }
45
41
  },
42
+ computed: {
43
+ componentSize() {
44
+ return TransomComponentSize(this.$props.size)
45
+ }
46
+ },
47
+
46
48
 
47
49
  mixins: [stateTagMixin],
48
50
  };
@@ -51,90 +53,4 @@ export default {
51
53
  <style lang="less" scoped>
52
54
 
53
55
 
54
- .tag-wrap {
55
-
56
- width: fit-content;
57
-
58
- .simple-tag-wrap {
59
- width: auto;
60
- height: auto;
61
- display: flex;
62
- flex-flow: row nowrap;
63
- align-items: center;
64
- padding: var(--padding-4);
65
- justify-content: flex-start;
66
- padding-left: calc(var(--margin-4) + 4px + 8px);
67
-
68
- p {
69
- position: relative;
70
- color: var(--font-color-d);
71
-
72
- &:before {
73
- content: '';
74
- width: 8px;
75
- height: 8px;
76
- border-radius: 50%;
77
- display: block;
78
- position: absolute;
79
- top: 50%;
80
- left: calc(calc(var(--margin-4) + 4px) * -1);
81
- transform: translateY(-50%);
82
- }
83
- }
84
- }
85
-
86
- .primary {
87
- p {
88
- &:before {
89
- background: var(--color-primary);
90
- }
91
- }
92
- }
93
-
94
- .success {
95
- p {
96
- &:before {
97
- background: var(--color-success);
98
- }
99
- }
100
- }
101
-
102
- .danger {
103
- p {
104
- &:before {
105
- background: var(--color-error);
106
- }
107
- }
108
- }
109
-
110
- .warning {
111
- p {
112
- &:before {
113
- background: var(--color-warn);
114
- }
115
- }
116
- }
117
-
118
-
119
- }
120
-
121
- .mini {
122
- .simple-tag-wrap {
123
- p {
124
- font-size: var(--font-size-s);
125
- line-height: calc(var(--font-size-s) + 8px);
126
- }
127
- }
128
- }
129
-
130
- .small {
131
- .simple-tag-wrap {
132
- p {
133
- font-size: var(--font-size-base);
134
- line-height: calc(var(--font-size-base) + 8px);
135
- }
136
- }
137
- }
138
-
139
-
140
56
  </style>
@@ -1,5 +1,38 @@
1
- <script type="text/jsx">
1
+ <template>
2
+ <div :class="[ 'base-text-wrap' ]" v-if="content" :title="content" @click="onClick">
3
+ <div v-if="type==='phone'" :class="['content-wrap',type]">
4
+ <MobileIcon></MobileIcon>
5
+ {{content}}
6
+ </div>
7
+ <div v-else-if="type==='time'" :class="['content-wrap', type]">
8
+ <TimeIcon></TimeIcon>
9
+ {{filterContent()}}
10
+ </div>
11
+ <div v-else-if="type==='money'" :class="[type]">
12
+ <t-statistic :value="content" prefix="¥" trend="increase" />
13
+ </div>
14
+ <div v-else-if="type==='number'" :class="[type]">
15
+ {{filterContent()}}
16
+ </div>
17
+
18
+ <div v-else class="default">
19
+ {{filterContent()}}
20
+ </div>
21
+
22
+ </div>
23
+
24
+
25
+
26
+ <div v-else class="empty">暂无数据</div>
27
+
28
+
29
+
30
+ </template>
31
+
32
+
33
+ <script>
2
34
  import {FilterTime} from "../../../utils/utils";
35
+ import {MobileIcon,TimeIcon} from "tdesign-icons-vue"
3
36
 
4
37
  export default {
5
38
  name: "baseText",
@@ -9,34 +42,18 @@ export default {
9
42
  }
10
43
  },
11
44
 
12
- render(createElement, context) {
13
- return (
14
- <div class={`base-text-wrap ${this.type}`} ref="baseTextRef">
15
- <i class={`${this.renderIcon()}`} style={{color: `${this.content ? '' : 'var(--color-error)'}`}}></i>
16
- <el-tooltip
17
- disabled={this.toolTipFlag}
18
- content={this.filterContent()} effect="dark" placement="top">
19
- <div class={`content-wrap`}>
20
- <p onClick={this.onClick}
21
- style={this.textStyle}
22
- ref="pRef">{`${this.filterContent()}`}</p>
23
- </div>
24
- </el-tooltip>
25
- </div>
26
- )
27
-
45
+ components:{
46
+ MobileIcon,
47
+ TimeIcon
28
48
  },
49
+
29
50
  mounted() {
30
51
  this.$nextTick(() => {
31
52
  this.setToolTipFlag();
32
53
  })
33
54
  },
34
55
  computed: {
35
- textStyle() {
36
- return {
37
- 'textAlign': this.align
38
- }
39
- }
56
+
40
57
  },
41
58
  props: {
42
59
  type: {},
@@ -70,7 +87,7 @@ export default {
70
87
  }
71
88
  switch (type) {
72
89
  case 'time':
73
- return FilterTime(content, 'YYYY-MM-DD HH:mm:ss')
90
+ return FilterTime(content, 'YYYY/MM/DD HH:mm:ss')
74
91
  case 'money':
75
92
  return `¥ ${parseFloat(content.toString()).toFixed(2)}`
76
93
  }
@@ -99,12 +116,11 @@ export default {
99
116
 
100
117
  },
101
118
  setToolTipFlag() {
102
- const scrollWidth = this.$refs.pRef.scrollWidth;
103
- const offsetWidth = this.$refs.pRef.offsetWidth;
104
- if (scrollWidth > offsetWidth) {
105
- this.toolTipFlag = false;
106
-
107
- }
119
+ // const scrollWidth = this.$refs.pRef.scrollWidth;
120
+ // const offsetWidth = this.$refs.pRef.offsetWidth;
121
+ // if (scrollWidth > offsetWidth) {
122
+ // this.toolTipFlag = false;
123
+ // }
108
124
  },
109
125
  onClick() {
110
126
  const {type} = this.$props;
@@ -119,64 +135,35 @@ export default {
119
135
  </script>
120
136
 
121
137
  <style lang="less" scoped>
122
- .base-text-wrap {
123
- width: 100%;
124
- height: auto;
125
- display: flex;
126
- align-items: center;
127
-
128
- i {
129
- margin-right: var(--margin-2);
130
- }
131
138
 
132
- .content-wrap {
133
- width: 100%;
134
- height: 100%;
135
-
136
- p {
137
- width: 100%;
138
- display: inherit;
139
- overflow: hidden;
140
- white-space: nowrap;
141
- text-overflow: ellipsis;
142
- color: var(--font-color-d);
143
- font-size: var(--font-size-base);
144
- }
139
+ .base-text-wrap{
140
+ width: fit-content;
141
+ font-size: var(--font-size-base);
142
+ .content-wrap{
143
+ display: flex;
144
+ align-items: center;
145
+ flex-flow: row nowrap;
146
+ justify-content: flex-start;
145
147
  }
146
-
147
- }
148
-
149
- .money, .number {
150
- p {
148
+ .time,.number,.money{
149
+ font-family: TCloudNumber !important;
150
+ }
151
+ .money{
151
152
  font-weight: var(--font-weight-kg);
152
153
  }
153
- }
154
154
 
155
155
 
156
- .money {
157
- p {
158
- color: var(--color-warn) !important;
156
+ /deep/ .t-statistic-content-prefix{
157
+ font-size: var(--font-size-s) !important;
159
158
  }
160
- }
161
-
162
- .handle {
163
- width: fit-content !important;
164
-
165
- p {
166
- color: var(--color-primary) !important;
167
- cursor: pointer;
168
-
169
- &:hover {
170
- text-decoration: underline !important;
171
- }
159
+ /deep/ .t-statistic-content-value{
160
+ font-size: var(--font-size-base) !important;
161
+ font-family: TCloudNumber !important;
172
162
  }
173
- }
174
-
175
- .phone, .time {
176
- border-radius: var(--radius);
177
163
 
178
- .content-wrap {
179
- width: calc(100% - 18px);
180
- }
164
+ }
165
+ .empty{
166
+ color: var(--font-color-ds);
167
+ font-size: var(--font-size-s);
181
168
  }
182
169
  </style>
@@ -97,7 +97,7 @@ export default {
97
97
  }
98
98
 
99
99
  .time-week-wrap {
100
- padding: 0px var(--padding-5);
100
+ padding: 0 var(--padding-5);
101
101
 
102
102
  span {
103
103
  color: var(--font-color-d);
@@ -48,7 +48,7 @@ export default {
48
48
  .base-time-line-right-wrap {
49
49
  width: auto;
50
50
  height: auto;
51
- padding: 0px var(--padding-5);
51
+ padding: 0 var(--padding-5);
52
52
  .time-line-content {
53
53
  color: var(--font-color-d);
54
54
  size: var(--font-size-base);
@@ -1,91 +1,75 @@
1
1
  <template>
2
- <div class="base-time-type-select-wrap">
3
- <el-popover
4
- ref="popover"
5
- placement="bottom"
6
- trigger="click"
7
- @hide="eventHide"
8
- @show="eventShow"
9
- >
10
- <!-- 内容 -->
11
- <template>
12
- <div class="time-type-select-content">
13
- <div class="content-line-wrap">
14
- <div
15
- v-for="(item, index) in baseTimeTypeConfig"
16
- :key="index"
17
- class="content-line"
18
- >
19
- <div class="type-des">{{ item.text }}</div>
20
- <div class="line-item-wrap">
21
- <div
22
- v-for="(citem, cindex) in item.list"
23
- :key="cindex"
24
- :class="{
25
- select: selectLineItem
26
- ? selectLineItem == citem.key
27
- : citem.key == module,
28
- }"
29
- class="line-item"
30
- @click="selectLineItem = citem.key;timeModule=null;"
31
- >
32
- <span>{{ citem.text }}</span>
33
- </div>
34
- </div>
2
+ <t-popup v-model="isOpen" ref="popover" placement="bottom" trigger="click" @visible-change="visibleChange">
3
+ <template #content>
4
+ <div class="time-type-select-content">
5
+ <div class="content-line-wrap">
6
+ <div
7
+ v-for="(item, index) in baseTimeTypeConfig"
8
+ :key="index"
9
+ class="content-line"
10
+ >
11
+ <div class="type-des">{{ item.text }}</div>
12
+ <div class="line-item-wrap">
13
+ <t-check-tag v-for="(cItem, cIndex) in item.list"
14
+ :key="cIndex"
15
+ size="large"
16
+ :checked="selectLineItem?selectLineItem === cItem.key:cItem.key === module "
17
+ @click="selectLineItem = cItem.key;timeModule=null"
18
+ >{{ cItem.text }}
19
+ </t-check-tag>
20
+
35
21
  </div>
36
22
  </div>
37
- <div class="time-type-custom-wrap">
38
- <div class="type-des"><span>自定义</span></div>
39
- <div class="time-type-custom-content">
40
- <el-date-picker
41
- v-model="timeModule"
42
- end-placeholder="结束日期"
43
- range-separator=""
44
- size="small"
45
- start-placeholder="开始日期"
46
- style="width: 100%; margin-top: var(--margin-5)"
47
- type="daterange"
48
- value-format="timestamp"
49
- @change="onTimeChange"
50
- >
51
- </el-date-picker>
52
- </div>
23
+ </div>
24
+ <div class="time-type-custom-wrap">
25
+ <div class="type-des"><span>自定义</span></div>
26
+ <div class="time-type-custom-content">
27
+ <t-date-range-picker
28
+ v-model="timeModule"
29
+ size="small"
30
+ enable-time-picker=""
31
+ style="width: 100%; margin-top: var(--margin-4)"
32
+ valueType="time-stamp"
33
+ @change="onTimeChange"
34
+ >
35
+ </t-date-range-picker>
53
36
  </div>
54
- <div class="time-type-custom-footer">
55
- <div class="time-type-custom-footer-left">
56
- <slot name="footerByLeft"></slot>
57
- </div>
58
- <baseButtonHandle
59
- :config="handleConfig"
60
- class="button-handle-wrap"
61
- ></baseButtonHandle>
37
+ </div>
38
+ <div class="time-type-custom-footer">
39
+ <div class="time-type-custom-footer-left">
40
+ <slot name="footerByLeft"></slot>
62
41
  </div>
63
-
42
+ <baseButtonHandle
43
+ :config="handleConfig"
44
+ class="button-handle-wrap"
45
+ ></baseButtonHandle>
64
46
  </div>
65
- </template>
66
- <div
67
- slot="reference"
68
- :class="{
47
+
48
+ </div>
49
+ </template>
50
+ <div
51
+ :class="{
69
52
  'is-open': isOpen,
70
53
  }"
71
- class="time-type-select-input"
72
- @click="openSelectWrap"
54
+ class="time-type-select-input"
55
+ >
56
+ <t-input
57
+ v-model="showModule"
58
+ :readonly="true"
59
+ placeholder="请选择时间"
60
+ size="medium"
73
61
  >
74
- <el-input
75
- v-model="showModule"
76
- :readonly="true"
77
- :suffix-icon="suffixIcon"
78
- placeholder="请选择时间"
79
- size="small"
80
- >
81
- </el-input>
82
- </div>
83
- </el-popover>
84
- </div>
62
+ <template #suffix-icon>
63
+ <time-icon></time-icon>
64
+ </template>
65
+ </t-input>
66
+ </div>
67
+ </t-popup>
85
68
  </template>
86
69
 
87
70
  <script>
88
71
  import baseButtonHandle from "../baseButtonHandle/baseButtonHandle.vue";
72
+ import {TimeIcon} from "tdesign-icons-vue"
89
73
  //
90
74
  import {baseTimeTypeConfig} from "./config";
91
75
  import {FilterTime} from "../../../utils/utils";
@@ -130,6 +114,7 @@ export default {
130
114
  },
131
115
  components: {
132
116
  baseButtonHandle,
117
+ TimeIcon
133
118
  },
134
119
  computed: {
135
120
  module: {
@@ -200,12 +185,22 @@ export default {
200
185
 
201
186
  },
202
187
 
188
+ doClose() {
189
+ this.isOpen = false;
190
+ },
191
+
203
192
  eventHide() {
204
193
  this.isOpen = false;
205
194
  },
206
195
 
207
- openSelectWrap() {
208
- this.isOpen = !this.isOpen;
196
+ visibleChange() {
197
+ if (this.isOpen) {
198
+ this.eventShow()
199
+ } else {
200
+ this.eventHide();
201
+ }
202
+
203
+
209
204
  },
210
205
 
211
206
  confirm() {
@@ -220,7 +215,7 @@ export default {
220
215
  }
221
216
  this.$nextTick(() => {
222
217
  this.$emit("selectConfirm", this.module);
223
- this.$refs.popover.doClose();
218
+ // this.$refs.popover.doClose();
224
219
  })
225
220
  },
226
221
  onTimeChange() {
@@ -1,40 +1,17 @@
1
1
  <template>
2
- <div :class="[size]" class="toggle-wrap">
3
- <div
4
- v-for="(item, index) in toggleList"
5
- :key="index"
6
- :class="{
7
- disabled: disabled,
8
- selected: item.value == module,
9
- }"
10
- :style="{
11
- background: item.value == module ? toggleColor[toggleList.length>toggleColor.length? 0:index] : '' ,
12
- }"
13
- class="toggle-item-wrap"
14
- @click="handletoggle(item)"
15
- >
16
- <base-icon
17
- v-if="item.icon"
18
- :color="item.value == module ? `${toggleTextColor[toggleList.length>toggleColor.length? 0:index]}` : 's'"
19
- :event="disabled ? false : true"
20
- :name="item.icon"
21
- :size="`l`"
22
- @iconClick="handletoggle(item)"
23
- ></base-icon>
24
- <span
25
- v-else
26
- :style="{
27
- color:
28
- item.value == module ? `${toggleTextColor[toggleList.length>toggleTextColor.length? 0:index]} !important` : '',
29
- }"
30
- >
31
- {{ item.label }}
32
- </span>
33
- </div>
34
- </div>
2
+ <t-radio-group v-model="module" :disabled="disabled" variant="primary-filled" :size="componentSize">
3
+ <t-radio-button
4
+ :disabled="item.disabled"
5
+ v-for="(item, index) in toggleList"
6
+ :key="index"
7
+ :value="item.value">{{ item.label }}
8
+ </t-radio-button>
9
+ </t-radio-group>
35
10
  </template>
36
11
 
37
12
  <script>
13
+ import {TransomComponentSize} from "../../../utils/utils";
14
+
38
15
  export default {
39
16
  name: 'baseToggle',
40
17
  data() {
@@ -72,29 +49,30 @@ export default {
72
49
  computed: {
73
50
  module: {
74
51
  set(val) {
75
- this.$emit('input', val)
52
+ const {beforeHandle,toggleList} = this.$props
53
+ const index = toggleList.findIndex(item=>{return item.value===val});
54
+ const item = toggleList[index];
55
+ if (beforeHandle) {
56
+ beforeHandle(() => {
57
+ this.setModule(item)
58
+ this.$emit('input', val)
59
+ }, item)
60
+ } else {
61
+ this.$emit('input', val)
62
+ this.setModule(item)
63
+ }
76
64
  },
77
65
  get() {
78
66
  return this.$props.value
79
67
  },
80
68
  },
69
+ componentSize(){
70
+ return TransomComponentSize(this.$props.size);
71
+
72
+ }
81
73
  },
82
74
  methods: {
83
- handletoggle(item) {
84
- const {disabled} = this.$props
85
- if (disabled || item.value == this.module) return
86
- const {beforeHandle} = this.$props
87
- if (beforeHandle) {
88
- beforeHandle(() => {
89
- this.setModule(item)
90
- }, item)
91
- } else {
92
- this.setModule(item)
93
- }
94
- },
95
-
96
75
  setModule(item) {
97
- this.module = item.value
98
76
  this.$emit('handletoggle', item)
99
77
  },
100
78
  },
@@ -168,6 +146,7 @@ export default {
168
146
  font-size: var(--font-size-s);
169
147
  line-height: calc(var(--font-size-s) + 8px);
170
148
  padding: var(--padding) var(--padding-3) !important;
149
+
171
150
  span {
172
151
  font-size: var(--font-size-s) !important;
173
152
  }
@@ -178,6 +157,7 @@ export default {
178
157
  .toggle-item-wrap {
179
158
  padding: 0px calc(var(--padding-4));
180
159
  line-height: calc(var(--font-size-base) + 8px);
160
+
181
161
  span {
182
162
  font-size: var(--font-size-base);
183
163
  }