@ditari/bsui 5.1.19 → 5.1.22
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/dist/cjs/components/action-bar/ActionBar.vue.cjs +10 -0
- package/dist/cjs/components/action-bar/ActionBar.vue.cjs.map +1 -0
- package/dist/cjs/components/action-bar/ActionBar.vue.d.ts +48 -0
- package/dist/cjs/components/action-bar/ActionBar.vue2.cjs +114 -0
- package/dist/cjs/components/action-bar/ActionBar.vue2.cjs.map +1 -0
- package/dist/cjs/components/action-bar/index.cjs +16 -0
- package/dist/cjs/components/action-bar/index.cjs.map +1 -0
- package/dist/cjs/components/action-bar/index.d.ts +4 -0
- package/dist/cjs/components/card/Card.cjs +8 -2
- package/dist/cjs/components/card/Card.cjs.map +1 -1
- package/dist/cjs/components/card/style.cjs +4 -2
- package/dist/cjs/components/card/style.cjs.map +1 -1
- package/dist/cjs/components/desensitize/Desensitize.cjs +99 -0
- package/dist/cjs/components/desensitize/Desensitize.cjs.map +1 -0
- package/dist/cjs/components/desensitize/Desensitize.d.ts +60 -0
- package/dist/cjs/components/desensitize/index.cjs +15 -0
- package/dist/cjs/components/desensitize/index.cjs.map +1 -0
- package/dist/cjs/components/desensitize/index.d.ts +4 -0
- package/dist/cjs/components/desensitize/style.cjs +22 -0
- package/dist/cjs/components/desensitize/style.cjs.map +1 -0
- package/dist/cjs/components/desensitize/style.d.ts +6 -0
- package/dist/cjs/components/dic/DicReplace.cjs +2 -1
- package/dist/cjs/components/dic/DicReplace.cjs.map +1 -1
- package/dist/cjs/components/form/FormLayout.cjs +147 -23
- package/dist/cjs/components/form/FormLayout.cjs.map +1 -1
- package/dist/cjs/components/form/FormLayout.d.ts +61 -0
- package/dist/cjs/components/index.cjs +6 -0
- package/dist/cjs/components/index.cjs.map +1 -1
- package/dist/cjs/components/index.d.ts +2 -0
- package/dist/cjs/components/layout/AppContext.cjs.map +1 -1
- package/dist/cjs/components/layout/AppLayout.cjs.map +1 -1
- package/dist/cjs/components/layout/List.cjs.map +1 -1
- package/dist/cjs/components/layout/Show.cjs.map +1 -1
- package/dist/cjs/components/layout/components/layout/RouterContentName.vue2.cjs.map +1 -1
- package/dist/cjs/components/layout/components/mobile/MobileList.cjs.map +1 -1
- package/dist/cjs/components/layout/style.cjs.map +1 -1
- package/dist/cjs/components/select/Select.vue2.cjs +0 -3
- package/dist/cjs/components/select/Select.vue2.cjs.map +1 -1
- package/dist/cjs/components/table-form/TableForm.cjs.map +1 -1
- package/dist/cjs/components/table-form/TableFormItem.cjs.map +1 -1
- package/dist/cjs/components/table-form/index.cjs.map +1 -1
- package/dist/cjs/components/table-form/interface.cjs.map +1 -1
- package/dist/cjs/components/table-form/style.cjs.map +1 -1
- package/dist/cjs/components/tools-bar/ToolsBar.vue.cjs +10 -0
- package/dist/cjs/components/tools-bar/ToolsBar.vue.cjs.map +1 -0
- package/dist/cjs/components/tools-bar/ToolsBar.vue.d.ts +27 -0
- package/dist/cjs/components/tools-bar/ToolsBar.vue2.cjs +124 -0
- package/dist/cjs/components/tools-bar/ToolsBar.vue2.cjs.map +1 -0
- package/dist/cjs/components/tools-bar/index.cjs +16 -0
- package/dist/cjs/components/tools-bar/index.cjs.map +1 -0
- package/dist/cjs/components/tools-bar/index.d.ts +4 -0
- package/dist/cjs/hooks/useDesign.cjs.map +1 -1
- package/dist/cjs/index.cjs +4 -0
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/utils/withInstall.cjs.map +1 -1
- package/dist/esm/components/action-bar/ActionBar.vue.d.ts +48 -0
- package/dist/esm/components/action-bar/ActionBar.vue.mjs +6 -0
- package/dist/esm/components/action-bar/ActionBar.vue.mjs.map +1 -0
- package/dist/esm/components/action-bar/ActionBar.vue2.mjs +110 -0
- package/dist/esm/components/action-bar/ActionBar.vue2.mjs.map +1 -0
- package/dist/esm/components/action-bar/index.d.ts +4 -0
- package/dist/esm/components/action-bar/index.mjs +11 -0
- package/dist/esm/components/action-bar/index.mjs.map +1 -0
- package/dist/esm/components/card/Card.mjs +8 -2
- package/dist/esm/components/card/Card.mjs.map +1 -1
- package/dist/esm/components/card/style.mjs +4 -2
- package/dist/esm/components/card/style.mjs.map +1 -1
- package/dist/esm/components/desensitize/Desensitize.d.ts +60 -0
- package/dist/esm/components/desensitize/Desensitize.mjs +97 -0
- package/dist/esm/components/desensitize/Desensitize.mjs.map +1 -0
- package/dist/esm/components/desensitize/index.d.ts +4 -0
- package/dist/esm/components/desensitize/index.mjs +10 -0
- package/dist/esm/components/desensitize/index.mjs.map +1 -0
- package/dist/esm/components/desensitize/style.d.ts +6 -0
- package/dist/esm/components/desensitize/style.mjs +20 -0
- package/dist/esm/components/desensitize/style.mjs.map +1 -0
- package/dist/esm/components/dic/DicReplace.mjs +2 -1
- package/dist/esm/components/dic/DicReplace.mjs.map +1 -1
- package/dist/esm/components/form/FormLayout.d.ts +61 -0
- package/dist/esm/components/form/FormLayout.mjs +149 -25
- package/dist/esm/components/form/FormLayout.mjs.map +1 -1
- package/dist/esm/components/index.d.ts +2 -0
- package/dist/esm/components/index.mjs +4 -0
- package/dist/esm/components/index.mjs.map +1 -1
- package/dist/esm/components/layout/AppContext.mjs.map +1 -1
- package/dist/esm/components/layout/AppLayout.mjs.map +1 -1
- package/dist/esm/components/layout/List.mjs.map +1 -1
- package/dist/esm/components/layout/Show.mjs.map +1 -1
- package/dist/esm/components/layout/components/layout/RouterContentName.vue2.mjs.map +1 -1
- package/dist/esm/components/layout/components/mobile/MobileList.mjs.map +1 -1
- package/dist/esm/components/layout/style.mjs.map +1 -1
- package/dist/esm/components/select/Select.vue2.mjs +0 -3
- package/dist/esm/components/select/Select.vue2.mjs.map +1 -1
- package/dist/esm/components/table-form/TableForm.mjs.map +1 -1
- package/dist/esm/components/table-form/TableFormItem.mjs.map +1 -1
- package/dist/esm/components/table-form/index.mjs.map +1 -1
- package/dist/esm/components/table-form/interface.mjs.map +1 -1
- package/dist/esm/components/table-form/style.mjs.map +1 -1
- package/dist/esm/components/tools-bar/ToolsBar.vue.d.ts +27 -0
- package/dist/esm/components/tools-bar/ToolsBar.vue.mjs +6 -0
- package/dist/esm/components/tools-bar/ToolsBar.vue.mjs.map +1 -0
- package/dist/esm/components/tools-bar/ToolsBar.vue2.mjs +120 -0
- package/dist/esm/components/tools-bar/ToolsBar.vue2.mjs.map +1 -0
- package/dist/esm/components/tools-bar/index.d.ts +4 -0
- package/dist/esm/components/tools-bar/index.mjs +11 -0
- package/dist/esm/components/tools-bar/index.mjs.map +1 -0
- package/dist/esm/hooks/useDesign.mjs.map +1 -1
- package/dist/esm/index.mjs +2 -0
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/utils/withInstall.mjs.map +1 -1
- package/dist/types/components/action-bar/ActionBar.vue.d.ts +48 -0
- package/dist/types/components/action-bar/ActionBar.vue.d.ts.map +1 -0
- package/dist/types/components/action-bar/index.d.ts +4 -0
- package/dist/types/components/action-bar/index.d.ts.map +1 -0
- package/dist/types/components/card/Card.d.ts.map +1 -1
- package/dist/types/components/card/style.d.ts.map +1 -1
- package/dist/types/components/desensitize/Desensitize.d.ts +60 -0
- package/dist/types/components/desensitize/Desensitize.d.ts.map +1 -0
- package/dist/types/components/desensitize/index.d.ts +4 -0
- package/dist/types/components/desensitize/index.d.ts.map +1 -0
- package/dist/types/components/desensitize/style.d.ts +6 -0
- package/dist/types/components/desensitize/style.d.ts.map +1 -0
- package/dist/types/components/dic/DicReplace.d.ts.map +1 -1
- package/dist/types/components/form/FormLayout.d.ts +61 -0
- package/dist/types/components/form/FormLayout.d.ts.map +1 -1
- package/dist/types/components/index.d.ts +2 -0
- package/dist/types/components/index.d.ts.map +1 -1
- package/dist/types/components/layout/components/layout/RouterContentName.vue.d.ts.map +1 -1
- package/dist/types/components/tools-bar/ToolsBar.vue.d.ts +27 -0
- package/dist/types/components/tools-bar/ToolsBar.vue.d.ts.map +1 -0
- package/dist/types/components/tools-bar/index.d.ts +4 -0
- package/dist/types/components/tools-bar/index.d.ts.map +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/index.ts +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Show.mjs","sources":["../../../../src/components/layout/Show.tsx"],"sourcesContent":["import {\n computed,\n ComputedRef,\n defineComponent,\n inject,\n ref\n} from \"vue\";\nimport { useRoute, useRouter } from \"vue-router\";\nimport {\n Flex,\n PageHeader,\n Spin,\n theme,\n Watermark\n} from \"ant-design-vue\";\nimport { storeToRefs } from \"pinia\";\nimport { useWindowScroll } from \"@vueuse/core\";\n\nimport { AppContext, AppContextKey } from \"./AppContext\";\nimport { LeftOutlined } from \"@ant-design/icons-vue\";\nimport { useAppStore, useNavTabStore } from \"@ditari/store\";\nimport { css, cx } from \"@emotion/css\";\nimport type { GlobalToken } from \"ant-design-vue/es/theme/interface\";\n\nimport { useDesign } from \"../../hooks/useDesign\";\n\nconst getProps = () => {\n return {\n close: {\n type: Boolean,\n default: false\n },\n loading: {\n type: Boolean,\n default: false\n },\n loadingText: {\n type: String,\n default: \"正在请求...\"\n }\n };\n};\nconst show = defineComponent({\n name: \"DShowLayout\",\n props: getProps(),\n setup(props, { slots, expose }) {\n const { useToken } = theme;\n\n const appContext = inject<AppContext | null>(\n AppContextKey,\n null\n );\n\n const { getPrefixCls } = useDesign(\"show-layout\");\n // 生成语义化类名\n const rootCls = getPrefixCls();\n\n const watermarkContent = computed(\n () => appContext?.watermarkContent?.value.content\n );\n\n const { token }: { token: ComputedRef<GlobalToken> } =\n useToken();\n\n const loading = computed(() => props.loading);\n const loadingText = computed(() => props.loadingText);\n\n const { layout, modeConfig, refresh } =\n storeToRefs(useAppStore());\n const { deleteTabs } = useNavTabStore();\n\n const route = useRoute();\n const router = useRouter();\n\n const { y } = useWindowScroll();\n\n const pageHeaderStyle = computed(\n () => css`\n position: sticky;\n top: ${layout.value.headerHeight}px;\n z-index: 10;\n padding: 0;\n transition: all 0.3s;\n background-color: ${token.value.colorBgLayout};\n\n ${y.value > 0\n ? \"box-shadow:0 10px 10px rgba(0, 0, 0, 0.15);\"\n : \"\"}\n .ant-page-header-back {\n height: 100%;\n margin-right: 0;\n\n .ant-page-header-back-button {\n height: 100%;\n padding: 0 6px !important;\n display: flex !important;\n align-items: center;\n justify-content: center;\n }\n }\n\n .ant-page-header-heading-title {\n font-size: 14px;\n }\n `\n );\n const contentStyle = computed(\n () => css`\n padding: 10px 10px\n ${slots.bottomFooter ? \"50px\" : \"0\"};\n background: ${token.value.colorBgLayout};\n `\n );\n const footerStyle = computed(\n () => css`\n position: fixed;\n right: 0;\n bottom: 0;\n height: 50px;\n left: ${layout.value.collapsed\n ? layout.value.collapsedWidth\n : layout.value.sideWidth}px;\n z-index: 10;\n padding: 10px;\n background: ${modeConfig.value.mode !== \"light\"\n ? token.value.colorBgContainer\n : \"#fff\"};\n box-shadow: 6px 0 10px rgba(0, 0, 0, 0.15);\n transition: left 0.4s\n cubic-bezier(0.22, 1.2, 0.36, 1);\n `\n );\n const pageTitle = () => (\n <div>{route.meta.title || \"无标题\"}</div>\n );\n const ghost = ref(false);\n\n const onBack = () => {\n if (props.close) {\n // 返回关闭标签\n deleteTabs(route.fullPath);\n router.go(-1);\n } else {\n // 不关闭标签\n router.go(-1);\n }\n };\n\n const onClosePage = () => {\n refresh.value = true;\n deleteTabs(route.fullPath);\n router.go(-1);\n };\n\n expose({\n close: onClosePage\n });\n\n function showContent() {\n return (\n <div\n class={cx(rootCls)}\n style={{\n display: !loading.value ? \"block\" : \"none\"\n }}\n >\n <Watermark content={watermarkContent.value}>\n <Flex vertical={true}>\n <PageHeader\n ghost={ghost.value}\n class={pageHeaderStyle.value}\n onBack={() => onBack()}\n title={pageTitle()}\n >\n {{\n backIcon: () => (\n <div>\n <LeftOutlined\n style={{ fontSize: \"26px\" }}\n />\n </div>\n ),\n extra: () => slots.extra?.(),\n footer: () => slots.footer?.(),\n subTitle: () => slots.subTitle?.()\n }}\n </PageHeader>\n\n <div class={contentStyle.value}>\n {slots.default?.()}\n </div>\n\n {slots.bottomFooter ? (\n <div class={footerStyle.value}>\n {slots.bottomFooter?.()}\n </div>\n ) : null}\n </Flex>\n </Watermark>\n </div>\n );\n }\n\n function loadingContent() {\n return (\n <div\n style={{\n height: \"100%\",\n display: loading.value ? \"block\" : \"none\"\n }}\n >\n <div\n style={{\n height: \"100%\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\"\n }}\n >\n {slots.loading ? (\n slots.loading()\n ) : (\n <Spin tip={loadingText.value}></Spin>\n )}\n </div>\n </div>\n );\n }\n\n return () => (\n <div style={{ height: \"100%\" }}>\n {showContent()}\n {loadingContent()}\n </div>\n );\n }\n});\n\nexport default show;\n"],"names":["getProps","close","type","Boolean","default","loading","loadingText","String","show","defineComponent","name","props","setup","slots","expose","useToken","theme","appContext","inject","AppContextKey","getPrefixCls","useDesign","rootCls","watermarkContent","computed","value","content","token","layout","modeConfig","refresh","storeToRefs","useAppStore","deleteTabs","useNavTabStore","route","useRoute","router","useRouter","y","useWindowScroll","pageHeaderStyle","css","headerHeight","colorBgLayout","contentStyle","bottomFooter","footerStyle","collapsed","collapsedWidth","sideWidth","mode","colorBgContainer","pageTitle","_createVNode","meta","title","ghost","ref","onBack","fullPath","go","onClosePage","showContent","cx","display","Watermark","Flex","PageHeader","backIcon","LeftOutlined","fontSize","extra","_a","footer","subTitle","loadingContent","height","justifyContent","alignItems","Spin"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Show.mjs","sources":["../../../../src/components/layout/Show.tsx"],"sourcesContent":["import {\r\n computed,\r\n ComputedRef,\r\n defineComponent,\r\n inject,\r\n ref\r\n} from \"vue\";\r\nimport { useRoute, useRouter } from \"vue-router\";\r\nimport {\r\n Flex,\r\n PageHeader,\r\n Spin,\r\n theme,\r\n Watermark\r\n} from \"ant-design-vue\";\r\nimport { storeToRefs } from \"pinia\";\r\nimport { useWindowScroll } from \"@vueuse/core\";\r\n\r\nimport { AppContext, AppContextKey } from \"./AppContext\";\r\nimport { LeftOutlined } from \"@ant-design/icons-vue\";\r\nimport { useAppStore, useNavTabStore } from \"@ditari/store\";\r\nimport { css, cx } from \"@emotion/css\";\r\nimport type { GlobalToken } from \"ant-design-vue/es/theme/interface\";\r\n\r\nimport { useDesign } from \"../../hooks/useDesign\";\r\n\r\nconst getProps = () => {\r\n return {\r\n close: {\r\n type: Boolean,\r\n default: false\r\n },\r\n loading: {\r\n type: Boolean,\r\n default: false\r\n },\r\n loadingText: {\r\n type: String,\r\n default: \"正在请求...\"\r\n }\r\n };\r\n};\r\nconst show = defineComponent({\r\n name: \"DShowLayout\",\r\n props: getProps(),\r\n setup(props, { slots, expose }) {\r\n const { useToken } = theme;\r\n\r\n const appContext = inject<AppContext | null>(\r\n AppContextKey,\r\n null\r\n );\r\n\r\n const { getPrefixCls } = useDesign(\"show-layout\");\r\n // 生成语义化类名\r\n const rootCls = getPrefixCls();\r\n\r\n const watermarkContent = computed(\r\n () => appContext?.watermarkContent?.value.content\r\n );\r\n\r\n const { token }: { token: ComputedRef<GlobalToken> } =\r\n useToken();\r\n\r\n const loading = computed(() => props.loading);\r\n const loadingText = computed(() => props.loadingText);\r\n\r\n const { layout, modeConfig, refresh } =\r\n storeToRefs(useAppStore());\r\n const { deleteTabs } = useNavTabStore();\r\n\r\n const route = useRoute();\r\n const router = useRouter();\r\n\r\n const { y } = useWindowScroll();\r\n\r\n const pageHeaderStyle = computed(\r\n () => css`\r\n position: sticky;\r\n top: ${layout.value.headerHeight}px;\r\n z-index: 10;\r\n padding: 0;\r\n transition: all 0.3s;\r\n background-color: ${token.value.colorBgLayout};\r\n\r\n ${y.value > 0\r\n ? \"box-shadow:0 10px 10px rgba(0, 0, 0, 0.15);\"\r\n : \"\"}\r\n .ant-page-header-back {\r\n height: 100%;\r\n margin-right: 0;\r\n\r\n .ant-page-header-back-button {\r\n height: 100%;\r\n padding: 0 6px !important;\r\n display: flex !important;\r\n align-items: center;\r\n justify-content: center;\r\n }\r\n }\r\n\r\n .ant-page-header-heading-title {\r\n font-size: 14px;\r\n }\r\n `\r\n );\r\n const contentStyle = computed(\r\n () => css`\r\n padding: 10px 10px\r\n ${slots.bottomFooter ? \"50px\" : \"0\"};\r\n background: ${token.value.colorBgLayout};\r\n `\r\n );\r\n const footerStyle = computed(\r\n () => css`\r\n position: fixed;\r\n right: 0;\r\n bottom: 0;\r\n height: 50px;\r\n left: ${layout.value.collapsed\r\n ? layout.value.collapsedWidth\r\n : layout.value.sideWidth}px;\r\n z-index: 10;\r\n padding: 10px;\r\n background: ${modeConfig.value.mode !== \"light\"\r\n ? token.value.colorBgContainer\r\n : \"#fff\"};\r\n box-shadow: 6px 0 10px rgba(0, 0, 0, 0.15);\r\n transition: left 0.4s\r\n cubic-bezier(0.22, 1.2, 0.36, 1);\r\n `\r\n );\r\n const pageTitle = () => (\r\n <div>{route.meta.title || \"无标题\"}</div>\r\n );\r\n const ghost = ref(false);\r\n\r\n const onBack = () => {\r\n if (props.close) {\r\n // 返回关闭标签\r\n deleteTabs(route.fullPath);\r\n router.go(-1);\r\n } else {\r\n // 不关闭标签\r\n router.go(-1);\r\n }\r\n };\r\n\r\n const onClosePage = () => {\r\n refresh.value = true;\r\n deleteTabs(route.fullPath);\r\n router.go(-1);\r\n };\r\n\r\n expose({\r\n close: onClosePage\r\n });\r\n\r\n function showContent() {\r\n return (\r\n <div\r\n class={cx(rootCls)}\r\n style={{\r\n display: !loading.value ? \"block\" : \"none\"\r\n }}\r\n >\r\n <Watermark content={watermarkContent.value}>\r\n <Flex vertical={true}>\r\n <PageHeader\r\n ghost={ghost.value}\r\n class={pageHeaderStyle.value}\r\n onBack={() => onBack()}\r\n title={pageTitle()}\r\n >\r\n {{\r\n backIcon: () => (\r\n <div>\r\n <LeftOutlined\r\n style={{ fontSize: \"26px\" }}\r\n />\r\n </div>\r\n ),\r\n extra: () => slots.extra?.(),\r\n footer: () => slots.footer?.(),\r\n subTitle: () => slots.subTitle?.()\r\n }}\r\n </PageHeader>\r\n\r\n <div class={contentStyle.value}>\r\n {slots.default?.()}\r\n </div>\r\n\r\n {slots.bottomFooter ? (\r\n <div class={footerStyle.value}>\r\n {slots.bottomFooter?.()}\r\n </div>\r\n ) : null}\r\n </Flex>\r\n </Watermark>\r\n </div>\r\n );\r\n }\r\n\r\n function loadingContent() {\r\n return (\r\n <div\r\n style={{\r\n height: \"100%\",\r\n display: loading.value ? \"block\" : \"none\"\r\n }}\r\n >\r\n <div\r\n style={{\r\n height: \"100%\",\r\n display: \"flex\",\r\n justifyContent: \"center\",\r\n alignItems: \"center\"\r\n }}\r\n >\r\n {slots.loading ? (\r\n slots.loading()\r\n ) : (\r\n <Spin tip={loadingText.value}></Spin>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n return () => (\r\n <div style={{ height: \"100%\" }}>\r\n {showContent()}\r\n {loadingContent()}\r\n </div>\r\n );\r\n }\r\n});\r\n\r\nexport default show;\r\n"],"names":["getProps","close","type","Boolean","default","loading","loadingText","String","show","defineComponent","name","props","setup","slots","expose","useToken","theme","appContext","inject","AppContextKey","getPrefixCls","useDesign","rootCls","watermarkContent","computed","value","content","token","layout","modeConfig","refresh","storeToRefs","useAppStore","deleteTabs","useNavTabStore","route","useRoute","router","useRouter","y","useWindowScroll","pageHeaderStyle","css","headerHeight","colorBgLayout","contentStyle","bottomFooter","footerStyle","collapsed","collapsedWidth","sideWidth","mode","colorBgContainer","pageTitle","_createVNode","meta","title","ghost","ref","onBack","fullPath","go","onClosePage","showContent","cx","display","Watermark","Flex","PageHeader","backIcon","LeftOutlined","fontSize","extra","_a","footer","subTitle","loadingContent","height","justifyContent","alignItems","Spin"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RouterContentName.vue2.mjs","sources":["../../../../../../src/components/layout/components/layout/RouterContentName.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from \"vue\";\nimport { useRoute } from \"vue-router\";\nimport { storeToRefs } from \"pinia\";\n\nimport { useKeepAliveStore } from \"@ditari/store\";\n\nconst keepAliveStore = useKeepAliveStore();\n\nconst { get } = storeToRefs(keepAliveStore);\nconst keepAliveNames = computed<string[]>(() => get.value);\n\nconst route = useRoute();\n</script>\n\n<template>\n <div>name</div>\n <router-view v-slot=\"{ Component }\">\n <transition name=\"main\" mode=\"out-in\" appear>\n <keep-alive :include=\"keepAliveNames\">\n <component :is=\"Component\" :key=\"route.fullPath\" />\n </keep-alive>\n </transition>\n </router-view>\n</template>\n\n<style scoped></style>\n"],"names":["_createElementVNode","_createVNode","_withCtx","_Transition","_createBlock","_KeepAlive","_openBlock","_resolveDynamicComponent","_unref"],"mappings":";;;;;;;;;AAOA,IAAA,MAAM,iBAAiB,iBAAA,EAAkB;AAEzC,IAAA,MAAM,EAAE,GAAA,EAAI,GAAI,WAAA,CAAY,cAAc,CAAA;AAC1C,IAAA,MAAM,cAAA,GAAiB,QAAA,CAAmB,MAAM,GAAA,CAAI,KAAK,CAAA;AAEzD,IAAA,MAAM,QAAQ,QAAA,EAAS;;;;;;;UAIrB,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAAA,kBAAA;AAAA,YAAe,KAAA;AAAA;YAAV,MAAA;AAAA,YAAI,CAAA;AAAA;AAAA,WAAA,CAAA;AAAA,UACTC,WAAA,CAMc,wBAAA,IAAA,EAAA;AAAA,YALZ,OAAA,EAAAC,OAAA,CAAA,CAIa,EALQ,WAAS,KAAA;AAAA,cAC9BD,WAAA;AAAA,gBAIaE,UAAA;AAAA,gBAAA;AAAA,kBAJD,IAAA,EAAK,MAAA;AAAA,kBAAO,IAAA,EAAK,QAAA;AAAA,kBAAS,MAAA,EAAA;AAAA;;mCACpC,MAEa;AAAA,kCAFbC,WAAA,CAEaC,SAAA,EAAA,EAFA,OAAA,EAAS,cAAA,CAAA,OAAc,EAAA;AAAA,uBAClCC,SAAA,EAAA,EAAAF,WAAA,CAAmDG,uBAAA,CAAnC,SAAS,CAAA,EAAA;AAAA,wBAAG,GAAA,EAAKC,KAAA,CAAA,KAAA,CAAA,CAAM;AAAA;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"RouterContentName.vue2.mjs","sources":["../../../../../../src/components/layout/components/layout/RouterContentName.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { computed } from \"vue\";\r\nimport { useRoute } from \"vue-router\";\r\nimport { storeToRefs } from \"pinia\";\r\n\r\nimport { useKeepAliveStore } from \"@ditari/store\";\r\n\r\nconst keepAliveStore = useKeepAliveStore();\r\n\r\nconst { get } = storeToRefs(keepAliveStore);\r\nconst keepAliveNames = computed<string[]>(() => get.value);\r\n\r\nconst route = useRoute();\r\n</script>\r\n\r\n<template>\r\n <div>name</div>\r\n <router-view v-slot=\"{ Component }\">\r\n <transition name=\"main\" mode=\"out-in\" appear>\r\n <keep-alive :include=\"keepAliveNames\">\r\n <component :is=\"Component\" :key=\"route.fullPath\" />\r\n </keep-alive>\r\n </transition>\r\n </router-view>\r\n</template>\r\n\r\n<style scoped></style>\r\n"],"names":["_createElementVNode","_createVNode","_withCtx","_Transition","_createBlock","_KeepAlive","_openBlock","_resolveDynamicComponent","_unref"],"mappings":";;;;;;;;;AAOA,IAAA,MAAM,iBAAiB,iBAAA,EAAkB;AAEzC,IAAA,MAAM,EAAE,GAAA,EAAI,GAAI,WAAA,CAAY,cAAc,CAAA;AAC1C,IAAA,MAAM,cAAA,GAAiB,QAAA,CAAmB,MAAM,GAAA,CAAI,KAAK,CAAA;AAEzD,IAAA,MAAM,QAAQ,QAAA,EAAS;;;;;;;UAIrB,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAAA,kBAAA;AAAA,YAAe,KAAA;AAAA;YAAV,MAAA;AAAA,YAAI,CAAA;AAAA;AAAA,WAAA,CAAA;AAAA,UACTC,WAAA,CAMc,wBAAA,IAAA,EAAA;AAAA,YALZ,OAAA,EAAAC,OAAA,CAAA,CAIa,EALQ,WAAS,KAAA;AAAA,cAC9BD,WAAA;AAAA,gBAIaE,UAAA;AAAA,gBAAA;AAAA,kBAJD,IAAA,EAAK,MAAA;AAAA,kBAAO,IAAA,EAAK,QAAA;AAAA,kBAAS,MAAA,EAAA;AAAA;;mCACpC,MAEa;AAAA,kCAFbC,WAAA,CAEaC,SAAA,EAAA,EAFA,OAAA,EAAS,cAAA,CAAA,OAAc,EAAA;AAAA,uBAClCC,SAAA,EAAA,EAAAF,WAAA,CAAmDG,uBAAA,CAAnC,SAAS,CAAA,EAAA;AAAA,wBAAG,GAAA,EAAKC,KAAA,CAAA,KAAA,CAAA,CAAM;AAAA;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MobileList.mjs","sources":["../../../../../../src/components/layout/components/mobile/MobileList.tsx"],"sourcesContent":["import { computed, defineComponent } from \"vue\";\nimport { useRoute } from \"vue-router\";\nimport { PageHeader } from \"ant-design-vue\";\n\nimport { css, cx } from \"@emotion/css\";\n\nimport { useDesign } from \"../../../../hooks/useDesign\";\n\nfunction useStyle() {\n return {\n container: css`\n height: 100%;\n display: flex;\n flex-direction: column;\n background-color: red;\n `,\n header: css`\n height: 44px;\n background-color: blue;\n `,\n content: css`\n flex: 1;\n `\n };\n}\nconst DMobileList = defineComponent({\n name: \"DMobileList\",\n setup(_, { slots }) {\n const route = useRoute();\n const title = computed(() => route.meta?.title);\n\n return () => {\n const { getPrefixCls } = useDesign(\"mobile-list\");\n const styles = useStyle();\n\n // --- 关键点 1: 只调用一次插槽函数 ---\n const tableContent = slots.table\n ? slots.table()\n : null;\n let extractedProps = {};\n\n // --- 关键点 2: 提取 Props 逻辑 ---\n if (tableContent) {\n // 过滤掉注释和空文本,找到真正的组件\n const tableVNode = tableContent.find(\n vnode =>\n typeof vnode.type === \"object\" ||\n typeof vnode.type === \"string\"\n );\n\n if (tableVNode) {\n extractedProps = tableVNode.props || {};\n console.log(\n \"成功拿到 Table Props:\",\n extractedProps\n );\n }\n }\n\n return (\n <div class={cx(getPrefixCls(), styles.container)}>\n <div\n class={cx(\n getPrefixCls(\"header\"),\n styles.header\n )}\n >\n {title.value}\n </div>\n <div\n class={cx(\n getPrefixCls(\"content\"),\n styles.content\n )}\n >\n {/* --- 关键点 3: 直接渲染已经生成的 VNodes --- */}\n {tableContent}\n </div>\n </div>\n );\n };\n }\n});\n\nexport default DMobileList;\n"],"names":["useStyle","container","css","header","content","DMobileList","defineComponent","name","setup","_","slots","route","useRoute","title","computed","meta","getPrefixCls","useDesign","styles","tableContent","table","extractedProps","tableVNode","find","vnode","type","props","console","log","_createVNode","cx","value"],"mappings":";;;;;;AAQA,SAASA,QAAAA,GAAW;AAClB,EAAA,OAAO;AAAA,IACLC,SAAAA,EAAWC,GAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,IAAAA,CAAAA;AAAAA,IAMXC,MAAAA,EAAQD,GAAAA;AAAAA;AAAAA;AAAAA,IAAAA,CAAAA;AAAAA,IAIRE,OAAAA,EAASF,GAAAA;AAAAA;AAAAA,IAAAA;AAAAA,GAGX;AACF;AACA,MAAMG,8BAAcC,eAAAA,CAAgB;AAAA,EAClCC,IAAAA,EAAM,aAAA;AAAA,EACNC,MAAMC,CAAAA,EAAG;AAAA,IAAEC;AAAAA,GAAM,EAAG;AAClB,IAAA,MAAMC,QAAQC,QAAAA,EAAS;AACvB,IAAA,MAAMC,KAAAA,GAAQC,SAAS,MAAA;AA7B3B,MAAA,IAAA,EAAA;AA6BiCH,MAAAA,OAAAA,CAAAA,EAAAA,GAAAA,KAAAA,CAAMI,SAANJ,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,EAAAA,CAAYE,KAAAA;AAAAA,IAAAA,CAAK,CAAA;AAE9C,IAAA,OAAO,MAAM;AACX,MAAA,MAAM;AAAA,QAAEG;AAAAA,OAAa,GAAIC,UAAU,aAAa,CAAA;AAChD,MAAA,MAAMC,SAASlB,QAAAA,EAAS;AAGxB,MAAA,MAAMmB,YAAAA,GAAeT,KAAAA,CAAMU,KAAAA,GACvBV,KAAAA,CAAMU,OAAM,GACZ,IAAA;AACJ,MAAA,IAAIC,iBAAiB,EAAC;AAGtB,MAAA,IAAIF,YAAAA,EAAc;AAEhB,QAAA,MAAMG,UAAAA,GAAaH,YAAAA,CAAaI,IAAAA,CAC9BC,CAAAA,KAAAA,KACE,OAAOA,KAAAA,CAAMC,IAAAA,KAAS,QAAA,IACtB,OAAOD,KAAAA,CAAMC,IAAAA,KAAS,QAC1B,CAAA;AAEA,QAAA,IAAIH,UAAAA,EAAY;AACdD,UAAAA,cAAAA,GAAiBC,UAAAA,CAAWI,SAAS,EAAC;AACtCC,UAAAA,OAAAA,CAAQC,GAAAA,CACN,yCACAP,cACF,CAAA;AAAA,QACF;AAAA,MACF;AAEA,MAAA,OAAAQ,YAAA,KAAA,EAAA;AAAA,QAAA,OAAA,EACcC,EAAAA,CAAGd,YAAAA,EAAa,EAAGE,OAAOjB,SAAS;AAAA,OAAC,EAAA,CAAA4B,WAAAA,CAAA,KAAA,EAAA;AAAA,QAAA,SAErCC,EAAAA,CACLd,YAAAA,CAAa,QAAQ,CAAA,EACrBE,OAAOf,MACT;AAAA,SAAC,CAEAU,KAAAA,CAAMkB,KAAK,CAAA,CAAA,EAAAF,YAAA,KAAA,EAAA;AAAA,QAAA,SAGLC,EAAAA,CACLd,YAAAA,CAAa,SAAS,CAAA,EACtBE,OAAOd,OACT;AAAA,OAAC,EAAA,CAGAe,YAAY,CAAA,CAAA,CAAA,CAAA;AAAA,IAIrB,CAAA;AAAA,EACF;AACF,CAAC;;;;"}
|
|
1
|
+
{"version":3,"file":"MobileList.mjs","sources":["../../../../../../src/components/layout/components/mobile/MobileList.tsx"],"sourcesContent":["import { computed, defineComponent } from \"vue\";\r\nimport { useRoute } from \"vue-router\";\r\nimport { PageHeader } from \"ant-design-vue\";\r\n\r\nimport { css, cx } from \"@emotion/css\";\r\n\r\nimport { useDesign } from \"../../../../hooks/useDesign\";\r\n\r\nfunction useStyle() {\r\n return {\r\n container: css`\r\n height: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n background-color: red;\r\n `,\r\n header: css`\r\n height: 44px;\r\n background-color: blue;\r\n `,\r\n content: css`\r\n flex: 1;\r\n `\r\n };\r\n}\r\nconst DMobileList = defineComponent({\r\n name: \"DMobileList\",\r\n setup(_, { slots }) {\r\n const route = useRoute();\r\n const title = computed(() => route.meta?.title);\r\n\r\n return () => {\r\n const { getPrefixCls } = useDesign(\"mobile-list\");\r\n const styles = useStyle();\r\n\r\n // --- 关键点 1: 只调用一次插槽函数 ---\r\n const tableContent = slots.table\r\n ? slots.table()\r\n : null;\r\n let extractedProps = {};\r\n\r\n // --- 关键点 2: 提取 Props 逻辑 ---\r\n if (tableContent) {\r\n // 过滤掉注释和空文本,找到真正的组件\r\n const tableVNode = tableContent.find(\r\n vnode =>\r\n typeof vnode.type === \"object\" ||\r\n typeof vnode.type === \"string\"\r\n );\r\n\r\n if (tableVNode) {\r\n extractedProps = tableVNode.props || {};\r\n console.log(\r\n \"成功拿到 Table Props:\",\r\n extractedProps\r\n );\r\n }\r\n }\r\n\r\n return (\r\n <div class={cx(getPrefixCls(), styles.container)}>\r\n <div\r\n class={cx(\r\n getPrefixCls(\"header\"),\r\n styles.header\r\n )}\r\n >\r\n {title.value}\r\n </div>\r\n <div\r\n class={cx(\r\n getPrefixCls(\"content\"),\r\n styles.content\r\n )}\r\n >\r\n {/* --- 关键点 3: 直接渲染已经生成的 VNodes --- */}\r\n {tableContent}\r\n </div>\r\n </div>\r\n );\r\n };\r\n }\r\n});\r\n\r\nexport default DMobileList;\r\n"],"names":["useStyle","container","css","header","content","DMobileList","defineComponent","name","setup","_","slots","route","useRoute","title","computed","meta","getPrefixCls","useDesign","styles","tableContent","table","extractedProps","tableVNode","find","vnode","type","props","console","log","_createVNode","cx","value"],"mappings":";;;;;;AAQA,SAASA,QAAAA,GAAW;AAClB,EAAA,OAAO;AAAA,IACLC,SAAAA,EAAWC,GAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,IAAAA,CAAAA;AAAAA,IAMXC,MAAAA,EAAQD,GAAAA;AAAAA;AAAAA;AAAAA,IAAAA,CAAAA;AAAAA,IAIRE,OAAAA,EAASF,GAAAA;AAAAA;AAAAA,IAAAA;AAAAA,GAGX;AACF;AACA,MAAMG,8BAAcC,eAAAA,CAAgB;AAAA,EAClCC,IAAAA,EAAM,aAAA;AAAA,EACNC,MAAMC,CAAAA,EAAG;AAAA,IAAEC;AAAAA,GAAM,EAAG;AAClB,IAAA,MAAMC,QAAQC,QAAAA,EAAS;AACvB,IAAA,MAAMC,KAAAA,GAAQC,SAAS,MAAA;AA7B3B,MAAA,IAAA,EAAA;AA6BiCH,MAAAA,OAAAA,CAAAA,EAAAA,GAAAA,KAAAA,CAAMI,SAANJ,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,EAAAA,CAAYE,KAAAA;AAAAA,IAAAA,CAAK,CAAA;AAE9C,IAAA,OAAO,MAAM;AACX,MAAA,MAAM;AAAA,QAAEG;AAAAA,OAAa,GAAIC,UAAU,aAAa,CAAA;AAChD,MAAA,MAAMC,SAASlB,QAAAA,EAAS;AAGxB,MAAA,MAAMmB,YAAAA,GAAeT,KAAAA,CAAMU,KAAAA,GACvBV,KAAAA,CAAMU,OAAM,GACZ,IAAA;AACJ,MAAA,IAAIC,iBAAiB,EAAC;AAGtB,MAAA,IAAIF,YAAAA,EAAc;AAEhB,QAAA,MAAMG,UAAAA,GAAaH,YAAAA,CAAaI,IAAAA,CAC9BC,CAAAA,KAAAA,KACE,OAAOA,KAAAA,CAAMC,IAAAA,KAAS,QAAA,IACtB,OAAOD,KAAAA,CAAMC,IAAAA,KAAS,QAC1B,CAAA;AAEA,QAAA,IAAIH,UAAAA,EAAY;AACdD,UAAAA,cAAAA,GAAiBC,UAAAA,CAAWI,SAAS,EAAC;AACtCC,UAAAA,OAAAA,CAAQC,GAAAA,CACN,yCACAP,cACF,CAAA;AAAA,QACF;AAAA,MACF;AAEA,MAAA,OAAAQ,YAAA,KAAA,EAAA;AAAA,QAAA,OAAA,EACcC,EAAAA,CAAGd,YAAAA,EAAa,EAAGE,OAAOjB,SAAS;AAAA,OAAC,EAAA,CAAA4B,WAAAA,CAAA,KAAA,EAAA;AAAA,QAAA,SAErCC,EAAAA,CACLd,YAAAA,CAAa,QAAQ,CAAA,EACrBE,OAAOf,MACT;AAAA,SAAC,CAEAU,KAAAA,CAAMkB,KAAK,CAAA,CAAA,EAAAF,YAAA,KAAA,EAAA;AAAA,QAAA,SAGLC,EAAAA,CACLd,YAAAA,CAAa,SAAS,CAAA,EACtBE,OAAOd,OACT;AAAA,OAAC,EAAA,CAGAe,YAAY,CAAA,CAAA,CAAA,CAAA;AAAA,IAIrB,CAAA;AAAA,EACF;AACF,CAAC;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"style.mjs","sources":["../../../../src/components/layout/style.ts"],"sourcesContent":["import { ComputedRef } from \"vue\";\n\nimport { css } from \"@emotion/css\";\n\nexport const useAppLayoutStyle = () => {\n return {\n appLayout: css`\n height: 100%;\n `,\n mobile: css`\n height: 100%;\n background: #e7e7e7;\n `\n };\n};\n"],"names":[],"mappings":";;;AAIO,MAAM,oBAAoB,MAAM;AACrC,EAAA,OAAO;AAAA,IACL,SAAA,EAAW,GAAA;AAAA;AAAA,IAAA,CAAA;AAAA,IAGX,MAAA,EAAQ,GAAA;AAAA;AAAA;AAAA,IAAA;AAAA,GAIV;AACF;;;;"}
|
|
1
|
+
{"version":3,"file":"style.mjs","sources":["../../../../src/components/layout/style.ts"],"sourcesContent":["import { ComputedRef } from \"vue\";\r\n\r\nimport { css } from \"@emotion/css\";\r\n\r\nexport const useAppLayoutStyle = () => {\r\n return {\r\n appLayout: css`\r\n height: 100%;\r\n `,\r\n mobile: css`\r\n height: 100%;\r\n background: #e7e7e7;\r\n `\r\n };\r\n};\r\n"],"names":[],"mappings":";;;AAIO,MAAM,oBAAoB,MAAM;AACrC,EAAA,OAAO;AAAA,IACL,SAAA,EAAW,GAAA;AAAA;AAAA,IAAA,CAAA;AAAA,IAGX,MAAA,EAAQ,GAAA;AAAA;AAAA;AAAA,IAAA;AAAA,GAIV;AACF;;;;"}
|
|
@@ -46,9 +46,6 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
46
46
|
(name) => name === route.name
|
|
47
47
|
);
|
|
48
48
|
const fetchDic = inject("fetchDic", (name) => __async(null, null, function* () {
|
|
49
|
-
console.warn(
|
|
50
|
-
`fetchDic \u672A\u6CE8\u5165\uFF0C\u4F7F\u7528\u9ED8\u8BA4\u5B9E\u73B0\uFF0Cname: ${name}`
|
|
51
|
-
);
|
|
52
49
|
return [];
|
|
53
50
|
}));
|
|
54
51
|
let dicData = [...getDicByKey(props.name)];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.vue2.mjs","sources":["../../../../src/components/select/Select.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport {\n inject,\n onActivated,\n onMounted,\n ref,\n watch\n} from \"vue\";\nimport { useRoute } from \"vue-router\";\n\nimport {\n useDicStore,\n useKeepAliveStore\n} from \"@ditari/store\";\n\ninterface DicItem {\n value: string | number;\n label: string;\n}\n\nconst props = defineProps({\n value: { required: true, default: undefined },\n name: { type: String, required: true, default: \"\" },\n disabled: { type: Boolean, required: false, default: false },\n placeholder: { type: String, required: false, default: \"请填写默认占位符啊!\" },\n include: { type: Array, required: false, default: () => [] }\n});\n\nconst emits = defineEmits([\"update:value\", \"change\", \"select\"]);\n\nconst { getDicByKey } = useDicStore();\nconst { get: keepNames } = useKeepAliveStore();\n\nconst { modelValue, data, onSelect, onChange } =\n useSelect();\n\nfunction useSelect() {\n const route = useRoute();\n const loadingStatus = ref(false);\n // 判断使用组件的页面是否被缓存\n const isKeepAlive = keepNames.some(\n (name: string) => name === route.name\n );\n // 注入 fetchDic,提供默认值\n const fetchDic = inject<\n (name: string) => Promise<unknown[]>\n >(\"fetchDic\", async (name: string) => {\n console.warn(\n
|
|
1
|
+
{"version":3,"file":"Select.vue2.mjs","sources":["../../../../src/components/select/Select.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport {\r\n inject,\r\n onActivated,\r\n onMounted,\r\n ref,\r\n watch\r\n} from \"vue\";\r\nimport { useRoute } from \"vue-router\";\r\n\r\nimport {\r\n useDicStore,\r\n useKeepAliveStore\r\n} from \"@ditari/store\";\r\n\r\ninterface DicItem {\r\n value: string | number;\r\n label: string;\r\n}\r\n\r\nconst props = defineProps({\n value: { required: true, default: undefined },\n name: { type: String, required: true, default: \"\" },\n disabled: { type: Boolean, required: false, default: false },\n placeholder: { type: String, required: false, default: \"请填写默认占位符啊!\" },\n include: { type: Array, required: false, default: () => [] }\n});\r\n\r\nconst emits = defineEmits([\"update:value\", \"change\", \"select\"]);\r\n\r\nconst { getDicByKey } = useDicStore();\r\nconst { get: keepNames } = useKeepAliveStore();\r\n\r\nconst { modelValue, data, onSelect, onChange } =\r\n useSelect();\r\n\r\nfunction useSelect() {\r\n const route = useRoute();\r\n const loadingStatus = ref(false);\r\n // 判断使用组件的页面是否被缓存\r\n const isKeepAlive = keepNames.some(\r\n (name: string) => name === route.name\r\n );\r\n // 注入 fetchDic,提供默认值\r\n const fetchDic = inject<\r\n (name: string) => Promise<unknown[]>\r\n >(\"fetchDic\", async (name: string) => {\r\n // console.warn(\r\n // `fetchDic 未注入,使用默认实现,name: ${name}`\r\n // );\r\n return [];\r\n });\r\n\r\n // 字典数据\r\n let dicData: DicItem[] = [...getDicByKey(props.name)];\r\n const data = ref<DicItem[]>(dicData);\r\n\r\n // 取值\r\n const modelValue = ref<string | number | undefined>(\r\n props.value\r\n );\r\n\r\n onActivated(() => {\r\n // 缓存页面被激活的时候调用\r\n loadDicData();\r\n });\r\n\r\n onMounted(() => {\r\n if (!isKeepAlive) {\r\n // 未缓存页面 挂载的时候调用\r\n loadDicData();\r\n }\r\n });\r\n\r\n // 监听value值的变化\r\n watch(\r\n () => props.value,\r\n val => {\r\n modelValue.value = val;\r\n }\r\n );\r\n\r\n setTimeout(() => {\r\n if (!loadingStatus.value) {\r\n loadDicData();\r\n }\r\n }, 1000);\r\n\r\n // 请求字典数据的函数\r\n async function loadDicData() {\r\n try {\r\n loadingStatus.value = true;\r\n // 调用注入进来的fetchDic方法\r\n await fetchDic(props.name);\r\n dicData = [...getDicByKey(props.name)];\r\n\r\n if (props.include.length > 0) {\r\n data.value = dicData.filter((item: DicItem) => {\r\n return props.include.some(\r\n (i: string | number) => i === item.value\r\n );\r\n });\r\n } else {\r\n data.value = dicData;\r\n }\r\n } catch (error) {\r\n console.error(\"获取字典数据失败:\", error);\r\n }\r\n }\r\n\r\n // 监听用户搜索事件\r\n const onSearch = (keywords: string) => {\r\n sendWorkerSearch(keywords);\r\n };\r\n\r\n // 发送搜索到webworker\r\n function sendWorkerSearch(keywords: string) {\r\n keywords = keywords ?? \"\";\r\n data.value = dicData\r\n .filter((item: DicItem) => {\r\n return (\r\n item.value\r\n .toString()\r\n .toLowerCase()\r\n .indexOf(keywords.toLowerCase()) !== -1 ||\r\n item.label\r\n .toLowerCase()\r\n .includes(keywords.toLowerCase())\r\n );\r\n })\r\n .slice(0, 10);\r\n if (data.value.length === 0) {\r\n data.value = [...dicData].slice(0, 10);\r\n }\r\n }\r\n\r\n // 监听下拉选择事件\r\n const onSelect = (value: string | number) => {\r\n // 发射选择的数据\r\n emits(\"update:value\", value);\r\n // 处理下拉后返回数据的\r\n onSelectHandler();\r\n };\r\n\r\n // 监听数据改变\r\n const onChange = () => {\r\n emits(\"update:value\", modelValue.value);\r\n emits(\"change\", modelValue.value);\r\n };\r\n\r\n /**\r\n * 根据当前选中的value匹配对应的整条数据\r\n * 然后返回给父组件\r\n */\r\n function onSelectHandler() {\r\n const dicList = getDicByKey(props.name);\r\n const rs = dicList.find(\r\n (obj: DicItem) => obj.value === modelValue.value\r\n );\r\n emits(\"select\", rs);\r\n }\r\n\r\n watch(\r\n () => props.include,\r\n (val: Array<string | number>) => {\r\n if (val.length > 0) {\r\n // 只过滤出来include包含的数据\r\n data.value = dicData.filter((item: DicItem) => {\r\n return val.some(\r\n (i: string | number) => i === item.value\r\n );\r\n });\r\n } else {\r\n data.value = dicData;\r\n }\r\n },\r\n {\r\n immediate: true\r\n }\r\n );\r\n\r\n return {\r\n data,\r\n modelValue,\r\n onSearch,\r\n onSelect,\r\n onChange\r\n };\r\n}\r\n\r\n/**\r\n * 过滤筛选\r\n * @param inputValue\r\n * @param options\r\n */\r\nconst onFilterOption = (\r\n inputValue: string,\r\n options: DicItem\r\n) => {\r\n return (\r\n options.value\r\n .toString()\r\n .toLowerCase()\r\n .indexOf(inputValue.toLowerCase()) !== -1 ||\r\n options.label\r\n .toLowerCase()\r\n .includes(inputValue.toLowerCase())\r\n );\r\n};\r\n</script>\r\n\r\n<template>\r\n <a-select\r\n v-model:value=\"modelValue\"\r\n style=\"width: 100%\"\r\n allow-clear\r\n show-search\r\n :options=\"data\"\r\n :placeholder=\"placeholder\"\r\n :disabled=\"disabled\"\r\n :filter-option=\"onFilterOption\"\r\n @select=\"onSelect\"\r\n @change=\"onChange\"\r\n >\r\n </a-select>\r\n</template>\r\n\r\n<style scoped></style>\r\n"],"names":["data","modelValue","onSelect","onChange","_createBlock","_unref"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableForm.mjs","sources":["../../../../src/components/table-form/TableForm.tsx"],"sourcesContent":["import {\n Comment,\n computed,\n ComputedRef,\n defineComponent,\n isVNode,\n provide,\n ref,\n Text,\n VNode\n} from \"vue\";\nimport {\n Col,\n Form,\n FormInstance,\n FormItem,\n Row\n} from \"ant-design-vue\";\n\nimport {\n DEFAULT_STYLES_CONFIG,\n StylesConfig,\n tableFormProps\n} from \"./interface\";\nimport { useFormItemStyle } from \"./style\";\nimport { css, cx } from \"@emotion/css\";\nimport { merge } from \"lodash-es\";\n\nimport {\n useAntdToken,\n useDesign\n} from \"../../hooks/useDesign\";\n\nimport { withInstall } from \"../../utils/withInstall\";\n\nexport const FormContextKey = Symbol(\n \"d-table-form-context\"\n);\n\nexport interface TableFormContext {\n isFormParent: true;\n span: ComputedRef<number>;\n isReadonly: ComputedRef<boolean>;\n fieldErrors: ComputedRef<\n Record<string, string | undefined>\n >;\n stylesConfig: ComputedRef<StylesConfig>;\n model: ComputedRef<Record<string, unknown>>;\n}\n\nconst getVNodeSpan = (vnode: any): number => {\n if (vnode && vnode.props) {\n const s = vnode.props.span ?? vnode.props[\"span\"];\n if (s !== undefined && s !== null) return Number(s);\n }\n return 24; // 默认占满一行\n};\n\nconst containerBorderStyle = css`\n border-top: 1px solid #d9d9d9;\n border-left: 1px solid #d9d9d9;\n`;\n\nconst _TableForm = defineComponent({\n name: \"DTableForm\",\n props: tableFormProps,\n\n setup(props, { slots, attrs, expose }) {\n const token = useAntdToken();\n const { getPrefixCls } = useDesign(\"table-form\");\n const formRef = ref<FormInstance | null>();\n\n const defaultSpan = computed(() => 24);\n const isReadonly = computed(() => props.readonly);\n const finalStylesConfig = computed<StylesConfig>(() => {\n const defaultCopy = JSON.parse(\n JSON.stringify(DEFAULT_STYLES_CONFIG)\n );\n return merge(defaultCopy, props.stylesConfig);\n });\n const modelState = computed(\n () => attrs.model as Record<string, unknown>\n );\n\n provide(FormContextKey, {\n isFormParent: true,\n span: defaultSpan,\n fieldErrors: ref({}),\n isReadonly: isReadonly,\n stylesConfig: finalStylesConfig,\n model: modelState\n });\n\n const flattenVNodes = (children: any): VNode[] => {\n let result: VNode[] = [];\n const vnodes = Array.isArray(children)\n ? children\n : [children];\n vnodes.forEach(v => {\n if (Array.isArray(v)) {\n result = result.concat(flattenVNodes(v));\n } else if (isVNode(v)) {\n if (\n v.type === Symbol.for(\"v-fgt\") ||\n v.type?.toString() === \"Symbol(Fragment)\"\n ) {\n result = result.concat(\n flattenVNodes(v.children)\n );\n } else if (\n v.type !== Comment &&\n v.type !== Text\n ) {\n result.push(v);\n }\n }\n });\n return result;\n };\n\n /**\n * 核心逻辑:重新编排节点序列,在必要位置插入补位 Col\n */\n const renderItems = () => {\n const colCls = getPrefixCls(\"item-col\");\n const styles = useFormItemStyle(\n finalStylesConfig.value,\n token\n );\n const rawSlots = slots.default ? slots.default() : [];\n const vnodes = flattenVNodes(rawSlots);\n\n const finalElements: VNode[] = [];\n let currentLineSpan = 0;\n\n vnodes.forEach((vnode, index) => {\n const span = getVNodeSpan(vnode);\n\n // 如果当前行放不下这个节点,或者当前节点是 span 24 且之前行未满\n // 则需要先给上一行打个补丁\n if (\n currentLineSpan > 0 &&\n (currentLineSpan + span > 24 || span === 24)\n ) {\n const neededSpan = 24 - currentLineSpan;\n if (neededSpan > 0) {\n finalElements.push(\n <Col\n key={`filler-mid-${index}`}\n span={neededSpan}\n class={cx(colCls, styles.cellBorderStyle)}\n >\n <FormItem label={\" \"}></FormItem>\n </Col>\n );\n }\n currentLineSpan = 0; // 开启新行\n }\n\n finalElements.push(vnode);\n\n // 累加计算当前行已占 span\n currentLineSpan += span;\n if (currentLineSpan >= 24) {\n currentLineSpan = 0;\n }\n });\n\n // 最后一行不满 24,补充最后一块\n if (currentLineSpan > 0) {\n finalElements.push(\n <Col\n key=\"filler-last\"\n span={24 - currentLineSpan}\n class={cx(colCls, styles.cellBorderStyle)}\n >\n <FormItem label={\" \"}></FormItem>\n </Col>\n );\n }\n\n return finalElements;\n };\n\n expose({ form: formRef });\n\n return () => {\n const rootCls = getPrefixCls();\n return (\n <Form\n class={cx(rootCls, containerBorderStyle)}\n {...attrs}\n ref={formRef}\n >\n <Row>{renderItems()}</Row>\n </Form>\n );\n };\n }\n});\n\nexport const TableForm = withInstall(_TableForm);\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","FormContextKey","Symbol","getVNodeSpan","vnode","props","span","undefined","Number","containerBorderStyle","css","_TableForm","defineComponent","name","tableFormProps","setup","slots","attrs","expose","token","useAntdToken","getPrefixCls","useDesign","formRef","ref","defaultSpan","computed","isReadonly","readonly","finalStylesConfig","defaultCopy","JSON","parse","stringify","DEFAULT_STYLES_CONFIG","merge","stylesConfig","modelState","model","provide","isFormParent","fieldErrors","flattenVNodes","children","result","vnodes","Array","isArray","forEach","v","concat","isVNode","type","for","Comment","Text","push","renderItems","colCls","styles","useFormItemStyle","value","rawSlots","default","finalElements","currentLineSpan","index","neededSpan","_createVNode","Col","cx","cellBorderStyle","FormItem","form","_slot","rootCls","Form","_mergeProps","Row","TableForm","withInstall"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TableForm.mjs","sources":["../../../../src/components/table-form/TableForm.tsx"],"sourcesContent":["import {\r\n Comment,\r\n computed,\r\n ComputedRef,\r\n defineComponent,\r\n isVNode,\r\n provide,\r\n ref,\r\n Text,\r\n VNode\r\n} from \"vue\";\r\nimport {\r\n Col,\r\n Form,\r\n FormInstance,\r\n FormItem,\r\n Row\r\n} from \"ant-design-vue\";\r\n\r\nimport {\r\n DEFAULT_STYLES_CONFIG,\r\n StylesConfig,\r\n tableFormProps\r\n} from \"./interface\";\r\nimport { useFormItemStyle } from \"./style\";\r\nimport { css, cx } from \"@emotion/css\";\r\nimport { merge } from \"lodash-es\";\r\n\r\nimport {\r\n useAntdToken,\r\n useDesign\r\n} from \"../../hooks/useDesign\";\r\n\r\nimport { withInstall } from \"../../utils/withInstall\";\r\n\r\nexport const FormContextKey = Symbol(\r\n \"d-table-form-context\"\r\n);\r\n\r\nexport interface TableFormContext {\r\n isFormParent: true;\r\n span: ComputedRef<number>;\r\n isReadonly: ComputedRef<boolean>;\r\n fieldErrors: ComputedRef<\r\n Record<string, string | undefined>\r\n >;\r\n stylesConfig: ComputedRef<StylesConfig>;\r\n model: ComputedRef<Record<string, unknown>>;\r\n}\r\n\r\nconst getVNodeSpan = (vnode: any): number => {\r\n if (vnode && vnode.props) {\r\n const s = vnode.props.span ?? vnode.props[\"span\"];\r\n if (s !== undefined && s !== null) return Number(s);\r\n }\r\n return 24; // 默认占满一行\r\n};\r\n\r\nconst containerBorderStyle = css`\r\n border-top: 1px solid #d9d9d9;\r\n border-left: 1px solid #d9d9d9;\r\n`;\r\n\r\nconst _TableForm = defineComponent({\r\n name: \"DTableForm\",\r\n props: tableFormProps,\r\n\r\n setup(props, { slots, attrs, expose }) {\r\n const token = useAntdToken();\r\n const { getPrefixCls } = useDesign(\"table-form\");\r\n const formRef = ref<FormInstance | null>();\r\n\r\n const defaultSpan = computed(() => 24);\r\n const isReadonly = computed(() => props.readonly);\r\n const finalStylesConfig = computed<StylesConfig>(() => {\r\n const defaultCopy = JSON.parse(\r\n JSON.stringify(DEFAULT_STYLES_CONFIG)\r\n );\r\n return merge(defaultCopy, props.stylesConfig);\r\n });\r\n const modelState = computed(\r\n () => attrs.model as Record<string, unknown>\r\n );\r\n\r\n provide(FormContextKey, {\r\n isFormParent: true,\r\n span: defaultSpan,\r\n fieldErrors: ref({}),\r\n isReadonly: isReadonly,\r\n stylesConfig: finalStylesConfig,\r\n model: modelState\r\n });\r\n\r\n const flattenVNodes = (children: any): VNode[] => {\r\n let result: VNode[] = [];\r\n const vnodes = Array.isArray(children)\r\n ? children\r\n : [children];\r\n vnodes.forEach(v => {\r\n if (Array.isArray(v)) {\r\n result = result.concat(flattenVNodes(v));\r\n } else if (isVNode(v)) {\r\n if (\r\n v.type === Symbol.for(\"v-fgt\") ||\r\n v.type?.toString() === \"Symbol(Fragment)\"\r\n ) {\r\n result = result.concat(\r\n flattenVNodes(v.children)\r\n );\r\n } else if (\r\n v.type !== Comment &&\r\n v.type !== Text\r\n ) {\r\n result.push(v);\r\n }\r\n }\r\n });\r\n return result;\r\n };\r\n\r\n /**\r\n * 核心逻辑:重新编排节点序列,在必要位置插入补位 Col\r\n */\r\n const renderItems = () => {\r\n const colCls = getPrefixCls(\"item-col\");\r\n const styles = useFormItemStyle(\r\n finalStylesConfig.value,\r\n token\r\n );\r\n const rawSlots = slots.default ? slots.default() : [];\r\n const vnodes = flattenVNodes(rawSlots);\r\n\r\n const finalElements: VNode[] = [];\r\n let currentLineSpan = 0;\r\n\r\n vnodes.forEach((vnode, index) => {\r\n const span = getVNodeSpan(vnode);\r\n\r\n // 如果当前行放不下这个节点,或者当前节点是 span 24 且之前行未满\r\n // 则需要先给上一行打个补丁\r\n if (\r\n currentLineSpan > 0 &&\r\n (currentLineSpan + span > 24 || span === 24)\r\n ) {\r\n const neededSpan = 24 - currentLineSpan;\r\n if (neededSpan > 0) {\r\n finalElements.push(\r\n <Col\r\n key={`filler-mid-${index}`}\r\n span={neededSpan}\r\n class={cx(colCls, styles.cellBorderStyle)}\r\n >\r\n <FormItem label={\" \"}></FormItem>\r\n </Col>\r\n );\r\n }\r\n currentLineSpan = 0; // 开启新行\r\n }\r\n\r\n finalElements.push(vnode);\r\n\r\n // 累加计算当前行已占 span\r\n currentLineSpan += span;\r\n if (currentLineSpan >= 24) {\r\n currentLineSpan = 0;\r\n }\r\n });\r\n\r\n // 最后一行不满 24,补充最后一块\r\n if (currentLineSpan > 0) {\r\n finalElements.push(\r\n <Col\r\n key=\"filler-last\"\r\n span={24 - currentLineSpan}\r\n class={cx(colCls, styles.cellBorderStyle)}\r\n >\r\n <FormItem label={\" \"}></FormItem>\r\n </Col>\r\n );\r\n }\r\n\r\n return finalElements;\r\n };\r\n\r\n expose({ form: formRef });\r\n\r\n return () => {\r\n const rootCls = getPrefixCls();\r\n return (\r\n <Form\r\n class={cx(rootCls, containerBorderStyle)}\r\n {...attrs}\r\n ref={formRef}\r\n >\r\n <Row>{renderItems()}</Row>\r\n </Form>\r\n );\r\n };\r\n }\r\n});\r\n\r\nexport const TableForm = withInstall(_TableForm);\r\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","FormContextKey","Symbol","getVNodeSpan","vnode","props","span","undefined","Number","containerBorderStyle","css","_TableForm","defineComponent","name","tableFormProps","setup","slots","attrs","expose","token","useAntdToken","getPrefixCls","useDesign","formRef","ref","defaultSpan","computed","isReadonly","readonly","finalStylesConfig","defaultCopy","JSON","parse","stringify","DEFAULT_STYLES_CONFIG","merge","stylesConfig","modelState","model","provide","isFormParent","fieldErrors","flattenVNodes","children","result","vnodes","Array","isArray","forEach","v","concat","isVNode","type","for","Comment","Text","push","renderItems","colCls","styles","useFormItemStyle","value","rawSlots","default","finalElements","currentLineSpan","index","neededSpan","_createVNode","Col","cx","cellBorderStyle","FormItem","form","_slot","rootCls","Form","_mergeProps","Row","TableForm","withInstall"],"mappings":";;;;;;;;;;AAiCsD,SAAAA,QAAAC,CAAAA,EAAA;AAAA,EAAA,OAAA,OAAAA,CAAAA,KAAA,UAAA,IAAAC,MAAAA,CAAAC,SAAAA,CAAAC,QAAAA,CAAAC,IAAAA,CAAAJ,CAAA,CAAA,KAAA,iBAAA,IAAA,CAAAK,OAAAA,CAAAL,CAAA,CAAA;AAAA;AAE/C,MAAMM,cAAAA,GAAiBC,OAC5B,sBACF;AAaA,MAAMC,eAAgBC,CAAAA,KAAAA,KAAuB;AAlD7C,EAAA,IAAA,EAAA;AAmDE,EAAA,IAAIA,KAAAA,IAASA,MAAMC,KAAAA,EAAO;AACxB,IAAA,MAAMV,KAAIS,EAAAA,GAAAA,KAAAA,CAAMC,KAAAA,CAAMC,SAAZF,IAAAA,GAAAA,EAAAA,GAAoBA,KAAAA,CAAMC,MAAM,MAAM,CAAA;AAChD,IAAA,IAAIV,MAAMY,KAAAA,CAAAA,IAAaZ,CAAAA,KAAM,IAAA,EAAM,OAAOa,OAAOb,CAAC,CAAA;AAAA,EACpD;AACA,EAAA,OAAO,EAAA;AACT,CAAA;AAEA,MAAMc,oBAAAA,GAAuBC,GAAAA;AAAAA;AAAAA;AAAAA,CAAAA;AAK7B,MAAMC,6BAAaC,eAAAA,CAAgB;AAAA,EACjCC,IAAAA,EAAM,YAAA;AAAA,EACNR,KAAAA,EAAOS,cAAAA;AAAAA,EAEPC,MAAMV,KAAAA,EAAO;AAAA,IAAEW,KAAAA;AAAAA,IAAOC,KAAAA;AAAAA,IAAOC;AAAAA,GAAO,EAAG;AACrC,IAAA,MAAMC,QAAQC,YAAAA,EAAa;AAC3B,IAAA,MAAM;AAAA,MAAEC;AAAAA,KAAa,GAAIC,UAAU,YAAY,CAAA;AAC/C,IAAA,MAAMC,UAAUC,GAAAA,EAAyB;AAEzC,IAAA,MAAMC,WAAAA,GAAcC,QAAAA,CAAS,MAAM,EAAE,CAAA;AACrC,IAAA,MAAMC,UAAAA,GAAaD,QAAAA,CAAS,MAAMrB,KAAAA,CAAMuB,QAAQ,CAAA;AAChD,IAAA,MAAMC,iBAAAA,GAAoBH,SAAuB,MAAM;AACrD,MAAA,MAAMI,cAAcC,IAAAA,CAAKC,KAAAA,CACvBD,IAAAA,CAAKE,SAAAA,CAAUC,qBAAqB,CACtC,CAAA;AACA,MAAA,OAAOC,KAAAA,CAAML,WAAAA,EAAazB,KAAAA,CAAM+B,YAAY,CAAA;AAAA,IAC9C,CAAC,CAAA;AACD,IAAA,MAAMC,UAAAA,GAAaX,QAAAA,CACjB,MAAMT,KAAAA,CAAMqB,KACd,CAAA;AAEAC,IAAAA,OAAAA,CAAQtC,cAAAA,EAAgB;AAAA,MACtBuC,YAAAA,EAAc,IAAA;AAAA,MACdlC,IAAAA,EAAMmB,WAAAA;AAAAA,MACNgB,WAAAA,EAAajB,GAAAA,CAAI,EAAE,CAAA;AAAA,MACnBG,UAAAA;AAAAA,MACAS,YAAAA,EAAcP,iBAAAA;AAAAA,MACdS,KAAAA,EAAOD;AAAAA,KACR,CAAA;AAED,IAAA,MAAMK,gBAAiBC,CAAAA,QAAAA,KAA2B;AAChD,MAAA,IAAIC,SAAkB,EAAA;AACtB,MAAA,MAAMC,SAASC,KAAAA,CAAMC,OAAAA,CAAQJ,QAAQ,CAAA,GACjCA,QAAAA,GACA,CAACA,QAAQ,CAAA;AACbE,MAAAA,MAAAA,CAAOG,QAAQC,CAAAA,CAAAA,KAAK;AAlG1B,QAAA,IAAA,EAAA;AAmGQ,QAAA,IAAIH,KAAAA,CAAMC,OAAAA,CAAQE,CAAC,CAAA,EAAG;AACpBL,UAAAA,MAAAA,GAASA,MAAAA,CAAOM,MAAAA,CAAOR,aAAAA,CAAcO,CAAC,CAAC,CAAA;AAAA,QACzC,CAAA,MAAA,IAAWE,OAAAA,CAAQF,CAAC,CAAA,EAAG;AACrB,UAAA,IACEA,CAAAA,CAAEG,IAAAA,KAASlD,MAAAA,CAAOmD,GAAAA,CAAI,OAAO,OAC7BJ,EAAAA,GAAAA,CAAAA,CAAEG,IAAAA,KAAFH,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,EAAAA,CAAQnD,QAAAA,EAAAA,MAAe,kBAAA,EACvB;AACA8C,YAAAA,MAAAA,GAASA,MAAAA,CAAOM,MAAAA,CACdR,aAAAA,CAAcO,CAAAA,CAAEN,QAAQ,CAC1B,CAAA;AAAA,UACF,WACEM,CAAAA,CAAEG,IAAAA,KAASE,OAAAA,IACXL,CAAAA,CAAEG,SAASG,IAAAA,EACX;AACAX,YAAAA,MAAAA,CAAOY,KAAKP,CAAC,CAAA;AAAA,UACf;AAAA,QACF;AAAA,MACF,CAAC,CAAA;AACD,MAAA,OAAOL,MAAAA;AAAAA,IACT,CAAA;AAKA,IAAA,MAAMa,cAAcA,MAAM;AACxB,MAAA,MAAMC,MAAAA,GAASrC,aAAa,UAAU,CAAA;AACtC,MAAA,MAAMsC,MAAAA,GAASC,gBAAAA,CACb/B,iBAAAA,CAAkBgC,KAAAA,EAClB1C,KACF,CAAA;AACA,MAAA,MAAM2C,WAAW9C,KAAAA,CAAM+C,OAAAA,GAAU/C,KAAAA,CAAM+C,OAAAA,KAAY,EAAA;AACnD,MAAA,MAAMlB,MAAAA,GAASH,cAAcoB,QAAQ,CAAA;AAErC,MAAA,MAAME,gBAAyB,EAAA;AAC/B,MAAA,IAAIC,eAAAA,GAAkB,CAAA;AAEtBpB,MAAAA,MAAAA,CAAOG,OAAAA,CAAQ,CAAC5C,KAAAA,EAAO8D,KAAAA,KAAU;AAC/B,QAAA,MAAM5D,IAAAA,GAAOH,aAAaC,KAAK,CAAA;AAI/B,QAAA,IACE6D,kBAAkB,CAAA,KACjBA,eAAAA,GAAkB3D,IAAAA,GAAO,EAAA,IAAMA,SAAS,EAAA,CAAA,EACzC;AACA,UAAA,MAAM6D,aAAa,EAAA,GAAKF,eAAAA;AACxB,UAAA,IAAIE,aAAa,CAAA,EAAG;AAClBH,YAAAA,aAAAA,CAAcR,IAAAA,CAAIY,YAAAC,GAAAA,EAAA;AAAA,cAAA,KAAA,EAET,cAAcH,KAAK,CAAA,CAAA;AAAA,cAAE,MAAA,EACpBC,UAAAA;AAAAA,cAAU,OAAA,EACTG,EAAAA,CAAGZ,MAAAA,EAAQC,MAAAA,CAAOY,eAAe;AAAA,aAAC,EAAA;AAAA,cAAAR,OAAAA,EAAAA,MAAA,CAAAK,WAAAA,CAAAI,QAAAA,EAAA;AAAA,gBAAA,OAAA,EAExB;AAAA,eAAG,EAAA,IAAA,CAAA;AAAA,aAAA,CAExB,CAAA;AAAA,UACF;AACAP,UAAAA,eAAAA,GAAkB,CAAA;AAAA,QACpB;AAEAD,QAAAA,aAAAA,CAAcR,KAAKpD,KAAK,CAAA;AAGxB6D,QAAAA,eAAAA,IAAmB3D,IAAAA;AACnB,QAAA,IAAI2D,mBAAmB,EAAA,EAAI;AACzBA,UAAAA,eAAAA,GAAkB,CAAA;AAAA,QACpB;AAAA,MACF,CAAC,CAAA;AAGD,MAAA,IAAIA,kBAAkB,CAAA,EAAG;AACvBD,QAAAA,aAAAA,CAAcR,IAAAA,CAAIY,YAAAC,GAAAA,EAAA;AAAA,UAAA,KAAA,EAAA,aAAA;AAAA,UAAA,QAGR,EAAA,GAAKJ,eAAAA;AAAAA,UAAe,OAAA,EACnBK,EAAAA,CAAGZ,MAAAA,EAAQC,MAAAA,CAAOY,eAAe;AAAA,SAAC,EAAA;AAAA,UAAAR,OAAAA,EAAAA,MAAA,CAAAK,WAAAA,CAAAI,QAAAA,EAAA;AAAA,YAAA,OAAA,EAExB;AAAA,WAAG,EAAA,IAAA,CAAA;AAAA,SAAA,CAExB,CAAA;AAAA,MACF;AAEA,MAAA,OAAOR,aAAAA;AAAAA,IACT,CAAA;AAEA9C,IAAAA,MAAAA,CAAO;AAAA,MAAEuD,IAAAA,EAAMlD;AAAAA,KAAS,CAAA;AAExB,IAAA,OAAO,MAAM;AAAA,MAAA,IAAAmD,KAAAA;AACX,MAAA,MAAMC,UAAUtD,YAAAA,EAAa;AAC7B,MAAA,OAAA+C,WAAAA,CAAAQ,MAAAC,UAAAA,CAAA;AAAA,QAAA,OAAA,EAEWP,EAAAA,CAAGK,OAAAA,EAASlE,oBAAoB;AAAA,SACnCQ,KAAAA,EAAK;AAAA,QAAA,KAAA,EACJM;AAAAA,OAAO,CAAA,EAAA;AAAA,QAAAwC,OAAAA,EAAAA,MAAA,CAAAK,WAAAA,CAAAU,GAAAA,EAAA,IAAA,EAAApF,OAAAA,CAAAgF,KAAAA,GAENjB,WAAAA,EAAa,CAAA,GAAAiB,KAAAA,GAAA;AAAA,UAAAX,OAAAA,EAAAA,MAAA,CAAAW,KAAA;AAAA,SAAA,CAAA;AAAA,OAAA,CAAA;AAAA,IAGzB,CAAA;AAAA,EACF;AACF,CAAC,CAAA;AAEM,MAAMK,SAAAA,GAAYC,YAAYrE,UAAU;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableFormItem.mjs","sources":["../../../../src/components/table-form/TableFormItem.tsx"],"sourcesContent":["import { computed, defineComponent, inject } from \"vue\";\nimport { Col, FormItem } from \"ant-design-vue\";\n\nimport { tableFormItemProps } from \"./interface\";\nimport { useFormItemStyle } from \"./style\";\nimport {\n FormContextKey,\n TableFormContext\n} from \"./TableForm\";\nimport { useDicStore } from \"@ditari/store\";\nimport { cx } from \"@emotion/css\";\n\nimport {\n useAntdToken,\n useDesign\n} from \"../../hooks/useDesign\";\n\nimport { withInstall } from \"../../utils/withInstall\";\n\n/**\n * 辅助函数:根据路径数组和对象获取深层值\n * @param obj 数据对象\n * @param pathName 字段路径,例如 'user.name'\n */\nconst getDeepValue = (\n obj: Record<string, unknown>,\n pathName: string\n): unknown => {\n if (!obj || !pathName) {\n return undefined;\n }\n\n // 将 'user.name' 转换为 ['user', 'name']\n const path = pathName.split(\".\");\n let current: unknown = obj;\n\n for (const segment of path) {\n // 使用类型守卫和断言来安全地访问嵌套属性\n if (\n current &&\n typeof current === \"object\" &&\n segment in (current as Record<string, unknown>)\n ) {\n current = (current as Record<string, unknown>)[\n segment\n ];\n } else {\n return undefined;\n }\n }\n return current;\n};\n\nconst _TableFormItem = defineComponent({\n name: \"DTableFormItem\",\n props: tableFormItemProps,\n setup(props, { slots, attrs }) {\n const formContext = inject<TableFormContext | null>(\n FormContextKey,\n null\n );\n const { getPrefixCls } = useDesign(\n \"table-form-item-col\"\n );\n const token = useAntdToken();\n const { getDicTextByValue } = useDicStore();\n\n if (!formContext) {\n console.error(\n \"DTableFormItem must be used inside a DTableForm component.\"\n );\n }\n\n // ⭐️ 从 Context 获取只读状态\n const isReadonly = computed(\n () => formContext?.isReadonly.value ?? false\n );\n const stylesConfig = computed(\n () => formContext?.stylesConfig.value\n );\n const modelState = computed(\n () => formContext?.model.value\n );\n const styles = useFormItemStyle(\n stylesConfig.value!,\n token\n );\n\n // ⭐️ 1. 获取并计算 Col 的 span 值\n const colSpan = computed(() => {\n console.log(formContext?.span.value);\n // 如果成功注入上下文,则使用父组件计算的 span\n // 否则默认使用 24 (占满一行,安全回退)\n return props.span || 24;\n });\n\n // ⭐️ 2. 计算当前 FormItem 绑定的值\n const fieldValue = computed(() => {\n const formatFn = props.format;\n const dicName = props.dicName;\n\n // 使用 Record<string, unknown> 替换 any\n const model = modelState.value as Record<\n string,\n unknown\n >;\n const name = attrs.name as string;\n\n // 确保 model 存在且 name 存在\n if (!model || !name) {\n return \"\";\n }\n\n // 使用辅助函数获取深层嵌套的值\n let value = getDeepValue(model, name);\n\n // 如果值是 undefined, null 或空字符串,显示一个占位符或空\n if (\n value === undefined ||\n value === null ||\n value === \"\"\n ) {\n return \"-\";\n }\n\n if (formatFn) {\n return formatFn?.(value, name);\n }\n if (dicName && !Array.isArray(value)) {\n return getDicTextByValue(dicName, value as string);\n }\n\n // 简单处理数组:如果是数组,转换为逗号分隔的字符串\n if (Array.isArray(value)) {\n // value 是 Array<unknown>,.join() 会将其转换为字符串\n value = value.join(\", \");\n }\n\n // 转换为字符串进行显示\n return String(value);\n });\n\n // ⭐️ 3. 条件渲染内容\n const renderContent = () => {\n const colCls = getPrefixCls(\"content\");\n if (isReadonly.value) {\n // 只读模式:显示值\n return (\n <div class={cx(styles.valueDisplayClass, colCls)}>\n <span class={styles.textWrapperClass}>\n {fieldValue.value}\n </span>\n </div>\n );\n }\n\n // 编辑模式:渲染默认插槽内容 (表单元素)\n return slots.default?.();\n };\n\n return () => {\n const rootCls = getPrefixCls();\n // ⭐️ 2. 将计算得到的 colSpan 应用到 Col 组件上\n return (\n <Col\n span={colSpan.value}\n class={cx(rootCls, styles.cellBorderStyle)}\n >\n {/* 在只读模式下,我们不需要 FormItem 来管理校验状态 */}\n <FormItem {...attrs}>{renderContent()}</FormItem>\n </Col>\n );\n };\n }\n});\n\nexport const TableFormItem = withInstall(_TableFormItem);\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","getDeepValue","obj","pathName","undefined","path","split","current","segment","_TableFormItem","defineComponent","name","props","tableFormItemProps","setup","slots","attrs","formContext","inject","FormContextKey","getPrefixCls","useDesign","token","useAntdToken","getDicTextByValue","useDicStore","console","error","isReadonly","computed","value","stylesConfig","modelState","model","styles","useFormItemStyle","colSpan","log","span","fieldValue","formatFn","format","dicName","Array","isArray","join","String","renderContent","colCls","_createVNode","cx","valueDisplayClass","textWrapperClass","default","_slot","rootCls","Col","cellBorderStyle","FormItem","TableFormItem","withInstall"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TableFormItem.mjs","sources":["../../../../src/components/table-form/TableFormItem.tsx"],"sourcesContent":["import { computed, defineComponent, inject } from \"vue\";\r\nimport { Col, FormItem } from \"ant-design-vue\";\r\n\r\nimport { tableFormItemProps } from \"./interface\";\r\nimport { useFormItemStyle } from \"./style\";\r\nimport {\r\n FormContextKey,\r\n TableFormContext\r\n} from \"./TableForm\";\r\nimport { useDicStore } from \"@ditari/store\";\r\nimport { cx } from \"@emotion/css\";\r\n\r\nimport {\r\n useAntdToken,\r\n useDesign\r\n} from \"../../hooks/useDesign\";\r\n\r\nimport { withInstall } from \"../../utils/withInstall\";\r\n\r\n/**\r\n * 辅助函数:根据路径数组和对象获取深层值\r\n * @param obj 数据对象\r\n * @param pathName 字段路径,例如 'user.name'\r\n */\r\nconst getDeepValue = (\r\n obj: Record<string, unknown>,\r\n pathName: string\r\n): unknown => {\r\n if (!obj || !pathName) {\r\n return undefined;\r\n }\r\n\r\n // 将 'user.name' 转换为 ['user', 'name']\r\n const path = pathName.split(\".\");\r\n let current: unknown = obj;\r\n\r\n for (const segment of path) {\r\n // 使用类型守卫和断言来安全地访问嵌套属性\r\n if (\r\n current &&\r\n typeof current === \"object\" &&\r\n segment in (current as Record<string, unknown>)\r\n ) {\r\n current = (current as Record<string, unknown>)[\r\n segment\r\n ];\r\n } else {\r\n return undefined;\r\n }\r\n }\r\n return current;\r\n};\r\n\r\nconst _TableFormItem = defineComponent({\r\n name: \"DTableFormItem\",\r\n props: tableFormItemProps,\r\n setup(props, { slots, attrs }) {\r\n const formContext = inject<TableFormContext | null>(\r\n FormContextKey,\r\n null\r\n );\r\n const { getPrefixCls } = useDesign(\r\n \"table-form-item-col\"\r\n );\r\n const token = useAntdToken();\r\n const { getDicTextByValue } = useDicStore();\r\n\r\n if (!formContext) {\r\n console.error(\r\n \"DTableFormItem must be used inside a DTableForm component.\"\r\n );\r\n }\r\n\r\n // ⭐️ 从 Context 获取只读状态\r\n const isReadonly = computed(\r\n () => formContext?.isReadonly.value ?? false\r\n );\r\n const stylesConfig = computed(\r\n () => formContext?.stylesConfig.value\r\n );\r\n const modelState = computed(\r\n () => formContext?.model.value\r\n );\r\n const styles = useFormItemStyle(\r\n stylesConfig.value!,\r\n token\r\n );\r\n\r\n // ⭐️ 1. 获取并计算 Col 的 span 值\r\n const colSpan = computed(() => {\r\n console.log(formContext?.span.value);\r\n // 如果成功注入上下文,则使用父组件计算的 span\r\n // 否则默认使用 24 (占满一行,安全回退)\r\n return props.span || 24;\r\n });\r\n\r\n // ⭐️ 2. 计算当前 FormItem 绑定的值\r\n const fieldValue = computed(() => {\r\n const formatFn = props.format;\r\n const dicName = props.dicName;\r\n\r\n // 使用 Record<string, unknown> 替换 any\r\n const model = modelState.value as Record<\r\n string,\r\n unknown\r\n >;\r\n const name = attrs.name as string;\r\n\r\n // 确保 model 存在且 name 存在\r\n if (!model || !name) {\r\n return \"\";\r\n }\r\n\r\n // 使用辅助函数获取深层嵌套的值\r\n let value = getDeepValue(model, name);\r\n\r\n // 如果值是 undefined, null 或空字符串,显示一个占位符或空\r\n if (\r\n value === undefined ||\r\n value === null ||\r\n value === \"\"\r\n ) {\r\n return \"-\";\r\n }\r\n\r\n if (formatFn) {\r\n return formatFn?.(value, name);\r\n }\r\n if (dicName && !Array.isArray(value)) {\r\n return getDicTextByValue(dicName, value as string);\r\n }\r\n\r\n // 简单处理数组:如果是数组,转换为逗号分隔的字符串\r\n if (Array.isArray(value)) {\r\n // value 是 Array<unknown>,.join() 会将其转换为字符串\r\n value = value.join(\", \");\r\n }\r\n\r\n // 转换为字符串进行显示\r\n return String(value);\r\n });\r\n\r\n // ⭐️ 3. 条件渲染内容\r\n const renderContent = () => {\r\n const colCls = getPrefixCls(\"content\");\r\n if (isReadonly.value) {\r\n // 只读模式:显示值\r\n return (\r\n <div class={cx(styles.valueDisplayClass, colCls)}>\r\n <span class={styles.textWrapperClass}>\r\n {fieldValue.value}\r\n </span>\r\n </div>\r\n );\r\n }\r\n\r\n // 编辑模式:渲染默认插槽内容 (表单元素)\r\n return slots.default?.();\r\n };\r\n\r\n return () => {\r\n const rootCls = getPrefixCls();\r\n // ⭐️ 2. 将计算得到的 colSpan 应用到 Col 组件上\r\n return (\r\n <Col\r\n span={colSpan.value}\r\n class={cx(rootCls, styles.cellBorderStyle)}\r\n >\r\n {/* 在只读模式下,我们不需要 FormItem 来管理校验状态 */}\r\n <FormItem {...attrs}>{renderContent()}</FormItem>\r\n </Col>\r\n );\r\n };\r\n }\r\n});\r\n\r\nexport const TableFormItem = withInstall(_TableFormItem);\r\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","getDeepValue","obj","pathName","undefined","path","split","current","segment","_TableFormItem","defineComponent","name","props","tableFormItemProps","setup","slots","attrs","formContext","inject","FormContextKey","getPrefixCls","useDesign","token","useAntdToken","getDicTextByValue","useDicStore","console","error","isReadonly","computed","value","stylesConfig","modelState","model","styles","useFormItemStyle","colSpan","log","span","fieldValue","formatFn","format","dicName","Array","isArray","join","String","renderContent","colCls","_createVNode","cx","valueDisplayClass","textWrapperClass","default","_slot","rootCls","Col","cellBorderStyle","FormItem","TableFormItem","withInstall"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../../../src/components/table-form/index.ts"],"sourcesContent":["// src/components/table-form/index.ts\n\nimport { TableForm } from \"./TableForm\";\nimport { TableFormItem } from \"./TableFormItem\";\n\n// 1. 定义包含静态属性 Item 的新类型\ntype TableFormWithItem = typeof TableForm & {\n Item: typeof TableFormItem;\n};\n\n// 2. 核心:将 TableForm 断言为新类型,并进行挂载\n// 注意:这里的断言是必需的,但我们现在是断言到一个精确的类型,而不是 'any'。\nconst TableFormExport = TableForm as TableFormWithItem;\n\n// 3. 挂载 Item 属性\nTableFormExport.Item = TableFormItem;\n\n// 统一导出 (导出这个带 Item 属性的 TableFormExport)\nexport { TableFormExport as TableForm, TableFormItem };\n\nexport * from \"./interface\";\n"],"names":[],"mappings":";;;;;AAYA,MAAM,eAAA,GAAkB;AAGxB,eAAA,CAAgB,IAAA,GAAO,aAAA;;;;"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../src/components/table-form/index.ts"],"sourcesContent":["// src/components/table-form/index.ts\r\n\r\nimport { TableForm } from \"./TableForm\";\r\nimport { TableFormItem } from \"./TableFormItem\";\r\n\r\n// 1. 定义包含静态属性 Item 的新类型\r\ntype TableFormWithItem = typeof TableForm & {\r\n Item: typeof TableFormItem;\r\n};\r\n\r\n// 2. 核心:将 TableForm 断言为新类型,并进行挂载\r\n// 注意:这里的断言是必需的,但我们现在是断言到一个精确的类型,而不是 'any'。\r\nconst TableFormExport = TableForm as TableFormWithItem;\r\n\r\n// 3. 挂载 Item 属性\r\nTableFormExport.Item = TableFormItem;\r\n\r\n// 统一导出 (导出这个带 Item 属性的 TableFormExport)\r\nexport { TableFormExport as TableForm, TableFormItem };\r\n\r\nexport * from \"./interface\";\r\n"],"names":[],"mappings":";;;;;AAYA,MAAM,eAAA,GAAkB;AAGxB,eAAA,CAAgB,IAAA,GAAO,aAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interface.mjs","sources":["../../../../src/components/table-form/interface.ts"],"sourcesContent":["import type { ExtractPropTypes, PropType } from \"vue\";\n\n// 接口:定义你的 Props 应该有哪些属性和类型\nexport interface DTableFormItemProps {\n name: string;\n label?: string;\n required?: boolean;\n rules?: unknown[]; // 简化,实际应定义详细校验规则类型\n colon?: boolean;\n extra?: string;\n}\n\nexport type Formatter = (\n value: unknown,\n name: unknown\n) => unknown;\n\n// 运行时 Props 的定义 (常量)\nexport const tableFormItemProps = {\n // 字典名字\n dicName: {\n type: String,\n default: undefined\n },\n format: {\n type: Function as PropType<Formatter> | undefined,\n // 默认值\n default: undefined\n },\n span: {\n type: Number,\n default: 8\n }\n};\n\n// ⭐️ 导出默认值常量\nexport const DEFAULT_STYLES_CONFIG: StylesConfig = {\n rowHeight: 32,\n borderColor: \"#dfdfdf\",\n borderWidth: 1,\n labelBgColor: \"#EEEEEE\",\n focusBorderColor: \"#1677ff\"\n};\n\nexport interface StylesConfig {\n /**\n * 表格行高度\n */\n rowHeight?: number;\n // 边框颜色\n borderColor?: string;\n // 边框\n borderWidth?: number;\n // 标签颜色label\n labelBgColor?: string;\n //焦点边框颜色\n focusBorderColor?: string;\n}\n\nexport const tableFormProps = {\n readonly: {\n type: Boolean,\n default: false\n },\n stylesConfig: {\n type: Object as PropType<StylesConfig>,\n default: () => ({ ...DEFAULT_STYLES_CONFIG })\n }\n};\n\n// 导出 Prop 类型,供外部使用 (例如,在 TSX 中使用)\nexport type TableFormItemProps = Partial<\n ExtractPropTypes<typeof tableFormItemProps>\n>;\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAkBO,MAAM,kBAAA,GAAqB;AAAA;AAAA,EAEhC,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,MAAA;AAAA,IACN,OAAA,EAAS,KAAA;AAAA,GACX;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,QAAA;AAAA;AAAA,IAEN,OAAA,EAAS,KAAA;AAAA,GACX;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,MAAA;AAAA,IACN,OAAA,EAAS;AAAA;AAEb;AAGO,MAAM,qBAAA,GAAsC;AAAA,EACjD,SAAA,EAAW,EAAA;AAAA,EACX,WAAA,EAAa,SAAA;AAAA,EACb,WAAA,EAAa,CAAA;AAAA,EACb,YAAA,EAAc,SAAA;AAAA,EACd,gBAAA,EAAkB;AACpB;AAiBO,MAAM,cAAA,GAAiB;AAAA,EAC5B,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,OAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAAA,EACA,YAAA,EAAc;AAAA,IACZ,IAAA,EAAM,MAAA;AAAA,IACN,OAAA,EAAS,MAAO,cAAA,CAAA,EAAA,EAAK,qBAAA;AAAA;AAEzB;;;;"}
|
|
1
|
+
{"version":3,"file":"interface.mjs","sources":["../../../../src/components/table-form/interface.ts"],"sourcesContent":["import type { ExtractPropTypes, PropType } from \"vue\";\r\n\r\n// 接口:定义你的 Props 应该有哪些属性和类型\r\nexport interface DTableFormItemProps {\r\n name: string;\r\n label?: string;\r\n required?: boolean;\r\n rules?: unknown[]; // 简化,实际应定义详细校验规则类型\r\n colon?: boolean;\r\n extra?: string;\r\n}\r\n\r\nexport type Formatter = (\r\n value: unknown,\r\n name: unknown\r\n) => unknown;\r\n\r\n// 运行时 Props 的定义 (常量)\r\nexport const tableFormItemProps = {\r\n // 字典名字\r\n dicName: {\r\n type: String,\r\n default: undefined\r\n },\r\n format: {\r\n type: Function as PropType<Formatter> | undefined,\r\n // 默认值\r\n default: undefined\r\n },\r\n span: {\r\n type: Number,\r\n default: 8\r\n }\r\n};\r\n\r\n// ⭐️ 导出默认值常量\r\nexport const DEFAULT_STYLES_CONFIG: StylesConfig = {\r\n rowHeight: 32,\r\n borderColor: \"#dfdfdf\",\r\n borderWidth: 1,\r\n labelBgColor: \"#EEEEEE\",\r\n focusBorderColor: \"#1677ff\"\r\n};\r\n\r\nexport interface StylesConfig {\r\n /**\r\n * 表格行高度\r\n */\r\n rowHeight?: number;\r\n // 边框颜色\r\n borderColor?: string;\r\n // 边框\r\n borderWidth?: number;\r\n // 标签颜色label\r\n labelBgColor?: string;\r\n //焦点边框颜色\r\n focusBorderColor?: string;\r\n}\r\n\r\nexport const tableFormProps = {\r\n readonly: {\r\n type: Boolean,\r\n default: false\r\n },\r\n stylesConfig: {\r\n type: Object as PropType<StylesConfig>,\r\n default: () => ({ ...DEFAULT_STYLES_CONFIG })\r\n }\r\n};\r\n\r\n// 导出 Prop 类型,供外部使用 (例如,在 TSX 中使用)\r\nexport type TableFormItemProps = Partial<\r\n ExtractPropTypes<typeof tableFormItemProps>\r\n>;\r\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAkBO,MAAM,kBAAA,GAAqB;AAAA;AAAA,EAEhC,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,MAAA;AAAA,IACN,OAAA,EAAS,KAAA;AAAA,GACX;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,QAAA;AAAA;AAAA,IAEN,OAAA,EAAS,KAAA;AAAA,GACX;AAAA,EACA,IAAA,EAAM;AAAA,IACJ,IAAA,EAAM,MAAA;AAAA,IACN,OAAA,EAAS;AAAA;AAEb;AAGO,MAAM,qBAAA,GAAsC;AAAA,EACjD,SAAA,EAAW,EAAA;AAAA,EACX,WAAA,EAAa,SAAA;AAAA,EACb,WAAA,EAAa,CAAA;AAAA,EACb,YAAA,EAAc,SAAA;AAAA,EACd,gBAAA,EAAkB;AACpB;AAiBO,MAAM,cAAA,GAAiB;AAAA,EAC5B,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,OAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAAA,EACA,YAAA,EAAc;AAAA,IACZ,IAAA,EAAM,MAAA;AAAA,IACN,OAAA,EAAS,MAAO,cAAA,CAAA,EAAA,EAAK,qBAAA;AAAA;AAEzB;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"style.mjs","sources":["../../../../src/components/table-form/style.ts"],"sourcesContent":["import { ComputedRef } from \"vue\";\n\nimport { StylesConfig } from \"./interface\";\nimport { css } from \"@emotion/css\";\nimport type { GlobalToken } from \"ant-design-vue/es/theme/interface\";\n\n/**\n * 表单项样式\n */\nexport const useFormItemStyle = (\n styles: StylesConfig,\n _token: ComputedRef<GlobalToken>\n) => {\n const {\n rowHeight,\n labelBgColor,\n borderColor,\n focusBorderColor\n } = styles;\n //TODO _token 后续得兼容下主题色\n const boxShadowStyle = `0 0 0 1px ${focusBorderColor}`;\n const inputFocusStyles = `\n &:focus{\n box-shadow: ${boxShadowStyle};\n }\n `;\n\n return {\n cellBorderStyle: css`\n //min-height: ${rowHeight}px;\n /* 现有单元格边框 */\n border-right: 1px solid ${borderColor};\n border-bottom: 1px solid ${borderColor};\n\n .ant-form-item {\n height: 100%;\n margin-bottom: 0 !important;\n\n .ant-form-item-row {\n height: 100%;\n\n .ant-form-item-label {\n height: 100%;\n border-right: 1px solid ${borderColor};\n background-color: ${labelBgColor};\n\n & > label {\n height: ${rowHeight}px;\n }\n }\n\n .ant-form-item-control-input {\n height: 100%;\n\n .ant-form-item-control-input-content {\n display: flex;\n align-items: center;\n height: 100%;\n\n .ant-radio-group {\n margin-left: 10px;\n }\n\n input,\n .ant-picker,\n .ant-select {\n width: 100%;\n height: 100%;\n }\n .ant-select-selector {\n display: flex;\n align-items: center;\n height: 100%;\n }\n }\n }\n\n .ant-input,\n .ant-select-selector,\n .ant-input-number,\n .ant-picker {\n border: 0;\n border-radius: 0;\n\n ${inputFocusStyles}\n // 数字输入框要单独处理\n .ant-input-number-input {\n border: 0;\n border-radius: 0;\n ${inputFocusStyles};\n }\n }\n\n .ant-picker-focused,\n .ant-select-focused {\n box-shadow: ${boxShadowStyle};\n }\n\n .ant-input[disabled] {\n ${inputFocusStyles}\n }\n }\n\n .ant-input-status-error,\n .ant-picker-status-error,\n .ant-select-status-error {\n box-shadow: 0 0 0 1px red;\n border-radius: 0;\n }\n }\n `,\n valueDisplayClass: css`\n width: 100%;\n height: 100%;\n display: flex;\n padding: 0 11px 0 11px;\n align-items: center;\n `,\n // 内部元素:实现文本溢出\n textWrapperClass: css`\n /* ⭐️ 核心修复:确保内部元素可以被压缩,且强制文本在一行 */\n flex-grow: 1; /* 占据可用空间 */\n min-width: 0;\n\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n `\n };\n};\n"],"names":[],"mappings":";;;AASO,MAAM,gBAAA,GAAmB,CAC9B,MAAA,EACA,MAAA,KACG;AACH,EAAA,MAAM;AAAA,IACJ,SAAA;AAAA,IACA,YAAA;AAAA,IACA,WAAA;AAAA,IACA;AAAA,GACF,GAAI,MAAA;AAEJ,EAAA,MAAM,cAAA,GAAiB,cAAc,gBAAgB,CAAA,CAAA;AACrD,EAAA,MAAM,gBAAA,GAAmB;AAAA;AAAA,kBAAA,EAEP,cAAc,CAAA;AAAA;AAAA,EAAA,CAAA;AAIhC,EAAA,OAAO;AAAA,IACL,eAAA,EAAiB,GAAA;AAAA,oBAAA,EACC,SAAS,CAAA;AAAA;AAAA,8BAAA,EAEC,WAAW,CAAA;AAAA,+BAAA,EACV,WAAW,CAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA,oCAAA,EAWN,WAAW,CAAA;AAAA,8BAAA,EACjB,YAAY,CAAA;;AAAA;AAAA,sBAAA,EAGpB,SAAS,CAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA,YAAA,EAqCnB,gBAAgB;AAAA;AAAA;AAAA;AAAA;AAAA,cAAA,EAKd,gBAAgB,CAAA;AAAA;AAAA;;AAAA;AAAA;AAAA,wBAAA,EAMN,cAAc,CAAA;AAAA;;AAAA;AAAA,YAAA,EAI1B,gBAAgB;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAA,CAAA;AAAA,IAY1B,iBAAA,EAAmB,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAA,CAAA;AAAA;AAAA,IAQnB,gBAAA,EAAkB,GAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA,IAAA;AAAA,GASpB;AACF;;;;"}
|
|
1
|
+
{"version":3,"file":"style.mjs","sources":["../../../../src/components/table-form/style.ts"],"sourcesContent":["import { ComputedRef } from \"vue\";\r\n\r\nimport { StylesConfig } from \"./interface\";\r\nimport { css } from \"@emotion/css\";\r\nimport type { GlobalToken } from \"ant-design-vue/es/theme/interface\";\r\n\r\n/**\r\n * 表单项样式\r\n */\r\nexport const useFormItemStyle = (\r\n styles: StylesConfig,\r\n _token: ComputedRef<GlobalToken>\r\n) => {\r\n const {\r\n rowHeight,\r\n labelBgColor,\r\n borderColor,\r\n focusBorderColor\r\n } = styles;\r\n //TODO _token 后续得兼容下主题色\r\n const boxShadowStyle = `0 0 0 1px ${focusBorderColor}`;\r\n const inputFocusStyles = `\r\n &:focus{\r\n box-shadow: ${boxShadowStyle};\r\n }\r\n `;\r\n\r\n return {\r\n cellBorderStyle: css`\r\n //min-height: ${rowHeight}px;\r\n /* 现有单元格边框 */\r\n border-right: 1px solid ${borderColor};\r\n border-bottom: 1px solid ${borderColor};\r\n\r\n .ant-form-item {\r\n height: 100%;\r\n margin-bottom: 0 !important;\r\n\r\n .ant-form-item-row {\r\n height: 100%;\r\n\r\n .ant-form-item-label {\r\n height: 100%;\r\n border-right: 1px solid ${borderColor};\r\n background-color: ${labelBgColor};\r\n\r\n & > label {\r\n height: ${rowHeight}px;\r\n }\r\n }\r\n\r\n .ant-form-item-control-input {\r\n height: 100%;\r\n\r\n .ant-form-item-control-input-content {\r\n display: flex;\r\n align-items: center;\r\n height: 100%;\r\n\r\n .ant-radio-group {\r\n margin-left: 10px;\r\n }\r\n\r\n input,\r\n .ant-picker,\r\n .ant-select {\r\n width: 100%;\r\n height: 100%;\r\n }\r\n .ant-select-selector {\r\n display: flex;\r\n align-items: center;\r\n height: 100%;\r\n }\r\n }\r\n }\r\n\r\n .ant-input,\r\n .ant-select-selector,\r\n .ant-input-number,\r\n .ant-picker {\r\n border: 0;\r\n border-radius: 0;\r\n\r\n ${inputFocusStyles}\r\n // 数字输入框要单独处理\r\n .ant-input-number-input {\r\n border: 0;\r\n border-radius: 0;\r\n ${inputFocusStyles};\r\n }\r\n }\r\n\r\n .ant-picker-focused,\r\n .ant-select-focused {\r\n box-shadow: ${boxShadowStyle};\r\n }\r\n\r\n .ant-input[disabled] {\r\n ${inputFocusStyles}\r\n }\r\n }\r\n\r\n .ant-input-status-error,\r\n .ant-picker-status-error,\r\n .ant-select-status-error {\r\n box-shadow: 0 0 0 1px red;\r\n border-radius: 0;\r\n }\r\n }\r\n `,\r\n valueDisplayClass: css`\r\n width: 100%;\r\n height: 100%;\r\n display: flex;\r\n padding: 0 11px 0 11px;\r\n align-items: center;\r\n `,\r\n // 内部元素:实现文本溢出\r\n textWrapperClass: css`\r\n /* ⭐️ 核心修复:确保内部元素可以被压缩,且强制文本在一行 */\r\n flex-grow: 1; /* 占据可用空间 */\r\n min-width: 0;\r\n\r\n white-space: nowrap;\r\n overflow: hidden;\r\n text-overflow: ellipsis;\r\n `\r\n };\r\n};\r\n"],"names":[],"mappings":";;;AASO,MAAM,gBAAA,GAAmB,CAC9B,MAAA,EACA,MAAA,KACG;AACH,EAAA,MAAM;AAAA,IACJ,SAAA;AAAA,IACA,YAAA;AAAA,IACA,WAAA;AAAA,IACA;AAAA,GACF,GAAI,MAAA;AAEJ,EAAA,MAAM,cAAA,GAAiB,cAAc,gBAAgB,CAAA,CAAA;AACrD,EAAA,MAAM,gBAAA,GAAmB;AAAA;AAAA,kBAAA,EAEP,cAAc,CAAA;AAAA;AAAA,EAAA,CAAA;AAIhC,EAAA,OAAO;AAAA,IACL,eAAA,EAAiB,GAAA;AAAA,oBAAA,EACC,SAAS,CAAA;AAAA;AAAA,8BAAA,EAEC,WAAW,CAAA;AAAA,+BAAA,EACV,WAAW,CAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA,oCAAA,EAWN,WAAW,CAAA;AAAA,8BAAA,EACjB,YAAY,CAAA;;AAAA;AAAA,sBAAA,EAGpB,SAAS,CAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA,YAAA,EAqCnB,gBAAgB;AAAA;AAAA;AAAA;AAAA;AAAA,cAAA,EAKd,gBAAgB,CAAA;AAAA;AAAA;;AAAA;AAAA;AAAA,wBAAA,EAMN,cAAc,CAAA;AAAA;;AAAA;AAAA,YAAA,EAI1B,gBAAgB;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAA,CAAA;AAAA,IAY1B,iBAAA,EAAmB,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAA,CAAA;AAAA;AAAA,IAQnB,gBAAA,EAAkB,GAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA,IAAA;AAAA,GASpB;AACF;;;;"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type VNode } from "vue";
|
|
2
|
+
interface ButtonItem {
|
|
3
|
+
title: string;
|
|
4
|
+
onClick?: () => void;
|
|
5
|
+
icon?: string | (() => VNode);
|
|
6
|
+
isUpload?: boolean;
|
|
7
|
+
attrs?: Record<string, unknown>;
|
|
8
|
+
uploadAttrs?: Record<string, unknown>;
|
|
9
|
+
}
|
|
10
|
+
declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
11
|
+
buttonGroups: {
|
|
12
|
+
type: ArrayConstructor;
|
|
13
|
+
required: true;
|
|
14
|
+
};
|
|
15
|
+
}>, {
|
|
16
|
+
props: any;
|
|
17
|
+
getIconContent: (item: ButtonItem) => VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
18
|
+
[key: string]: any;
|
|
19
|
+
}> | null;
|
|
20
|
+
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
21
|
+
buttonGroups: {
|
|
22
|
+
type: ArrayConstructor;
|
|
23
|
+
required: true;
|
|
24
|
+
};
|
|
25
|
+
}>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
26
|
+
export default _default;
|
|
27
|
+
//# sourceMappingURL=ToolsBar.vue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolsBar.vue.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { defineComponent, h, resolveComponent, createBlock, openBlock, withCtx, createElementBlock, Fragment, renderList, mergeProps, createVNode, createTextVNode, toDisplayString, createCommentVNode, resolveDynamicComponent } from 'vue';
|
|
2
|
+
|
|
3
|
+
"use strict";
|
|
4
|
+
var __defProp = Object.defineProperty;
|
|
5
|
+
var __defProps = Object.defineProperties;
|
|
6
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
7
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
8
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
9
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
10
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
11
|
+
var __spreadValues = (a, b) => {
|
|
12
|
+
for (var prop in b || (b = {}))
|
|
13
|
+
if (__hasOwnProp.call(b, prop))
|
|
14
|
+
__defNormalProp(a, prop, b[prop]);
|
|
15
|
+
if (__getOwnPropSymbols)
|
|
16
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
17
|
+
if (__propIsEnum.call(b, prop))
|
|
18
|
+
__defNormalProp(a, prop, b[prop]);
|
|
19
|
+
}
|
|
20
|
+
return a;
|
|
21
|
+
};
|
|
22
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
23
|
+
var _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({}, {
|
|
24
|
+
name: "DToolsBar"
|
|
25
|
+
}), {
|
|
26
|
+
__name: "ToolsBar",
|
|
27
|
+
props: {
|
|
28
|
+
buttonGroups: { type: Array, required: true }
|
|
29
|
+
},
|
|
30
|
+
setup(__props) {
|
|
31
|
+
const props = __props;
|
|
32
|
+
function getIconContent(item) {
|
|
33
|
+
if (!item.icon) {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
if (typeof item.icon === "function") {
|
|
37
|
+
return item.icon();
|
|
38
|
+
} else {
|
|
39
|
+
return h(resolveComponent("action-icon-font"), { type: item.icon });
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return (_ctx, _cache) => {
|
|
43
|
+
const _component_a_button = resolveComponent("a-button");
|
|
44
|
+
const _component_a_upload = resolveComponent("a-upload");
|
|
45
|
+
const _component_a_space = resolveComponent("a-space");
|
|
46
|
+
return openBlock(), createBlock(_component_a_space, null, {
|
|
47
|
+
default: withCtx(() => [
|
|
48
|
+
(openBlock(true), createElementBlock(
|
|
49
|
+
Fragment,
|
|
50
|
+
null,
|
|
51
|
+
renderList(__props.buttonGroups, (item, index) => {
|
|
52
|
+
return openBlock(), createElementBlock("div", { key: index }, [
|
|
53
|
+
item.isUpload ? (openBlock(), createBlock(
|
|
54
|
+
_component_a_upload,
|
|
55
|
+
mergeProps({
|
|
56
|
+
key: 0,
|
|
57
|
+
ref_for: true
|
|
58
|
+
}, item.uploadAttrs),
|
|
59
|
+
{
|
|
60
|
+
default: withCtx(() => [
|
|
61
|
+
createVNode(
|
|
62
|
+
_component_a_button,
|
|
63
|
+
mergeProps({ ref_for: true }, item.attrs),
|
|
64
|
+
{
|
|
65
|
+
icon: withCtx(() => [
|
|
66
|
+
item.icon ? (openBlock(), createBlock(resolveDynamicComponent(getIconContent(item)), { key: 0 })) : createCommentVNode("v-if", true)
|
|
67
|
+
]),
|
|
68
|
+
default: withCtx(() => [
|
|
69
|
+
createTextVNode(
|
|
70
|
+
" " + toDisplayString(item.title),
|
|
71
|
+
1
|
|
72
|
+
/* TEXT */
|
|
73
|
+
)
|
|
74
|
+
]),
|
|
75
|
+
_: 2
|
|
76
|
+
/* DYNAMIC */
|
|
77
|
+
},
|
|
78
|
+
1040
|
|
79
|
+
/* FULL_PROPS, DYNAMIC_SLOTS */
|
|
80
|
+
)
|
|
81
|
+
]),
|
|
82
|
+
_: 2
|
|
83
|
+
/* DYNAMIC */
|
|
84
|
+
},
|
|
85
|
+
1040
|
|
86
|
+
/* FULL_PROPS, DYNAMIC_SLOTS */
|
|
87
|
+
)) : (openBlock(), createBlock(_component_a_button, mergeProps({
|
|
88
|
+
key: 1,
|
|
89
|
+
ref_for: true
|
|
90
|
+
}, item.attrs, {
|
|
91
|
+
onClick: item.onClick
|
|
92
|
+
}), {
|
|
93
|
+
icon: withCtx(() => [
|
|
94
|
+
item.icon ? (openBlock(), createBlock(resolveDynamicComponent(getIconContent(item)), { key: 0 })) : createCommentVNode("v-if", true)
|
|
95
|
+
]),
|
|
96
|
+
default: withCtx(() => [
|
|
97
|
+
createTextVNode(
|
|
98
|
+
" " + toDisplayString(item.title),
|
|
99
|
+
1
|
|
100
|
+
/* TEXT */
|
|
101
|
+
)
|
|
102
|
+
]),
|
|
103
|
+
_: 2
|
|
104
|
+
/* DYNAMIC */
|
|
105
|
+
}, 1040, ["onClick"]))
|
|
106
|
+
]);
|
|
107
|
+
}),
|
|
108
|
+
128
|
|
109
|
+
/* KEYED_FRAGMENT */
|
|
110
|
+
))
|
|
111
|
+
]),
|
|
112
|
+
_: 1
|
|
113
|
+
/* STABLE */
|
|
114
|
+
});
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
}));
|
|
118
|
+
|
|
119
|
+
export { _sfc_main as default };
|
|
120
|
+
//# sourceMappingURL=ToolsBar.vue2.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToolsBar.vue2.mjs","sources":["../../../../src/components/tools-bar/ToolsBar.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\n import { h, resolveComponent, type VNode } from \"vue\";\r\n\r\n defineOptions({\r\n name: \"DToolsBar\"\r\n });\r\n\r\n interface ButtonItem {\r\n title: string;\r\n onClick?: () => void;\r\n icon?: string | (() => VNode);\r\n // 是否是上传按钮\r\n isUpload?: boolean;\r\n // 用于支持a-button 额外属性透传\r\n attrs?: Record<string, unknown>;\r\n // 用于支持a-upload 额外属性透传\r\n uploadAttrs?: Record<string, unknown>;\r\n }\r\n\r\n const props = defineProps({\n buttonGroups: { type: Array, required: true }\n});\r\n\r\n // 获取要渲染的内容\r\n function getIconContent(item: ButtonItem) {\r\n if (!item.icon) {\r\n return null;\r\n }\r\n\r\n if (typeof item.icon === \"function\") {\r\n // 执行函数获取 VNode\r\n return item.icon();\r\n } else {\r\n // 渲染图标组件\r\n return h(resolveComponent(\"action-icon-font\"), { type: item.icon });\r\n }\r\n }\r\n</script>\r\n\r\n<template>\r\n <a-space>\r\n <div v-for=\"(item, index) in buttonGroups\" :key=\"index\">\r\n <a-upload v-if=\"item.isUpload\" v-bind=\"item.uploadAttrs\">\r\n <a-button v-bind=\"item.attrs\">\r\n <template #icon>\r\n <component :is=\"getIconContent(item)\" v-if=\"item.icon\" />\r\n </template>\r\n {{ item.title }}\r\n </a-button>\r\n </a-upload>\r\n <a-button v-else v-bind=\"item.attrs\" @click=\"item.onClick\">\r\n <template #icon>\r\n <component :is=\"getIconContent(item)\" v-if=\"item.icon\" />\r\n </template>\r\n {{ item.title }}\r\n </a-button>\r\n </div>\r\n </a-space>\r\n</template>\r\n\r\n<style lang=\"scss\" scoped></style>\r\n"],"names":["_createBlock","_openBlock","_createElementBlock","_Fragment","_renderList","_mergeProps","_createVNode","_resolveDynamicComponent","_toDisplayString"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBE,IAAA,MAAM,KAAA,GAAQ,OAAA;AAKd,IAAA,SAAS,eAAe,IAAA,EAAkB;AACxC,MAAA,IAAI,CAAC,KAAK,IAAA,EAAM;AACd,QAAA,OAAO,IAAA;AAAA,MACT;AAEA,MAAA,IAAI,OAAO,IAAA,CAAK,IAAA,KAAS,UAAA,EAAY;AAEnC,QAAA,OAAO,KAAK,IAAA,EAAK;AAAA,MACnB,CAAA,MAAO;AAEL,QAAA,OAAO,CAAA,CAAE,iBAAiB,kBAAkB,CAAA,EAAG,EAAE,IAAA,EAAM,IAAA,CAAK,MAAM,CAAA;AAAA,MACpE;AAAA,IACF;;;;;0BAIAA,WAAA,CAiBU,kBAAA,EAAA,IAAA,EAAA;AAAA,yBAhBH,MAAqC;AAAA,WAA1CC,SAAA,CAAA,IAAA,CAAA,EAAAC,kBAAA;AAAA,YAeMC,QAAA;AAAA,YAAA,IAAA;AAAA,YAAAC,UAAA,CAfuB,OAAA,CAAA,YAAA,EAAY,CAA5B,MAAM,KAAA,KAAK;kCAAxBF,kBAAA,CAeM,OAAA,EAfsC,GAAA,EAAK,OAAK,EAAA;AAAA,gBACpC,IAAA,CAAK,QAAA,IAArBD,SAAA,EAAA,EAAAD,WAAA;AAAA,kBAOW,mBAAA;AAAA,kBAPXK,UAAA,CAOW;AAAA;;mBAP4B,EAAA,KAAK,WAAW,CAAA;AAAA,kBAAA;AAAA,qCACrD,MAKW;AAAA,sBALXC,WAAA;AAAA,wBAKW,mBAAA;AAAA,wBALXD,WAKW,EAAA,OAAA,EAAA,IAAA,EAAA,EALO,KAAK,KAAK,CAAA;AAAA,wBAAA;AAAA,0BACf,IAAA,UACC,MACd;AAAA,4BADgD,KAAK,IAAA,iBAAjDL,WAAA,CAAyDO,wBAAzC,cAAA,CAAe,IAAI,CAAA,CAAA,EAAA,EAAA,GAAA,EAAA,CAAA,EAAA,CAAA;;2CAC1B,MACX;AAAA;8BADW,GAAA,GACXC,eAAA,CAAG,IAAA,CAAK,KAAK,CAAA;AAAA,8BAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;sBAGjBP,SAAA,EAAA,EAAAD,WAAA,CAKW,qBALXK,UAAA,CAKW;AAAA;;iBALc,EAAA,KAAK,KAAA,EAAK;AAAA,kBAAG,SAAO,IAAA,CAAK;AAAA;kBACrC,IAAA,UACC,MACZ;AAAA,oBAD8C,KAAK,IAAA,iBAAjDL,WAAA,CAAyDO,wBAAzC,cAAA,CAAe,IAAI,CAAA,CAAA,EAAA,EAAA,GAAA,EAAA,CAAA,EAAA,CAAA;;mCAC1B,MACX;AAAA;sBADW,GAAA,GACXC,eAAA,CAAG,IAAA,CAAK,KAAK,CAAA;AAAA,sBAAA;AAAA;AAAA;AAAA;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import './ToolsBar.vue.mjs';
|
|
2
|
+
import _sfc_main from './ToolsBar.vue2.mjs';
|
|
3
|
+
|
|
4
|
+
"use strict";
|
|
5
|
+
_sfc_main.install = function(app) {
|
|
6
|
+
app.component(_sfc_main.name, _sfc_main);
|
|
7
|
+
return app;
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
export { _sfc_main as ToolsBar, _sfc_main as default };
|
|
11
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../../../src/components/tools-bar/index.ts"],"sourcesContent":["import ToolsBar from \"./ToolsBar.vue\";\r\nimport type { App } from \"vue\";\r\n\r\nToolsBar.install = function (app: App) {\r\n app.component(ToolsBar.name!, ToolsBar);\r\n return app;\r\n};\r\n\r\nexport { ToolsBar };\r\nexport default ToolsBar;\r\n"],"names":["ToolsBar"],"mappings":";;;;AAGAA,SAAA,CAAS,OAAA,GAAU,SAAU,GAAA,EAAU;AACrC,EAAA,GAAA,CAAI,SAAA,CAAUA,SAAA,CAAS,IAAA,EAAOA,SAAQ,CAAA;AACtC,EAAA,OAAO,GAAA;AACT,CAAA;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDesign.mjs","sources":["../../../src/hooks/useDesign.ts"],"sourcesContent":["// hooks/useDesign.ts\nimport { computed, ComputedRef } from \"vue\";\nimport { theme } from \"ant-design-vue\";\n\nimport type { GlobalToken } from \"ant-design-vue/es/theme/interface\";\n\n// 默认前缀,你可以改成 'd' 或者你项目的缩写\nconst defaultPrefixCls = \"d\";\n\nexport function useDesign(scope: string) {\n // 实际项目中,这里可以从 inject('CONFIG_PROVIDER') 获取全局配置的前缀\n const prefixVar = defaultPrefixCls;\n\n /**\n * 生成 BEM 风格或者 Antd 风格的类名\n * @param blockSuffix - 元素后缀,例如 'header' -> 'd-card-header'\n */\n const getPrefixCls = (blockSuffix?: string) => {\n const prefix = `${prefixVar}-${scope}`;\n if (blockSuffix) {\n return `${prefix}-${blockSuffix}`;\n }\n return prefix;\n };\n\n return {\n prefixCls: computed(() => getPrefixCls()), // d-card\n getPrefixCls // 函数,用于生成 d-card-header\n };\n}\n\nexport function useAntdToken(): ComputedRef<GlobalToken> {\n const { token } = theme.useToken();\n // token.value 是 GlobalToken 类型\n return computed(() => token.value);\n}\n"],"names":[],"mappings":";;;;AAOA,MAAM,gBAAA,GAAmB,GAAA;AAElB,SAAS,UAAU,KAAA,EAAe;AAEvC,EAAA,MAAM,SAAA,GAAY,gBAAA;AAMlB,EAAA,MAAM,YAAA,GAAe,CAAC,WAAA,KAAyB;AAC7C,IAAA,MAAM,MAAA,GAAS,CAAA,EAAG,SAAS,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA;AACpC,IAAA,IAAI,WAAA,EAAa;AACf,MAAA,OAAO,CAAA,EAAG,MAAM,CAAA,CAAA,EAAI,WAAW,CAAA,CAAA;AAAA,IACjC;AACA,IAAA,OAAO,MAAA;AAAA,EACT,CAAA;AAEA,EAAA,OAAO;AAAA,IACL,SAAA,EAAW,QAAA,CAAS,MAAM,YAAA,EAAc,CAAA;AAAA;AAAA,IACxC;AAAA;AAAA,GACF;AACF;AAEO,SAAS,YAAA,GAAyC;AACvD,EAAA,MAAM,EAAE,KAAA,EAAM,GAAI,KAAA,CAAM,QAAA,EAAS;AAEjC,EAAA,OAAO,QAAA,CAAS,MAAM,KAAA,CAAM,KAAK,CAAA;AACnC;;;;"}
|
|
1
|
+
{"version":3,"file":"useDesign.mjs","sources":["../../../src/hooks/useDesign.ts"],"sourcesContent":["// hooks/useDesign.ts\r\nimport { computed, ComputedRef } from \"vue\";\r\nimport { theme } from \"ant-design-vue\";\r\n\r\nimport type { GlobalToken } from \"ant-design-vue/es/theme/interface\";\r\n\r\n// 默认前缀,你可以改成 'd' 或者你项目的缩写\r\nconst defaultPrefixCls = \"d\";\r\n\r\nexport function useDesign(scope: string) {\r\n // 实际项目中,这里可以从 inject('CONFIG_PROVIDER') 获取全局配置的前缀\r\n const prefixVar = defaultPrefixCls;\r\n\r\n /**\r\n * 生成 BEM 风格或者 Antd 风格的类名\r\n * @param blockSuffix - 元素后缀,例如 'header' -> 'd-card-header'\r\n */\r\n const getPrefixCls = (blockSuffix?: string) => {\r\n const prefix = `${prefixVar}-${scope}`;\r\n if (blockSuffix) {\r\n return `${prefix}-${blockSuffix}`;\r\n }\r\n return prefix;\r\n };\r\n\r\n return {\r\n prefixCls: computed(() => getPrefixCls()), // d-card\r\n getPrefixCls // 函数,用于生成 d-card-header\r\n };\r\n}\r\n\r\nexport function useAntdToken(): ComputedRef<GlobalToken> {\r\n const { token } = theme.useToken();\r\n // token.value 是 GlobalToken 类型\r\n return computed(() => token.value);\r\n}\r\n"],"names":[],"mappings":";;;;AAOA,MAAM,gBAAA,GAAmB,GAAA;AAElB,SAAS,UAAU,KAAA,EAAe;AAEvC,EAAA,MAAM,SAAA,GAAY,gBAAA;AAMlB,EAAA,MAAM,YAAA,GAAe,CAAC,WAAA,KAAyB;AAC7C,IAAA,MAAM,MAAA,GAAS,CAAA,EAAG,SAAS,CAAA,CAAA,EAAI,KAAK,CAAA,CAAA;AACpC,IAAA,IAAI,WAAA,EAAa;AACf,MAAA,OAAO,CAAA,EAAG,MAAM,CAAA,CAAA,EAAI,WAAW,CAAA,CAAA;AAAA,IACjC;AACA,IAAA,OAAO,MAAA;AAAA,EACT,CAAA;AAEA,EAAA,OAAO;AAAA,IACL,SAAA,EAAW,QAAA,CAAS,MAAM,YAAA,EAAc,CAAA;AAAA;AAAA,IACxC;AAAA;AAAA,GACF;AACF;AAEO,SAAS,YAAA,GAAyC;AACvD,EAAA,MAAM,EAAE,KAAA,EAAM,GAAI,KAAA,CAAM,QAAA,EAAS;AAEjC,EAAA,OAAO,QAAA,CAAS,MAAM,KAAA,CAAM,KAAK,CAAA;AACnC;;;;"}
|
package/dist/esm/index.mjs
CHANGED
|
@@ -3,6 +3,7 @@ export { default as DicRep } from './components/dic/DicReplace.mjs';
|
|
|
3
3
|
export { default as Select } from './components/select/Select.vue2.mjs';
|
|
4
4
|
export { default as Tab } from './components/tab/Tab.vue2.mjs';
|
|
5
5
|
export { default as Table } from './components/table/Table.mjs';
|
|
6
|
+
export { default as ActionBar } from './components/action-bar/ActionBar.vue2.mjs';
|
|
6
7
|
export { Card } from './components/card/Card.mjs';
|
|
7
8
|
export { default as RangePicker } from './components/date/RangePicker.vue2.mjs';
|
|
8
9
|
export { default as FormLayout } from './components/form/FormLayout.mjs';
|
|
@@ -19,6 +20,7 @@ export { default as Show } from './components/layout/Show.mjs';
|
|
|
19
20
|
export { DEFAULT_STYLES_CONFIG, tableFormItemProps, tableFormProps } from './components/table-form/interface.mjs';
|
|
20
21
|
export { TableForm } from './components/table-form/index.mjs';
|
|
21
22
|
export { TableFormItem } from './components/table-form/TableFormItem.mjs';
|
|
23
|
+
export { default as ToolsBar } from './components/tools-bar/ToolsBar.vue2.mjs';
|
|
22
24
|
|
|
23
25
|
"use strict";
|
|
24
26
|
const install = (app) => {
|
package/dist/esm/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":["../../src/index.ts"],"sourcesContent":["import * as components from \"./components\";\r\nimport type { App, DefineComponent, Plugin } from \"vue\";\r\n\r\n// import { version } from \"../package.json\";\r\n\r\nexport * from \"./components\";\r\n\r\n// 定义组件类型,确保每个组件都可能具有 `install` 方法\r\ntype ComponentWithInstall = DefineComponent<\r\n never,\r\n never,\r\n never\r\n> & {\r\n install?: (app: App) => void;\r\n};\r\n\r\nexport const install = (app: App) => {\r\n Object.keys(components).forEach(key => {\r\n const component = components[\r\n key as keyof typeof components\r\n ] as ComponentWithInstall;\r\n // 类型断言,告诉 TypeScript component 可能是一个插件\r\n const plugin = component as Plugin;\r\n // 如果组件有 install 方法,则按插件安装\r\n if (plugin.install) {\r\n app.use(plugin);\r\n }\r\n });\r\n};\r\n\r\nexport default {\r\n // version,\r\n install\r\n};\r\n"],"names":["components"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":["../../src/index.ts"],"sourcesContent":["import * as components from \"./components\";\r\nimport type { App, DefineComponent, Plugin } from \"vue\";\r\n\r\n// import { version } from \"../package.json\";\r\n\r\nexport * from \"./components\";\r\n\r\n// 定义组件类型,确保每个组件都可能具有 `install` 方法\r\ntype ComponentWithInstall = DefineComponent<\r\n never,\r\n never,\r\n never\r\n> & {\r\n install?: (app: App) => void;\r\n};\r\n\r\nexport const install = (app: App) => {\r\n\r\n Object.keys(components).forEach(key => {\r\n const component = components[\r\n key as keyof typeof components\r\n ] as ComponentWithInstall;\r\n // 类型断言,告诉 TypeScript component 可能是一个插件\r\n const plugin = component as Plugin;\r\n // 如果组件有 install 方法,则按插件安装\r\n if (plugin.install) {\r\n app.use(plugin);\r\n }\r\n });\r\n};\r\n\r\nexport default {\r\n // version,\r\n install\r\n};\r\n"],"names":["components"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAgBO,MAAM,OAAA,GAAU,CAAC,GAAA,KAAa;AAEnC,EAAA,MAAA,CAAO,IAAA,CAAKA,OAAU,CAAA,CAAE,OAAA,CAAQ,CAAA,GAAA,KAAO;AACrC,IAAA,MAAM,SAAA,GAAYA,QAChB,GACF,CAAA;AAEA,IAAA,MAAM,MAAA,GAAS,SAAA;AAEf,IAAA,IAAI,OAAO,OAAA,EAAS;AAClB,MAAA,GAAA,CAAI,IAAI,MAAM,CAAA;AAAA,IAChB;AAAA,EACF,CAAC,CAAA;AACH;AAEA,YAAe;AAAA;AAAA,EAEb;AACF,CAAA;;;;"}
|