br-dionysus 1.6.7 → 1.6.8

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 (105) hide show
  1. package/dist/br-dionysus.es.js +1291 -1286
  2. package/dist/br-dionysus.umd.js +7 -7
  3. package/dist/index.css +1 -1
  4. package/package.json +1 -1
  5. package/packages/MInline/src/MInline.vue +11 -10
  6. package/web-types.json +1 -1
  7. package/docs/assets/README-BIIm2ID5.css +0 -1
  8. package/docs/assets/README-BVC502ud.js +0 -1
  9. package/docs/assets/README-BaVHXTcr.js +0 -1
  10. package/docs/assets/README-BkoXPzeT.js +0 -1
  11. package/docs/assets/README-BpY9wwJ5.js +0 -1
  12. package/docs/assets/README-BxVIiLkB.css +0 -1
  13. package/docs/assets/README-C8q4oePg.css +0 -1
  14. package/docs/assets/README-C9E9QEak.js +0 -1
  15. package/docs/assets/README-CJnIKztR.css +0 -1
  16. package/docs/assets/README-CPi9K5cm.css +0 -1
  17. package/docs/assets/README-CVikrcuu.js +0 -1
  18. package/docs/assets/README-CwxKEz5n.js +0 -1
  19. package/docs/assets/README-D-sCcuuV.js +0 -1
  20. package/docs/assets/README-D1NyMPDh.css +0 -1
  21. package/docs/assets/README-D8dRnWkj.css +0 -1
  22. package/docs/assets/README-DC5fWcO7.css +0 -1
  23. package/docs/assets/README-DFookNbq.js +0 -1
  24. package/docs/assets/README-DJM0QNOa.css +0 -1
  25. package/docs/assets/README-DJsWJjpr.js +0 -2
  26. package/docs/assets/README-DZH0ZBFE.js +0 -1
  27. package/docs/assets/README-DuLXE9ma.css +0 -1
  28. package/docs/assets/README-DxdjMTiZ.js +0 -1
  29. package/docs/assets/README-DxzXrur_.js +0 -1
  30. package/docs/assets/README-ZSEyYWl3.css +0 -1
  31. package/docs/assets/empty-BHv0FmNK.png +0 -0
  32. package/docs/assets/index-B3d27dSP.js +0 -66
  33. package/docs/assets/index-BeGJML3j.css +0 -1
  34. package/docs/index.html +0 -14
  35. package/docs/packages/Hook/usePackageConfig/README.md +0 -35
  36. package/docs/packages/Hook/usePackageConfig/demo.vue +0 -28
  37. package/docs/packages/Hook/usePackageConfig/usePackageConfig.ts +0 -39
  38. package/docs/packages/Hook/useRemainingSpace/README.md +0 -26
  39. package/docs/packages/Hook/useRemainingSpace/useRemainingSpace.ts +0 -148
  40. package/docs/packages/Hook/useTableConfig/README.md +0 -50
  41. package/docs/packages/Hook/useTableConfig/demo.vue +0 -134
  42. package/docs/packages/Hook/useTableConfig/useTableConfig.ts +0 -173
  43. package/docs/packages/Hook/useZIndex/README.md +0 -6
  44. package/docs/packages/Hook/useZIndex/useGlobalZIndex.ts +0 -34
  45. package/docs/packages/MDialog/docs/README.md +0 -26
  46. package/docs/packages/MDialog/docs/demo.vue +0 -72
  47. package/docs/packages/MDialog/index.ts +0 -10
  48. package/docs/packages/MDialog/src/MDialog.vue +0 -150
  49. package/docs/packages/MInline/docs/README.md +0 -26
  50. package/docs/packages/MInline/docs/demo.vue +0 -138
  51. package/docs/packages/MInline/index.ts +0 -10
  52. package/docs/packages/MInline/src/MInline.vue +0 -284
  53. package/docs/packages/MInputNumber/docs/README.md +0 -35
  54. package/docs/packages/MInputNumber/docs/demo.vue +0 -17
  55. package/docs/packages/MInputNumber/index.ts +0 -10
  56. package/docs/packages/MInputNumber/src/MInputNumber.vue +0 -268
  57. package/docs/packages/MSelect/docs/README.md +0 -20
  58. package/docs/packages/MSelect/docs/demo.vue +0 -36
  59. package/docs/packages/MSelect/index.ts +0 -17
  60. package/docs/packages/MSelect/src/MOption.vue +0 -43
  61. package/docs/packages/MSelect/src/MSelect.vue +0 -57
  62. package/docs/packages/MSelect/src/token.ts +0 -8
  63. package/docs/packages/MSelectTable/docs/README.md +0 -88
  64. package/docs/packages/MSelectTable/docs/demo.vue +0 -196
  65. package/docs/packages/MSelectTable/index.ts +0 -10
  66. package/docs/packages/MSelectTable/src/MSelectTable.vue +0 -493
  67. package/docs/packages/MSelectTableV1/docs/README.md +0 -49
  68. package/docs/packages/MSelectTableV1/docs/demo.vue +0 -77
  69. package/docs/packages/MSelectTableV1/index.ts +0 -10
  70. package/docs/packages/MSelectTableV1/src/MSelectTableV1.vue +0 -460
  71. package/docs/packages/MSelectV2/docs/README.md +0 -31
  72. package/docs/packages/MSelectV2/docs/demo.vue +0 -36
  73. package/docs/packages/MSelectV2/index.ts +0 -10
  74. package/docs/packages/MSelectV2/src/MSelectV2.vue +0 -116
  75. package/docs/packages/MTable/docs/README.md +0 -40
  76. package/docs/packages/MTable/docs/demo.vue +0 -93
  77. package/docs/packages/MTable/index.ts +0 -10
  78. package/docs/packages/MTable/src/MTable.vue +0 -228
  79. package/docs/packages/MTable/src/token.ts +0 -9
  80. package/docs/packages/MTableColumn/docs/README.md +0 -22
  81. package/docs/packages/MTableColumn/docs/demo.vue +0 -110
  82. package/docs/packages/MTableColumn/index.ts +0 -10
  83. package/docs/packages/MTableColumn/src/MTableColumn.vue +0 -345
  84. package/docs/packages/MTableColumnSet/docs/README.md +0 -31
  85. package/docs/packages/MTableColumnSet/docs/demo.vue +0 -36
  86. package/docs/packages/MTableColumnSet/index.ts +0 -10
  87. package/docs/packages/MTableColumnSet/src/MTableColumnSet.vue +0 -310
  88. package/docs/packages/README.md +0 -10
  89. package/docs/packages/SkinConfig/docs/README.md +0 -42
  90. package/docs/packages/SkinConfig/docs/demo.vue +0 -680
  91. package/docs/packages/SkinConfig/index.ts +0 -10
  92. package/docs/packages/SkinConfig/src/SkinConfig.vue +0 -478
  93. package/docs/packages/SkinConfig/src/useSkin.ts +0 -230
  94. package/docs/packages/TabPage/docs/README.md +0 -10
  95. package/docs/packages/TabPage/docs/demo.vue +0 -96
  96. package/docs/packages/TabPage/index.ts +0 -10
  97. package/docs/packages/TabPage/src/TabPage.vue +0 -566
  98. package/docs/packages/Tool/moneyFormat/README.md +0 -15
  99. package/docs/packages/Tool/moneyFormat/moneyFormat.ts +0 -69
  100. package/docs/packages/index.ts +0 -61
  101. package/docs/packages/list.json +0 -80
  102. package/docs/packages/typings/class.ts +0 -22
  103. package/docs/packages/typings/enum.ts +0 -9
  104. package/docs/packages/typings/global.d.ts +0 -69
  105. package/docs/packages/typings/interface.ts +0 -6
@@ -1,284 +0,0 @@
1
- <template>
2
- <div class="g-inline-box">
3
- <div
4
- v-if="slots.inlineBtn"
5
- v-show="showInlineBtnBox"
6
- class="m-inline-btn"
7
- :class="inlineBtnBoxClassName"
8
- @click="checkMultiLine"
9
- >
10
- <slot name="inlineBtn"></slot>
11
- </div>
12
- <div
13
- v-if="slots.default"
14
- class="m-inline"
15
- :data-show-inline-btn="showInlineBtnBox"
16
- dataCover
17
- >
18
- <div
19
- class="u-row"
20
- :class="boxClassName"
21
- :style="{
22
- maxHeight: height + 'px'
23
- }"
24
- :data-unfold="unfold"
25
- :data-single-line="!showUnfoldBtn"
26
- >
27
- <slot name="default"></slot>
28
- </div>
29
- <div
30
- class="u-btn-gp"
31
- :style="{
32
- height: height + 'px'
33
- }"
34
- >
35
- <slot name="submitBtn"></slot>
36
- <el-icon
37
- v-if="showUnfoldBtn"
38
- class="u-btn-unfold"
39
- @click="switchUnfold"
40
- :data-unfold="unfold"
41
- >
42
- <DArrowRight />
43
- </el-icon>
44
- </div>
45
- </div>
46
- </div>
47
- </template>
48
-
49
- <script setup lang="ts">
50
- import { ref, onMounted, useSlots, watch, computed } from 'vue'
51
- import { Size } from 'packages/typings/enum'
52
-
53
- const props = withDefaults(defineProps<{
54
- /**
55
- * @description 列最小宽度
56
- * */
57
- minWidth?: number,
58
- /**
59
- * 列最大宽度
60
- * */
61
- maxWidth?: number,
62
- /** 组件尺寸 */
63
- size?: Size
64
- }>(), {
65
- minWidth: 290,
66
- maxWidth: 400,
67
- size: Size.DEFAULT
68
- })
69
-
70
- const height = computed(() => {
71
- if (props.size === Size.LARGE) return 50
72
- if (props.size === Size.DEFAULT) return 42
73
- if (props.size === Size.SMALL) return 34
74
- return 34
75
- })
76
-
77
- const createHash = (hashLength: number = 24) => {
78
- return Array.from(Array(Number(hashLength) || 24), () => Math.floor(Math.random() * 36).toString(36)).join('')
79
- }
80
-
81
- const init = () => {
82
- document.documentElement.style.setProperty('--m-inline-min-width', props.minWidth + 'px')
83
- document.documentElement.style.setProperty('--m-inline-max-width', props.maxWidth + 'px')
84
- }
85
- watch(
86
- () => [props.minWidth, props.maxWidth],
87
- () => {
88
- init()
89
- }
90
- )
91
- init()
92
-
93
- const slots = useSlots()
94
-
95
- const emit = defineEmits<{
96
- /** 切换折叠展开事件 */
97
- switch: [status: boolean]
98
- }>()
99
-
100
- const boxClassName = 'j-' + createHash(8)
101
-
102
- // 检查多行
103
- const checkMultiLine = () => {
104
- const boxEl: Element | null = document.querySelector('.' + boxClassName + ' [data-box]')
105
- if (!boxEl) return false
106
- const itemEls: NodeListOf<Element> = boxEl.querySelectorAll('.' + boxClassName + ' [data-item]')
107
- return boxEl.clientWidth < itemEls.length * props.minWidth
108
- }
109
-
110
- const resizeObserver = new ResizeObserver(() => {
111
- showUnfoldBtn.value = checkMultiLine()
112
- })
113
- const showUnfoldBtn = ref<boolean>(true)
114
- onMounted(() => {
115
- const boxEl: Element | null = document.querySelector('[data-box]')
116
- if (!boxEl) return false
117
- showUnfoldBtn.value = checkMultiLine()
118
- resizeObserver.observe(boxEl)
119
- })
120
-
121
- const unfold = ref<boolean>(false)
122
-
123
- const switchUnfold = () => {
124
- unfold.value = !unfold.value
125
- emit('switch', unfold.value)
126
- }
127
-
128
- const throttle = (func: Function, limit: number = 100) => {
129
- let inThrottle: boolean = false
130
- return (...args: any) => {
131
- if (!inThrottle) {
132
- inThrottle = true
133
- setTimeout(() => {
134
- func.apply(this, args)
135
- inThrottle = false
136
- }, limit)
137
- }
138
- }
139
- }
140
- const showInlineBtnBox = ref<boolean>(false)
141
- const inlineBtnBoxClassName = 'j-' + createHash(8)
142
- onMounted(() => {
143
- const targetNode: Element | null = document.querySelector('.' + inlineBtnBoxClassName)
144
- if (!targetNode) return false
145
- const getDomState = () => {
146
- showInlineBtnBox.value = false
147
- for (let i = 0; i < targetNode.children.length; i++) {
148
- const node = targetNode.children[i]
149
- const nodeStyle: CSSStyleDeclaration = window.getComputedStyle(node)
150
- if (nodeStyle.display !== 'none') showInlineBtnBox.value = true
151
- }
152
- }
153
- getDomState()
154
- const observer = new MutationObserver(throttle(getDomState))
155
- observer.observe(targetNode, {
156
- attributes: true, // 属性变化
157
- childList: true, // 子节点增删
158
- subtree: true // 后代
159
- })
160
- })
161
- </script>
162
-
163
- <style scoped lang="scss">
164
- .g-inline-box {
165
- margin-bottom: 14px;
166
- padding-top: 10px;
167
- //padding-bottom: 10px;
168
- //padding-right: 14px;
169
- border: 1px solid var(--el-border-color-lighter);
170
- border-radius: 4px;
171
- }
172
-
173
- .m-inline-btn {
174
- padding: 0 14px 10px 14px;
175
- }
176
-
177
- .m-inline {
178
- display: flex;
179
- position: relative;
180
- width: 100%;
181
- }
182
-
183
- .m-inline-btn + .m-inline[data-show-inline-btn="true"] {
184
- padding-top: 10px;
185
-
186
- &:before {
187
- position: absolute;
188
- top: 0;
189
- left: 50%;
190
- content: '';
191
- width: calc(100% - 28px);
192
- height: 1px;
193
- background-color: var(--el-border-color-lighter);
194
- transform: translateX(-50%);
195
- }
196
- }
197
-
198
- .u-btn-gp {
199
- display: flex;
200
- padding-bottom: 10px;
201
- padding-left: 14px;
202
- padding-right: 14px;
203
- align-items: center;
204
- box-sizing: border-box;
205
- }
206
-
207
- .u-row {
208
- display: flex;
209
- overflow: hidden;
210
- max-height: 34px;
211
- flex: 1;
212
-
213
- &[data-unfold="true"] {
214
- max-height: none !important;
215
- }
216
- }
217
-
218
- .u-btn-unfold {
219
- margin-left: 8px;
220
- width: 12px;
221
- height: 24px;
222
- line-height: 24px;
223
- text-align: center;
224
- color: var(--el-text-color-regular);
225
- transform: rotate(90deg);
226
- cursor: pointer;
227
-
228
- &[data-unfold="true"] {
229
- transform: rotate(270deg);
230
- }
231
- }
232
- </style>
233
-
234
- <style lang="scss">
235
- .g-inline-box {
236
- /*element组件样式全局覆盖*/
237
- .m-inline[dataCover] {
238
- //display: flex;
239
-
240
- [data-box] {
241
- display: grid;
242
- grid-template-columns: repeat(auto-fit, minmax(var(--m-inline-min-width), 1fr));
243
-
244
- [data-item] {
245
- padding-bottom: 10px;
246
- min-width: var(--m-inline-min-width);
247
- max-width: var(--m-inline-max-width);
248
- }
249
- }
250
-
251
- .el-form-item {
252
- margin-bottom: 0;
253
- width: 100%;
254
-
255
- .el-input, .el-cascader {
256
- //width: 180px;
257
- width: 100%;
258
- }
259
-
260
- //.el-form-item__content {
261
- // width: 180px;
262
- //}
263
- }
264
-
265
- .el-form {
266
- //display: flex;
267
- width: 100%;
268
- //flex-wrap: wrap;
269
- //align-items: center;
270
-
271
- .u-it-gp {
272
- display: flex;
273
- }
274
- }
275
-
276
- .u-row[data-single-line="true"] {
277
- .el-form {
278
- display: flex;
279
- justify-content: flex-start;
280
- }
281
- }
282
- }
283
- }
284
- </style>
@@ -1,35 +0,0 @@
1
- <script setup>
2
- import demo from './demo.vue'
3
- </script>
4
-
5
- 数值输入框组件
6
- =================
7
-
8
- ### 1) 基础用法
9
- <Preview comp-name="MInputNumber" demo-name="demo">
10
- <demo />
11
- </Preview>
12
-
13
- ### 2) Attributes
14
-
15
- | 参数 | 说明 | 类型 | 可选值 | 默认值 |
16
- |------------------|:-----------------:|:-------:|:------------------:|:---------:|
17
- | value / v-model | 绑定值 | number | - | '' |
18
- | min | 设置数值输入框允许的最小值 | number | - | -Infinity |
19
- | max | 设置数值输入框允许的最大值 | number | - | Infinity |
20
- | step | 数值输入框步长 | number | - | 1 |
21
- | step-strictly | 是否只能输入 step 的倍数 | boolean | - | true |
22
- | size | 数值输入框尺寸 | string | large, small, mini | - |
23
- | disabled | 是否禁用数值输入框 | boolean | - | false |
24
- | placeholder | 输入框默认 placeholder | string | - | '' |
25
- | thousandth-place | 输入框是否显示千分位 | boolean | - | false |
26
- | no-border | 是否不要边框 | boolean | - | false |
27
- | no-spacing | 不要边距 | boolean | - | false |
28
-
29
- ### 3) Events
30
-
31
- | 方法名 | 说明 | 参数 |
32
- |--------|:---------------:|:----------------------:|
33
- | change | 绑定值被改变时触发 | currentValue, oldValue |
34
- | focus | 当 input 获得焦点时触发 | (event: Event) |
35
- | blur | 当 input 失去焦点时触发 | (event: Event) |
@@ -1,17 +0,0 @@
1
- <template>
2
- <div class="g-demo-m-input-number-box">
3
- <m-input-number v-model="test"></m-input-number>
4
- </div>
5
- </template>
6
-
7
- <script setup lang="ts">
8
- import { ref } from 'vue'
9
-
10
- const test = ref<number>(0)
11
- </script>
12
-
13
- <style scoped>
14
- .g-demo-m-input-number-box {
15
- max-width: 1000px;
16
- }
17
- </style>
@@ -1,10 +0,0 @@
1
- import { App, Plugin } from 'vue'
2
- import MInputNumber from './src/MInputNumber.vue'
3
-
4
- export const MInputNumberPlugin: Plugin = {
5
- install (app: App) {
6
- app.component('MInputNumber', MInputNumber)
7
- }
8
- }
9
-
10
- export { MInputNumber }
@@ -1,268 +0,0 @@
1
- <template>
2
- <div
3
- class="g-m-input-number-box"
4
- :data-is-table-mini="data.isTableMini"
5
- :data-no-spacing="props.noSpacing"
6
- >
7
- <el-input-number
8
- class="m-input-number"
9
- v-model="data.vValue"
10
- :size="data.vSize"
11
- :min="props.min"
12
- :max="max"
13
- :controls="false"
14
- :disabled="props.disabled"
15
- :placeholder="props.placeholder"
16
- :step="props.step"
17
- :stepStrictly="props.stepStrictly"
18
- :data-thousandth-place="props.thousandthPlace"
19
- :data-focus="data.isFocus"
20
- :noBorder="props.noBorder"
21
- @change="onChange($event);input()"
22
- @focus="onFocus"
23
- @blur="onBlur"
24
- />
25
- <input
26
- v-if="props.thousandthPlace"
27
- class="u-text"
28
- type="text"
29
- :data-size="data.vSize"
30
- :data-thousandth-place="props.thousandthPlace"
31
- :data-focus="data.isFocus"
32
- :value="valueFormat"
33
- :data-disabled="props.disabled"
34
- readonly
35
- >
36
- </div>
37
- </template>
38
-
39
- <script setup lang="ts">
40
- import { reactive, computed, watch } from 'vue'
41
-
42
- const props = withDefaults(defineProps<{
43
- modelValue: string | number,
44
- placeholder?: string,
45
- /** 是否禁用数值输入框 */
46
- disabled?: boolean,
47
- /** 数值输入框尺寸 */
48
- size?: string,
49
- /** 设置数值输入框允许的最小值 */
50
- min?: number,
51
- /** 设置数值输入框允许的最大值 */
52
- max?: number,
53
- /** 数值输入框步长 */
54
- step?: number,
55
- /** 是否只能输入 step 的倍数 */
56
- stepStrictly?: boolean,
57
- /** 输入框是否显示千分位 */
58
- thousandthPlace?: boolean,
59
- /** 是否不要边框 */
60
- noBorder?: boolean,
61
- /** 不要边距 */
62
- noSpacing?: boolean
63
- }>(), {
64
- modelValue: '',
65
- placeholder: '',
66
- /** 是否禁用数值输入框 */
67
- disabled: false,
68
- /** 数值输入框尺寸 */
69
- size: '',
70
- /** 设置数值输入框允许的最小值 */
71
- min: -Infinity,
72
- /** 设置数值输入框允许的最大值 */
73
- max: Infinity,
74
- /** 数值输入框步长 */
75
- step: 1,
76
- /** 是否只能输入 step 的倍数 */
77
- stepStrictly: true,
78
- /** 输入框是否显示千分位 */
79
- thousandthPlace: false,
80
- /** 是否不要边框 */
81
- noBorder: false,
82
- /** 不要边距 */
83
- noSpacing: false
84
- })
85
-
86
- interface Data {
87
- vValue: any,
88
- isFocus: boolean,
89
- vSize: any,
90
- isTableMini: any
91
- }
92
-
93
- const data: Data = reactive<Data>({
94
- vValue: null,
95
- isFocus: false,
96
- vSize: null,
97
- isTableMini: false
98
- })
99
-
100
- const emit = defineEmits(['update:modelValue', 'change', 'focus', 'blur'])
101
-
102
- const valueFormat = computed(() => {
103
- return (data.vValue || '').toLocaleString('en-US', { maximumFractionDigits: 6 })
104
- })
105
-
106
- const max = computed(() => {
107
- return props.max >= props.min ? props.max : props.min
108
- })
109
-
110
- watch(() => props.modelValue, () => {
111
- init()
112
- })
113
-
114
- watch(() => props.size, () => {
115
- syncSize()
116
- })
117
-
118
- const init = () => {
119
- if (props.modelValue === '' || props.modelValue === null || props.modelValue === undefined) {
120
- data.vValue = undefined
121
- return false
122
- }
123
- if ((props.modelValue as number) > props.max || (props.modelValue as number) < props.min) {
124
- emit('update:modelValue', data.vValue)
125
- return false
126
- }
127
- data.vValue = props.modelValue
128
- }
129
-
130
- const syncSize = () => {
131
- const map = {
132
- large: 'large',
133
- small: 'small',
134
- mini: 'mini',
135
- 'table-mini': 'mini'
136
- }
137
- data.vSize = map[props.size as keyof typeof map]
138
- data.isTableMini = props.size === 'table-mini'
139
- }
140
-
141
- const input = () => {
142
- if (data.vValue === undefined) {
143
- emit('update:modelValue', null)
144
- return false
145
- }
146
- emit('update:modelValue', data.vValue)
147
- }
148
-
149
- const onChange = (value: number) => {
150
- if (value === undefined) {
151
- emit('update:modelValue', null)
152
- return false
153
- }
154
- input()
155
- emit('change', value)
156
- }
157
-
158
- const onFocus = () => {
159
- data.isFocus = true
160
- emit('focus', data.vValue)
161
- }
162
-
163
- const onBlur = () => {
164
- data.isFocus = false
165
- emit('blur', data.vValue)
166
- }
167
-
168
- init()
169
- syncSize()
170
- </script>
171
-
172
- <style lang="scss" scoped>
173
- .g-m-input-number-box {
174
- position: relative;
175
- width: 100%;
176
-
177
- .m-input-number {
178
- width: 100%;
179
- }
180
-
181
- .u-text[data-thousandth-place="true"] {
182
- display: inline-block;
183
- position: absolute;
184
- top: 0;
185
- left: 0;
186
- margin-bottom: 0;
187
- padding-left: 15px;
188
- padding-right: 15px;
189
- width: 100%;
190
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', 'Helvetica Neue', Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol';
191
- font-feature-settings: normal;
192
- font-stretch: 100%;
193
- font-weight: 400;
194
- text-indent: 0;
195
- color: #606266;
196
- text-align: left;
197
- letter-spacing: normal;
198
- word-spacing: 0;
199
- background-color: rgba(0, 0, 0, 0);
200
- border-radius: 4px;
201
- border: 1px solid rgba(0, 0, 0, 0);
202
- box-sizing: border-box;
203
- cursor: text;
204
- pointer-events: none;
205
-
206
- &:hover {
207
- border-color: #C0C4CC;
208
- }
209
-
210
- &[data-size="mini"] {
211
- font-size: 12px;
212
- height: 28px;
213
- line-height: 28px;
214
- }
215
-
216
- &[data-disabled="true"] {
217
- color: rgba(0, 0, 0, 0.25);
218
- }
219
-
220
- &[data-focus="true"] {
221
- color: rgba(0, 0, 0, 0);
222
- }
223
- }
224
-
225
- &[data-is-table-mini="true"] .u-text[data-size="mini"] {
226
- height: 24px;
227
- font-size: 14px;
228
- line-height: 24px;
229
- }
230
-
231
- &[data-no-spacing] .u-text {
232
- padding-left: 0;
233
- }
234
- }
235
- </style>
236
-
237
- <style lang="scss">
238
- .g-m-input-number-box {
239
-
240
- .m-input-number {
241
- .el-input__inner {
242
- text-align: left;
243
- }
244
-
245
- &[data-thousandth-place="true"] .el-input__inner {
246
- color: rgba(0, 0, 0, 0);
247
- }
248
-
249
- &[data-focus="true"] .el-input__inner {
250
- color: #606266;
251
- }
252
-
253
- &[no-border="true"] .el-input__inner {
254
- border: 0;
255
- }
256
- }
257
-
258
- &[data-is-table-mini="true"] .m-input-number .el-input__inner {
259
- height: 24px;
260
- font-size: 14px;
261
- line-height: 24px;
262
- }
263
-
264
- &[data-no-spacing="true"] .m-input-number .el-input__inner {
265
- padding-left: 0;
266
- }
267
- }
268
- </style>
@@ -1,20 +0,0 @@
1
- <script setup>
2
- import demo from './demo.vue'
3
- </script>
4
-
5
- 下拉选择器组件
6
- =================
7
-
8
- ### 1) 基础用法
9
-
10
- <Preview comp-name="MSelect" demo-name="demo">
11
- <demo />
12
- </Preview>
13
-
14
- ### 2) Attributes
15
-
16
- | 参数 | 说明 | 类型 | 可选值 | 默认值 |
17
- |-------------------------------|:---------------------------------------------------------:|:-------:|:---:|:-----:|
18
- | value / v-model | 绑定值 | number | - | '' |
19
- | checkbox-mode | 是否为复选框模式(只影响样式) | boolean | - | false |
20
- | 其他属性同element-plus的el-select组件 | https://element-plus.gitee.io/zh-CN/component/select.html | - | - | - |
@@ -1,36 +0,0 @@
1
- <template>
2
- <div class="g-demo-m-select-box">
3
- <m-select
4
- v-model="test"
5
- checkboxMode
6
- multiple
7
- >
8
- <m-option
9
- v-for="item in options"
10
- :key="item.value"
11
- :label="item.label"
12
- :value="item.value"
13
- ></m-option>
14
- </m-select>
15
- </div>
16
- </template>
17
-
18
- <script setup lang="ts">
19
- import { ref } from 'vue'
20
-
21
- const test = ref<string>('')
22
-
23
- const options: Option[] = [{
24
- label: '这是选项一',
25
- value: 'a'
26
- }, {
27
- label: '这是选项二',
28
- value: 'b'
29
- }]
30
- </script>
31
-
32
- <style scoped>
33
- .g-demo-m-select-box {
34
- max-width: 1000px;
35
- }
36
- </style>
@@ -1,17 +0,0 @@
1
- import { App, Plugin } from 'vue'
2
- import MSelect from './src/MSelect.vue'
3
- import MOption from './src/MOption.vue'
4
-
5
- export const MSelectPlugin: Plugin = {
6
- install (app: App) {
7
- app.component('MSelect', MSelect)
8
- }
9
- }
10
-
11
- export const MOptionPlugin: Plugin = {
12
- install (app: App) {
13
- app.component('MOption', MOption)
14
- }
15
- }
16
-
17
- export { MSelect, MOption }