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,93 +0,0 @@
1
- <template>
2
- <div class="g-box">
3
- <p>{{ tableConfig }}</p>
4
- <MTable
5
- class="style.box"
6
- :data="tableData"
7
- border
8
- @headerDragend="headerDragend"
9
- :filtersValue="filtersValue"
10
- scrollbarAlwaysOn
11
- v-model:tableConfig="tableConfig"
12
- >
13
- <MTableColumn
14
- v-for="item in tableTitle"
15
- :key="item.prop"
16
- :prop="item.prop"
17
- :label="item.label"
18
- :align="item.align"
19
- :minWidth="item.minWidth"
20
- :className="item.className"
21
- :filters="item.filters"
22
- :headerAlign="item.headerAlign"
23
- :fixed="item.fixed"
24
- v-model:filtersValue="filtersValue"
25
- showOverflowTooltip
26
- />
27
- </MTable>
28
- </div>
29
- </template>
30
-
31
- <script setup lang="ts">
32
- import { ref } from 'vue'
33
- import { useTableConfig } from 'packages/index'
34
-
35
- interface User {
36
- date: string;
37
- name: string;
38
- address: string;
39
- tag: string;
40
- }
41
-
42
- const tableData = ref<User[]>([])
43
- const { tableTitle, headerDragend, tableConfig, filtersValue }= useTableConfig('MTableDemo', [{
44
- label: 'Date',
45
- prop: 'date',
46
- minWidth: 200
47
- }, {
48
- label: 'Address',
49
- prop: 'address',
50
- minWidth: 200
51
- }, {
52
- label: 'name',
53
- prop: 'name',
54
- minWidth: 200
55
- }], tableData)
56
-
57
- tableData.value = [
58
- {
59
- date: '2016-05-03',
60
- name: 'Tom',
61
- address: 'No. 189, Grove St, Los Angeles',
62
- tag: 'Home'
63
- },
64
- {
65
- date: '2016-05-02',
66
- name: 'Tom',
67
- address: 'No. 189, Grove St, Los Angeles',
68
- tag: 'Office'
69
- },
70
- {
71
- date: '2016-05-04',
72
- name: 'Tom',
73
- address: 'No. 189, Grove St, Los Angeles',
74
- tag: 'Home'
75
- },
76
- {
77
- date: '2016-05-01',
78
- name: 'Tom',
79
- address: 'No. 189, Grove St, Los Angeles',
80
- tag: 'Office'
81
- }
82
- ]
83
-
84
- const pasteData = (obj: any, data: any) => {
85
- tableData.value = data
86
- }
87
- </script>
88
-
89
- <style lang="scss" scoped>
90
- .g-box {
91
- max-width: 1200px;
92
- }
93
- </style>
@@ -1,10 +0,0 @@
1
- import { App, Plugin } from 'vue'
2
- import MTable from './src/MTable.vue'
3
-
4
- export const MTablePlugin: Plugin = {
5
- install (app: App) {
6
- app.component('MTable', MTable)
7
- }
8
- }
9
-
10
- export { MTable }
@@ -1,228 +0,0 @@
1
- <template>
2
- <div class="m-table-box">
3
- <el-table
4
- ref="tableRef"
5
- v-bind="$attrs"
6
- :size="props.size"
7
- @paste="paste"
8
- @cellClick="cellClick"
9
- :data="tableData"
10
- >
11
- <!-- 默认插槽 -->
12
- <!--<slot></slot>-->
13
-
14
- <!-- 循环处理具名插槽 -->
15
- <!--<template-->
16
- <!-- v-for="(slotData, name) in slots"-->
17
- <!-- #[name]-->
18
- <!--&gt;-->
19
- <!-- <slot-->
20
- <!-- :name="name"-->
21
- <!-- v-bind="slotData"-->
22
- <!-- ></slot>-->
23
- <!--</template>-->
24
- <slot name="default"></slot>
25
- <slot name="append"></slot>
26
- <template
27
- v-if="!slots.empty"
28
- #empty
29
- >
30
- <img src="./../../../src/assets/empty.png" />
31
- </template>
32
- <slot name="empty"></slot>
33
- </el-table>
34
- </div>
35
- </template>
36
-
37
- <script setup lang="ts">
38
- import { ref, onMounted, computed, useSlots, watch, provide } from 'vue'
39
- import checkType from '../../../tool/checkType'
40
- import { TableConfig } from './../../Hook/useTableConfig/useTableConfig'
41
- import { tableKey } from './token'
42
- interface FilterValue {
43
- [key: string]: Array<string | number>
44
- }
45
- const props = withDefaults(defineProps<{
46
- size?: 'small' | 'large' | '',
47
- sole?: string,
48
- data?: Array<{
49
- [key: string]: string | number
50
- }>,
51
- filtersValue?: FilterValue,
52
- /** 表格配置 */
53
- tableConfig?: TableConfig | null
54
- }>(), {
55
- size: '',
56
- sole: 'key',
57
- data: () => [],
58
- filtersValue: () => ({}),
59
- tableConfig: null
60
- })
61
-
62
- const tableConfig = ref<TableConfig>(props.tableConfig || {})
63
- watch(
64
- () => props.tableConfig,
65
- () => {
66
- if (JSON.stringify(tableConfig.value) === JSON.stringify(props.tableConfig)) return false
67
- tableConfig.value = props.tableConfig || {}
68
- }
69
- )
70
- watch(
71
- () => tableConfig.value,
72
- () => {
73
- emit('update:tableConfig', tableConfig.value)
74
- }
75
- )
76
-
77
- const slots = useSlots()
78
-
79
- const tableData = computed(() => {
80
- return props.data.filter(item => {
81
- for (const key in props.filtersValue) {
82
- const node = props.filtersValue[key]
83
- const colData = checkType.isObject(item[key]) || checkType.isArray(item[key]) ? JSON.stringify(item[key]) : item[key]
84
- if (!node.includes(colData) && node.length) return false
85
- }
86
- return true
87
- })
88
- })
89
- const createHash = (hashLength: number = 24) => {
90
- return Array.from(Array(Number(hashLength) || 24), () => Math.floor(Math.random() * 36).toString(36)).join('')
91
- }
92
-
93
- const emit = defineEmits<{
94
- pasteData: [data: {
95
- /** 粘贴行的行数据 */
96
- editRow: { [key: string]: any },
97
- /** 粘贴列的列名 */
98
- editColumn: string,
99
- /** 粘贴的数据 */
100
- arr: Array<string | number>,
101
- /** 起始行 */
102
- rowIndex: number,
103
- },
104
- /** 粘贴完成后的表格数据 */
105
- tableData: Array<{ [key: string]: any
106
- }>],
107
- 'update:tableConfig': [tableConfig: TableConfig]
108
- }>()
109
-
110
- const internalData = ref<Array<{ [key: string]: any }>>([]) // 组件内数据
111
- const editColumn = ref<string>('') // 列名
112
- const editRow = ref<string>('') // 行
113
- const editRowSole = ref<string>('') // 行的唯一值
114
- const returnData = ref<Array<{ [key: string]: any }>>([]) // 返回的数据
115
- const elDom = ref<any>('')
116
- onMounted(async () => {
117
- setTimeout(() => {
118
- tableRef.value?.$el.click()
119
- }, 1000)
120
- })
121
- const cellClick = (row: any, column: { property: string; }, cell: any) => {
122
- elDom.value = cell.querySelector('input')
123
- editColumn.value = column.property // 保存粘贴的列名
124
- editRowSole.value = row[props.sole] // 保存操作的行的元素唯一值
125
- editRow.value = row // 获取行的key名
126
- elDom.value?.addEventListener('paste', disablePasteEvent)
127
- }
128
- const disablePasteEvent = (e: { preventDefault: () => void; }) => {
129
- e.preventDefault()
130
- }
131
- const paste = (e: { clipboardData: any; }) => {
132
- internalData.value = JSON.parse(JSON.stringify(props.data))
133
- const clipdata = e.clipboardData
134
- const str = clipdata.getData('text/plain')
135
- const arr = str.split(/\r\n|\r|\n/).filter((item: string) => item)
136
- // 查找修改行在数据内的位置
137
- const rowIndex = internalData.value.findIndex(item => (item[props.sole as keyof typeof item] === editRowSole.value))
138
-
139
- // 判断是否需要添加行
140
- const num = props.data.length - rowIndex
141
- if (arr.length > num) {
142
- // 需要添加行
143
- for (let i = 0; i < arr.length - num; i++) {
144
- internalData.value.push(createObject())
145
- }
146
- // 添加完行之后
147
- }
148
- returnData.value = internalData.value.map((item, index) => {
149
- const obj = item
150
- if (index >= rowIndex && index < rowIndex + arr.length) {
151
- const editNum = index - rowIndex
152
- obj[editColumn.value] = arr[editNum]
153
- }
154
- return obj
155
- })
156
- emit('pasteData', { editRow, editColumn: editColumn.value, arr, rowIndex }, returnData.value)
157
- }
158
- const createObject = () => {
159
- const newObj: { [key: string]: any } = {}
160
- Object.keys(editRow.value).forEach(key => {
161
- if (key === props.sole) {
162
- newObj[key] = createHash()
163
- } else {
164
- const type = editRow.value[key as keyof typeof editRow.value]
165
- if (typeof type === 'boolean') {
166
- newObj[key] = false
167
- } else if (typeof type === 'number') {
168
- newObj[key] = 0
169
- } else if (typeof type === 'string') {
170
- newObj[key] = ''
171
- } else if (typeof type === 'object') {
172
- if (Array.isArray(type)) {
173
- newObj[key] = []
174
- } else {
175
- newObj[key] = {}
176
- }
177
- }
178
- }
179
- })
180
- return newObj
181
- }
182
- const tableRef = ref<any>(null)
183
-
184
- /** 最后一列 */
185
- const lastColumnProp = computed(() => {
186
- if (!tableConfig.value) return ''
187
- let sort = -1
188
- let propKey = ''
189
- for (const key in tableConfig.value) {
190
- const item = tableConfig.value[key]
191
- if (sort < item.sort) {
192
- sort = item.sort
193
- propKey = key
194
- }
195
- }
196
- return propKey
197
- })
198
- provide(tableKey, {
199
- tableConfig,
200
- lastColumnProp
201
- })
202
-
203
- defineExpose({
204
- clearSelection: () => tableRef.value?.clearSelection(),
205
- getSelectionRows: () => tableRef.value?.getSelectionRows(),
206
- toggleRowSelection: (row: any, selected: boolean) => tableRef.value?.toggleRowSelection(row, selected),
207
- toggleAllSelection: () => tableRef.value?.toggleAllSelection(),
208
- toggleRowExpansion: (row: any, expanded: boolean) => tableRef.value?.toggleRowExpansion(row, expanded),
209
- setCurrentRow: (row: any) => tableRef.value?.setCurrentRow(row),
210
- clearSort: () => tableRef.value?.clearSort(),
211
- clearFilter: (columnKeys: string[] | number[]) => tableRef.value?.clearFilter(columnKeys),
212
- doLayout: () => tableRef.value?.doLayout(),
213
- sort: (prop: string, order: string) => tableRef.value?.sort(prop, order),
214
- scrollTo: (options: any | number, yCoord?: number) => tableRef.value?.scrollTo(options, yCoord),
215
- setScrollTop: (top: number) => tableRef.value?.setScrollTop(top),
216
- setScrollLeft: (left: number) => tableRef.value?.setScrollLeft(left)
217
- })
218
- </script>
219
-
220
- <style scoped lang="scss">
221
- .m-table-box {
222
- position: relative;
223
- }
224
-
225
- .el-table__empty-text img {
226
- width: 15%
227
- }
228
- </style>
@@ -1,9 +0,0 @@
1
- import { InjectionKey, Ref } from 'vue'
2
- import { TableConfig } from 'packages/Hook/useTableConfig/useTableConfig'
3
-
4
- export const tableKey: InjectionKey<{
5
- /** 表格列配置 */
6
- tableConfig: Ref<TableConfig>,
7
- /** 最后一列 */
8
- lastColumnProp: Ref<string>
9
- }> = Symbol('tableKey')
@@ -1,22 +0,0 @@
1
- <script setup>
2
- import demo from './demo.vue'
3
- </script>
4
-
5
- 表格列组件
6
- =================
7
-
8
- ### 1) 基础用法
9
-
10
- <Preview comp-name="MTableColumn" demo-name="demo">
11
- <demo />
12
- </Preview>
13
-
14
-
15
- ### 2) Attributes
16
- | 参数 | 说明 | 类型 | 可选值 | 默认值 |
17
- | ------------ | ----------------------------------- | ------------------ | ------ | --------------------------------------------------- |
18
- | filtersValue | 列筛选过滤条件 | object | - | { } |
19
- | filters | 表格筛选数据 | string[],number[] | - | any[] |
20
- | filterMethod | 筛选方法 | Function | - | () => void |
21
- | children | 多级表头 时使用传递对应数据进行循环 | Table-column API[] | - | [] |
22
- | 其余参数 | 参考el官网的table | any | - | https://element-plus.org/zh-CN/component/table.html |
@@ -1,110 +0,0 @@
1
- <template>
2
- <div class="g-box">
3
- <el-table
4
- :data="tableData"
5
- >
6
- <MTableColumn
7
- v-for="item in tableTitle"
8
- :key="item.prop"
9
- :prop="item.prop"
10
- :label="item.label"
11
- :minWidth="item.minWidth"
12
- v-model:filtersValue="filtersValue"
13
- showOverflowTooltip
14
- :children="item.children || []"
15
- >
16
- </MTableColumn>
17
- </el-table>
18
- </div>
19
- </template>
20
-
21
- <script setup lang="ts">
22
- import { ref } from 'vue'
23
- interface FilterValue {
24
- [key: string]: Array<string | number>
25
- }
26
- const filtersValue = ref<FilterValue>({})
27
- interface User {
28
- date: string;
29
- name: string;
30
- address: string;
31
- tag: string;
32
- }
33
- const tableData = ref<User[]>([
34
- {
35
- date: '2016-05-03',
36
- name: 'Tom',
37
- address: 'No. 189, Grove St, Los Angeles',
38
- tag: 'Home'
39
- },
40
- {
41
- date: '2016-05-02',
42
- name: 'Tom',
43
- address: 'No. 189, Grove St, Los Angeles',
44
- tag: 'Office'
45
- },
46
- {
47
- date: '2016-05-04',
48
- name: 'Tom',
49
- address: 'No. 189, Grove St, Los Angeles',
50
- tag: 'Home'
51
- },
52
- {
53
- date: '2016-05-01',
54
- name: 'Tom',
55
- address: 'No. 189, Grove St, Los Angeles',
56
- tag: 'Office'
57
- }
58
- ])
59
- const tableTitle = [
60
- {
61
- label: '日期',
62
- prop: 'date',
63
- minWidth: '172px'
64
- },
65
- {
66
- label: '名称',
67
- prop: 'name',
68
- minWidth: '134px'
69
- },
70
- {
71
- label: '地址',
72
- children: [
73
- {
74
- label: '123',
75
- children: [
76
- {
77
- label: '222222222222',
78
- prop: 'address',
79
- minWidth: '134px'
80
-
81
- },
82
- {
83
- label: 'qqqqqq',
84
- prop: 'address',
85
- minWidth: '134px'
86
-
87
- }
88
- ]
89
- },
90
- {
91
- label: '2222',
92
- prop: 'address',
93
- minWidth: '134px'
94
- }
95
- ]
96
-
97
- },
98
- {
99
- label: '标签',
100
- prop: 'tag',
101
- minWidth: '134px'
102
- }
103
- ]
104
- </script>
105
-
106
- <style scoped lang="scss">
107
- .g-box {
108
- max-width: 1000px;
109
- }
110
- </style>
@@ -1,10 +0,0 @@
1
- import { App, Plugin } from 'vue'
2
- import MTableColumn from './src/MTableColumn.vue'
3
-
4
- export const MTableColumnPlugin: Plugin = {
5
- install (app: App) {
6
- app.component('MTableColumn', MTableColumn)
7
- }
8
- }
9
-
10
- export { MTableColumn }