@ditari/bsui 5.1.18 → 5.1.20

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 (113) hide show
  1. package/dist/cjs/components/action-bar/ActionBar.vue.cjs +10 -0
  2. package/dist/cjs/components/action-bar/ActionBar.vue.cjs.map +1 -0
  3. package/dist/cjs/components/action-bar/ActionBar.vue.d.ts +47 -0
  4. package/dist/cjs/components/action-bar/ActionBar.vue2.cjs +114 -0
  5. package/dist/cjs/components/action-bar/ActionBar.vue2.cjs.map +1 -0
  6. package/dist/cjs/components/action-bar/index.cjs +16 -0
  7. package/dist/cjs/components/action-bar/index.cjs.map +1 -0
  8. package/dist/cjs/components/action-bar/index.d.ts +4 -0
  9. package/dist/cjs/components/card/Card.cjs.map +1 -1
  10. package/dist/cjs/components/card/style.cjs.map +1 -1
  11. package/dist/cjs/components/dic/DicReplace.cjs.map +1 -1
  12. package/dist/cjs/components/form/FormLayout.cjs +147 -23
  13. package/dist/cjs/components/form/FormLayout.cjs.map +1 -1
  14. package/dist/cjs/components/form/FormLayout.d.ts +61 -0
  15. package/dist/cjs/components/index.cjs +6 -0
  16. package/dist/cjs/components/index.cjs.map +1 -1
  17. package/dist/cjs/components/index.d.ts +2 -0
  18. package/dist/cjs/components/layout/AppContext.cjs.map +1 -1
  19. package/dist/cjs/components/layout/AppLayout.cjs.map +1 -1
  20. package/dist/cjs/components/layout/List.cjs +25 -8
  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 +0 -3
  27. package/dist/cjs/components/select/Select.vue2.cjs.map +1 -1
  28. package/dist/cjs/components/table/Table.cjs +13 -12
  29. package/dist/cjs/components/table/Table.cjs.map +1 -1
  30. package/dist/cjs/components/table/Table.d.ts +1 -1
  31. package/dist/cjs/components/table-form/TableForm.cjs.map +1 -1
  32. package/dist/cjs/components/table-form/TableFormItem.cjs.map +1 -1
  33. package/dist/cjs/components/table-form/index.cjs.map +1 -1
  34. package/dist/cjs/components/table-form/interface.cjs.map +1 -1
  35. package/dist/cjs/components/table-form/style.cjs.map +1 -1
  36. package/dist/cjs/components/tools-bar/ToolsBar.vue.cjs +10 -0
  37. package/dist/cjs/components/tools-bar/ToolsBar.vue.cjs.map +1 -0
  38. package/dist/cjs/components/tools-bar/ToolsBar.vue.d.ts +27 -0
  39. package/dist/cjs/components/tools-bar/ToolsBar.vue2.cjs +124 -0
  40. package/dist/cjs/components/tools-bar/ToolsBar.vue2.cjs.map +1 -0
  41. package/dist/cjs/components/tools-bar/index.cjs +16 -0
  42. package/dist/cjs/components/tools-bar/index.cjs.map +1 -0
  43. package/dist/cjs/components/tools-bar/index.d.ts +4 -0
  44. package/dist/cjs/hooks/useDesign.cjs.map +1 -1
  45. package/dist/cjs/index.cjs +5 -0
  46. package/dist/cjs/index.cjs.map +1 -1
  47. package/dist/cjs/utils/withInstall.cjs.map +1 -1
  48. package/dist/esm/components/action-bar/ActionBar.vue.d.ts +47 -0
  49. package/dist/esm/components/action-bar/ActionBar.vue.mjs +6 -0
  50. package/dist/esm/components/action-bar/ActionBar.vue.mjs.map +1 -0
  51. package/dist/esm/components/action-bar/ActionBar.vue2.mjs +110 -0
  52. package/dist/esm/components/action-bar/ActionBar.vue2.mjs.map +1 -0
  53. package/dist/esm/components/action-bar/index.d.ts +4 -0
  54. package/dist/esm/components/action-bar/index.mjs +11 -0
  55. package/dist/esm/components/action-bar/index.mjs.map +1 -0
  56. package/dist/esm/components/card/Card.mjs.map +1 -1
  57. package/dist/esm/components/card/style.mjs.map +1 -1
  58. package/dist/esm/components/dic/DicReplace.mjs.map +1 -1
  59. package/dist/esm/components/form/FormLayout.d.ts +61 -0
  60. package/dist/esm/components/form/FormLayout.mjs +149 -25
  61. package/dist/esm/components/form/FormLayout.mjs.map +1 -1
  62. package/dist/esm/components/index.d.ts +2 -0
  63. package/dist/esm/components/index.mjs +4 -0
  64. package/dist/esm/components/index.mjs.map +1 -1
  65. package/dist/esm/components/layout/AppContext.mjs.map +1 -1
  66. package/dist/esm/components/layout/AppLayout.mjs.map +1 -1
  67. package/dist/esm/components/layout/List.mjs +26 -9
  68. package/dist/esm/components/layout/List.mjs.map +1 -1
  69. package/dist/esm/components/layout/Show.mjs.map +1 -1
  70. package/dist/esm/components/layout/components/layout/RouterContentName.vue2.mjs.map +1 -1
  71. package/dist/esm/components/layout/components/mobile/MobileList.mjs.map +1 -1
  72. package/dist/esm/components/layout/style.mjs.map +1 -1
  73. package/dist/esm/components/select/Select.vue2.mjs +0 -3
  74. package/dist/esm/components/select/Select.vue2.mjs.map +1 -1
  75. package/dist/esm/components/table/Table.d.ts +1 -1
  76. package/dist/esm/components/table/Table.mjs +13 -12
  77. package/dist/esm/components/table/Table.mjs.map +1 -1
  78. package/dist/esm/components/table-form/TableForm.mjs.map +1 -1
  79. package/dist/esm/components/table-form/TableFormItem.mjs.map +1 -1
  80. package/dist/esm/components/table-form/index.mjs.map +1 -1
  81. package/dist/esm/components/table-form/interface.mjs.map +1 -1
  82. package/dist/esm/components/table-form/style.mjs.map +1 -1
  83. package/dist/esm/components/tools-bar/ToolsBar.vue.d.ts +27 -0
  84. package/dist/esm/components/tools-bar/ToolsBar.vue.mjs +6 -0
  85. package/dist/esm/components/tools-bar/ToolsBar.vue.mjs.map +1 -0
  86. package/dist/esm/components/tools-bar/ToolsBar.vue2.mjs +120 -0
  87. package/dist/esm/components/tools-bar/ToolsBar.vue2.mjs.map +1 -0
  88. package/dist/esm/components/tools-bar/index.d.ts +4 -0
  89. package/dist/esm/components/tools-bar/index.mjs +11 -0
  90. package/dist/esm/components/tools-bar/index.mjs.map +1 -0
  91. package/dist/esm/hooks/useDesign.mjs.map +1 -1
  92. package/dist/esm/index.mjs +3 -0
  93. package/dist/esm/index.mjs.map +1 -1
  94. package/dist/esm/utils/withInstall.mjs.map +1 -1
  95. package/dist/types/components/action-bar/ActionBar.vue.d.ts +47 -0
  96. package/dist/types/components/action-bar/ActionBar.vue.d.ts.map +1 -0
  97. package/dist/types/components/action-bar/index.d.ts +4 -0
  98. package/dist/types/components/action-bar/index.d.ts.map +1 -0
  99. package/dist/types/components/form/FormLayout.d.ts +61 -0
  100. package/dist/types/components/form/FormLayout.d.ts.map +1 -1
  101. package/dist/types/components/index.d.ts +2 -0
  102. package/dist/types/components/index.d.ts.map +1 -1
  103. package/dist/types/components/layout/List.d.ts.map +1 -1
  104. package/dist/types/components/layout/components/layout/RouterContentName.vue.d.ts.map +1 -1
  105. package/dist/types/components/table/Table.d.ts +1 -1
  106. package/dist/types/components/table/Table.d.ts.map +1 -1
  107. package/dist/types/components/tools-bar/ToolsBar.vue.d.ts +27 -0
  108. package/dist/types/components/tools-bar/ToolsBar.vue.d.ts.map +1 -0
  109. package/dist/types/components/tools-bar/index.d.ts +4 -0
  110. package/dist/types/components/tools-bar/index.d.ts.map +1 -0
  111. package/dist/types/index.d.ts.map +1 -1
  112. package/package.json +1 -1
  113. package/src/index.ts +2 -0
@@ -7,6 +7,7 @@ var DicReplace = require('./components/dic/DicReplace.cjs');
7
7
  var Select_vue_vue_type_script_setup_true_lang = require('./components/select/Select.vue2.cjs');
8
8
  var Tab_vue_vue_type_script_setup_true_lang = require('./components/tab/Tab.vue2.cjs');
9
9
  var Table = require('./components/table/Table.cjs');
10
+ var ActionBar_vue_vue_type_script_setup_true_lang = require('./components/action-bar/ActionBar.vue2.cjs');
10
11
  var Card = require('./components/card/Card.cjs');
11
12
  var RangePicker_vue_vue_type_script_setup_true_lang = require('./components/date/RangePicker.vue2.cjs');
12
13
  var FormLayout = require('./components/form/FormLayout.cjs');
@@ -23,9 +24,11 @@ var Show = require('./components/layout/Show.cjs');
23
24
  var _interface = require('./components/table-form/interface.cjs');
24
25
  var index$1 = require('./components/table-form/index.cjs');
25
26
  var TableFormItem = require('./components/table-form/TableFormItem.cjs');
27
+ var ToolsBar_vue_vue_type_script_setup_true_lang = require('./components/tools-bar/ToolsBar.vue2.cjs');
26
28
 
27
29
  "use strict";
28
30
  const install = (app) => {
31
+ console.log("install", index$2);
29
32
  Object.keys(index$2).forEach((key) => {
30
33
  const component = index$2[key];
31
34
  const plugin = component;
@@ -43,6 +46,7 @@ exports.DicRep = DicReplace.default;
43
46
  exports.Select = Select_vue_vue_type_script_setup_true_lang.default;
44
47
  exports.Tab = Tab_vue_vue_type_script_setup_true_lang.default;
45
48
  exports.Table = Table.default;
49
+ exports.ActionBar = ActionBar_vue_vue_type_script_setup_true_lang.default;
46
50
  exports.Card = Card.Card;
47
51
  exports.RangePicker = RangePicker_vue_vue_type_script_setup_true_lang.default;
48
52
  exports.FormLayout = FormLayout.default;
@@ -61,6 +65,7 @@ exports.tableFormItemProps = _interface.tableFormItemProps;
61
65
  exports.tableFormProps = _interface.tableFormProps;
62
66
  exports.TableForm = index$1.TableForm;
63
67
  exports.TableFormItem = TableFormItem.TableFormItem;
68
+ exports.ToolsBar = ToolsBar_vue_vue_type_script_setup_true_lang.default;
64
69
  exports.default = index;
65
70
  exports.install = install;
66
71
  //# sourceMappingURL=index.cjs.map
@@ -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 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;AACnC,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 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 +1 @@
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
+ {"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;;;;"}
@@ -0,0 +1,47 @@
1
+ import { type VNode } from "vue";
2
+ interface ButtonItem {
3
+ title: string | VNode;
4
+ status?: boolean | ((record: {
5
+ [key: string]: unknown;
6
+ }) => boolean);
7
+ onClick?: (record: {
8
+ [key: string]: unknown;
9
+ }) => void;
10
+ onEvent?: (record: {
11
+ [key: string]: unknown;
12
+ }) => void;
13
+ }
14
+ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
15
+ buttonGroups: {
16
+ type: ArrayConstructor;
17
+ required: false;
18
+ };
19
+ actions: {
20
+ type: ArrayConstructor;
21
+ required: false;
22
+ };
23
+ record: {
24
+ type: ObjectConstructor;
25
+ required: true;
26
+ };
27
+ }>, {
28
+ props: any;
29
+ isShow: (item: ButtonItem) => boolean;
30
+ visibleButtons: import("vue").ComputedRef<ButtonItem[]>;
31
+ showDivider: (item: ButtonItem) => boolean;
32
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
33
+ buttonGroups: {
34
+ type: ArrayConstructor;
35
+ required: false;
36
+ };
37
+ actions: {
38
+ type: ArrayConstructor;
39
+ required: false;
40
+ };
41
+ record: {
42
+ type: ObjectConstructor;
43
+ required: true;
44
+ };
45
+ }>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
46
+ export default _default;
47
+ //# sourceMappingURL=ActionBar.vue.d.ts.map
@@ -0,0 +1,6 @@
1
+ import _sfc_main from './ActionBar.vue2.mjs';
2
+
3
+ "use strict";
4
+
5
+ export { _sfc_main as default };
6
+ //# sourceMappingURL=ActionBar.vue.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ActionBar.vue.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -0,0 +1,110 @@
1
+ import { defineComponent, computed, resolveComponent, createElementBlock, openBlock, withModifiers, Fragment, renderList, createCommentVNode, createBlock, resolveDynamicComponent, createTextVNode, toDisplayString } from 'vue';
2
+
3
+ "use strict";
4
+ var __defProp = Object.defineProperty;
5
+ var __defProps = Object.defineProperties;
6
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
7
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
10
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
11
+ var __spreadValues = (a, b) => {
12
+ for (var prop in b || (b = {}))
13
+ if (__hasOwnProp.call(b, prop))
14
+ __defNormalProp(a, prop, b[prop]);
15
+ if (__getOwnPropSymbols)
16
+ for (var prop of __getOwnPropSymbols(b)) {
17
+ if (__propIsEnum.call(b, prop))
18
+ __defNormalProp(a, prop, b[prop]);
19
+ }
20
+ return a;
21
+ };
22
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
23
+ const _hoisted_1 = ["onClick"];
24
+ var _sfc_main = /* @__PURE__ */ defineComponent(__spreadProps(__spreadValues({}, {
25
+ name: "DActionBar"
26
+ }), {
27
+ __name: "ActionBar",
28
+ props: {
29
+ buttonGroups: { type: Array, required: false },
30
+ actions: { type: Array, required: false },
31
+ record: { type: Object, required: true }
32
+ },
33
+ setup(__props) {
34
+ const props = __props;
35
+ const isShow = (item) => {
36
+ var _a;
37
+ if (typeof item.status === "function") {
38
+ return item.status(props.record);
39
+ }
40
+ return (_a = item.status) != null ? _a : true;
41
+ };
42
+ const visibleButtons = computed(() => {
43
+ const groups = props.actions || props.buttonGroups || [];
44
+ return groups.filter((item) => isShow(item));
45
+ });
46
+ const showDivider = (item) => {
47
+ if (!isShow(item)) {
48
+ return false;
49
+ }
50
+ const visibleIndex = visibleButtons.value.findIndex((v) => v.title === item.title);
51
+ return visibleIndex !== -1 && visibleIndex < visibleButtons.value.length - 1;
52
+ };
53
+ return (_ctx, _cache) => {
54
+ const _component_a_divider = resolveComponent("a-divider");
55
+ return openBlock(), createElementBlock("div", {
56
+ onClick: _cache[0] || (_cache[0] = withModifiers(() => {
57
+ }, ["stop"]))
58
+ }, [
59
+ (openBlock(true), createElementBlock(
60
+ Fragment,
61
+ null,
62
+ renderList(__props.actions || __props.buttonGroups || [], (item, index) => {
63
+ return openBlock(), createElementBlock(
64
+ Fragment,
65
+ { key: index },
66
+ [
67
+ isShow(item) ? (openBlock(), createElementBlock("a", {
68
+ key: 0,
69
+ onClick: withModifiers(($event) => {
70
+ var _a;
71
+ return (_a = item.onClick || item.onEvent) == null ? void 0 : _a(__props.record);
72
+ }, ["stop"])
73
+ }, [
74
+ item.title instanceof Object ? (openBlock(), createBlock(resolveDynamicComponent(item.title), {
75
+ key: 0,
76
+ record: __props.record
77
+ }, null, 8, ["record"])) : (openBlock(), createElementBlock(
78
+ Fragment,
79
+ { key: 1 },
80
+ [
81
+ createTextVNode(
82
+ toDisplayString(item.title),
83
+ 1
84
+ /* TEXT */
85
+ )
86
+ ],
87
+ 64
88
+ /* STABLE_FRAGMENT */
89
+ ))
90
+ ], 8, _hoisted_1)) : createCommentVNode("v-if", true),
91
+ showDivider(item) ? (openBlock(), createBlock(_component_a_divider, {
92
+ key: 1,
93
+ type: "vertical",
94
+ style: { "border-color": "#3e7fff", "border-width": "2px" }
95
+ })) : createCommentVNode("v-if", true)
96
+ ],
97
+ 64
98
+ /* STABLE_FRAGMENT */
99
+ );
100
+ }),
101
+ 128
102
+ /* KEYED_FRAGMENT */
103
+ ))
104
+ ]);
105
+ };
106
+ }
107
+ }));
108
+
109
+ export { _sfc_main as default };
110
+ //# sourceMappingURL=ActionBar.vue2.mjs.map
@@ -0,0 +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;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,4 @@
1
+ import ActionBar from "./ActionBar.vue";
2
+ export { ActionBar };
3
+ export default ActionBar;
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,11 @@
1
+ import './ActionBar.vue.mjs';
2
+ import _sfc_main from './ActionBar.vue2.mjs';
3
+
4
+ "use strict";
5
+ _sfc_main.install = function(app) {
6
+ app.component(_sfc_main.name, _sfc_main);
7
+ return app;
8
+ };
9
+
10
+ export { _sfc_main as ActionBar, _sfc_main as default };
11
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.mjs","sources":["../../../../src/components/action-bar/index.ts"],"sourcesContent":["import ActionBar from \"./ActionBar.vue\";\r\nimport type { App } from \"vue\";\r\n\r\nActionBar.install = function (app: App) {\r\n app.component(ActionBar.name!, ActionBar);\r\n return app;\r\n};\r\n\r\nexport { ActionBar };\r\nexport default ActionBar;\r\n"],"names":["ActionBar"],"mappings":";;;;AAGAA,SAAA,CAAU,OAAA,GAAU,SAAU,GAAA,EAAU;AACtC,EAAA,GAAA,CAAI,SAAA,CAAUA,SAAA,CAAU,IAAA,EAAOA,SAAS,CAAA;AACxC,EAAA,OAAO,GAAA;AACT,CAAA;;;;"}
@@ -1 +1 @@
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 headerCls = getPrefixCls(\"head\");\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(headerCls, styles.header)}>\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 {/*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","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\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 +1 @@
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 margin-bottom: 20px;\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 margin-bottom: 10px;\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,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\";\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 +1 @@
1
- {"version":3,"file":"DicReplace.mjs","sources":["../../../../src/components/dic/DicReplace.tsx"],"sourcesContent":["/**\r\n * 字典替换\r\n * 根据字典名字及对应的value替换成中文或者人能看懂的文字\r\n * @author 余春林\r\n */\r\nimport {\r\n defineComponent,\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\nimport { storeToRefs } from \"pinia\";\r\n\r\nimport { useDicStore, useNavTabStore } from \"@ditari/store\";\r\n\r\nexport default defineComponent({\r\n name: \"DicRep\",\r\n props: {\r\n // 字典名称\r\n name: {\r\n type: String,\r\n default: \"\"\r\n },\r\n // 值\r\n value: {\r\n type: [String, Number],\r\n default: \"\"\r\n }\r\n },\r\n setup(props) {\r\n const { list } = storeToRefs(useNavTabStore());\r\n const { getDicTextByValue } = useDicStore();\r\n const route = useRoute();\r\n // 判断使用组件的页面是否被缓存\r\n const isKeepAlive = list.value.some(\r\n item =>\r\n item.fullPath === route.fullPath &&\r\n item.meta?.keepAlive\r\n );\r\n const dicValueTxt = ref<string>(\"\");\r\n\r\n // 注入 fetchDic,提供默认值\r\n const fetchDic = inject<\r\n (name: string) => Promise<unknown[]>\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\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 onActivated(async () => {\r\n // 缓存页面被激活的时候调用\r\n await loadDicData();\r\n });\r\n\r\n onMounted(async () => {\r\n if (!isKeepAlive) {\r\n // 未缓存页面 挂载的时候调用\r\n await loadDicData();\r\n }\r\n });\r\n\r\n // 请求字典数据的函数\r\n async function loadDicData() {\r\n try {\r\n // 调用注入进来的fetchDic方法\r\n await fetchDic(props.name);\r\n replace(props.value);\r\n } catch (error) {\r\n console.error(\"获取字典数据失败:\", error);\r\n }\r\n }\r\n\r\n loadDicData().then(() =>\r\n console.log(\"success load dic\")\r\n );\r\n\r\n watch(\r\n () => props.value,\r\n (val: string | number) => {\r\n replace(val);\r\n },\r\n {\r\n immediate: true\r\n }\r\n );\r\n\r\n function replace(val: string | number) {\r\n const value = val;\r\n const name = props.name;\r\n dicValueTxt.value = getDicTextByValue(\r\n name,\r\n value?.toString()\r\n );\r\n }\r\n\r\n return () => (\r\n <span class={\"d-dic\"}>{dicValueTxt.value}</span>\r\n );\r\n }\r\n});\r\n"],"names":["name","props","type","String","default","value","Number","setup","list","storeToRefs","useNavTabStore","getDicTextByValue","useDicStore","route","useRoute","isKeepAlive","some","item","fullPath","meta","keepAlive","dicValueTxt","ref","fetchDic","inject","_name","onActivated","loadDicData","onMounted","replace","error","console","then","log","watch","val","immediate","toString","_createVNode"],"mappings":"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"}
1
+ {"version":3,"file":"DicReplace.mjs","sources":["../../../../src/components/dic/DicReplace.tsx"],"sourcesContent":["/**\n * 字典替换\n * 根据字典名字及对应的value替换成中文或者人能看懂的文字\n * @author 余春林\n */\nimport {\n defineComponent,\n inject,\n onActivated,\n onMounted,\n ref,\n watch\n} from \"vue\";\nimport { useRoute } from \"vue-router\";\nimport { storeToRefs } from \"pinia\";\n\nimport { useDicStore, useNavTabStore } from \"@ditari/store\";\n\nexport default defineComponent({\n name: \"DicRep\",\n props: {\n // 字典名称\n name: {\n type: String,\n default: \"\"\n },\n // 值\n value: {\n type: [String, Number],\n default: \"\"\n }\n },\n setup(props) {\n const { list } = storeToRefs(useNavTabStore());\n const { getDicTextByValue } = useDicStore();\n const route = useRoute();\n // 判断使用组件的页面是否被缓存\n const isKeepAlive = list.value.some(\n item =>\n item.fullPath === route.fullPath &&\n item.meta?.keepAlive\n );\n const dicValueTxt = ref<string>(\"\");\n\n // 注入 fetchDic,提供默认值\n const fetchDic = inject<\n (name: string) => Promise<unknown[]>\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n >(\"fetchDic\", async (_name: string) => {\n // console.warn(\n // `fetchDic 未注入,使用默认实现,name: ${name}`\n // );\n return [];\n });\n\n onActivated(async () => {\n // 缓存页面被激活的时候调用\n await loadDicData();\n });\n\n onMounted(async () => {\n if (!isKeepAlive) {\n // 未缓存页面 挂载的时候调用\n await loadDicData();\n }\n });\n\n // 请求字典数据的函数\n async function loadDicData() {\n try {\n // 调用注入进来的fetchDic方法\n await fetchDic(props.name);\n replace(props.value);\n } catch (error) {\n console.error(\"获取字典数据失败:\", error);\n }\n }\n\n loadDicData().then(() =>\n console.log(\"success load dic\")\n );\n\n watch(\n () => props.value,\n (val: string | number) => {\n replace(val);\n },\n {\n immediate: true\n }\n );\n\n function replace(val: string | number) {\n const value = val;\n const name = props.name;\n dicValueTxt.value = getDicTextByValue(\n name,\n value?.toString()\n );\n }\n\n return () => (\n <span class={\"d-dic\"}>{dicValueTxt.value}</span>\n );\n }\n});\n"],"names":["name","props","type","String","default","value","Number","setup","list","storeToRefs","useNavTabStore","getDicTextByValue","useDicStore","route","useRoute","isKeepAlive","some","item","fullPath","meta","keepAlive","dicValueTxt","ref","fetchDic","inject","_name","onActivated","loadDicData","onMounted","replace","error","console","then","log","watch","val","immediate","toString","_createVNode"],"mappings":"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"}
@@ -1,6 +1,33 @@
1
+ declare const RESPONSIVE_CONFIG: {
2
+ readonly xs: {
3
+ readonly span: 24;
4
+ readonly colsPerRow: 1;
5
+ };
6
+ readonly sm: {
7
+ readonly span: 12;
8
+ readonly colsPerRow: 2;
9
+ };
10
+ readonly md: {
11
+ readonly span: 8;
12
+ readonly colsPerRow: 3;
13
+ };
14
+ readonly lg: {
15
+ readonly span: 6;
16
+ readonly colsPerRow: 4;
17
+ };
18
+ readonly xl: {
19
+ readonly span: 6;
20
+ readonly colsPerRow: 4;
21
+ };
22
+ readonly xxl: {
23
+ readonly span: 6;
24
+ readonly colsPerRow: 4;
25
+ };
26
+ };
1
27
  /**
2
28
  * 查询表单渲染
3
29
  * 展开,隐藏功能
30
+ * 支持响应式栅格布局
4
31
  */
5
32
  declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
6
33
  scheme: {
@@ -19,6 +46,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
19
46
  type: BooleanConstructor;
20
47
  default: boolean;
21
48
  };
49
+ responsiveConfig: {
50
+ type: () => Partial<typeof RESPONSIVE_CONFIG>;
51
+ default: () => {};
52
+ };
22
53
  }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("query" | "reset")[], "query" | "reset", import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
23
54
  scheme: {
24
55
  type: () => any[] | Record<string, any>;
@@ -36,6 +67,10 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
36
67
  type: BooleanConstructor;
37
68
  default: boolean;
38
69
  };
70
+ responsiveConfig: {
71
+ type: () => Partial<typeof RESPONSIVE_CONFIG>;
72
+ default: () => {};
73
+ };
39
74
  }>> & Readonly<{
40
75
  onQuery?: ((...args: any[]) => any) | undefined;
41
76
  onReset?: ((...args: any[]) => any) | undefined;
@@ -44,6 +79,32 @@ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropT
44
79
  scheme: any[] | Record<string, any>;
45
80
  model: Record<string, unknown>;
46
81
  labelWidth: string;
82
+ responsiveConfig: Partial<{
83
+ readonly xs: {
84
+ readonly span: 24;
85
+ readonly colsPerRow: 1;
86
+ };
87
+ readonly sm: {
88
+ readonly span: 12;
89
+ readonly colsPerRow: 2;
90
+ };
91
+ readonly md: {
92
+ readonly span: 8;
93
+ readonly colsPerRow: 3;
94
+ };
95
+ readonly lg: {
96
+ readonly span: 6;
97
+ readonly colsPerRow: 4;
98
+ };
99
+ readonly xl: {
100
+ readonly span: 6;
101
+ readonly colsPerRow: 4;
102
+ };
103
+ readonly xxl: {
104
+ readonly span: 6;
105
+ readonly colsPerRow: 4;
106
+ };
107
+ }>;
47
108
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
48
109
  export default _default;
49
110
  //# sourceMappingURL=FormLayout.d.ts.map
@@ -1,8 +1,60 @@
1
- import { defineComponent, ref, watchEffect, watch, createVNode, onMounted } from 'vue';
2
- import { Space, Button, Form, Row, Col, FormItem } from 'ant-design-vue';
1
+ import { defineComponent, ref, watchEffect, watch, createVNode, computed, onMounted, nextTick } from 'vue';
2
+ import { Grid, Space, Button, Form, Row, Col, FormItem } from 'ant-design-vue';
3
3
  import { SearchOutlined, ReloadOutlined, DoubleRightOutlined } from '@ant-design/icons-vue';
4
4
 
5
5
  "use strict";
6
+ var __defProp = Object.defineProperty;
7
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
8
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
9
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
10
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
11
+ var __spreadValues = (a, b) => {
12
+ for (var prop in b || (b = {}))
13
+ if (__hasOwnProp.call(b, prop))
14
+ __defNormalProp(a, prop, b[prop]);
15
+ if (__getOwnPropSymbols)
16
+ for (var prop of __getOwnPropSymbols(b)) {
17
+ if (__propIsEnum.call(b, prop))
18
+ __defNormalProp(a, prop, b[prop]);
19
+ }
20
+ return a;
21
+ };
22
+ const {
23
+ useBreakpoint
24
+ } = Grid;
25
+ const RESPONSIVE_CONFIG = {
26
+ xs: {
27
+ span: 24,
28
+ colsPerRow: 1
29
+ },
30
+ // < 576px - 手机
31
+ sm: {
32
+ span: 12,
33
+ colsPerRow: 2
34
+ },
35
+ // ≥ 576px - 平板竖屏
36
+ md: {
37
+ span: 8,
38
+ colsPerRow: 3
39
+ },
40
+ // ≥ 768px - 平板横屏
41
+ lg: {
42
+ span: 6,
43
+ colsPerRow: 4
44
+ },
45
+ // ≥ 992px - 小桌面
46
+ xl: {
47
+ span: 6,
48
+ colsPerRow: 4
49
+ },
50
+ // ≥ 1200px - 桌面
51
+ xxl: {
52
+ span: 6,
53
+ colsPerRow: 4
54
+ }
55
+ // ≥ 1600px - 大桌面
56
+ };
57
+ const DEFAULT_VISIBLE_ROWS = 2;
6
58
  var FormLayout = /* @__PURE__ */ defineComponent({
7
59
  name: "DQueryForm",
8
60
  props: {
@@ -21,6 +73,11 @@ var FormLayout = /* @__PURE__ */ defineComponent({
21
73
  loading: {
22
74
  type: Boolean,
23
75
  default: false
76
+ },
77
+ // 自定义响应式配置(可选)
78
+ responsiveConfig: {
79
+ type: Object,
80
+ default: () => ({})
24
81
  }
25
82
  },
26
83
  emits: ["reset", "query"],
@@ -39,6 +96,8 @@ var FormLayout = /* @__PURE__ */ defineComponent({
39
96
  const {
40
97
  rowRef,
41
98
  actionSpan,
99
+ actionPush,
100
+ currentSpan,
42
101
  onExpend,
43
102
  expendBtnVisible,
44
103
  isExpend
@@ -115,47 +174,109 @@ var FormLayout = /* @__PURE__ */ defineComponent({
115
174
  }
116
175
  function useExpand() {
117
176
  const gridCount = 24;
118
- const colSpan = 6;
119
- const colsPerRow = 4;
177
+ const screens = useBreakpoint();
178
+ const mergedConfig = computed(() => __spreadValues(__spreadValues({}, RESPONSIVE_CONFIG), props.responsiveConfig));
179
+ const currentConfig = computed(() => {
180
+ const config = mergedConfig.value;
181
+ if (screens.value.xxl) return config.xxl;
182
+ if (screens.value.xl) return config.xl;
183
+ if (screens.value.lg) return config.lg;
184
+ if (screens.value.md) return config.md;
185
+ if (screens.value.sm) return config.sm;
186
+ return config.xs;
187
+ });
188
+ const currentSpan2 = computed(() => currentConfig.value.span);
189
+ const colsPerRow = computed(() => currentConfig.value.colsPerRow);
120
190
  const actionSpan2 = ref(6);
191
+ const actionPush2 = ref(0);
121
192
  const isExpend2 = ref(false);
122
193
  const expendBtnVisible2 = ref(false);
123
194
  const rowRef2 = ref(null);
124
195
  onMounted(() => {
125
- handleShowOrHidden();
196
+ updateLayout();
197
+ });
198
+ watch(screens, () => {
199
+ nextTick(() => {
200
+ updateLayout();
201
+ });
202
+ }, {
203
+ deep: true
126
204
  });
127
205
  function onExpend2() {
128
206
  isExpend2.value = !isExpend2.value;
129
- handleShowOrHidden();
207
+ updateLayout();
130
208
  }
131
- function handleShowOrHidden() {
132
- var _a, _b;
133
- const colEl = Array.from((_b = (_a = rowRef2.value) == null ? void 0 : _a.$el) == null ? void 0 : _b.children);
209
+ function updateLayout() {
210
+ var _a;
211
+ const rowEl = (_a = rowRef2.value) == null ? void 0 : _a.$el;
212
+ if (!rowEl) return;
213
+ const colEl = Array.from(rowEl.children);
134
214
  const colElLen = colEl.length - 1;
135
- const occupiedCols = colElLen * colSpan;
136
- const fullRows = Math.ceil(colElLen / colsPerRow);
137
- const lastRowCols = occupiedCols % gridCount;
138
- const remainingCols = gridCount - lastRowCols;
139
- if (fullRows > 2) {
215
+ if (colElLen <= 0) return;
216
+ const actualSpan = currentSpan2.value;
217
+ const cols = colsPerRow.value;
218
+ colEl.forEach((col, index) => {
219
+ if (index === colElLen) return;
220
+ updateColSpan(col, actualSpan);
221
+ col.style.display = "";
222
+ });
223
+ const lastSlotIndex = cols * DEFAULT_VISIBLE_ROWS - 1;
224
+ if (colElLen > lastSlotIndex) {
140
225
  expendBtnVisible2.value = true;
226
+ if (!isExpend2.value) {
227
+ colEl.forEach((col, index) => {
228
+ if (index === colElLen) return;
229
+ if (index >= lastSlotIndex) {
230
+ col.style.display = "none";
231
+ }
232
+ });
233
+ actionSpan2.value = actualSpan;
234
+ actionPush2.value = 0;
235
+ } else {
236
+ const lastRowItems = colElLen % cols;
237
+ const lastRowOccupied = lastRowItems === 0 ? gridCount : lastRowItems * actualSpan;
238
+ const remainingCols = gridCount - lastRowOccupied;
239
+ if (remainingCols >= actualSpan) {
240
+ actionSpan2.value = remainingCols;
241
+ actionPush2.value = 0;
242
+ } else {
243
+ actionSpan2.value = actualSpan;
244
+ actionPush2.value = gridCount - actualSpan;
245
+ }
246
+ }
141
247
  } else {
142
- actionSpan2.value = remainingCols;
248
+ expendBtnVisible2.value = false;
249
+ const lastRowItems = colElLen % cols;
250
+ const lastRowOccupied = lastRowItems === 0 ? gridCount : lastRowItems * actualSpan;
251
+ const remainingCols = gridCount - lastRowOccupied;
252
+ if (remainingCols >= actualSpan) {
253
+ actionSpan2.value = remainingCols;
254
+ actionPush2.value = 0;
255
+ } else {
256
+ actionSpan2.value = actualSpan;
257
+ actionPush2.value = gridCount - actualSpan;
258
+ }
143
259
  }
144
- const lastRowStartIndex = colsPerRow * (fullRows - 1) - 1;
145
- if (expendBtnVisible2.value) {
146
- colEl.forEach((col, index) => {
147
- if (index >= lastRowStartIndex) {
148
- index !== colElLen ? col.style.display = !isExpend2.value ? "none" : "block" : null;
260
+ }
261
+ function updateColSpan(colEl, newSpan) {
262
+ const classList = colEl.classList;
263
+ for (let i = classList.length - 1; i >= 0; i--) {
264
+ const className = classList[i];
265
+ if (className.startsWith("ant-col-") && !className.includes("-offset-") && !className.includes("-push-") && !className.includes("-pull-")) {
266
+ const span = parseInt(className.replace("ant-col-", ""), 10);
267
+ if (!isNaN(span)) {
268
+ classList.remove(className);
269
+ break;
149
270
  }
150
- });
151
- }
152
- if (expendBtnVisible2.value) {
153
- isExpend2.value ? actionSpan2.value = remainingCols : actionSpan2.value = colSpan;
271
+ }
154
272
  }
273
+ classList.add(`ant-col-${newSpan}`);
155
274
  }
156
275
  return {
157
276
  rowRef: rowRef2,
158
277
  actionSpan: actionSpan2,
278
+ actionPush: actionPush2,
279
+ currentSpan: currentSpan2,
159
280
  onExpend: onExpend2,
160
281
  expendBtnVisible: expendBtnVisible2,
161
282
  isExpend: isExpend2
@@ -180,8 +301,11 @@ var FormLayout = /* @__PURE__ */ defineComponent({
180
301
  var _a;
181
302
  return [(_a = slots.default) == null ? void 0 : _a.call(slots), createVNode(Col, {
182
303
  "span": actionSpan.value,
304
+ "push": actionPush.value,
183
305
  "style": {
184
- textAlign: "right"
306
+ display: "flex",
307
+ justifyContent: "flex-end",
308
+ alignItems: "flex-start"
185
309
  }
186
310
  }, {
187
311
  default: () => [createVNode(FormItem, null, {