create-packer 1.13.3 → 1.13.4
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/package.json +1 -1
- package/template/vue/src/{controllers → models}/useList.ts +8 -3
- package/template/vue/src/providers/createModalVNode.ts +34 -0
- package/template/vue/src/providers/index.ts +1 -1
- package/template/vue/src/providers/createApiComponent.ts +0 -22
- /package/template/react/src/{app.store.ts → app.model.ts} +0 -0
- /package/template/react/src/{controllers → models}/index.ts +0 -0
- /package/template/react/src/{controllers → models}/useVisible.ts +0 -0
- /package/template/vue/src/{controllers → models}/index.ts +0 -0
- /package/template/vue/src/{controllers → models}/useVisible.ts +0 -0
package/package.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ref, reactive, computed, unref } from 'vue'
|
|
2
|
-
import { cloneDeep, concat, assign, pick, isNil, size, map } from 'lodash-es'
|
|
2
|
+
import { cloneDeep, concat, assign, pick, isNil, size, map, max } from 'lodash-es'
|
|
3
3
|
|
|
4
4
|
export interface stateType<ListItem, P> {
|
|
5
5
|
loading: boolean
|
|
@@ -7,7 +7,8 @@ export interface stateType<ListItem, P> {
|
|
|
7
7
|
params: P
|
|
8
8
|
list: ListItem[]
|
|
9
9
|
sum: Record<string, any>
|
|
10
|
-
selected:
|
|
10
|
+
selected: ListItem[]
|
|
11
|
+
selectedKeys: (string | number)[]
|
|
11
12
|
pagination: {
|
|
12
13
|
current: number
|
|
13
14
|
pageSize: number
|
|
@@ -47,12 +48,15 @@ export default function createListStore<
|
|
|
47
48
|
const list = ref<stateType<ListItem, P>['list']>([])
|
|
48
49
|
const sum = reactive<stateType<ListItem, P>['sum']>({})
|
|
49
50
|
const selected = ref<stateType<ListItem, P>['selected']>([])
|
|
51
|
+
const selectedKeys = ref<stateType<ListItem, P>['selectedKeys']>([])
|
|
50
52
|
const pagination = computed<stateType<ListItem, P>['pagination']>(() => ({
|
|
51
53
|
current: params.page || 0,
|
|
52
54
|
pageSize: params.pageSize || 0,
|
|
53
55
|
total: total.value
|
|
54
56
|
}))
|
|
55
|
-
const selectedLen = computed<stateType<ListItem, P>['selectedLen']>(() =>
|
|
57
|
+
const selectedLen = computed<stateType<ListItem, P>['selectedLen']>(() => {
|
|
58
|
+
return max([size(selected.value), size(selectedKeys.value)]) || 0
|
|
59
|
+
})
|
|
56
60
|
function resetParams() {
|
|
57
61
|
assign(params, cloneDeep(config.defaultParams))
|
|
58
62
|
}
|
|
@@ -99,6 +103,7 @@ export default function createListStore<
|
|
|
99
103
|
list,
|
|
100
104
|
sum,
|
|
101
105
|
selected,
|
|
106
|
+
selectedKeys,
|
|
102
107
|
pagination,
|
|
103
108
|
selectedLen,
|
|
104
109
|
resetParams,
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { createVNode, render, VNodeChild } from 'vue'
|
|
2
|
+
import { assign } from 'lodash-es'
|
|
3
|
+
import app from '@/providers/app'
|
|
4
|
+
|
|
5
|
+
const store = new Map()
|
|
6
|
+
export default function createModal<
|
|
7
|
+
P extends Record<string, any>,
|
|
8
|
+
E extends Record<string, any>,
|
|
9
|
+
Slots extends Record<string, () => VNodeChild> = Record<string, () => VNodeChild>
|
|
10
|
+
>(name: string, component: any, props?: P, slots?: Slots) {
|
|
11
|
+
let vNode = store.get(name)
|
|
12
|
+
function updateProps(props: Partial<P>) {
|
|
13
|
+
assign(vNode.component.props, props)
|
|
14
|
+
}
|
|
15
|
+
function updateSlots(slots?: Partial<Record<string, () => VNodeChild>>) {
|
|
16
|
+
assign(vNode.component.slots, slots)
|
|
17
|
+
}
|
|
18
|
+
if (!vNode) {
|
|
19
|
+
const container = document.createElement('div')
|
|
20
|
+
vNode = createVNode(component, props, slots)
|
|
21
|
+
vNode.appContext = app._context || {}
|
|
22
|
+
store.set(name, vNode)
|
|
23
|
+
render(vNode, container)
|
|
24
|
+
} else {
|
|
25
|
+
updateProps(props || {})
|
|
26
|
+
updateSlots(slots)
|
|
27
|
+
}
|
|
28
|
+
return {
|
|
29
|
+
instance: vNode,
|
|
30
|
+
updateProps,
|
|
31
|
+
updateSlots,
|
|
32
|
+
...(vNode.component?.exposed as E)
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import app from '@/providers/app'
|
|
2
|
-
import { createVNode, render } from 'vue'
|
|
3
|
-
import { assign } from 'lodash-es'
|
|
4
|
-
|
|
5
|
-
const store = new Map()
|
|
6
|
-
export default function createApiComponent(component: any, props?: Record<string, any>) {
|
|
7
|
-
const container = document.createElement('div')
|
|
8
|
-
let vNode = store.get(component)
|
|
9
|
-
if (!vNode) {
|
|
10
|
-
vNode = createVNode(component)
|
|
11
|
-
vNode.appContext = app._context || {}
|
|
12
|
-
store.set(component, vNode)
|
|
13
|
-
}
|
|
14
|
-
assign(vNode.component.props, props)
|
|
15
|
-
render(vNode, container)
|
|
16
|
-
|
|
17
|
-
return {
|
|
18
|
-
instance: vNode,
|
|
19
|
-
el: container.firstElementChild,
|
|
20
|
-
...vNode.component?.exposed
|
|
21
|
-
}
|
|
22
|
-
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|