UNPKG

vue-admin-core

Version:
1 lines 7.9 kB
{"version":3,"file":"index.mjs","sources":["../../../../../../package/formily/array-tabs/src/index.ts"],"sourcesContent":["import { defineComponent, ref, h } from \"vue\";\nimport { observer } from \"@formily/reactive-vue\";\nimport { ArrayField } from \"@formily/core\";\nimport { useField, useFieldSchema, RecursionField } from \"@formily/vue\";\nimport { ElTabs, ElTabPane, ElBadge } from \"element-plus\";\nimport { stylePrefix } from \"../../__builtins__/configs\";\n\nElTabPane.props.label = {\n default: \"\",\n type: Object\n};\n\nexport const ArrayTabs = observer(\n defineComponent({\n name: \"ArrayTabs\",\n props: [\"onChange\"],\n setup(props, { attrs }) {\n const fieldRef = useField<ArrayField>();\n const schemaRef = useFieldSchema();\n\n const prefixCls = `${stylePrefix}-array-tabs`;\n const activeKey = ref(\"tab-0\");\n return () => {\n const field = fieldRef.value;\n const schema = schemaRef.value;\n const value = Array.isArray(field.value) ? field.value : [];\n const dataSource = value?.length ? value : [{}];\n\n const onEdit = (targetKey: any, type: \"add\" | \"remove\") => {\n if (type == \"add\") {\n const id = dataSource.length;\n if (field?.value?.length) {\n field.push(null);\n } else {\n field.push(null, null);\n }\n activeKey.value = `tab-${id}`;\n } else if (type == \"remove\") {\n const index = targetKey.match(/-(\\d+)/)?.[1];\n field.remove(Number(index));\n if (activeKey.value === targetKey) {\n activeKey.value = `tab-${index - 1}`;\n }\n }\n !(attrs as any)?.[\"tab-remove\"]?.(targetKey, type);\n };\n\n const badgedTab = (index: number) => {\n const tab = `${field.title || \"Untitled\"} ${index + 1}`;\n const path = field.address.concat(index);\n const errors = field.form.queryFeedbacks({\n type: \"error\",\n address: `${path}.**`\n });\n if (errors.length) {\n return h(\n \"span\",\n {},\n {\n default: () => [\n h(\n ElBadge,\n {\n class: [`${prefixCls}-errors-badge`],\n value: errors.length\n },\n {\n default: () => [tab]\n }\n )\n ]\n }\n );\n }\n return h(\n \"span\",\n {},\n {\n default: () => [tab]\n }\n );\n };\n\n const renderItems = () =>\n dataSource?.map((item, index) => {\n const items = Array.isArray(schema.items) ? schema.items[index] : schema.items;\n const key = `tab-${index}`;\n\n const IElTabPane = h(\n ElTabPane,\n {\n key,\n closable: index !== 0,\n name: key\n },\n {\n default: () =>\n h(\n RecursionField,\n {\n schema: items,\n name: index\n },\n {}\n )\n }\n );\n (IElTabPane.props as any).label = badgedTab(index);\n return IElTabPane;\n });\n return h(\n ElTabs as any,\n {\n class: [prefixCls],\n type: \"card\",\n modelValue: activeKey.value,\n addable: true,\n ...attrs,\n \"onUpdata:modelValue\": (key: any) => {\n activeKey.value = key;\n },\n onEdit: onEdit\n },\n {\n default: () => [renderItems()]\n }\n );\n };\n }\n })\n);\n\nexport default ArrayTabs;\n"],"names":[],"mappings":"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"}