@ditari/bsui 5.1.20 → 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.
Files changed (85) hide show
  1. package/dist/cjs/components/action-bar/ActionBar.vue.d.ts +2 -1
  2. package/dist/cjs/components/action-bar/ActionBar.vue2.cjs +1 -1
  3. package/dist/cjs/components/action-bar/ActionBar.vue2.cjs.map +1 -1
  4. package/dist/cjs/components/card/Card.cjs +8 -2
  5. package/dist/cjs/components/card/Card.cjs.map +1 -1
  6. package/dist/cjs/components/card/style.cjs +4 -2
  7. package/dist/cjs/components/card/style.cjs.map +1 -1
  8. package/dist/cjs/components/desensitize/Desensitize.cjs +99 -0
  9. package/dist/cjs/components/desensitize/Desensitize.cjs.map +1 -0
  10. package/dist/cjs/components/desensitize/Desensitize.d.ts +60 -0
  11. package/dist/cjs/components/desensitize/index.cjs +15 -0
  12. package/dist/cjs/components/desensitize/index.cjs.map +1 -0
  13. package/dist/cjs/components/desensitize/index.d.ts +4 -0
  14. package/dist/cjs/components/desensitize/style.cjs +22 -0
  15. package/dist/cjs/components/desensitize/style.cjs.map +1 -0
  16. package/dist/cjs/components/desensitize/style.d.ts +6 -0
  17. package/dist/cjs/components/dic/DicReplace.cjs +2 -1
  18. package/dist/cjs/components/dic/DicReplace.cjs.map +1 -1
  19. package/dist/cjs/components/layout/AppContext.cjs.map +1 -1
  20. package/dist/cjs/components/layout/AppLayout.cjs.map +1 -1
  21. package/dist/cjs/components/layout/List.cjs.map +1 -1
  22. package/dist/cjs/components/layout/Show.cjs.map +1 -1
  23. package/dist/cjs/components/layout/components/layout/RouterContentName.vue2.cjs.map +1 -1
  24. package/dist/cjs/components/layout/components/mobile/MobileList.cjs.map +1 -1
  25. package/dist/cjs/components/layout/style.cjs.map +1 -1
  26. package/dist/cjs/components/select/Select.vue2.cjs.map +1 -1
  27. package/dist/cjs/components/table-form/TableForm.cjs.map +1 -1
  28. package/dist/cjs/components/table-form/TableFormItem.cjs.map +1 -1
  29. package/dist/cjs/components/table-form/index.cjs.map +1 -1
  30. package/dist/cjs/components/table-form/interface.cjs.map +1 -1
  31. package/dist/cjs/components/table-form/style.cjs.map +1 -1
  32. package/dist/cjs/hooks/useDesign.cjs.map +1 -1
  33. package/dist/cjs/index.cjs +0 -1
  34. package/dist/cjs/index.cjs.map +1 -1
  35. package/dist/cjs/utils/withInstall.cjs.map +1 -1
  36. package/dist/esm/components/action-bar/ActionBar.vue.d.ts +2 -1
  37. package/dist/esm/components/action-bar/ActionBar.vue2.mjs +2 -2
  38. package/dist/esm/components/action-bar/ActionBar.vue2.mjs.map +1 -1
  39. package/dist/esm/components/card/Card.mjs +8 -2
  40. package/dist/esm/components/card/Card.mjs.map +1 -1
  41. package/dist/esm/components/card/style.mjs +4 -2
  42. package/dist/esm/components/card/style.mjs.map +1 -1
  43. package/dist/esm/components/desensitize/Desensitize.d.ts +60 -0
  44. package/dist/esm/components/desensitize/Desensitize.mjs +97 -0
  45. package/dist/esm/components/desensitize/Desensitize.mjs.map +1 -0
  46. package/dist/esm/components/desensitize/index.d.ts +4 -0
  47. package/dist/esm/components/desensitize/index.mjs +10 -0
  48. package/dist/esm/components/desensitize/index.mjs.map +1 -0
  49. package/dist/esm/components/desensitize/style.d.ts +6 -0
  50. package/dist/esm/components/desensitize/style.mjs +20 -0
  51. package/dist/esm/components/desensitize/style.mjs.map +1 -0
  52. package/dist/esm/components/dic/DicReplace.mjs +2 -1
  53. package/dist/esm/components/dic/DicReplace.mjs.map +1 -1
  54. package/dist/esm/components/layout/AppContext.mjs.map +1 -1
  55. package/dist/esm/components/layout/AppLayout.mjs.map +1 -1
  56. package/dist/esm/components/layout/List.mjs.map +1 -1
  57. package/dist/esm/components/layout/Show.mjs.map +1 -1
  58. package/dist/esm/components/layout/components/layout/RouterContentName.vue2.mjs.map +1 -1
  59. package/dist/esm/components/layout/components/mobile/MobileList.mjs.map +1 -1
  60. package/dist/esm/components/layout/style.mjs.map +1 -1
  61. package/dist/esm/components/select/Select.vue2.mjs.map +1 -1
  62. package/dist/esm/components/table-form/TableForm.mjs.map +1 -1
  63. package/dist/esm/components/table-form/TableFormItem.mjs.map +1 -1
  64. package/dist/esm/components/table-form/index.mjs.map +1 -1
  65. package/dist/esm/components/table-form/interface.mjs.map +1 -1
  66. package/dist/esm/components/table-form/style.mjs.map +1 -1
  67. package/dist/esm/hooks/useDesign.mjs.map +1 -1
  68. package/dist/esm/index.mjs +0 -1
  69. package/dist/esm/index.mjs.map +1 -1
  70. package/dist/esm/utils/withInstall.mjs.map +1 -1
  71. package/dist/types/components/action-bar/ActionBar.vue.d.ts +2 -1
  72. package/dist/types/components/action-bar/ActionBar.vue.d.ts.map +1 -1
  73. package/dist/types/components/card/Card.d.ts.map +1 -1
  74. package/dist/types/components/card/style.d.ts.map +1 -1
  75. package/dist/types/components/desensitize/Desensitize.d.ts +60 -0
  76. package/dist/types/components/desensitize/Desensitize.d.ts.map +1 -0
  77. package/dist/types/components/desensitize/index.d.ts +4 -0
  78. package/dist/types/components/desensitize/index.d.ts.map +1 -0
  79. package/dist/types/components/desensitize/style.d.ts +6 -0
  80. package/dist/types/components/desensitize/style.d.ts.map +1 -0
  81. package/dist/types/components/dic/DicReplace.d.ts.map +1 -1
  82. package/dist/types/components/layout/components/layout/RouterContentName.vue.d.ts.map +1 -1
  83. package/dist/types/index.d.ts.map +1 -1
  84. package/package.json +3 -3
  85. package/src/index.ts +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Show.cjs","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.cjs","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.cjs","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":["useKeepAliveStore","storeToRefs","computed","useRoute","_createElementVNode","_createVNode","_withCtx","_Transition","_createBlock","_KeepAlive","_openBlock","_resolveDynamicComponent","_unref"],"mappings":";;;;;;;;;;;;;AAOA,IAAA,MAAM,iBAAiBA,uBAAA,EAAkB;AAEzC,IAAA,MAAM,EAAE,GAAA,EAAI,GAAIC,iBAAA,CAAY,cAAc,CAAA;AAC1C,IAAA,MAAM,cAAA,GAAiBC,YAAA,CAAmB,MAAM,GAAA,CAAI,KAAK,CAAA;AAEzD,IAAA,MAAM,QAAQC,kBAAA,EAAS;;;;;;;UAIrB,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAAC,sBAAA;AAAA,YAAe,KAAA;AAAA;YAAV,MAAA;AAAA,YAAI,CAAA;AAAA;AAAA,WAAA,CAAA;AAAA,UACTC,eAAA,CAMc,wBAAA,IAAA,EAAA;AAAA,YALZ,OAAA,EAAAC,WAAA,CAAA,CAIa,EALQ,WAAS,KAAA;AAAA,cAC9BD,eAAA;AAAA,gBAIaE,cAAA;AAAA,gBAAA;AAAA,kBAJD,IAAA,EAAK,MAAA;AAAA,kBAAO,IAAA,EAAK,QAAA;AAAA,kBAAS,MAAA,EAAA;AAAA;;uCACpC,MAEa;AAAA,sCAFbC,eAAA,CAEaC,aAAA,EAAA,EAFA,OAAA,EAAS,cAAA,CAAA,OAAc,EAAA;AAAA,uBAClCC,aAAA,EAAA,EAAAF,eAAA,CAAmDG,2BAAA,CAAnC,SAAS,CAAA,EAAA;AAAA,wBAAG,GAAA,EAAKC,SAAA,CAAA,KAAA,CAAA,CAAM;AAAA;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"RouterContentName.vue2.cjs","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":["useKeepAliveStore","storeToRefs","computed","useRoute","_createElementVNode","_createVNode","_withCtx","_Transition","_createBlock","_KeepAlive","_openBlock","_resolveDynamicComponent","_unref"],"mappings":";;;;;;;;;;;;;AAOA,IAAA,MAAM,iBAAiBA,uBAAA,EAAkB;AAEzC,IAAA,MAAM,EAAE,GAAA,EAAI,GAAIC,iBAAA,CAAY,cAAc,CAAA;AAC1C,IAAA,MAAM,cAAA,GAAiBC,YAAA,CAAmB,MAAM,GAAA,CAAI,KAAK,CAAA;AAEzD,IAAA,MAAM,QAAQC,kBAAA,EAAS;;;;;;;UAIrB,MAAA,CAAA,CAAA,CAAA,KAAA,MAAA,CAAA,CAAA,CAAA,GAAAC,sBAAA;AAAA,YAAe,KAAA;AAAA;YAAV,MAAA;AAAA,YAAI,CAAA;AAAA;AAAA,WAAA,CAAA;AAAA,UACTC,eAAA,CAMc,wBAAA,IAAA,EAAA;AAAA,YALZ,OAAA,EAAAC,WAAA,CAAA,CAIa,EALQ,WAAS,KAAA;AAAA,cAC9BD,eAAA;AAAA,gBAIaE,cAAA;AAAA,gBAAA;AAAA,kBAJD,IAAA,EAAK,MAAA;AAAA,kBAAO,IAAA,EAAK,QAAA;AAAA,kBAAS,MAAA,EAAA;AAAA;;uCACpC,MAEa;AAAA,sCAFbC,eAAA,CAEaC,aAAA,EAAA,EAFA,OAAA,EAAS,cAAA,CAAA,OAAc,EAAA;AAAA,uBAClCC,aAAA,EAAA,EAAAF,eAAA,CAAmDG,2BAAA,CAAnC,SAAS,CAAA,EAAA;AAAA,wBAAG,GAAA,EAAKC,SAAA,CAAA,KAAA,CAAA,CAAM;AAAA;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"MobileList.cjs","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,OAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,IAAAA,CAAAA;AAAAA,IAMXC,MAAAA,EAAQD,OAAAA;AAAAA;AAAAA;AAAAA,IAAAA,CAAAA;AAAAA,IAIRE,OAAAA,EAASF,OAAAA;AAAAA;AAAAA,IAAAA;AAAAA,GAGX;AACF;AACA,MAAMG,8BAAcC,mBAAAA,CAAgB;AAAA,EAClCC,IAAAA,EAAM,aAAA;AAAA,EACNC,MAAMC,CAAAA,EAAG;AAAA,IAAEC;AAAAA,GAAM,EAAG;AAClB,IAAA,MAAMC,QAAQC,kBAAAA,EAAS;AACvB,IAAA,MAAMC,KAAAA,GAAQC,aAAS,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,oBAAU,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,gBAAA,KAAA,EAAA;AAAA,QAAA,OAAA,EACcC,MAAAA,CAAGd,YAAAA,EAAa,EAAGE,OAAOjB,SAAS;AAAA,OAAC,EAAA,CAAA4B,eAAAA,CAAA,KAAA,EAAA;AAAA,QAAA,SAErCC,MAAAA,CACLd,YAAAA,CAAa,QAAQ,CAAA,EACrBE,OAAOf,MACT;AAAA,SAAC,CAEAU,KAAAA,CAAMkB,KAAK,CAAA,CAAA,EAAAF,gBAAA,KAAA,EAAA;AAAA,QAAA,SAGLC,MAAAA,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.cjs","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,OAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,IAAAA,CAAAA;AAAAA,IAMXC,MAAAA,EAAQD,OAAAA;AAAAA;AAAAA;AAAAA,IAAAA,CAAAA;AAAAA,IAIRE,OAAAA,EAASF,OAAAA;AAAAA;AAAAA,IAAAA;AAAAA,GAGX;AACF;AACA,MAAMG,8BAAcC,mBAAAA,CAAgB;AAAA,EAClCC,IAAAA,EAAM,aAAA;AAAA,EACNC,MAAMC,CAAAA,EAAG;AAAA,IAAEC;AAAAA,GAAM,EAAG;AAClB,IAAA,MAAMC,QAAQC,kBAAAA,EAAS;AACvB,IAAA,MAAMC,KAAAA,GAAQC,aAAS,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,oBAAU,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,gBAAA,KAAA,EAAA;AAAA,QAAA,OAAA,EACcC,MAAAA,CAAGd,YAAAA,EAAa,EAAGE,OAAOjB,SAAS;AAAA,OAAC,EAAA,CAAA4B,eAAAA,CAAA,KAAA,EAAA;AAAA,QAAA,SAErCC,MAAAA,CACLd,YAAAA,CAAa,QAAQ,CAAA,EACrBE,OAAOf,MACT;AAAA,SAAC,CAEAU,KAAAA,CAAMkB,KAAK,CAAA,CAAA,EAAAF,gBAAA,KAAA,EAAA;AAAA,QAAA,SAGLC,MAAAA,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.cjs","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":["css"],"mappings":";;;;;AAIO,MAAM,oBAAoB,MAAM;AACrC,EAAA,OAAO;AAAA,IACL,SAAA,EAAWA,OAAA;AAAA;AAAA,IAAA,CAAA;AAAA,IAGX,MAAA,EAAQA,OAAA;AAAA;AAAA;AAAA,IAAA;AAAA,GAIV;AACF;;;;"}
1
+ {"version":3,"file":"style.cjs","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":["css"],"mappings":";;;;;AAIO,MAAM,oBAAoB,MAAM;AACrC,EAAA,OAAO;AAAA,IACL,SAAA,EAAWA,OAAA;AAAA;AAAA,IAAA,CAAA;AAAA,IAGX,MAAA,EAAQA,OAAA;AAAA;AAAA;AAAA,IAAA;AAAA,GAIV;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Select.vue2.cjs","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 // `fetchDic 未注入,使用默认实现,name: ${name}`\n // );\n return [];\n });\n\n // 字典数据\n let dicData: DicItem[] = [...getDicByKey(props.name)];\n const data = ref<DicItem[]>(dicData);\n\n // 取值\n const modelValue = ref<string | number | undefined>(\n props.value\n );\n\n onActivated(() => {\n // 缓存页面被激活的时候调用\n loadDicData();\n });\n\n onMounted(() => {\n if (!isKeepAlive) {\n // 未缓存页面 挂载的时候调用\n loadDicData();\n }\n });\n\n // 监听value值的变化\n watch(\n () => props.value,\n val => {\n modelValue.value = val;\n }\n );\n\n setTimeout(() => {\n if (!loadingStatus.value) {\n loadDicData();\n }\n }, 1000);\n\n // 请求字典数据的函数\n async function loadDicData() {\n try {\n loadingStatus.value = true;\n // 调用注入进来的fetchDic方法\n await fetchDic(props.name);\n dicData = [...getDicByKey(props.name)];\n\n if (props.include.length > 0) {\n data.value = dicData.filter((item: DicItem) => {\n return props.include.some(\n (i: string | number) => i === item.value\n );\n });\n } else {\n data.value = dicData;\n }\n } catch (error) {\n console.error(\"获取字典数据失败:\", error);\n }\n }\n\n // 监听用户搜索事件\n const onSearch = (keywords: string) => {\n sendWorkerSearch(keywords);\n };\n\n // 发送搜索到webworker\n function sendWorkerSearch(keywords: string) {\n keywords = keywords ?? \"\";\n data.value = dicData\n .filter((item: DicItem) => {\n return (\n item.value\n .toString()\n .toLowerCase()\n .indexOf(keywords.toLowerCase()) !== -1 ||\n item.label\n .toLowerCase()\n .includes(keywords.toLowerCase())\n );\n })\n .slice(0, 10);\n if (data.value.length === 0) {\n data.value = [...dicData].slice(0, 10);\n }\n }\n\n // 监听下拉选择事件\n const onSelect = (value: string | number) => {\n // 发射选择的数据\n emits(\"update:value\", value);\n // 处理下拉后返回数据的\n onSelectHandler();\n };\n\n // 监听数据改变\n const onChange = () => {\n emits(\"update:value\", modelValue.value);\n emits(\"change\", modelValue.value);\n };\n\n /**\n * 根据当前选中的value匹配对应的整条数据\n * 然后返回给父组件\n */\n function onSelectHandler() {\n const dicList = getDicByKey(props.name);\n const rs = dicList.find(\n (obj: DicItem) => obj.value === modelValue.value\n );\n emits(\"select\", rs);\n }\n\n watch(\n () => props.include,\n (val: Array<string | number>) => {\n if (val.length > 0) {\n // 只过滤出来include包含的数据\n data.value = dicData.filter((item: DicItem) => {\n return val.some(\n (i: string | number) => i === item.value\n );\n });\n } else {\n data.value = dicData;\n }\n },\n {\n immediate: true\n }\n );\n\n return {\n data,\n modelValue,\n onSearch,\n onSelect,\n onChange\n };\n}\n\n/**\n * 过滤筛选\n * @param inputValue\n * @param options\n */\nconst onFilterOption = (\n inputValue: string,\n options: DicItem\n) => {\n return (\n options.value\n .toString()\n .toLowerCase()\n .indexOf(inputValue.toLowerCase()) !== -1 ||\n options.label\n .toLowerCase()\n .includes(inputValue.toLowerCase())\n );\n};\n</script>\n\n<template>\n <a-select\n v-model:value=\"modelValue\"\n style=\"width: 100%\"\n allow-clear\n show-search\n :options=\"data\"\n :placeholder=\"placeholder\"\n :disabled=\"disabled\"\n :filter-option=\"onFilterOption\"\n @select=\"onSelect\"\n @change=\"onChange\"\n >\n </a-select>\n</template>\n\n<style scoped></style>\n"],"names":["useDicStore","useKeepAliveStore","useRoute","ref","inject","data","modelValue","onActivated","onMounted","watch","onSelect","onChange","_createBlock","_unref"],"mappings":"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"}
1
+ {"version":3,"file":"Select.vue2.cjs","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":["useDicStore","useKeepAliveStore","useRoute","ref","inject","data","modelValue","onActivated","onMounted","watch","onSelect","onChange","_createBlock","_unref"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"TableForm.cjs","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.cjs","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":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"TableFormItem.cjs","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.cjs","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.cjs","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":["TableForm","TableFormItem"],"mappings":";;;;;;;AAYA,MAAM,eAAA,GAAkBA;AAGxB,eAAA,CAAgB,IAAA,GAAOC,2BAAA;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs","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":["TableForm","TableFormItem"],"mappings":";;;;;;;AAYA,MAAM,eAAA,GAAkBA;AAGxB,eAAA,CAAgB,IAAA,GAAOC,2BAAA;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"interface.cjs","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.cjs","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.cjs","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":["css"],"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,EAAiBA,OAAA;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,EAAmBA,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAA,CAAA;AAAA;AAAA,IAQnB,gBAAA,EAAkBA,OAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA,IAAA;AAAA,GASpB;AACF;;;;"}
1
+ {"version":3,"file":"style.cjs","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":["css"],"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,EAAiBA,OAAA;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,EAAmBA,OAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAA,CAAA;AAAA;AAAA,IAQnB,gBAAA,EAAkBA,OAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA,IAAA;AAAA,GASpB;AACF;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useDesign.cjs","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":["computed","theme"],"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,EAAWA,YAAA,CAAS,MAAM,YAAA,EAAc,CAAA;AAAA;AAAA,IACxC;AAAA;AAAA,GACF;AACF;AAEO,SAAS,YAAA,GAAyC;AACvD,EAAA,MAAM,EAAE,KAAA,EAAM,GAAIC,kBAAA,CAAM,QAAA,EAAS;AAEjC,EAAA,OAAOD,YAAA,CAAS,MAAM,KAAA,CAAM,KAAK,CAAA;AACnC;;;;;"}
1
+ {"version":3,"file":"useDesign.cjs","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":["computed","theme"],"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,EAAWA,YAAA,CAAS,MAAM,YAAA,EAAc,CAAA;AAAA;AAAA,IACxC;AAAA;AAAA,GACF;AACF;AAEO,SAAS,YAAA,GAAyC;AACvD,EAAA,MAAM,EAAE,KAAA,EAAM,GAAIC,kBAAA,CAAM,QAAA,EAAS;AAEjC,EAAA,OAAOD,YAAA,CAAS,MAAM,KAAA,CAAM,KAAK,CAAA;AACnC;;;;;"}
@@ -28,7 +28,6 @@ var ToolsBar_vue_vue_type_script_setup_true_lang = require('./components/tools-b
28
28
 
29
29
  "use strict";
30
30
  const install = (app) => {
31
- console.log("install", index$2);
32
31
  Object.keys(index$2).forEach((key) => {
33
32
  const component = index$2[key];
34
33
  const plugin = component;
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","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 console.log(\"install\", components);\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,OAAA,CAAQ,GAAA,CAAI,WAAWA,OAAU,CAAA;AACjC,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.cjs","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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"withInstall.cjs","sources":["../../../src/utils/withInstall.ts"],"sourcesContent":["// src/utils/withInstall.ts\n\nimport type { App, Component, Plugin } from \"vue\";\n\n// 扩展类型定义,允许组件对象拥有其他静态属性\nexport type SFCWithInstall<T> = T &\n Plugin & {\n [key: string]: T; // 允许任意静态属性\n };\n\n/**\n * 优化后的 withInstall 辅助函数\n * * 关键修改:\n * - 将泛型 T 的约束改为更通用的 Vue Component 类型。\n * - 使用 'Component' 或 'ComponentOptionsBase' 来确保兼容性。\n */\nexport const withInstall = <T extends Component>(component: T) => {\n const comp = component as SFCWithInstall<T>;\n\n if (!comp.install) {\n comp.install = (app: App) => {\n // 确保能获取到组件名\n const name = (comp as Component).name;\n if (name) {\n app.component(name, comp);\n }\n };\n }\n return comp;\n};\n"],"names":[],"mappings":";;;AAgBO,MAAM,WAAA,GAAc,CAAsB,SAAA,KAAiB;AAChE,EAAA,MAAM,IAAA,GAAO,SAAA;AAEb,EAAA,IAAI,CAAC,KAAK,OAAA,EAAS;AACjB,IAAA,IAAA,CAAK,OAAA,GAAU,CAAC,GAAA,KAAa;AAE3B,MAAA,MAAM,OAAQ,IAAA,CAAmB,IAAA;AACjC,MAAA,IAAI,IAAA,EAAM;AACR,QAAA,GAAA,CAAI,SAAA,CAAU,MAAM,IAAI,CAAA;AAAA,MAC1B;AAAA,IACF,CAAA;AAAA,EACF;AACA,EAAA,OAAO,IAAA;AACT;;;;"}
1
+ {"version":3,"file":"withInstall.cjs","sources":["../../../src/utils/withInstall.ts"],"sourcesContent":["// src/utils/withInstall.ts\r\n\r\nimport type { App, Component, Plugin } from \"vue\";\r\n\r\n// 扩展类型定义,允许组件对象拥有其他静态属性\r\nexport type SFCWithInstall<T> = T &\r\n Plugin & {\r\n [key: string]: T; // 允许任意静态属性\r\n };\r\n\r\n/**\r\n * 优化后的 withInstall 辅助函数\r\n * * 关键修改:\r\n * - 将泛型 T 的约束改为更通用的 Vue Component 类型。\r\n * - 使用 'Component' 或 'ComponentOptionsBase' 来确保兼容性。\r\n */\r\nexport const withInstall = <T extends Component>(component: T) => {\r\n const comp = component as SFCWithInstall<T>;\r\n\r\n if (!comp.install) {\r\n comp.install = (app: App) => {\r\n // 确保能获取到组件名\r\n const name = (comp as Component).name;\r\n if (name) {\r\n app.component(name, comp);\r\n }\r\n };\r\n }\r\n return comp;\r\n};\r\n"],"names":[],"mappings":";;;AAgBO,MAAM,WAAA,GAAc,CAAsB,SAAA,KAAiB;AAChE,EAAA,MAAM,IAAA,GAAO,SAAA;AAEb,EAAA,IAAI,CAAC,KAAK,OAAA,EAAS;AACjB,IAAA,IAAA,CAAK,OAAA,GAAU,CAAC,GAAA,KAAa;AAE3B,MAAA,MAAM,OAAQ,IAAA,CAAmB,IAAA;AACjC,MAAA,IAAI,IAAA,EAAM;AACR,QAAA,GAAA,CAAI,SAAA,CAAU,MAAM,IAAI,CAAA;AAAA,MAC1B;AAAA,IACF,CAAA;AAAA,EACF;AACA,EAAA,OAAO,IAAA;AACT;;;;"}
@@ -1,4 +1,4 @@
1
- import { type VNode } from "vue";
1
+ import { isVNode, type VNode } from "vue";
2
2
  interface ButtonItem {
3
3
  title: string | VNode;
4
4
  status?: boolean | ((record: {
@@ -29,6 +29,7 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
29
29
  isShow: (item: ButtonItem) => boolean;
30
30
  visibleButtons: import("vue").ComputedRef<ButtonItem[]>;
31
31
  showDivider: (item: ButtonItem) => boolean;
32
+ isVNode: typeof isVNode;
32
33
  }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
33
34
  buttonGroups: {
34
35
  type: ArrayConstructor;
@@ -1,4 +1,4 @@
1
- import { defineComponent, computed, resolveComponent, createElementBlock, openBlock, withModifiers, Fragment, renderList, createCommentVNode, createBlock, resolveDynamicComponent, createTextVNode, toDisplayString } from 'vue';
1
+ import { defineComponent, computed, resolveComponent, createElementBlock, openBlock, withModifiers, Fragment, renderList, createCommentVNode, createBlock, isVNode, resolveDynamicComponent, createTextVNode, toDisplayString } from 'vue';
2
2
 
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -71,7 +71,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({},
71
71
  return (_a = item.onClick || item.onEvent) == null ? void 0 : _a(__props.record);
72
72
  }, ["stop"])
73
73
  }, [
74
- item.title instanceof Object ? (openBlock(), createBlock(resolveDynamicComponent(item.title), {
74
+ isVNode(item.title) ? (openBlock(), createBlock(resolveDynamicComponent(item.title), {
75
75
  key: 0,
76
76
  record: __props.record
77
77
  }, null, 8, ["record"])) : (openBlock(), createElementBlock(
@@ -1 +1 @@
1
- {"version":3,"file":"ActionBar.vue2.mjs","sources":["../../../../src/components/action-bar/ActionBar.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\n import { computed, type VNode } from \"vue\";\r\n\r\n defineOptions({\r\n name: \"DActionBar\"\r\n });\r\n\r\n interface ButtonItem {\r\n title: string | VNode;\r\n status?: boolean | ((record: { [key: string]: unknown }) => boolean);\r\n onClick?: (record: { [key: string]: unknown }) => void;\r\n onEvent?: (record: { [key: string]: unknown }) => void; // 别名,为了向后兼容\r\n }\r\n\r\n // 2. 普通的 Props 声明\r\n const props = defineProps({\n buttonGroups: { type: Array, required: false },\n actions: { type: Array, required: false },\n record: { type: Object, required: true }\n});\r\n\r\n /**\r\n * 判断按钮是否显示\r\n */\r\n const isShow = (item: ButtonItem): boolean => {\r\n if (typeof item.status === \"function\") {\r\n return item.status(props.record);\r\n }\r\n return item.status ?? true;\r\n };\r\n\r\n /**\r\n * 过滤出当前真正显示的按钮列表\r\n */\r\n const visibleButtons = computed(() => {\r\n const groups: ButtonItem[] = props.actions || props.buttonGroups || [];\r\n return groups.filter((item: ButtonItem) => isShow(item));\r\n });\r\n\r\n /**\r\n * 判断分隔线状态\r\n */\r\n const showDivider = (item: ButtonItem): boolean => {\r\n if (!isShow(item)) {\r\n return false;\r\n }\r\n\r\n // 逻辑保持不变:在可见列表里找自己\r\n const visibleIndex = visibleButtons.value.findIndex((v: ButtonItem) => v.title === item.title);\r\n return visibleIndex !== -1 && visibleIndex < visibleButtons.value.length - 1;\r\n };\r\n</script>\r\n\r\n<template>\r\n <div @click.stop>\r\n <template v-for=\"(item, index) in actions || buttonGroups || []\" :key=\"index\">\r\n <a v-if=\"isShow(item)\" @click.stop=\"(item.onClick || item.onEvent)?.(record)\">\r\n <template v-if=\"item.title instanceof Object\">\r\n <component :is=\"item.title\" :record=\"record\" />\r\n </template>\r\n <template v-else>\r\n {{ item.title }}\r\n </template>\r\n </a>\r\n <a-divider\r\n v-if=\"showDivider(item)\"\r\n type=\"vertical\"\r\n style=\"border-color: #3e7fff; border-width: 2px\"\r\n />\r\n </template>\r\n </div>\r\n</template>\r\n"],"names":["_createElementBlock","_openBlock","_Fragment","_withModifiers","_createBlock","_resolveDynamicComponent","_createTextVNode","_toDisplayString"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeE,IAAA,MAAM,KAAA,GAAQ,OAAA;AASd,IAAA,MAAM,MAAA,GAAS,CAAC,IAAA,KAA8B;;AAC5C,MAAA,IAAI,OAAO,IAAA,CAAK,MAAA,KAAW,UAAA,EAAY;AACrC,QAAA,OAAO,IAAA,CAAK,MAAA,CAAO,KAAA,CAAM,MAAM,CAAA;AAAA,MACjC;AACA,MAAA,OAAA,CAAO,EAAA,GAAA,IAAA,CAAK,WAAL,IAAA,GAAA,EAAA,GAAe,IAAA;AAAA,IACxB,CAAA;AAKA,IAAA,MAAM,cAAA,GAAiB,SAAS,MAAM;AACpC,MAAA,MAAM,MAAA,GAAuB,KAAA,CAAM,OAAA,IAAW,KAAA,CAAM,gBAAgB,EAAC;AACrE,MAAA,OAAO,OAAO,MAAA,CAAO,CAAC,IAAA,KAAqB,MAAA,CAAO,IAAI,CAAC,CAAA;AAAA,IACzD,CAAC,CAAA;AAKD,IAAA,MAAM,WAAA,GAAc,CAAC,IAAA,KAA8B;AACjD,MAAA,IAAI,CAAC,MAAA,CAAO,IAAI,CAAA,EAAG;AACjB,QAAA,OAAO,KAAA;AAAA,MACT;AAGA,MAAA,MAAM,YAAA,GAAe,eAAe,KAAA,CAAM,SAAA,CAAU,CAAC,CAAA,KAAkB,CAAA,CAAE,KAAA,KAAU,IAAA,CAAK,KAAK,CAAA;AAC7F,MAAA,OAAO,YAAA,KAAiB,CAAA,CAAA,IAAM,YAAA,GAAe,cAAA,CAAe,MAAM,MAAA,GAAS,CAAA;AAAA,IAC7E,CAAA;;;0BAIAA,kBAAA,CAgBM,KAAA,EAAA;AAAA,QAhBA,OAAA,0CAAD,MAAA;AAAA,QAAA,CAAA,EAAW,CAAA,MAAA,CAAA,CAAA;AAAA;SACdC,SAAA,CAAA,IAAA,CAAA,EAAAD,kBAAA;AAAA,UAcWE,QAAA;AAAA;qBAduB,QAAA,OAAA,IAAW,OAAA,iBAAY,EAAA,EAAA,CAAvC,IAAA,EAAM,KAAA,KAAK;;;qBAA0C,KAAA,EAAK;AAAA,cAAA;AAAA,gBACjE,OAAO,IAAI,CAAA,iBAApBF,mBAOI,GAAA,EAAA;AAAA;kBAPoB,OAAA,EAAKG,aAAA,CAAA,CAAA,MAAA,KAAA;;AAAQ,oBAAA,OAAA,CAAA,EAAA,GAAA,IAAA,CAAK,OAAA,IAAW,IAAA,CAAK,OAAA,KAArB,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAgC,OAAA,CAAA,MAAA,CAAA;AAAA,kBAAA,CAAA,EAAM,CAAA,MAAA,CAAA;AAAA;kBACzD,IAAA,CAAK,iBAAiB,MAAA,iBACpCC,WAAA,CAA+CC,uBAAA,CAA/B,IAAA,CAAK,KAAK,CAAA,EAAA;AAAA;oBAAG,QAAQ,OAAA,CAAA;AAAA,2DAEvCL,kBAAA;AAAA,oBAEWE,QAAA;AAAA,oBAAA,EAAA,KAAA,CAAA,EAAA;AAAA,oBAAA;AAAA,sBADNI,eAAA;AAAA,wBAAAC,eAAA,CAAA,KAAK,KAAK,CAAA;AAAA,wBAAA;AAAA;AAAA;AAAA;;;;;gBAIT,YAAY,IAAI,CAAA,iBADxBH,YAIE,oBAAA,EAAA;AAAA;kBAFA,IAAA,EAAK,UAAA;AAAA,kBACL,KAAA,EAAA,EAAA,cAAA,EAAA,SAAA,EAAA,gBAAA,KAAA;AAAA;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ActionBar.vue2.mjs","sources":["../../../../src/components/action-bar/ActionBar.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\n import { computed, isVNode, type VNode } from \"vue\";\r\n\r\n defineOptions({\r\n name: \"DActionBar\"\r\n });\r\n\r\n interface ButtonItem {\r\n title: string | VNode;\r\n status?: boolean | ((record: { [key: string]: unknown }) => boolean);\r\n onClick?: (record: { [key: string]: unknown }) => void;\r\n onEvent?: (record: { [key: string]: unknown }) => void; // 别名,为了向后兼容\r\n }\r\n\r\n // 2. 普通的 Props 声明\r\n const props = defineProps({\n buttonGroups: { type: Array, required: false },\n actions: { type: Array, required: false },\n record: { type: Object, required: true }\n});\r\n\r\n /**\r\n * 判断按钮是否显示\r\n */\r\n const isShow = (item: ButtonItem): boolean => {\r\n if (typeof item.status === \"function\") {\r\n return item.status(props.record);\r\n }\r\n return item.status ?? true;\r\n };\r\n\r\n /**\r\n * 过滤出当前真正显示的按钮列表\r\n */\r\n const visibleButtons = computed(() => {\r\n const groups: ButtonItem[] = props.actions || props.buttonGroups || [];\r\n return groups.filter((item: ButtonItem) => isShow(item));\r\n });\r\n\r\n /**\r\n * 判断分隔线状态\r\n */\r\n const showDivider = (item: ButtonItem): boolean => {\r\n if (!isShow(item)) {\r\n return false;\r\n }\r\n\r\n // 逻辑保持不变:在可见列表里找自己\r\n const visibleIndex = visibleButtons.value.findIndex((v: ButtonItem) => v.title === item.title);\r\n return visibleIndex !== -1 && visibleIndex < visibleButtons.value.length - 1;\r\n };\r\n</script>\r\n\r\n<template>\r\n <div @click.stop>\r\n <template v-for=\"(item, index) in actions || buttonGroups || []\" :key=\"index\">\r\n <a v-if=\"isShow(item)\" @click.stop=\"(item.onClick || item.onEvent)?.(record)\">\r\n <template v-if=\"isVNode(item.title)\">\r\n <component :is=\"item.title\" :record=\"record\" />\r\n </template>\r\n <template v-else>\r\n {{ item.title }}\r\n </template>\r\n </a>\r\n <a-divider\r\n v-if=\"showDivider(item)\"\r\n type=\"vertical\"\r\n style=\"border-color: #3e7fff; border-width: 2px\"\r\n />\r\n </template>\r\n </div>\r\n</template>\r\n"],"names":["_createElementBlock","_openBlock","_Fragment","_withModifiers","_createBlock","_resolveDynamicComponent","_createTextVNode","_toDisplayString"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeE,IAAA,MAAM,KAAA,GAAQ,OAAA;AASd,IAAA,MAAM,MAAA,GAAS,CAAC,IAAA,KAA8B;;AAC5C,MAAA,IAAI,OAAO,IAAA,CAAK,MAAA,KAAW,UAAA,EAAY;AACrC,QAAA,OAAO,IAAA,CAAK,MAAA,CAAO,KAAA,CAAM,MAAM,CAAA;AAAA,MACjC;AACA,MAAA,OAAA,CAAO,EAAA,GAAA,IAAA,CAAK,WAAL,IAAA,GAAA,EAAA,GAAe,IAAA;AAAA,IACxB,CAAA;AAKA,IAAA,MAAM,cAAA,GAAiB,SAAS,MAAM;AACpC,MAAA,MAAM,MAAA,GAAuB,KAAA,CAAM,OAAA,IAAW,KAAA,CAAM,gBAAgB,EAAC;AACrE,MAAA,OAAO,OAAO,MAAA,CAAO,CAAC,IAAA,KAAqB,MAAA,CAAO,IAAI,CAAC,CAAA;AAAA,IACzD,CAAC,CAAA;AAKD,IAAA,MAAM,WAAA,GAAc,CAAC,IAAA,KAA8B;AACjD,MAAA,IAAI,CAAC,MAAA,CAAO,IAAI,CAAA,EAAG;AACjB,QAAA,OAAO,KAAA;AAAA,MACT;AAGA,MAAA,MAAM,YAAA,GAAe,eAAe,KAAA,CAAM,SAAA,CAAU,CAAC,CAAA,KAAkB,CAAA,CAAE,KAAA,KAAU,IAAA,CAAK,KAAK,CAAA;AAC7F,MAAA,OAAO,YAAA,KAAiB,CAAA,CAAA,IAAM,YAAA,GAAe,cAAA,CAAe,MAAM,MAAA,GAAS,CAAA;AAAA,IAC7E,CAAA;;;0BAIAA,kBAAA,CAgBM,KAAA,EAAA;AAAA,QAhBA,OAAA,0CAAD,MAAA;AAAA,QAAA,CAAA,EAAW,CAAA,MAAA,CAAA,CAAA;AAAA;SACdC,SAAA,CAAA,IAAA,CAAA,EAAAD,kBAAA;AAAA,UAcWE,QAAA;AAAA;qBAduB,QAAA,OAAA,IAAW,OAAA,iBAAY,EAAA,EAAA,CAAvC,IAAA,EAAM,KAAA,KAAK;;;qBAA0C,KAAA,EAAK;AAAA,cAAA;AAAA,gBACjE,OAAO,IAAI,CAAA,iBAApBF,mBAOI,GAAA,EAAA;AAAA;kBAPoB,OAAA,EAAKG,aAAA,CAAA,CAAA,MAAA,KAAA;;AAAQ,oBAAA,OAAA,CAAA,EAAA,GAAA,IAAA,CAAK,OAAA,IAAW,IAAA,CAAK,OAAA,KAArB,IAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAgC,OAAA,CAAA,MAAA,CAAA;AAAA,kBAAA,CAAA,EAAM,CAAA,MAAA,CAAA;AAAA;kBACzD,OAAA,CAAQ,IAAA,CAAK,KAAK,CAAA,iBAChCC,WAAA,CAA+CC,uBAAA,CAA/B,IAAA,CAAK,KAAK,CAAA,EAAA;AAAA;oBAAG,QAAQ,OAAA,CAAA;AAAA,2DAEvCL,kBAAA;AAAA,oBAEWE,QAAA;AAAA,oBAAA,EAAA,KAAA,CAAA,EAAA;AAAA,oBAAA;AAAA,sBADNI,eAAA;AAAA,wBAAAC,eAAA,CAAA,KAAK,KAAK,CAAA;AAAA,wBAAA;AAAA;AAAA;AAAA;;;;;gBAIT,YAAY,IAAI,CAAA,iBADxBH,YAIE,oBAAA,EAAA;AAAA;kBAFA,IAAA,EAAK,UAAA;AAAA,kBACL,KAAA,EAAA,EAAA,cAAA,EAAA,SAAA,EAAA,gBAAA,KAAA;AAAA;;;;;;;;;;;;;;;;"}
@@ -20,7 +20,9 @@ const _Card = /* @__PURE__ */ defineComponent({
20
20
  return () => {
21
21
  var _a;
22
22
  const rootCls = getPrefixCls();
23
+ const headerWrapperCls = getPrefixCls("head-wrapper");
23
24
  const headerCls = getPrefixCls("head");
25
+ const headerExctraCls = getPrefixCls("extra");
24
26
  const iconCls = getPrefixCls("icon");
25
27
  const titleCls = getPrefixCls("title");
26
28
  const actionCls = getPrefixCls("action");
@@ -28,12 +30,16 @@ const _Card = /* @__PURE__ */ defineComponent({
28
30
  return createVNode("div", {
29
31
  "class": cx(rootCls, styles.container)
30
32
  }, [createVNode("div", {
31
- "class": cx(headerCls, styles.header)
33
+ "class": cx(headerWrapperCls, styles.header)
34
+ }, [createVNode("div", {
35
+ "class": cx(headerCls)
32
36
  }, [slots.icon && createVNode("div", {
33
37
  "class": cx(iconCls, styles.icon)
34
38
  }, [slots.icon()]), createVNode("div", {
35
39
  "class": cx(titleCls, styles.header_title)
36
- }, [props.title])]), slots.action && createVNode("div", {
40
+ }, [props.title])]), slots.extra && createVNode("div", {
41
+ "class": cx(headerExctraCls)
42
+ }, [slots.extra()])]), slots.action && createVNode("div", {
37
43
  "class": cx(actionCls, styles.action)
38
44
  }, [slots.action()]), createVNode("div", {
39
45
  "class": cx(bodyCls, styles.body)
@@ -1 +1 @@
1
- {"version":3,"file":"Card.mjs","sources":["../../../../src/components/card/Card.tsx"],"sourcesContent":["// components/card/index.tsx\nimport { defineComponent } from \"vue\";\n\nimport { cx } from \"@emotion/css\"; // 引入 cx\n\nimport { useDesign } from \"../../hooks/useDesign\"; // 引入我们刚才写的 hook\nimport { withInstall } from \"../../utils/withInstall\";\n\nimport { useStyle } from \"./style\";\n\nconst _Card = defineComponent({\n name: \"DCard\",\n props: {\n title: String\n },\n setup(props, { slots }) {\n // 初始化 Design Hook,传入组件名 'card'\n const { getPrefixCls } = useDesign(\"card\");\n\n // 初始化 Emotion 样式\n const styles = useStyle();\n\n return () => {\n // 生成语义化类名\n const rootCls = getPrefixCls();\n const headerCls = getPrefixCls(\"head\");\n const iconCls = getPrefixCls(\"icon\");\n const titleCls = getPrefixCls(\"title\");\n const actionCls = getPrefixCls(\"action\");\n const bodyCls = getPrefixCls(\"body\");\n\n return (\n <div class={cx(rootCls, styles.container)}>\n {/* Header 区域 */}\n <div class={cx(headerCls, styles.header)}>\n {slots.icon && (\n <div class={cx(iconCls, styles.icon)}>\n {slots.icon()}\n </div>\n )}\n <div class={cx(titleCls, styles.header_title)}>\n {props.title}\n </div>\n </div>\n {/*action*/}\n {slots.action && (\n <div class={cx(actionCls, styles.action)}>\n {slots.action()}\n </div>\n )}\n\n {/* Body 区域 */}\n <div class={cx(bodyCls, styles.body)}>\n {slots.default?.()}\n </div>\n </div>\n );\n };\n }\n});\n\nexport const Card = withInstall(_Card);\n"],"names":["_Card","defineComponent","name","props","title","String","setup","slots","getPrefixCls","useDesign","styles","useStyle","rootCls","headerCls","iconCls","titleCls","actionCls","bodyCls","_createVNode","cx","container","header","icon","header_title","action","body","default","Card","withInstall"],"mappings":";;;;;;;AAUA,MAAMA,wBAAQC,eAAAA,CAAgB;AAAA,EAC5BC,IAAAA,EAAM,OAAA;AAAA,EACNC,KAAAA,EAAO;AAAA,IACLC,KAAAA,EAAOC;AAAAA,GACT;AAAA,EACAC,MAAMH,KAAAA,EAAO;AAAA,IAAEI;AAAAA,GAAM,EAAG;AAEtB,IAAA,MAAM;AAAA,MAAEC;AAAAA,KAAa,GAAIC,UAAU,MAAM,CAAA;AAGzC,IAAA,MAAMC,SAASC,QAAAA,EAAS;AAExB,IAAA,OAAO,MAAM;AAtBjB,MAAA,IAAA,EAAA;AAwBM,MAAA,MAAMC,UAAUJ,YAAAA,EAAa;AAC7B,MAAA,MAAMK,SAAAA,GAAYL,aAAa,MAAM,CAAA;AACrC,MAAA,MAAMM,OAAAA,GAAUN,aAAa,MAAM,CAAA;AACnC,MAAA,MAAMO,QAAAA,GAAWP,aAAa,OAAO,CAAA;AACrC,MAAA,MAAMQ,SAAAA,GAAYR,aAAa,QAAQ,CAAA;AACvC,MAAA,MAAMS,OAAAA,GAAUT,aAAa,MAAM,CAAA;AAEnC,MAAA,OAAAU,YAAA,KAAA,EAAA;AAAA,QAAA,OAAA,EACcC,EAAAA,CAAGP,OAAAA,EAASF,MAAAA,CAAOU,SAAS;AAAA,OAAC,EAAA,CAAAF,WAAAA,CAAA,KAAA,EAAA;AAAA,QAAA,OAAA,EAE3BC,EAAAA,CAAGN,SAAAA,EAAWH,MAAAA,CAAOW,MAAM;AAAA,OAAC,EAAA,CACrCd,KAAAA,CAAMe,IAAAA,IAAIJ,YAAA,KAAA,EAAA;AAAA,QAAA,OAAA,EACGC,EAAAA,CAAGL,OAAAA,EAASJ,MAAAA,CAAOY,IAAI;AAAA,OAAC,EAAA,CACjCf,KAAAA,CAAMe,IAAAA,EAAM,CAAA,CAAA,EAEhBJ,YAAA,KAAA,EAAA;AAAA,QAAA,OAAA,EACWC,EAAAA,CAAGJ,QAAAA,EAAUL,MAAAA,CAAOa,YAAY;AAAA,OAAC,EAAA,CAC1CpB,KAAAA,CAAMC,KAAK,CAAA,CAAA,CAAA,CAAA,EAIfG,KAAAA,CAAMiB,MAAAA,IAAMN,WAAAA,CAAA,KAAA,EAAA;AAAA,QAAA,OAAA,EACCC,EAAAA,CAAGH,SAAAA,EAAWN,MAAAA,CAAOc,MAAM;AAAA,OAAC,EAAA,CACrCjB,KAAAA,CAAMiB,MAAAA,EAAQ,CAAA,CAAA,EAElBN,YAAA,KAAA,EAAA;AAAA,QAAA,OAAA,EAGWC,EAAAA,CAAGF,OAAAA,EAASP,MAAAA,CAAOe,IAAI;AAAA,SAAC,CAAA,CACjClB,EAAAA,GAAAA,KAAAA,CAAMmB,YAANnB,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,EAAAA,CAAAA,IAAAA,CAAAA,KAAAA,CAAiB,CAAA,CAAA,CAAA,CAAA;AAAA,IAI1B,CAAA;AAAA,EACF;AACF,CAAC,CAAA;AAEM,MAAMoB,IAAAA,GAAOC,YAAY5B,KAAK;;;;"}
1
+ {"version":3,"file":"Card.mjs","sources":["../../../../src/components/card/Card.tsx"],"sourcesContent":["// components/card/index.tsx\r\nimport { defineComponent } from \"vue\";\r\n\r\nimport { cx } from \"@emotion/css\"; // 引入 cx\r\n\r\nimport { useDesign } from \"../../hooks/useDesign\"; // 引入我们刚才写的 hook\r\nimport { withInstall } from \"../../utils/withInstall\";\r\n\r\nimport { useStyle } from \"./style\";\r\n\r\nconst _Card = defineComponent({\r\n name: \"DCard\",\r\n props: {\r\n title: String\r\n },\r\n setup(props, { slots }) {\r\n // 初始化 Design Hook,传入组件名 'card'\r\n const { getPrefixCls } = useDesign(\"card\");\r\n\r\n // 初始化 Emotion 样式\r\n const styles = useStyle();\r\n\r\n return () => {\r\n // 生成语义化类名\r\n const rootCls = getPrefixCls();\r\n const headerWrapperCls = getPrefixCls(\"head-wrapper\");\r\n const headerCls = getPrefixCls(\"head\");\r\n const headerExctraCls = getPrefixCls(\"extra\");\r\n const iconCls = getPrefixCls(\"icon\");\r\n const titleCls = getPrefixCls(\"title\");\r\n const actionCls = getPrefixCls(\"action\");\r\n const bodyCls = getPrefixCls(\"body\");\r\n\r\n return (\r\n <div class={cx(rootCls, styles.container)}>\r\n {/* Header 区域 */}\r\n <div class={cx(headerWrapperCls, styles.header)}>\r\n <div class={cx(headerCls)}>\r\n {slots.icon && (\r\n <div class={cx(iconCls, styles.icon)}>\r\n {slots.icon()}\r\n </div>\r\n )}\r\n <div class={cx(titleCls, styles.header_title)}>\r\n {props.title}\r\n </div>\r\n </div>\r\n {\r\n slots.extra && (\r\n <div class={cx(headerExctraCls)}>\r\n {slots.extra()}\r\n </div>\r\n )\r\n }\r\n </div>\r\n {/*action*/}\r\n {slots.action && (\r\n <div class={cx(actionCls, styles.action)}>\r\n {slots.action()}\r\n </div>\r\n )}\r\n\r\n {/* Body 区域 */}\r\n <div class={cx(bodyCls, styles.body)}>\r\n {slots.default?.()}\r\n </div>\r\n </div>\r\n );\r\n };\r\n }\r\n});\r\n\r\nexport const Card = withInstall(_Card);\r\n"],"names":["_Card","defineComponent","name","props","title","String","setup","slots","getPrefixCls","useDesign","styles","useStyle","rootCls","headerWrapperCls","headerCls","headerExctraCls","iconCls","titleCls","actionCls","bodyCls","_createVNode","cx","container","header","icon","header_title","extra","action","body","default","Card","withInstall"],"mappings":";;;;;;;AAUA,MAAMA,wBAAQC,eAAAA,CAAgB;AAAA,EAC5BC,IAAAA,EAAM,OAAA;AAAA,EACNC,KAAAA,EAAO;AAAA,IACLC,KAAAA,EAAOC;AAAAA,GACT;AAAA,EACAC,MAAMH,KAAAA,EAAO;AAAA,IAAEI;AAAAA,GAAM,EAAG;AAEtB,IAAA,MAAM;AAAA,MAAEC;AAAAA,KAAa,GAAIC,UAAU,MAAM,CAAA;AAGzC,IAAA,MAAMC,SAASC,QAAAA,EAAS;AAExB,IAAA,OAAO,MAAM;AAtBjB,MAAA,IAAA,EAAA;AAwBM,MAAA,MAAMC,UAAUJ,YAAAA,EAAa;AAC7B,MAAA,MAAMK,gBAAAA,GAAmBL,aAAa,cAAc,CAAA;AACpD,MAAA,MAAMM,SAAAA,GAAYN,aAAa,MAAM,CAAA;AACrC,MAAA,MAAMO,eAAAA,GAAkBP,aAAa,OAAO,CAAA;AAC5C,MAAA,MAAMQ,OAAAA,GAAUR,aAAa,MAAM,CAAA;AACnC,MAAA,MAAMS,QAAAA,GAAWT,aAAa,OAAO,CAAA;AACrC,MAAA,MAAMU,SAAAA,GAAYV,aAAa,QAAQ,CAAA;AACvC,MAAA,MAAMW,OAAAA,GAAUX,aAAa,MAAM,CAAA;AAEnC,MAAA,OAAAY,YAAA,KAAA,EAAA;AAAA,QAAA,OAAA,EACcC,EAAAA,CAAGT,OAAAA,EAASF,MAAAA,CAAOY,SAAS;AAAA,OAAC,EAAA,CAAAF,WAAAA,CAAA,KAAA,EAAA;AAAA,QAAA,OAAA,EAE3BC,EAAAA,CAAGR,gBAAAA,EAAkBH,MAAAA,CAAOa,MAAM;AAAA,OAAC,EAAA,CAAAH,WAAAA,CAAA,KAAA,EAAA;AAAA,QAAA,OAAA,EACjCC,GAAGP,SAAS;AAAA,OAAC,EAAA,CACtBP,KAAAA,CAAMiB,IAAAA,IAAIJ,YAAA,KAAA,EAAA;AAAA,QAAA,OAAA,EACGC,EAAAA,CAAGL,OAAAA,EAASN,MAAAA,CAAOc,IAAI;AAAA,OAAC,EAAA,CACjCjB,KAAAA,CAAMiB,IAAAA,EAAM,CAAA,CAAA,EAEhBJ,YAAA,KAAA,EAAA;AAAA,QAAA,OAAA,EACWC,EAAAA,CAAGJ,QAAAA,EAAUP,MAAAA,CAAOe,YAAY;AAAA,OAAC,EAAA,CAC1CtB,KAAAA,CAAMC,KAAK,CAAA,CAAA,CAAA,CAAA,EAIdG,KAAAA,CAAMmB,KAAAA,IAAKN,WAAAA,CAAA,KAAA,EAAA;AAAA,QAAA,OAAA,EACGC,GAAGN,eAAe;AAAA,OAAC,EAAA,CAC5BR,KAAAA,CAAMmB,KAAAA,EAAO,CAAA,CAEjB,CAAA,CAAA,EAIJnB,KAAAA,CAAMoB,MAAAA,IAAMP,WAAAA,CAAA,KAAA,EAAA;AAAA,QAAA,OAAA,EACCC,EAAAA,CAAGH,SAAAA,EAAWR,MAAAA,CAAOiB,MAAM;AAAA,OAAC,EAAA,CACrCpB,KAAAA,CAAMoB,MAAAA,EAAQ,CAAA,CAAA,EAElBP,YAAA,KAAA,EAAA;AAAA,QAAA,OAAA,EAGWC,EAAAA,CAAGF,OAAAA,EAAST,MAAAA,CAAOkB,IAAI;AAAA,SAAC,CAAA,CACjCrB,EAAAA,GAAAA,KAAAA,CAAMsB,YAANtB,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,EAAAA,CAAAA,IAAAA,CAAAA,KAAAA,CAAiB,CAAA,CAAA,CAAA,CAAA;AAAA,IAI1B,CAAA;AAAA,EACF;AACF,CAAC,CAAA;AAEM,MAAMuB,IAAAA,GAAOC,YAAY/B,KAAK;;;;"}
@@ -10,7 +10,9 @@ const useStyle = () => {
10
10
  `,
11
11
  header: css`
12
12
  display: flex;
13
- margin-bottom: 20px;
13
+ padding: 4px;
14
+ align-items: center;
15
+ justify-content: space-between;
14
16
  `,
15
17
  header_title: css`
16
18
  line-height: 1.5;
@@ -25,7 +27,7 @@ const useStyle = () => {
25
27
  flex-shrink: 0; /* 防止标题过长时挤压图标 */
26
28
  `,
27
29
  action: css`
28
- margin-bottom: 10px;
30
+ padding: 4px;
29
31
  `,
30
32
  body: css`
31
33
  display: flex;
@@ -1 +1 @@
1
- {"version":3,"file":"style.mjs","sources":["../../../../src/components/card/style.ts"],"sourcesContent":["import { css } from \"@emotion/css\";\n\nexport const useStyle = () => {\n return {\n container: css`\n display: flex;\n flex-direction: column;\n background-color: #fff;\n `,\n header: css`\n display: flex;\n margin-bottom: 20px;\n `,\n header_title: css`\n line-height: 1.5;\n /* 如果标题过长,防止换行破坏布局,可以加这行 */\n white-space: nowrap;\n `,\n // 可选:如果你需要对 icon 容器做特殊处理(例如防止图标被压缩)\n icon: css`\n margin-right: 10px;\n display: inline-flex;\n align-items: center;\n flex-shrink: 0; /* 防止标题过长时挤压图标 */\n `,\n action: css`\n margin-bottom: 10px;\n `,\n body: css`\n display: flex;\n flex-direction: column;\n `\n };\n};\n"],"names":[],"mappings":";;;AAEO,MAAM,WAAW,MAAM;AAC5B,EAAA,OAAO;AAAA,IACL,SAAA,EAAW,GAAA;AAAA;AAAA;AAAA;AAAA,IAAA,CAAA;AAAA,IAKX,MAAA,EAAQ,GAAA;AAAA;AAAA;AAAA,IAAA,CAAA;AAAA,IAIR,YAAA,EAAc,GAAA;AAAA;AAAA;AAAA;AAAA,IAAA,CAAA;AAAA;AAAA,IAMd,IAAA,EAAM,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAA,CAAA;AAAA,IAMN,MAAA,EAAQ,GAAA;AAAA;AAAA,IAAA,CAAA;AAAA,IAGR,IAAA,EAAM,GAAA;AAAA;AAAA;AAAA,IAAA;AAAA,GAIR;AACF;;;;"}
1
+ {"version":3,"file":"style.mjs","sources":["../../../../src/components/card/style.ts"],"sourcesContent":["import { css } from \"@emotion/css\";\r\n\r\nexport const useStyle = () => {\r\n return {\r\n container: css`\r\n display: flex;\r\n flex-direction: column;\r\n background-color: #fff;\r\n `,\r\n header: css`\r\n display: flex;\r\n padding: 4px;\r\n align-items: center;\r\n justify-content: space-between;\r\n `,\r\n header_title: css`\r\n line-height: 1.5;\r\n /* 如果标题过长,防止换行破坏布局,可以加这行 */\r\n white-space: nowrap;\r\n `,\r\n // 可选:如果你需要对 icon 容器做特殊处理(例如防止图标被压缩)\r\n icon: css`\r\n margin-right: 10px;\r\n display: inline-flex;\r\n align-items: center;\r\n flex-shrink: 0; /* 防止标题过长时挤压图标 */\r\n `,\r\n action: css`\r\n padding: 4px;\r\n `,\r\n body: css`\r\n display: flex;\r\n flex-direction: column;\r\n `\r\n };\r\n};\r\n"],"names":[],"mappings":";;;AAEO,MAAM,WAAW,MAAM;AAC5B,EAAA,OAAO;AAAA,IACL,SAAA,EAAW,GAAA;AAAA;AAAA;AAAA;AAAA,IAAA,CAAA;AAAA,IAKX,MAAA,EAAQ,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAA,CAAA;AAAA,IAMR,YAAA,EAAc,GAAA;AAAA;AAAA;AAAA;AAAA,IAAA,CAAA;AAAA;AAAA,IAMd,IAAA,EAAM,GAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAA,CAAA;AAAA,IAMN,MAAA,EAAQ,GAAA;AAAA;AAAA,IAAA,CAAA;AAAA,IAGR,IAAA,EAAM,GAAA;AAAA;AAAA;AAAA,IAAA;AAAA,GAIR;AACF;;;;"}