br-dionysus 1.16.8 → 1.17.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.
- package/README.md +50 -10
- package/attributes.json +1 -1
- package/build/doc.config.ts +1 -1
- package/build/lib.config.ts +1 -1
- package/dist/br-dionysus.es.js +8869 -8738
- package/dist/br-dionysus.umd.js +6 -30
- package/dist/index.css +1 -1
- package/dist/packages/MSelect/src/MSelect.vue.d.ts +3 -3
- package/dist/packages/MSelect/src/token.d.ts +1 -1
- package/dist/packages/MSelectTable/src/MSelectTable.vue.d.ts +25 -15
- package/dist/packages/MSelectTableV1/src/MSelectTableV1.vue.d.ts +1 -1
- package/dist/packages/MSelectV2/src/MSelectV2.vue.d.ts +3 -3
- package/dist/packages/MTable/src/MTable.vue.d.ts +1 -1
- package/dist/packages/MTableV2/src/MTableV2.vue.d.ts +1 -1
- package/dist/packages/Tool/uniqueByKey/uniqueByKey.d.ts +8 -0
- package/package.json +43 -43
- package/packages/MSelect/docs/demo.vue +2 -0
- package/packages/MSelect/src/MSelect.vue +12 -11
- package/packages/MSelect/src/token.ts +1 -1
- package/packages/MSelectTable/docs/DemoTest2.vue +1 -1
- package/packages/MSelectTable/docs/DemoTest3.vue +0 -2
- package/packages/MSelectTable/docs/DemoTest4.vue +0 -11
- package/packages/MSelectTable/docs/DemoTest5.vue +113 -0
- package/packages/MSelectTable/docs/DemoTest6.vue +102 -0
- package/packages/MSelectTable/docs/README.md +5 -5
- package/packages/MSelectTable/docs/demo.vue +6 -0
- package/packages/MSelectTable/src/MSelectTable.vue +271 -193
- package/packages/MSelectTableV1/src/MSelectTableV1.vue +2 -2
- package/packages/MSelectV2/src/MSelectV2.vue +1 -1
- package/packages/Tool/uniqueByKey/README.md +16 -0
- package/packages/Tool/uniqueByKey/uniqueByKey.ts +12 -0
- package/packages/typings/global.d.ts +17 -10
- package/tags.json +1 -1
- package/vite.config.ts +3 -1
- package/web-types.json +1 -1
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
<template>
|
|
2
|
+
<div>
|
|
3
|
+
<h5>多选,允许创建条目</h5>
|
|
4
|
+
<p>选择器的值: {{ code }}</p>
|
|
5
|
+
<m-select-table
|
|
6
|
+
class="u-select"
|
|
7
|
+
v-model="code"
|
|
8
|
+
:tableTitle="commodityOptionsTitle"
|
|
9
|
+
:options="options"
|
|
10
|
+
:keywords="{ label: 'ApprovedQtyPU', value: 'DocNo' }"
|
|
11
|
+
:total="total"
|
|
12
|
+
scrollbarAlwaysOn
|
|
13
|
+
filterable
|
|
14
|
+
remote
|
|
15
|
+
multiple
|
|
16
|
+
border
|
|
17
|
+
allowCreate
|
|
18
|
+
:remoteMethod="remoteMethod"
|
|
19
|
+
@selectChange="selectChange"
|
|
20
|
+
@selectMultiple="selectMultiple"
|
|
21
|
+
@toPage="toPage"
|
|
22
|
+
></m-select-table>
|
|
23
|
+
</div>
|
|
24
|
+
</template>
|
|
25
|
+
|
|
26
|
+
<script setup lang="ts">
|
|
27
|
+
import { ref } from 'vue'
|
|
28
|
+
import { Page } from './../../typings/class'
|
|
29
|
+
|
|
30
|
+
const commodityOptionsTitle: TableTitle[] = [{
|
|
31
|
+
prop: 'PRDocType',
|
|
32
|
+
label: '单据类型'
|
|
33
|
+
}, {
|
|
34
|
+
prop: 'DocNo',
|
|
35
|
+
label: '请购单号'
|
|
36
|
+
}, {
|
|
37
|
+
prop: 'ApprovedQtyPU',
|
|
38
|
+
label: '名称'
|
|
39
|
+
}, {
|
|
40
|
+
prop: 'ACCode',
|
|
41
|
+
label: '货币'
|
|
42
|
+
}]
|
|
43
|
+
|
|
44
|
+
const code = ref<string | number | Array<string | number>>([])
|
|
45
|
+
|
|
46
|
+
const total = ref(0)
|
|
47
|
+
const options = ref<any[]>([])
|
|
48
|
+
const mockData: any[] = []
|
|
49
|
+
for (let i = 0; i < 1000; i++) {
|
|
50
|
+
mockData.push({
|
|
51
|
+
PRDocType: '测试数据' + (i + 1),
|
|
52
|
+
DocNo: i + 1,
|
|
53
|
+
ApprovedQtyPU: 'ApprovedQtyPU' + (i + 1),
|
|
54
|
+
ACCode: 'ACCode'
|
|
55
|
+
})
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
setTimeout(() => {
|
|
59
|
+
options.value = [{
|
|
60
|
+
PRDocType: 'xxxPRDocType1',
|
|
61
|
+
DocNo: 1,
|
|
62
|
+
ApprovedQtyPU: 'xxxApprovedQtyPU1',
|
|
63
|
+
ACCode: 'xxxACCode1'
|
|
64
|
+
}, {
|
|
65
|
+
PRDocType: 'xxxPRDocType2',
|
|
66
|
+
DocNo: 2,
|
|
67
|
+
ApprovedQtyPU: 'xxxApprovedQtyPU2',
|
|
68
|
+
ACCode: 'xxxACCode2'
|
|
69
|
+
}]
|
|
70
|
+
}, 100)
|
|
71
|
+
|
|
72
|
+
const toPage = (page: Page, str: any) => {
|
|
73
|
+
getData(str, page)
|
|
74
|
+
}
|
|
75
|
+
const selectMultiple = (value: string | number | Array<number | string>) => {
|
|
76
|
+
code.value = value
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
const remoteMethod = async (query: string, page: Page = new Page()) => {
|
|
80
|
+
await getData(query, page)
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
const selectChange = (value: string | number | Array<number | string>) => {
|
|
84
|
+
console.log('选择变化事件触发,注意,绑定值没有发生变化', value)
|
|
85
|
+
}
|
|
86
|
+
const getData = async (query: string, page: any) => {
|
|
87
|
+
return new Promise<void>((resolve) => {
|
|
88
|
+
setTimeout(() => {
|
|
89
|
+
const start = (page.currentPage - 1) * page.pageSize
|
|
90
|
+
options.value = mockData.filter(item => item.PRDocType.includes(query)).slice(start, start + page.pageSize)
|
|
91
|
+
total.value = mockData.length
|
|
92
|
+
resolve()
|
|
93
|
+
}, 500)
|
|
94
|
+
})
|
|
95
|
+
}
|
|
96
|
+
</script>
|
|
97
|
+
|
|
98
|
+
<style>
|
|
99
|
+
.u-select {
|
|
100
|
+
width: 240px;
|
|
101
|
+
}
|
|
102
|
+
</style>
|
|
@@ -63,8 +63,8 @@ import demo from './demo.vue'
|
|
|
63
63
|
| toPage | 当没有使用filterMethod时候才会有回调否则没有 | page 表格分页 |
|
|
64
64
|
| selectMultiple | 多选确认按钮时的回调 配合isAffirmBtn使用 | (values: Array<string \| number>, rows: Option[]) |
|
|
65
65
|
| clear | 用户点击清空按钮时触发 | - |
|
|
66
|
-
| removeTag | 多选模式下移除tag时触发 | (tag: any)
|
|
67
|
-
| selectChange |
|
|
66
|
+
| removeTag | 多选模式下移除tag时触发 | (tag: any) |
|
|
67
|
+
| selectChange | 勾选数据change事件,选中值不发生变化 | (value: any) |
|
|
68
68
|
|
|
69
69
|
### 4) Methods
|
|
70
70
|
|
|
@@ -90,6 +90,6 @@ import demo from './demo.vue'
|
|
|
90
90
|
|
|
91
91
|
#### slots(插槽)
|
|
92
92
|
|
|
93
|
-
| 插槽名
|
|
94
|
-
|
|
95
|
-
| auxiliary | 在表格选择器头部位置的辅助信息插槽 |
|
|
93
|
+
| 插槽名 | 描述 |
|
|
94
|
+
|-----------|-------------------|
|
|
95
|
+
| auxiliary | 在表格选择器头部位置的辅助信息插槽 |
|
|
@@ -7,6 +7,10 @@
|
|
|
7
7
|
<DemoTest3></DemoTest3>
|
|
8
8
|
<el-divider />
|
|
9
9
|
<DemoTest4></DemoTest4>
|
|
10
|
+
<el-divider />
|
|
11
|
+
<DemoTest5></DemoTest5>
|
|
12
|
+
<el-divider />
|
|
13
|
+
<DemoTest6></DemoTest6>
|
|
10
14
|
</div>
|
|
11
15
|
</template>
|
|
12
16
|
|
|
@@ -15,6 +19,8 @@ import DemoTest1 from 'packages/MSelectTable/docs/DemoTest1.vue'
|
|
|
15
19
|
import DemoTest2 from 'packages/MSelectTable/docs/DemoTest2.vue'
|
|
16
20
|
import DemoTest3 from 'packages/MSelectTable/docs/DemoTest3.vue'
|
|
17
21
|
import DemoTest4 from 'packages/MSelectTable/docs/DemoTest4.vue'
|
|
22
|
+
import DemoTest5 from 'packages/MSelectTable/docs/DemoTest5.vue'
|
|
23
|
+
import DemoTest6 from 'packages/MSelectTable/docs/DemoTest6.vue'
|
|
18
24
|
</script>
|
|
19
25
|
|
|
20
26
|
<style>
|