UNPKG

vue-admin-core

Version:
1 lines 37.5 kB
{"version":3,"file":"index.mjs","sources":["../../../../../../package/formily/array-base/src/index.ts"],"sourcesContent":["/* eslint-disable indent */\nimport {\n defineComponent,\n provide,\n InjectionKey,\n Ref,\n inject,\n toRefs,\n ref,\n onBeforeUnmount,\n PropType,\n h,\n toRef,\n ExtractPropTypes,\n computed\n} from \"vue\";\nimport { FragmentComponent, useField, useFieldSchema } from \"@formily/vue\";\nimport { isValid, uid, clone } from \"@formily/shared\";\nimport { ArrayField } from \"@formily/core\";\nimport type { Action, ButtonProps } from \"element-plus\";\nimport {\n ElButton,\n ElPopconfirm,\n popconfirmProps,\n ElMessageBoxOptions,\n ElMessageBox\n} from \"element-plus\";\nimport type { Schema } from \"@formily/json-schema\";\nimport { Delete, ArrowDown, ArrowUp, Rank, Plus } from \"@element-plus/icons-vue\";\n\nimport { stylePrefix } from \"../../__builtins__/configs\";\nimport { composeExport, resolveComponent } from \"../../__builtins__/shared\";\nimport { isPromise } from \"element-plus/es/utils/index\";\nimport { omit } from \"lodash-es\";\n\nexport interface IArrayBaseAdditionProps extends ButtonProps {\n title?: string;\n method?: \"push\" | \"unshift\";\n defaultValue?: any;\n}\n\nexport type ArrayBaseMixins = {\n Addition?: typeof ArrayBaseAddition;\n Remove?: typeof ArrayBaseRemove;\n MoveUp?: typeof ArrayBaseMoveUp;\n MoveDown?: typeof ArrayBaseMoveDown;\n SortHandle?: typeof ArrayBaseSortHandle;\n Index?: typeof ArrayBaseIndex;\n useArray?: typeof useArray;\n useIndex?: typeof useIndex;\n useRecord?: typeof useRecord;\n};\n\nexport interface IArrayBaseProps {\n disabled?: boolean;\n keyMap?: WeakMap<Record<string, unknown>, string> | string[] | null;\n}\n\nexport interface IArrayBaseItemProps {\n index: number;\n record: any;\n}\n\nexport interface IArrayBaseContext {\n field: Ref<ArrayField>;\n schema: Ref<Schema>;\n props: IArrayBaseProps;\n attrs: {\n [key in string]?: any;\n };\n keyMap?: WeakMap<Record<string, unknown>, string> | string[] | null;\n}\n\nconst ArrayBaseSymbol: InjectionKey<IArrayBaseContext> = Symbol(\"ArrayBaseContext\");\nconst ItemSymbol: InjectionKey<IArrayBaseItemProps> = Symbol(\"ItemContext\");\n\nconst useArray = () => {\n return inject(ArrayBaseSymbol, null);\n};\n\nconst useIndex = (index?: number) => {\n const { index: indexRef } = toRefs(inject(ItemSymbol) as IArrayBaseItemProps);\n return indexRef ?? ref(index);\n};\n\nconst useRecord = (record?: number) => {\n const { record: recordRef } = toRefs(inject(ItemSymbol) as IArrayBaseItemProps);\n return recordRef.value ?? ref(record);\n};\n\nconst useItemScope = () => {\n return toRef(inject(ItemSymbol) as IArrayBaseItemProps);\n};\n\n// const use\n\nconst isObjectValue: (schema: Schema) => boolean = (schema: Schema) => {\n if (Array.isArray(schema?.items)) return isObjectValue(schema.items[0]);\n\n if (schema?.items?.type === \"array\" || schema?.items?.type === \"object\") {\n return true;\n }\n return false;\n};\n\nconst useKey = (schema: Schema) => {\n const isObject = isObjectValue(schema);\n let keyMap: WeakMap<Record<string, unknown>, string> | string[] | null = null;\n\n if (isObject) {\n keyMap = new WeakMap();\n } else {\n keyMap = [];\n }\n\n onBeforeUnmount(() => {\n keyMap = null;\n });\n\n return {\n keyMap,\n getKey: (record: any, index: number) => {\n if (keyMap instanceof WeakMap) {\n if (!keyMap.has(record)) {\n keyMap.set(record, uid());\n }\n return `${keyMap.get(record)}-${index}`;\n }\n\n if (keyMap && !keyMap[index]) {\n keyMap[index] = uid();\n }\n return keyMap ? `${keyMap[index]}-${index}` : undefined;\n }\n };\n};\n\nconst getDefaultValue = (defaultValue: any, schema: Schema): any => {\n if (isValid(defaultValue)) return clone(defaultValue);\n if (Array.isArray(schema?.items)) return getDefaultValue(defaultValue, schema.items[0]);\n if (schema?.items?.type === \"array\") return [];\n if (schema?.items?.type === \"boolean\") return true;\n if (schema?.items?.type === \"date\") return \"\";\n if (schema?.items?.type === \"datetime\") return \"\";\n if (schema?.items?.type === \"number\") return 0;\n if (schema?.items?.type === \"object\") return {};\n if (schema?.items?.type === \"string\") return \"\";\n return null;\n};\n\nconst ArrayBaseInner = defineComponent({\n name: \"ArrayBase\",\n props: {\n disabled: {\n type: Boolean,\n default: false\n },\n keyMap: {\n type: [WeakMap, Array] as PropType<WeakMap<Record<string, unknown>, string> | string[]>\n }\n },\n setup(props, { slots, attrs }) {\n const field = useField<ArrayField>();\n const schema = useFieldSchema();\n\n provide(ArrayBaseSymbol, {\n field,\n schema,\n props,\n attrs,\n keyMap: props.keyMap\n });\n return () => {\n return h(FragmentComponent, {}, slots);\n };\n }\n});\n\nconst ArrayBaseButton = defineComponent({\n name: \"ArrayBaseButton\",\n props: {\n ...ElButton.props,\n popconfirmProps: {\n type: Object as PropType<ExtractPropTypes<typeof popconfirmProps>>\n },\n messageBoxOptions: {\n type: Object as PropType<ElMessageBoxOptions>\n },\n title: {\n type: String\n },\n link: {\n type: Boolean,\n default: true\n },\n size: {\n type: String,\n default: \"small\"\n },\n onClick: {\n type: Function\n }\n },\n emits: [\"click\"],\n setup(props, { attrs }) {\n const scope = useItemScope();\n const field = useField();\n const base = useArray();\n const schema = useFieldSchema();\n const buttonProps = omit(props, [\"popconfirmProps\", \"messageBoxOptions\"]);\n const popconfirmProps = computed(() => props.popconfirmProps);\n const messageBoxOptions = computed(() => props.messageBoxOptions);\n const loading = ref(false);\n return () => {\n if (base?.field.value.pattern !== \"editable\") return null;\n const ButtonNode = h(\n ElButton,\n {\n ...buttonProps,\n ...attrs,\n type: buttonProps.type || \"primary\",\n loading: loading.value,\n onClick: async (e: MouseEvent) => {\n e.stopPropagation();\n if (messageBoxOptions.value) {\n ElMessageBox.confirm(\"\", {\n type: \"warning\",\n ...messageBoxOptions.value\n })\n .then(async () => {\n loading.value = true;\n await messageBoxOptions.value?.onConfirm?.(e, scope.value);\n loading.value = false;\n })\n .catch(async (action: Action) => {\n loading.value = true;\n await messageBoxOptions.value?.onCancel?.(e, scope.value, action);\n loading.value = false;\n });\n } else {\n if (typeof props.onClick === \"function\") {\n loading.value = true;\n await props.onClick(e, scope.value);\n loading.value = false;\n }\n }\n }\n },\n {\n default: () => [\n resolveComponent(schema.value[\"x-render\"]?.(scope.value)) ||\n field.value.title ||\n props.title\n ]\n }\n );\n if (popconfirmProps.value) {\n return h(\n ElPopconfirm,\n {\n ...popconfirmProps.value,\n onCancel: async (e: any) => {\n loading.value = true;\n await popconfirmProps.value?.onCancel?.(e, scope.value);\n loading.value = false;\n },\n onConfirm: async (e: any) => {\n loading.value = true;\n popconfirmProps.value?.onConfirm?.(e, scope.value);\n loading.value = false;\n }\n },\n {\n reference: () => ButtonNode\n }\n );\n }\n return ButtonNode;\n };\n }\n});\n\nconst ArrayBaseItem = defineComponent({\n name: \"ArrayBaseItem\",\n props: [\"index\", \"record\"],\n setup(props: IArrayBaseItemProps, { slots }) {\n provide(ItemSymbol, props);\n return () => {\n return h(FragmentComponent, {}, slots);\n };\n }\n});\n\nconst ArrayBaseSortHandle = defineComponent({\n name: \"ArrayBaseSortHandle\",\n props: [\"index\"],\n setup(props, { attrs }) {\n const array = useArray();\n const prefixCls = `${stylePrefix}-array-base`;\n\n return () => {\n if (!array) return null;\n if (array.field.value?.pattern !== \"editable\") return null;\n\n return h(\n ElButton,\n {\n directives: [{ name: \"handle\" }],\n size: \"small\",\n type: \"primary\",\n text: true,\n icon: Rank,\n ...attrs,\n class: [`${prefixCls}-sort-handle`].concat(attrs.class as any)\n },\n {}\n );\n };\n }\n});\n\nconst ArrayBaseIndex = defineComponent({\n name: \"ArrayBaseIndex\",\n setup(props, { attrs }) {\n const index = useIndex();\n const prefixCls = `${stylePrefix}-array-base`;\n return () => {\n const { class: className, ...other } = attrs;\n return h(\n \"span\",\n {\n class: [`${prefixCls}-index`, className],\n ...other\n },\n {\n default: () => [`${index.value + 1}`]\n }\n );\n };\n }\n});\n\nconst ArrayBaseAddition = defineComponent({\n name: \"ArrayBaseAddition\",\n props: [\"method\", \"defaultValue\", \"title\"],\n setup(props, { attrs }) {\n const self = useField();\n const array = useArray();\n const prefixCls = `${stylePrefix}-array-base`;\n return () => {\n if (!array) return null;\n if (array?.field.value.pattern !== \"editable\") return null;\n const { class: className, ...other } = attrs;\n return h(\n ElButton,\n {\n class: [`${prefixCls}-addition`, className],\n icon: Plus,\n ...other,\n ...props,\n onClick: (e) => {\n if (array.props?.disabled) return;\n const defaultValue = getDefaultValue(props.defaultValue, array?.schema.value);\n if (props.method === \"unshift\") {\n array?.field?.value.unshift(defaultValue);\n array.attrs?.add?.(0);\n } else {\n array?.field?.value.push(defaultValue);\n array.attrs?.add?.(array?.field?.value?.value?.length - 1);\n }\n if (typeof attrs.onClick === \"function\") {\n attrs.onClick(e);\n }\n }\n },\n {\n default: () => [self.value.title || props.title]\n }\n );\n };\n }\n});\n\nconst ArrayBaseRemove = defineComponent({\n name: \"ArrayBaseRemove\",\n props: {\n ...ArrayBaseButton.props,\n index: {\n type: Number\n },\n onClick: {\n type: Function\n }\n },\n setup(props, { attrs }) {\n const indexRef = useIndex(props.index);\n const self = useField();\n const base = useArray();\n const prefixCls = `${stylePrefix}-array-base`;\n\n const remove = async (e: MouseEvent) => {\n e.stopPropagation();\n if (typeof props.onClick === \"function\") {\n const fn = await props.onClick(e);\n if (isPromise(fn)) {\n await fn;\n }\n }\n base?.field.value.remove(indexRef.value as number);\n base?.attrs?.remove?.(indexRef.value as number);\n };\n\n const popconfirmProps = {\n title: \"是否该删除数据\",\n ...props.popconfirmProps,\n onConfirm: async (...args: any) => {\n await props.popconfirmProps?.onConfirm?.(...args);\n base?.field.value.remove(indexRef.value as number);\n base?.attrs?.remove?.(indexRef.value as number);\n }\n };\n\n const messageBoxOptions = {\n message: \"是否该删除数据\",\n ...props.messageBoxOptions,\n onConfirm: async (...args: any) => {\n await props.messageBoxOptions?.onConfirm?.(...args);\n base?.field.value.remove(indexRef.value as number);\n base?.attrs?.remove?.(indexRef.value as number);\n }\n };\n\n return () => {\n if (base?.field.value.pattern !== \"editable\") return null;\n const { class: className, ...other } = attrs;\n return h(\n ArrayBaseButton,\n {\n class: [`${prefixCls}-remove`, className],\n link: true,\n size: \"small\",\n icon: Delete,\n ...props,\n ...other,\n type: props.type ? props.type : \"danger\",\n onClick: props.popconfirmProps || props.messageBoxOptions ? () => {} : remove,\n popconfirmProps: props.popconfirmProps ? popconfirmProps : null,\n messageBoxOptions: props.messageBoxOptions ? messageBoxOptions : null\n },\n {\n default: () => [self.value.title || props.title]\n }\n );\n };\n }\n});\n\nconst ArrayBaseMoveDown = defineComponent({\n name: \"ArrayBaseMoveDown\",\n props: [\"index\", \"title\"],\n setup(props, { attrs }) {\n const indexRef = useIndex(props.index);\n const self = useField();\n const base = useArray();\n const prefixCls = `${stylePrefix}-array-base`;\n return () => {\n if (base?.field.value.pattern !== \"editable\") return null;\n\n const { class: className, ...other } = attrs;\n return h(\n ElButton,\n {\n class: [`${prefixCls}-move-down`, className],\n size: \"small\",\n type: \"primary\",\n link: true,\n icon: ArrowDown,\n ...other,\n onClick: async (e: MouseEvent) => {\n e.stopPropagation();\n\n if (typeof attrs.onClick === \"function\") {\n const fn = attrs.onClick(e);\n if (isPromise(fn)) {\n await fn;\n }\n }\n\n if (Array.isArray(base?.keyMap)) {\n base.keyMap.splice(indexRef.value + 1, 0, base.keyMap.splice(indexRef.value, 1)[0]);\n }\n\n base?.field.value.moveDown(indexRef.value as number);\n base?.attrs?.moveDown?.(indexRef.value as number);\n }\n },\n {\n default: () => [self.value.title || props.title]\n }\n );\n };\n }\n});\n\nconst ArrayBaseMoveUp = defineComponent({\n name: \"ArrayBaseMoveUp\",\n props: [\"index\", \"title\"],\n setup(props, { attrs }) {\n const indexRef = useIndex(props.index);\n const self = useField();\n const base = useArray();\n const prefixCls = `${stylePrefix}-array-base`;\n return () => {\n if (base?.field.value.pattern !== \"editable\") return null;\n const { class: className, ...other } = attrs;\n return h(\n ElButton,\n {\n class: [`${prefixCls}-move-up`, className],\n size: \"small\",\n type: \"primary\",\n link: true,\n icon: ArrowUp,\n ...other,\n onClick: async (e: MouseEvent) => {\n e.stopPropagation();\n if (typeof attrs.onClick === \"function\") {\n const fn = attrs.onClick(e);\n if (isPromise(fn)) {\n await fn;\n }\n }\n if (Array.isArray(base?.keyMap)) {\n base.keyMap.splice(indexRef.value - 1, 0, base.keyMap.splice(indexRef.value, 1)[0]);\n }\n\n base?.field.value.moveUp(indexRef.value as number);\n base?.attrs?.moveUp?.(indexRef.value as number);\n }\n },\n {\n default: () => [self.value.title || props.title]\n }\n );\n };\n }\n});\n\nconst ArrayBaseButtonGroup = defineComponent({\n name: \"ArrayBaseButtonGroup\",\n inheritAttrs: false,\n props: [\"index\"],\n setup(props) {\n const indexRef = useIndex(props.index);\n const record = useRecord();\n const schema = useFieldSchema();\n const base = useArray();\n return () => {\n if (base?.field.value.pattern !== \"editable\") return null;\n return h(\n FragmentComponent,\n {},\n {\n default: () =>\n resolveComponent(schema.value[\"x-render\"]?.({ row: record, $index: indexRef.value }))\n }\n );\n };\n }\n});\n\nexport const ArrayBase = composeExport(ArrayBaseInner, {\n Index: ArrayBaseIndex,\n Item: ArrayBaseItem,\n SortHandle: ArrayBaseSortHandle,\n Addition: ArrayBaseAddition,\n Remove: ArrayBaseRemove,\n MoveDown: ArrayBaseMoveDown,\n MoveUp: ArrayBaseMoveUp,\n Button: ArrayBaseButton,\n ButtonGroup: ArrayBaseButtonGroup,\n useArray: useArray,\n useIndex: useIndex,\n useKey: useKey,\n useRecord: useRecord\n});\n"],"names":["popconfirmProps"],"mappings":"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"}