br-dionysus 1.6.7 → 1.6.9

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 (111) hide show
  1. package/attributes.json +1 -1
  2. package/dist/br-dionysus.es.js +2174 -2164
  3. package/dist/br-dionysus.umd.js +8 -8
  4. package/dist/index.css +1 -1
  5. package/dist/packages/MTable/src/MTable.vue.d.ts +3 -3
  6. package/dist/packages/MTable/src/token.d.ts +2 -2
  7. package/package.json +1 -1
  8. package/packages/MInline/src/MInline.vue +11 -10
  9. package/packages/MTable/src/MTable.vue +4 -4
  10. package/packages/MTable/src/token.ts +2 -2
  11. package/packages/MTableColumn/src/MTableColumn.vue +7 -5
  12. package/web-types.json +1 -1
  13. package/docs/assets/README-BIIm2ID5.css +0 -1
  14. package/docs/assets/README-BVC502ud.js +0 -1
  15. package/docs/assets/README-BaVHXTcr.js +0 -1
  16. package/docs/assets/README-BkoXPzeT.js +0 -1
  17. package/docs/assets/README-BpY9wwJ5.js +0 -1
  18. package/docs/assets/README-BxVIiLkB.css +0 -1
  19. package/docs/assets/README-C8q4oePg.css +0 -1
  20. package/docs/assets/README-C9E9QEak.js +0 -1
  21. package/docs/assets/README-CJnIKztR.css +0 -1
  22. package/docs/assets/README-CPi9K5cm.css +0 -1
  23. package/docs/assets/README-CVikrcuu.js +0 -1
  24. package/docs/assets/README-CwxKEz5n.js +0 -1
  25. package/docs/assets/README-D-sCcuuV.js +0 -1
  26. package/docs/assets/README-D1NyMPDh.css +0 -1
  27. package/docs/assets/README-D8dRnWkj.css +0 -1
  28. package/docs/assets/README-DC5fWcO7.css +0 -1
  29. package/docs/assets/README-DFookNbq.js +0 -1
  30. package/docs/assets/README-DJM0QNOa.css +0 -1
  31. package/docs/assets/README-DJsWJjpr.js +0 -2
  32. package/docs/assets/README-DZH0ZBFE.js +0 -1
  33. package/docs/assets/README-DuLXE9ma.css +0 -1
  34. package/docs/assets/README-DxdjMTiZ.js +0 -1
  35. package/docs/assets/README-DxzXrur_.js +0 -1
  36. package/docs/assets/README-ZSEyYWl3.css +0 -1
  37. package/docs/assets/empty-BHv0FmNK.png +0 -0
  38. package/docs/assets/index-B3d27dSP.js +0 -66
  39. package/docs/assets/index-BeGJML3j.css +0 -1
  40. package/docs/index.html +0 -14
  41. package/docs/packages/Hook/usePackageConfig/README.md +0 -35
  42. package/docs/packages/Hook/usePackageConfig/demo.vue +0 -28
  43. package/docs/packages/Hook/usePackageConfig/usePackageConfig.ts +0 -39
  44. package/docs/packages/Hook/useRemainingSpace/README.md +0 -26
  45. package/docs/packages/Hook/useRemainingSpace/useRemainingSpace.ts +0 -148
  46. package/docs/packages/Hook/useTableConfig/README.md +0 -50
  47. package/docs/packages/Hook/useTableConfig/demo.vue +0 -134
  48. package/docs/packages/Hook/useTableConfig/useTableConfig.ts +0 -173
  49. package/docs/packages/Hook/useZIndex/README.md +0 -6
  50. package/docs/packages/Hook/useZIndex/useGlobalZIndex.ts +0 -34
  51. package/docs/packages/MDialog/docs/README.md +0 -26
  52. package/docs/packages/MDialog/docs/demo.vue +0 -72
  53. package/docs/packages/MDialog/index.ts +0 -10
  54. package/docs/packages/MDialog/src/MDialog.vue +0 -150
  55. package/docs/packages/MInline/docs/README.md +0 -26
  56. package/docs/packages/MInline/docs/demo.vue +0 -138
  57. package/docs/packages/MInline/index.ts +0 -10
  58. package/docs/packages/MInline/src/MInline.vue +0 -284
  59. package/docs/packages/MInputNumber/docs/README.md +0 -35
  60. package/docs/packages/MInputNumber/docs/demo.vue +0 -17
  61. package/docs/packages/MInputNumber/index.ts +0 -10
  62. package/docs/packages/MInputNumber/src/MInputNumber.vue +0 -268
  63. package/docs/packages/MSelect/docs/README.md +0 -20
  64. package/docs/packages/MSelect/docs/demo.vue +0 -36
  65. package/docs/packages/MSelect/index.ts +0 -17
  66. package/docs/packages/MSelect/src/MOption.vue +0 -43
  67. package/docs/packages/MSelect/src/MSelect.vue +0 -57
  68. package/docs/packages/MSelect/src/token.ts +0 -8
  69. package/docs/packages/MSelectTable/docs/README.md +0 -88
  70. package/docs/packages/MSelectTable/docs/demo.vue +0 -196
  71. package/docs/packages/MSelectTable/index.ts +0 -10
  72. package/docs/packages/MSelectTable/src/MSelectTable.vue +0 -493
  73. package/docs/packages/MSelectTableV1/docs/README.md +0 -49
  74. package/docs/packages/MSelectTableV1/docs/demo.vue +0 -77
  75. package/docs/packages/MSelectTableV1/index.ts +0 -10
  76. package/docs/packages/MSelectTableV1/src/MSelectTableV1.vue +0 -460
  77. package/docs/packages/MSelectV2/docs/README.md +0 -31
  78. package/docs/packages/MSelectV2/docs/demo.vue +0 -36
  79. package/docs/packages/MSelectV2/index.ts +0 -10
  80. package/docs/packages/MSelectV2/src/MSelectV2.vue +0 -116
  81. package/docs/packages/MTable/docs/README.md +0 -40
  82. package/docs/packages/MTable/docs/demo.vue +0 -93
  83. package/docs/packages/MTable/index.ts +0 -10
  84. package/docs/packages/MTable/src/MTable.vue +0 -228
  85. package/docs/packages/MTable/src/token.ts +0 -9
  86. package/docs/packages/MTableColumn/docs/README.md +0 -22
  87. package/docs/packages/MTableColumn/docs/demo.vue +0 -110
  88. package/docs/packages/MTableColumn/index.ts +0 -10
  89. package/docs/packages/MTableColumn/src/MTableColumn.vue +0 -345
  90. package/docs/packages/MTableColumnSet/docs/README.md +0 -31
  91. package/docs/packages/MTableColumnSet/docs/demo.vue +0 -36
  92. package/docs/packages/MTableColumnSet/index.ts +0 -10
  93. package/docs/packages/MTableColumnSet/src/MTableColumnSet.vue +0 -310
  94. package/docs/packages/README.md +0 -10
  95. package/docs/packages/SkinConfig/docs/README.md +0 -42
  96. package/docs/packages/SkinConfig/docs/demo.vue +0 -680
  97. package/docs/packages/SkinConfig/index.ts +0 -10
  98. package/docs/packages/SkinConfig/src/SkinConfig.vue +0 -478
  99. package/docs/packages/SkinConfig/src/useSkin.ts +0 -230
  100. package/docs/packages/TabPage/docs/README.md +0 -10
  101. package/docs/packages/TabPage/docs/demo.vue +0 -96
  102. package/docs/packages/TabPage/index.ts +0 -10
  103. package/docs/packages/TabPage/src/TabPage.vue +0 -566
  104. package/docs/packages/Tool/moneyFormat/README.md +0 -15
  105. package/docs/packages/Tool/moneyFormat/moneyFormat.ts +0 -69
  106. package/docs/packages/index.ts +0 -61
  107. package/docs/packages/list.json +0 -80
  108. package/docs/packages/typings/class.ts +0 -22
  109. package/docs/packages/typings/enum.ts +0 -9
  110. package/docs/packages/typings/global.d.ts +0 -69
  111. package/docs/packages/typings/interface.ts +0 -6
@@ -1,345 +0,0 @@
1
- <template>
2
- <el-table-column
3
- v-bind="attrs"
4
- :filterMethod="props.filterMethod"
5
- >
6
- <template
7
- #default="scope"
8
- v-if="slots.default"
9
- >
10
- <slot
11
- name="default"
12
- :row="scope.row"
13
- :column="scope.column"
14
- :index="scope.$index"
15
- ></slot>
16
- </template>
17
- <template v-if="props.children && props.children.length">
18
- <m-table-column
19
- v-for="child in props.children"
20
- :key="child.prop"
21
- :prop="child.prop"
22
- :label="child.label"
23
- :minWidth="child.minWidth"
24
- showOverflowTooltip
25
- :children="child.children || []"
26
- ></m-table-column>
27
- </template>
28
- <template #header="scope">
29
- <span>
30
- <slot
31
- name="header"
32
- :row="scope.row"
33
- :column="scope.column"
34
- :index="scope.$index"
35
- ></slot>
36
- <span>
37
- <span v-if="!slots.header">{{ scope.column.label }}</span>
38
- <div
39
- v-if="props.filters.length"
40
- class="u-filter-group"
41
- >
42
- <i
43
- class="u-icon j-icon"
44
- @click="open($event, scope.column.property)"
45
- ></i>
46
-
47
- <Teleport to="body">
48
- <div
49
- class="m-filter-box j-filter-box"
50
- :data-is-open="filterBoxIsOpen"
51
- v-if="filterBoxIsOpen"
52
- >
53
- <div
54
- class="u-filter-mask"
55
- @click="close(scope.column.property)"
56
- ></div>
57
- <div
58
- class="u-list-box"
59
- ref="filterBoxRef"
60
- :style="boxStyle"
61
- >
62
- <div class="u-it-gp">
63
- <el-input
64
- v-model="filterText"
65
- placeholder="请输入内容"
66
- clearable
67
- size="small"
68
- ></el-input>
69
- </div>
70
- <el-checkbox-group
71
- class="u-checkbox-group"
72
- v-model="filteredValue"
73
- >
74
- <el-checkbox
75
- v-for="item in getCheckboxOptions(props.filters)"
76
- :key="item.value"
77
- :label="item.value"
78
- >
79
- <template v-if="slots.default">
80
- <slot
81
- name="default"
82
- :row="{ [scope.column.property]: item.text }"
83
- :column="scope.column"
84
- :index="scope.$index"
85
- ></slot>
86
- </template>
87
- <template v-if="!slots.default">{{ item.text }}</template>
88
- </el-checkbox>
89
- </el-checkbox-group>
90
- <div class="u-btn-gp">
91
- <el-button
92
- link
93
- :disabled="!filteredValue.length"
94
- @click="sift(scope.column.property)"
95
- >
96
- 筛选
97
- </el-button>
98
- <el-button
99
- link
100
- @click="reset(scope.column.property)"
101
- >
102
- 重置
103
- </el-button>
104
- </div>
105
- </div>
106
- </div>
107
- </Teleport>
108
- </div>
109
- <MTableColumnSet
110
- class="u-set"
111
- v-if="showTableConfig"
112
- v-model="tableConfig"
113
- link
114
- ></MTableColumnSet>
115
- </span>
116
- </span>
117
- </template>
118
- </el-table-column>
119
- </template>
120
-
121
- <script setup lang="ts">
122
- import { ref, useSlots, useAttrs, inject, computed } from 'vue'
123
- import checkType from '../../../tool/checkType'
124
- import { tableKey } from './../../MTable/src/token'
125
-
126
- interface FilterValue {
127
- [key: string]: Array<string | number>
128
- }
129
-
130
- interface PropChildren {
131
- [prop: string]: any,
132
- children?: PropChildren[]
133
- }
134
-
135
- const props = withDefaults(defineProps<{
136
- /** 过滤值 */
137
- filtersValue?: FilterValue,
138
- /** 过滤选项 */
139
- filters?: Array<{ text: string | number, value: string | number }>,
140
- /** 过滤方法 */
141
- filterMethod?: Function | null,
142
- children?: Array<PropChildren>,
143
- }>(), {
144
- filtersValue: () => ({}),
145
- filters: () => [],
146
- filterMethod: null,
147
- children: () => []
148
- })
149
-
150
- const slots = useSlots()
151
- const attrs = useAttrs()
152
-
153
- const emit = defineEmits(['update:filtersValue'])
154
-
155
- const tableKeyData = inject(tableKey)
156
- const tableConfig = tableKeyData?.tableConfig
157
- const showTableConfig = computed(() => {
158
- if (!tableKeyData || !tableConfig) return false
159
- if (!tableConfig.value) return false
160
- return tableKeyData.lastColumnProp.value === attrs.prop
161
- })
162
-
163
- const filterText = ref<string>('')
164
-
165
- const getCheckboxOptions = (options: { text: string | number, value: string | number }[]) => {
166
- return options
167
- .map(item => ({
168
- ...item,
169
- value: checkType.isArray(item.value) || checkType.isObject(item.value) ? JSON.stringify(item.value) : item.value
170
- }))
171
- .filter(item => String(item.value).includes(filterText.value))
172
- }
173
-
174
- const filteredValue = ref<Array<string | number>>([])
175
- const sift = (property: string) => {
176
- const data = {
177
- ...props.filtersValue,
178
- [property]: filteredValue.value
179
- }
180
- emit('update:filtersValue', data)
181
- close(property)
182
- }
183
-
184
- const reset = (property: string) => {
185
- filteredValue.value = []
186
- const data = {
187
- ...props.filtersValue,
188
- [property]: []
189
- }
190
- emit('update:filtersValue', data)
191
- close(property)
192
- }
193
-
194
- const filterBoxIsOpen = ref<boolean>(false)
195
-
196
- const filterBoxRef = ref<HTMLElement>()
197
-
198
- const open = (event: MouseEvent, property: string) => {
199
- const dom: HTMLElement = event.target as HTMLElement
200
- const { width, height, bottom, right } = dom.getBoundingClientRect()
201
- const isTopMode = window.innerHeight - bottom < 400 + 20
202
- const isLeftMode = window.innerWidth - right < (filterBoxRef.value?.clientWidth || 0) + 20
203
- filteredValue.value = props.filtersValue[property] || []
204
- if (isTopMode) {
205
- boxStyle.value.top = 'unset'
206
- boxStyle.value.bottom = `${window.innerHeight - event.clientY + height - 5}px`
207
- } else {
208
- boxStyle.value.top = `${event.clientY - event.offsetY + height + 5}px`
209
- boxStyle.value.bottom = 'unset'
210
- }
211
- if (isLeftMode) {
212
- boxStyle.value.left = 'unset'
213
- boxStyle.value.right = `${window.innerWidth - (event.clientX - event.offsetX) - width}px`
214
- } else {
215
- boxStyle.value.left = `${event.clientX - event.offsetX}px`
216
- boxStyle.value.right = 'unset'
217
- }
218
- filterBoxIsOpen.value = true
219
- }
220
-
221
- const close = (property: string) => {
222
- filterBoxIsOpen.value = false
223
- filteredValue.value = props.filtersValue[property] || []
224
- }
225
-
226
- interface BoxStyle {
227
- top: string | number,
228
- left: string | number,
229
- bottom: string | number,
230
- right: string | number
231
- }
232
-
233
- const boxStyle = ref<BoxStyle>({
234
- top: 0,
235
- left: 0,
236
- bottom: 'unset',
237
- right: 'unset'
238
- })
239
- </script>
240
-
241
- <style scoped lang="scss">
242
- .u-icon {
243
- display: inline-block;
244
- position: relative;
245
- width: 14px;
246
- height: 14px;
247
- background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAMdJREFUOE/tkyESwjAQRfMj0Xgkp2AmaQweHCeAS1AuASfAgce0yQynQOLRyHyazpRpoW2YAcnKbP7L7t8sxJeBoM+yLK04Ukp678vzWBhj0iegEK5jgnq+eGTzO4C1dkhyDGAvhBhFKrmSXAC4aK1vjV6dcxPv/QnAoA1C8i6lnCqlzlX+zaw8z2cADh2AeZIkx3qu1W3n3JLktnERWCmldq/gznFZa8NUyvFWjrdV9QcIEfWgz8BgaicgLFj467H9+Gjr+iAPDfV1EeVT6aEAAAAASUVORK5CYII=");
248
- background-size: 100% 100%;
249
- transform: translateY(2px);
250
- cursor: pointer;
251
- }
252
-
253
- .u-filter-group {
254
- display: inline-block;
255
- position: relative;
256
- }
257
-
258
- .u-set {
259
- padding: 2.5px 0;
260
- float: right;
261
- }
262
- </style>
263
-
264
- <style lang="scss">
265
- .m-filter-box {
266
- $zIndex: 2050;
267
-
268
- &[data-is-open="true"] {
269
- opacity: 1;
270
- pointer-events: auto;
271
- }
272
-
273
- &[data-is-open="false"] {
274
- opacity: 0;
275
- pointer-events: none;
276
- }
277
-
278
- .u-filter-mask {
279
- position: fixed;
280
- top: 0;
281
- left: 0;
282
- z-index: $zIndex;
283
- width: 100%;
284
- height: 100%;
285
- }
286
-
287
- .u-it-gp {
288
- padding: 10px;
289
- border-bottom: 1px solid var(--el-border-color-lighter);
290
- }
291
-
292
- .u-list-box {
293
- overflow: hidden;
294
- position: fixed;
295
- top: 0;
296
- left: 0;
297
- z-index: $zIndex;
298
- //width: 134px;
299
- max-width: 50%;
300
- background: var(--el-bg-color-overlay);
301
- border: 1px solid var(--el-border-color-light);
302
- border-radius: var(--el-popper-border-radius, 4px);
303
- box-shadow: var(--el-box-shadow-light);
304
-
305
- .u-checkbox-group {
306
- overflow-y: auto;
307
- display: block;
308
- padding: 10px;
309
- max-height: 280px;
310
- }
311
-
312
- label.el-checkbox {
313
- display: flex;
314
- align-items: center;
315
- margin-right: 5px;
316
- margin-bottom: 12px;
317
- margin-left: 5px;
318
- height: unset;
319
- }
320
-
321
- label.el-checkbox:last-child {
322
- margin-bottom: 0;
323
- }
324
-
325
- .u-btn-gp {
326
- border-top: 1px solid var(--el-border-color-lighter);
327
- padding: 8px;
328
- }
329
-
330
- button.is-disabled {
331
- color: var(--el-disabled-text-color);
332
- cursor: not-allowed;
333
- }
334
-
335
- button {
336
- background: 0 0;
337
- border: none;
338
- color: var(--el-text-color-regular);
339
- cursor: pointer;
340
- font-size: var(--el-font-size-small);
341
- padding: 0 3px;
342
- }
343
- }
344
- }
345
- </style>
@@ -1,31 +0,0 @@
1
- <script setup>
2
- import demo from './demo.vue'
3
- </script>
4
-
5
- 表格头设置组件
6
- =================
7
-
8
- ### 1) 基础用法
9
-
10
- <Preview comp-name="MTableColumnSet" demo-name="demo">
11
- <demo />
12
- </Preview>
13
-
14
-
15
- ### 2) Attributes
16
-
17
- | 参数 | 说明 | 类型 | 可选值 | 默认值 |
18
- |-----------------------| ---------------------------------------------------- | ---------------------------------------- | ------ |-------|
19
- | model-value / v-model | 绑定值 | { [propName: string]: TableConfigItem } | - | {} |
20
- | link | 是否为链接按钮 | boolean | - | false |
21
- | foldMode | 是否开启折叠 开启的话需要父级元素为flex布局/grid布局 | boolean | - | false |
22
-
23
-
24
- ### 3) TableConfigItem
25
- | 参数 | 说明 | 类型 |
26
- | ----------- | ------------------------------------------------- | -------------------------- |
27
- | minWidth | 最小列宽 | number,string |
28
- | show | 是否显示 | boolean |
29
- | sort | 排序 | number |
30
- | label | 列名 | string |
31
- | headerAlign | 表头对齐方式, 若不设置该项,则使用表格的对齐方式 | 'left' ,'center' , 'right' |
@@ -1,36 +0,0 @@
1
- <template>
2
- <div>
3
- <MTableColumnSet v-model="tableConfig"/>
4
- <div>
5
- {{ tableConfig }}
6
- </div>
7
- </div>
8
- </template>
9
-
10
- <script setup lang="ts">
11
- import { ref } from 'vue'
12
-
13
- const tableConfig = ref({
14
- date: {
15
- minWidth: 100,
16
- show: true,
17
- sort: 0,
18
- label: 'date'
19
- },
20
- name: {
21
- minWidth: 100,
22
- show: true,
23
- sort: 1,
24
- label: 'name'
25
- },
26
- address: {
27
- minWidth: 100,
28
- show: true,
29
- sort: 2,
30
- label: 'address'
31
- }
32
- })
33
-
34
- </script>
35
-
36
- <style lang="scss"></style>
@@ -1,10 +0,0 @@
1
- import { App, Plugin } from 'vue'
2
- import MTableColumnSet from './src/MTableColumnSet.vue'
3
-
4
- export const MTableColumnSetPlugin: Plugin = {
5
- install (app: App) {
6
- app.component('MTableColumnSet', MTableColumnSet)
7
- }
8
- }
9
-
10
- export { MTableColumnSet }