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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-packer",
3
- "version": "1.13.3",
3
+ "version": "1.13.4",
4
4
  "main": "index.js",
5
5
  "repository": "https://github.com/kevily/create-packer",
6
6
  "author": "1k <bug_zero@163.com>",
@@ -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: any[]
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']>(() => size(selected.value))
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,3 +1,3 @@
1
1
  export { default as app } from './app'
2
- export { default as createApiComponent } from './createApiComponent'
2
+ export { default as createModalVNode } from './createModalVNode'
3
3
  export { default as request } from './request'
@@ -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
- }