@ditari/bsui 5.0.30 → 5.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/card/Card.cjs +49 -0
- package/dist/cjs/components/card/Card.cjs.map +1 -0
- package/dist/cjs/components/card/index.cjs +8 -0
- package/dist/cjs/components/card/index.cjs.map +1 -0
- package/dist/cjs/components/card/style.cjs +40 -0
- package/dist/cjs/components/card/style.cjs.map +1 -0
- package/dist/cjs/components/date/RangePicker.vue2.cjs +3 -2
- package/dist/cjs/components/date/RangePicker.vue2.cjs.map +1 -1
- package/dist/cjs/components/index.cjs +11 -0
- package/dist/cjs/components/index.cjs.map +1 -1
- package/dist/cjs/components/layout/AppContext.cjs +7 -0
- package/dist/cjs/components/layout/AppContext.cjs.map +1 -0
- package/dist/cjs/components/layout/Layout.vue2.cjs +8 -14
- package/dist/cjs/components/layout/Layout.vue2.cjs.map +1 -1
- package/dist/cjs/components/layout/Show.cjs +6 -1
- package/dist/cjs/components/layout/Show.cjs.map +1 -1
- package/dist/cjs/components/layout/components/layout/ThemeApp.vue2.cjs +0 -1
- package/dist/cjs/components/layout/components/layout/ThemeApp.vue2.cjs.map +1 -1
- package/dist/cjs/components/layout/components/menu/Menu.cjs +37 -38
- package/dist/cjs/components/layout/components/menu/Menu.cjs.map +1 -1
- package/dist/cjs/components/table-form/TableForm.cjs +109 -0
- package/dist/cjs/components/table-form/TableForm.cjs.map +1 -0
- package/dist/cjs/components/table-form/TableFormItem.cjs +112 -0
- package/dist/cjs/components/table-form/TableFormItem.cjs.map +1 -0
- package/dist/cjs/components/table-form/index.cjs +16 -0
- package/dist/cjs/components/table-form/index.cjs.map +1 -0
- package/dist/cjs/components/table-form/interface.cjs +58 -0
- package/dist/cjs/components/table-form/interface.cjs.map +1 -0
- package/dist/cjs/components/table-form/style.cjs +124 -0
- package/dist/cjs/components/table-form/style.cjs.map +1 -0
- package/dist/cjs/hooks/useDesign.cjs +31 -0
- package/dist/cjs/hooks/useDesign.cjs.map +1 -0
- package/dist/cjs/index.cjs +13 -3
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/utils/withInstall.cjs +18 -0
- package/dist/cjs/utils/withInstall.cjs.map +1 -0
- package/dist/esm/components/card/Card.mjs +47 -0
- package/dist/esm/components/card/Card.mjs.map +1 -0
- package/dist/esm/components/card/index.mjs +4 -0
- package/dist/esm/components/card/index.mjs.map +1 -0
- package/dist/esm/components/card/style.mjs +38 -0
- package/dist/esm/components/card/style.mjs.map +1 -0
- package/dist/esm/components/date/RangePicker.vue2.mjs +4 -3
- package/dist/esm/components/date/RangePicker.vue2.mjs.map +1 -1
- package/dist/esm/components/index.mjs +5 -0
- package/dist/esm/components/index.mjs.map +1 -1
- package/dist/esm/components/layout/AppContext.mjs +5 -0
- package/dist/esm/components/layout/AppContext.mjs.map +1 -0
- package/dist/esm/components/layout/Layout.vue2.mjs +9 -15
- package/dist/esm/components/layout/Layout.vue2.mjs.map +1 -1
- package/dist/esm/components/layout/Show.mjs +7 -2
- package/dist/esm/components/layout/Show.mjs.map +1 -1
- package/dist/esm/components/layout/components/layout/ThemeApp.vue2.mjs +0 -1
- package/dist/esm/components/layout/components/layout/ThemeApp.vue2.mjs.map +1 -1
- package/dist/esm/components/layout/components/menu/Menu.mjs +39 -40
- package/dist/esm/components/layout/components/menu/Menu.mjs.map +1 -1
- package/dist/esm/components/table-form/TableForm.mjs +106 -0
- package/dist/esm/components/table-form/TableForm.mjs.map +1 -0
- package/dist/esm/components/table-form/TableFormItem.mjs +110 -0
- package/dist/esm/components/table-form/TableFormItem.mjs.map +1 -0
- package/dist/esm/components/table-form/index.mjs +10 -0
- package/dist/esm/components/table-form/index.mjs.map +1 -0
- package/dist/esm/components/table-form/interface.mjs +54 -0
- package/dist/esm/components/table-form/interface.mjs.map +1 -0
- package/dist/esm/components/table-form/style.mjs +122 -0
- package/dist/esm/components/table-form/style.mjs.map +1 -0
- package/dist/esm/hooks/useDesign.mjs +28 -0
- package/dist/esm/hooks/useDesign.mjs.map +1 -0
- package/dist/esm/index.mjs +4 -0
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/utils/withInstall.mjs +16 -0
- package/dist/esm/utils/withInstall.mjs.map +1 -0
- package/dist/types/components/card/Card.d.ts +6 -0
- package/dist/types/components/card/Card.d.ts.map +1 -0
- package/dist/types/components/card/index.d.ts +3 -0
- package/dist/types/components/card/index.d.ts.map +1 -0
- package/dist/types/components/card/style.d.ts +9 -0
- package/dist/types/components/card/style.d.ts.map +1 -0
- package/dist/types/components/date/RangePicker.vue.d.ts +3 -0
- package/dist/types/components/date/RangePicker.vue.d.ts.map +1 -1
- package/dist/types/components/index.d.ts +2 -0
- package/dist/types/components/index.d.ts.map +1 -1
- package/dist/types/components/layout/AppContext.d.ts +11 -0
- package/dist/types/components/layout/AppContext.d.ts.map +1 -0
- package/dist/types/components/layout/Layout.vue.d.ts +11 -2
- package/dist/types/components/layout/Layout.vue.d.ts.map +1 -1
- package/dist/types/components/layout/Show.d.ts.map +1 -1
- package/dist/types/components/layout/components/layout/ThemeApp.vue.d.ts.map +1 -1
- package/dist/types/components/layout/components/menu/Menu.d.ts.map +1 -1
- package/dist/types/components/table-form/TableForm.d.ts +57 -0
- package/dist/types/components/table-form/TableForm.d.ts.map +1 -0
- package/dist/types/components/table-form/TableFormItem.d.ts +23 -0
- package/dist/types/components/table-form/TableFormItem.d.ts.map +1 -0
- package/dist/types/components/table-form/index.d.ts +9 -0
- package/dist/types/components/table-form/index.d.ts.map +1 -0
- package/dist/types/components/table-form/interface.d.ts +57 -0
- package/dist/types/components/table-form/interface.d.ts.map +1 -0
- package/dist/types/components/table-form/style.d.ts +12 -0
- package/dist/types/components/table-form/style.d.ts.map +1 -0
- package/dist/types/hooks/useDesign.d.ts +8 -0
- package/dist/types/hooks/useDesign.d.ts.map +1 -0
- package/dist/types/utils/withInstall.d.ts +12 -0
- package/dist/types/utils/withInstall.d.ts.map +1 -0
- package/package.json +3 -3
package/dist/cjs/index.cjs
CHANGED
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var index$
|
|
5
|
+
var index$2 = require('./components/index.cjs');
|
|
6
6
|
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 Card = require('./components/card/Card.cjs');
|
|
10
11
|
var RangePicker_vue_vue_type_script_setup_true_lang = require('./components/date/RangePicker.vue2.cjs');
|
|
11
12
|
var FormLayout = require('./components/form/FormLayout.cjs');
|
|
12
13
|
var Moon = require('./components/icon/Moon.vue.cjs');
|
|
@@ -17,11 +18,14 @@ var Menu = require('./components/layout/components/menu/Menu.cjs');
|
|
|
17
18
|
var Layout_vue_vue_type_script_setup_true_lang = require('./components/layout/Layout.vue2.cjs');
|
|
18
19
|
var List = require('./components/layout/List.cjs');
|
|
19
20
|
var Show = require('./components/layout/Show.cjs');
|
|
21
|
+
var _interface = require('./components/table-form/interface.cjs');
|
|
22
|
+
var index$1 = require('./components/table-form/index.cjs');
|
|
23
|
+
var TableFormItem = require('./components/table-form/TableFormItem.cjs');
|
|
20
24
|
|
|
21
25
|
"use strict";
|
|
22
26
|
const install = (app) => {
|
|
23
|
-
Object.keys(index$
|
|
24
|
-
const component = index$
|
|
27
|
+
Object.keys(index$2).forEach((key) => {
|
|
28
|
+
const component = index$2[key];
|
|
25
29
|
const plugin = component;
|
|
26
30
|
if (plugin.install) {
|
|
27
31
|
app.use(plugin);
|
|
@@ -37,6 +41,7 @@ exports.DicRep = DicReplace.default;
|
|
|
37
41
|
exports.Select = Select_vue_vue_type_script_setup_true_lang.default;
|
|
38
42
|
exports.Tab = Tab_vue_vue_type_script_setup_true_lang.default;
|
|
39
43
|
exports.Table = Table.default;
|
|
44
|
+
exports.Card = Card.Card;
|
|
40
45
|
exports.RangePicker = RangePicker_vue_vue_type_script_setup_true_lang.default;
|
|
41
46
|
exports.FormLayout = FormLayout.default;
|
|
42
47
|
exports.Moon = Moon.default;
|
|
@@ -47,6 +52,11 @@ exports.Menu = Menu.default;
|
|
|
47
52
|
exports.Layout = Layout_vue_vue_type_script_setup_true_lang.default;
|
|
48
53
|
exports.List = List.default;
|
|
49
54
|
exports.Show = Show.default;
|
|
55
|
+
exports.DEFAULT_STYLES_CONFIG = _interface.DEFAULT_STYLES_CONFIG;
|
|
56
|
+
exports.tableFormItemProps = _interface.tableFormItemProps;
|
|
57
|
+
exports.tableFormProps = _interface.tableFormProps;
|
|
58
|
+
exports.TableForm = index$1.TableForm;
|
|
59
|
+
exports.TableFormItem = TableFormItem.TableFormItem;
|
|
50
60
|
exports.default = index;
|
|
51
61
|
exports.install = install;
|
|
52
62
|
//# sourceMappingURL=index.cjs.map
|
package/dist/cjs/index.cjs.map
CHANGED
|
@@ -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":"
|
|
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;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
"use strict";
|
|
4
|
+
const withInstall = (component) => {
|
|
5
|
+
const comp = component;
|
|
6
|
+
if (!comp.install) {
|
|
7
|
+
comp.install = (app) => {
|
|
8
|
+
const name = comp.name;
|
|
9
|
+
if (name) {
|
|
10
|
+
app.component(name, comp);
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
return comp;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
exports.withInstall = withInstall;
|
|
18
|
+
//# sourceMappingURL=withInstall.cjs.map
|
|
@@ -0,0 +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;;;;"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { defineComponent, createVNode } from 'vue';
|
|
2
|
+
import { cx } from '@emotion/css';
|
|
3
|
+
import { useDesign } from '../../hooks/useDesign.mjs';
|
|
4
|
+
import { withInstall } from '../../utils/withInstall.mjs';
|
|
5
|
+
import { useStyle } from './style.mjs';
|
|
6
|
+
|
|
7
|
+
"use strict";
|
|
8
|
+
const _Card = /* @__PURE__ */ defineComponent({
|
|
9
|
+
name: "DCard",
|
|
10
|
+
props: {
|
|
11
|
+
title: String
|
|
12
|
+
},
|
|
13
|
+
setup(props, {
|
|
14
|
+
slots
|
|
15
|
+
}) {
|
|
16
|
+
const {
|
|
17
|
+
getPrefixCls
|
|
18
|
+
} = useDesign("card");
|
|
19
|
+
const styles = useStyle();
|
|
20
|
+
return () => {
|
|
21
|
+
var _a;
|
|
22
|
+
const rootCls = getPrefixCls();
|
|
23
|
+
const headerCls = getPrefixCls("head");
|
|
24
|
+
const iconCls = getPrefixCls("icon");
|
|
25
|
+
const titleCls = getPrefixCls("title");
|
|
26
|
+
const actionCls = getPrefixCls("action");
|
|
27
|
+
const bodyCls = getPrefixCls("body");
|
|
28
|
+
return createVNode("div", {
|
|
29
|
+
"class": cx(rootCls, styles.container)
|
|
30
|
+
}, [createVNode("div", {
|
|
31
|
+
"class": cx(headerCls, styles.header)
|
|
32
|
+
}, [slots.icon && createVNode("div", {
|
|
33
|
+
"class": cx(iconCls, styles.icon)
|
|
34
|
+
}, [slots.icon()]), createVNode("div", {
|
|
35
|
+
"class": cx(titleCls, styles.header_title)
|
|
36
|
+
}, [props.title])]), slots.action && createVNode("div", {
|
|
37
|
+
"class": cx(actionCls, styles.action)
|
|
38
|
+
}, [slots.action()]), createVNode("div", {
|
|
39
|
+
"class": cx(bodyCls, styles.body)
|
|
40
|
+
}, [(_a = slots.default) == null ? void 0 : _a.call(slots)])]);
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
const Card = withInstall(_Card);
|
|
45
|
+
|
|
46
|
+
export { Card };
|
|
47
|
+
//# sourceMappingURL=Card.mjs.map
|
|
@@ -0,0 +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 && <div class={cx(iconCls, styles.icon)}>{slots.icon()}</div>}\r\n <div class={cx(titleCls, styles.header_title)}>{props.title}</div>\r\n </div>\r\n {/*action*/}\r\n {slots.action && <div class={cx(actionCls, styles.action)}>{slots.action()}</div>}\r\n\r\n {/* Body 区域 */}\r\n <div class={cx(bodyCls, styles.body)}>{slots.default?.()}</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,EAAgBC,EAAAA,CAAGL,OAAAA,EAASJ,MAAAA,CAAOY,IAAI;AAAA,OAAC,EAAA,CAAGf,KAAAA,CAAMe,IAAAA,EAAM,CAAA,CAAA,EAAOJ,YAAA,KAAA,EAAA;AAAA,QAAA,OAAA,EAC7DC,EAAAA,CAAGJ,QAAAA,EAAUL,MAAAA,CAAOa,YAAY;AAAA,OAAC,EAAA,CAAGpB,KAAAA,CAAMC,KAAK,CAAA,CAAA,CAAA,CAAA,EAG5DG,KAAAA,CAAMiB,MAAAA,IAAMN,WAAAA,CAAA,KAAA,EAAA;AAAA,QAAA,OAAA,EAAgBC,EAAAA,CAAGH,SAAAA,EAAWN,MAAAA,CAAOc,MAAM;AAAA,OAAC,EAAA,CAAGjB,KAAAA,CAAMiB,MAAAA,EAAQ,CAAA,CAAA,EAAON,YAAA,KAAA,EAAA;AAAA,QAAA,OAAA,EAGrEC,EAAAA,CAAGF,OAAAA,EAASP,MAAAA,CAAOe,IAAI;AAAA,SAAC,CAAA,CAAGlB,EAAAA,GAAAA,KAAAA,CAAMmB,YAANnB,IAAAA,GAAAA,KAAAA,CAAAA,GAAAA,EAAAA,CAAAA,IAAAA,CAAAA,KAAAA,CAAiB,CAAA,CAAA,CAAA,CAAA;AAAA,IAG9D,CAAA;AAAA,EACF;AACF,CAAC,CAAA;AAEM,MAAMoB,IAAAA,GAAOC,YAAY5B,KAAK;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { css } from '@emotion/css';
|
|
2
|
+
|
|
3
|
+
"use strict";
|
|
4
|
+
const useStyle = () => {
|
|
5
|
+
return {
|
|
6
|
+
container: css`
|
|
7
|
+
display: flex;
|
|
8
|
+
flex-direction: column;
|
|
9
|
+
background-color: #fff;
|
|
10
|
+
`,
|
|
11
|
+
header: css`
|
|
12
|
+
display: flex;
|
|
13
|
+
margin-bottom: 20px;
|
|
14
|
+
`,
|
|
15
|
+
header_title: css`
|
|
16
|
+
line-height: 1.5;
|
|
17
|
+
/* 如果标题过长,防止换行破坏布局,可以加这行 */
|
|
18
|
+
white-space: nowrap;
|
|
19
|
+
`,
|
|
20
|
+
// 可选:如果你需要对 icon 容器做特殊处理(例如防止图标被压缩)
|
|
21
|
+
icon: css`
|
|
22
|
+
margin-right: 10px;
|
|
23
|
+
display: inline-flex;
|
|
24
|
+
align-items: center;
|
|
25
|
+
flex-shrink: 0; /* 防止标题过长时挤压图标 */
|
|
26
|
+
`,
|
|
27
|
+
action: css`
|
|
28
|
+
margin-bottom: 10px;
|
|
29
|
+
`,
|
|
30
|
+
body: css`
|
|
31
|
+
display: flex;
|
|
32
|
+
flex-direction: column;
|
|
33
|
+
`
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
export { useStyle };
|
|
38
|
+
//# sourceMappingURL=style.mjs.map
|
|
@@ -0,0 +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,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent, ref, watch, resolveComponent, createBlock, openBlock } from 'vue';
|
|
1
|
+
import { defineComponent, useAttrs, ref, watch, resolveComponent, createBlock, openBlock, mergeProps, unref } from 'vue';
|
|
2
2
|
|
|
3
3
|
"use strict";
|
|
4
4
|
var __defProp = Object.defineProperty;
|
|
@@ -60,6 +60,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
60
60
|
};
|
|
61
61
|
const props = __props;
|
|
62
62
|
const emits = __emit;
|
|
63
|
+
const attrs = useAttrs();
|
|
63
64
|
const innerValue = ref(null);
|
|
64
65
|
watch(
|
|
65
66
|
() => props.value,
|
|
@@ -107,14 +108,14 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
107
108
|
};
|
|
108
109
|
return (_ctx, _cache) => {
|
|
109
110
|
const _component_a_range_picker = resolveComponent("a-range-picker");
|
|
110
|
-
return openBlock(), createBlock(_component_a_range_picker, {
|
|
111
|
+
return openBlock(), createBlock(_component_a_range_picker, mergeProps(unref(attrs), {
|
|
111
112
|
style: { "width": "100%" },
|
|
112
113
|
value: innerValue.value,
|
|
113
114
|
"onUpdate:value": _cache[0] || (_cache[0] = ($event) => innerValue.value = $event),
|
|
114
115
|
placeholder: ["\u5F00\u59CB\u65F6\u95F4", "\u7ED3\u675F\u65F6\u95F4"],
|
|
115
116
|
onChange: handleChange,
|
|
116
117
|
valueFormat: __props.format
|
|
117
|
-
}, null,
|
|
118
|
+
}), null, 16, ["value", "valueFormat"]);
|
|
118
119
|
};
|
|
119
120
|
}
|
|
120
121
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RangePicker.vue2.mjs","sources":["../../../../src/components/date/RangePicker.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { ref, watch } from \"vue\";\r\n\r\n// 工具函数:规范化路径\r\nconst normalizePath = (\r\n field: string | string[]\r\n): string[] => {\r\n return Array.isArray(field) ? field : [field];\r\n};\r\n\r\n// 工具函数:获取嵌套值\r\nconst getNestedValue = <T extends Record<string, unknown>>(\r\n obj: T,\r\n field: string | string[]\r\n): string | null | undefined => {\r\n const path = normalizePath(field);\r\n let current: unknown = obj;\r\n\r\n for (const key of path) {\r\n if (\r\n current &&\r\n typeof current === \"object\" &&\r\n key in current\r\n ) {\r\n current = (current as Record<string, unknown>)[key];\r\n } else {\r\n return undefined;\r\n }\r\n }\r\n return current as string | null | undefined;\r\n};\r\n\r\n// 工具函数:设置嵌套值\r\nconst setNestedValue = <T extends Record<string, unknown>>(\r\n obj: T,\r\n field: string | string[],\r\n value: string | null\r\n): T => {\r\n const path = normalizePath(field);\r\n const newObj = { ...obj };\r\n let current: Record<string, unknown> = newObj;\r\n\r\n for (let i = 0; i < path.length - 1; i++) {\r\n const key = path[i];\r\n if (\r\n !(key in current) ||\r\n typeof current[key] !== \"object\" ||\r\n current[key] === null\r\n ) {\r\n current[key] = {};\r\n } else {\r\n current[key] = { ...current[key] };\r\n }\r\n current = current[key] as Record<string, unknown>;\r\n }\r\n\r\n current[path[path.length - 1]] = value;\r\n return newObj as T;\r\n};\r\n\r\n// 定义 props 类型\r\ninterface Props {\r\n value: Record<string, unknown>;\r\n startField?: string | string[];\r\n endField?: string | string[];\r\n format?: string;\r\n}\r\n\r\nconst props = defineProps({\n value: { type: Object, required: true, default: () => ({}) },\n startField: { type: [String, Array], required: false, default: \"startTime\" },\n endField: { type: [String, Array], required: false, default: \"endTime\" },\n format: { type: String, required: false, default: \"YYYY-MM-DD\" }\n});\r\n\r\n// 定义 emits 类型\r\nconst emits = defineEmits([\"update:value\", \"change\"]);\r\n\r\n// 内部值,用于日期选择器\r\nconst innerValue = ref<any>(null); // 使用 any 代替 Dayjs\r\n\r\n// 监听外部 value 变化,同步内部值\r\nwatch(\r\n () => props.value,\r\n newVal => {\r\n const start = getNestedValue(newVal, props.startField);\r\n const end = getNestedValue(newVal, props.endField);\r\n\r\n if (start && end) {\r\n innerValue.value = [start, end];\r\n } else {\r\n innerValue.value = null;\r\n }\r\n },\r\n { immediate: true, deep: true }\r\n);\r\n\r\n// 处理日期变化\r\nconst handleChange = (dates: [any, any]) => {\r\n let updatedValue = { ...props.value };\r\n\r\n if (dates && dates.length === 2) {\r\n const [startTime, endTime] = dates;\r\n updatedValue = setNestedValue(\r\n updatedValue,\r\n props.startField,\r\n startTime ? startTime : null\r\n );\r\n updatedValue = setNestedValue(\r\n updatedValue,\r\n props.endField,\r\n endTime ? endTime : null\r\n );\r\n // 更新 innerValue 为当前选择的日期范围数组\r\n innerValue.value = dates;\r\n } else {\r\n updatedValue = setNestedValue(\r\n updatedValue,\r\n props.startField,\r\n null\r\n );\r\n updatedValue = setNestedValue(\r\n updatedValue,\r\n props.endField,\r\n null\r\n );\r\n // 清空 innerValue\r\n innerValue.value = null;\r\n }\r\n\r\n emits(\"update:value\", updatedValue);\r\n emits(\"change\", updatedValue);\r\n};\r\n</script>\r\n\r\n<template>\r\n <a-range-picker\r\n style=\"width: 100%\"\r\n v-model:value=\"innerValue\"\r\n :placeholder=\"['开始时间', '结束时间']\"\r\n @change=\"handleChange\"\r\n :valueFormat=\"format\"\r\n />\r\n</template>\r\n\r\n<style scoped></style>\r\n"],"names":["_createBlock"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAIA,IAAA,MAAM,aAAA,GAAgB,CACpB,KAAA,KACa;AACb,MAAA,OAAO,MAAM,OAAA,CAAQ,KAAK,CAAA,GAAI,KAAA,GAAQ,CAAC,KAAK,CAAA;AAAA,IAC9C,CAAA;AAGA,IAAA,MAAM,cAAA,GAAiB,CACrB,GAAA,EACA,KAAA,KAC8B;AAC9B,MAAA,MAAM,IAAA,GAAO,cAAc,KAAK,CAAA;AAChC,MAAA,IAAI,OAAA,GAAmB,GAAA;AAEvB,MAAA,KAAA,MAAW,OAAO,IAAA,EAAM;AACtB,QAAA,IACE,OAAA,IACA,OAAO,OAAA,KAAY,QAAA,IACnB,OAAO,OAAA,EACP;AACA,UAAA,OAAA,GAAW,QAAoC,GAAG,CAAA;AAAA,QACpD,CAAA,MAAO;AACL,UAAA,OAAO,KAAA,CAAA;AAAA,QACT;AAAA,MACF;AACA,MAAA,OAAO,OAAA;AAAA,IACT,CAAA;AAGA,IAAA,MAAM,cAAA,GAAiB,CACrB,GAAA,EACA,KAAA,EACA,KAAA,KACM;AACN,MAAA,MAAM,IAAA,GAAO,cAAc,KAAK,CAAA;AAChC,MAAA,MAAM,SAAS,cAAA,CAAA,EAAA,EAAK,GAAA,CAAA;AACpB,MAAA,IAAI,OAAA,GAAmC,MAAA;AAEvC,MAAA,KAAA,IAAS,IAAI,CAAA,EAAG,CAAA,GAAI,IAAA,CAAK,MAAA,GAAS,GAAG,CAAA,EAAA,EAAK;AACxC,QAAA,MAAM,GAAA,GAAM,KAAK,CAAC,CAAA;AAClB,QAAA,IACE,EAAE,GAAA,IAAO,OAAA,CAAA,IACT,OAAO,OAAA,CAAQ,GAAG,CAAA,KAAM,QAAA,IACxB,OAAA,CAAQ,GAAG,CAAA,KAAM,IAAA,EACjB;AACA,UAAA,OAAA,CAAQ,GAAG,IAAI,EAAC;AAAA,QAClB,CAAA,MAAO;AACL,UAAA,OAAA,CAAQ,GAAG,CAAA,GAAI,cAAA,CAAA,EAAA,EAAK,OAAA,CAAQ,GAAG,CAAA,CAAA;AAAA,QACjC;AACA,QAAA,OAAA,GAAU,QAAQ,GAAG,CAAA;AAAA,MACvB;AAEA,MAAA,OAAA,CAAQ,IAAA,CAAK,IAAA,CAAK,MAAA,GAAS,CAAC,CAAC,CAAA,GAAI,KAAA;AACjC,MAAA,OAAO,MAAA;AAAA,IACT,CAAA;AAUA,IAAA,MAAM,KAAA,GAAQ,OAAA;AAQd,IAAA,MAAM,KAAA,GAAQ,MAAA;
|
|
1
|
+
{"version":3,"file":"RangePicker.vue2.mjs","sources":["../../../../src/components/date/RangePicker.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { ref, useAttrs, watch } from \"vue\";\r\n\r\n// 工具函数:规范化路径\r\nconst normalizePath = (\r\n field: string | string[]\r\n): string[] => {\r\n return Array.isArray(field) ? field : [field];\r\n};\r\n\r\n// 工具函数:获取嵌套值\r\nconst getNestedValue = <T extends Record<string, unknown>>(\r\n obj: T,\r\n field: string | string[]\r\n): string | null | undefined => {\r\n const path = normalizePath(field);\r\n let current: unknown = obj;\r\n\r\n for (const key of path) {\r\n if (\r\n current &&\r\n typeof current === \"object\" &&\r\n key in current\r\n ) {\r\n current = (current as Record<string, unknown>)[key];\r\n } else {\r\n return undefined;\r\n }\r\n }\r\n return current as string | null | undefined;\r\n};\r\n\r\n// 工具函数:设置嵌套值\r\nconst setNestedValue = <T extends Record<string, unknown>>(\r\n obj: T,\r\n field: string | string[],\r\n value: string | null\r\n): T => {\r\n const path = normalizePath(field);\r\n const newObj = { ...obj };\r\n let current: Record<string, unknown> = newObj;\r\n\r\n for (let i = 0; i < path.length - 1; i++) {\r\n const key = path[i];\r\n if (\r\n !(key in current) ||\r\n typeof current[key] !== \"object\" ||\r\n current[key] === null\r\n ) {\r\n current[key] = {};\r\n } else {\r\n current[key] = { ...current[key] };\r\n }\r\n current = current[key] as Record<string, unknown>;\r\n }\r\n\r\n current[path[path.length - 1]] = value;\r\n return newObj as T;\r\n};\r\n\r\n// 定义 props 类型\r\ninterface Props {\r\n value: Record<string, unknown>;\r\n startField?: string | string[];\r\n endField?: string | string[];\r\n format?: string;\r\n}\r\n\r\nconst props = defineProps({\n value: { type: Object, required: true, default: () => ({}) },\n startField: { type: [String, Array], required: false, default: \"startTime\" },\n endField: { type: [String, Array], required: false, default: \"endTime\" },\n format: { type: String, required: false, default: \"YYYY-MM-DD\" }\n});\r\n\r\n// 定义 emits 类型\r\nconst emits = defineEmits([\"update:value\", \"change\"]);\r\n\r\nconst attrs = useAttrs();\r\n\r\n// 内部值,用于日期选择器\r\nconst innerValue = ref<any>(null); // 使用 any 代替 Dayjs\r\n\r\n// 监听外部 value 变化,同步内部值\r\nwatch(\r\n () => props.value,\r\n newVal => {\r\n const start = getNestedValue(newVal, props.startField);\r\n const end = getNestedValue(newVal, props.endField);\r\n\r\n if (start && end) {\r\n innerValue.value = [start, end];\r\n } else {\r\n innerValue.value = null;\r\n }\r\n },\r\n { immediate: true, deep: true }\r\n);\r\n\r\n// 处理日期变化\r\nconst handleChange = (dates: [any, any]) => {\r\n let updatedValue = { ...props.value };\r\n\r\n if (dates && dates.length === 2) {\r\n const [startTime, endTime] = dates;\r\n updatedValue = setNestedValue(\r\n updatedValue,\r\n props.startField,\r\n startTime ? startTime : null\r\n );\r\n updatedValue = setNestedValue(\r\n updatedValue,\r\n props.endField,\r\n endTime ? endTime : null\r\n );\r\n // 更新 innerValue 为当前选择的日期范围数组\r\n innerValue.value = dates;\r\n } else {\r\n updatedValue = setNestedValue(\r\n updatedValue,\r\n props.startField,\r\n null\r\n );\r\n updatedValue = setNestedValue(\r\n updatedValue,\r\n props.endField,\r\n null\r\n );\r\n // 清空 innerValue\r\n innerValue.value = null;\r\n }\r\n\r\n emits(\"update:value\", updatedValue);\r\n emits(\"change\", updatedValue);\r\n};\r\n</script>\r\n\r\n<template>\r\n <a-range-picker\r\n v-bind=\"attrs\"\r\n style=\"width: 100%\"\r\n v-model:value=\"innerValue\"\r\n :placeholder=\"['开始时间', '结束时间']\"\r\n @change=\"handleChange\"\r\n :valueFormat=\"format\"\r\n />\r\n</template>\r\n\r\n<style scoped></style>\r\n"],"names":["_createBlock","_mergeProps","_unref"],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import './card/index.mjs';
|
|
1
2
|
import './date/index.mjs';
|
|
2
3
|
import './dic/index.mjs';
|
|
3
4
|
import './form/index.mjs';
|
|
@@ -6,10 +7,12 @@ import './layout/index.mjs';
|
|
|
6
7
|
import './select/index.mjs';
|
|
7
8
|
import './tab/index.mjs';
|
|
8
9
|
import './table/index.mjs';
|
|
10
|
+
export { TableForm } from './table-form/index.mjs';
|
|
9
11
|
export { default as DicRep } from './dic/DicReplace.mjs';
|
|
10
12
|
export { default as Select } from './select/Select.vue2.mjs';
|
|
11
13
|
export { default as Tab } from './tab/Tab.vue2.mjs';
|
|
12
14
|
export { default as Table } from './table/Table.mjs';
|
|
15
|
+
export { Card } from './card/Card.mjs';
|
|
13
16
|
export { default as RangePicker } from './date/RangePicker.vue2.mjs';
|
|
14
17
|
export { default as FormLayout } from './form/FormLayout.mjs';
|
|
15
18
|
export { default as Moon } from './icon/Moon.vue.mjs';
|
|
@@ -20,6 +23,8 @@ export { default as Menu } from './layout/components/menu/Menu.mjs';
|
|
|
20
23
|
export { default as Layout } from './layout/Layout.vue2.mjs';
|
|
21
24
|
export { default as List } from './layout/List.mjs';
|
|
22
25
|
export { default as Show } from './layout/Show.mjs';
|
|
26
|
+
export { DEFAULT_STYLES_CONFIG, tableFormItemProps, tableFormProps } from './table-form/interface.mjs';
|
|
27
|
+
export { TableFormItem } from './table-form/TableFormItem.mjs';
|
|
23
28
|
|
|
24
29
|
"use strict";
|
|
25
30
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AppContext.mjs","sources":["../../../../src/components/layout/AppContext.ts"],"sourcesContent":["import { ComputedRef, VNode } from \"vue\";\r\n\r\nexport const AppContextKey = Symbol(\"d-bsui-context\");\r\nexport interface AppContext {\r\n // 水印\r\n watermarkContent?: ComputedRef<{ content: string }>;\r\n renderMenuIcon?: (item: {\r\n icon: string;\r\n }) => VNode | VNode[];\r\n}\r\n"],"names":[],"mappings":";AAEO,MAAM,aAAA,GAAgB,OAAO,gBAAgB;;;;"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { defineComponent,
|
|
1
|
+
import { defineComponent, provide, computed, watch, resolveComponent, createElementBlock, openBlock, Fragment, createVNode, createBlock, createCommentVNode, normalizeClass, unref, withCtx, createElementVNode, renderSlot } from 'vue';
|
|
2
2
|
import { useRoute } from 'vue-router';
|
|
3
3
|
import { storeToRefs } from 'pinia';
|
|
4
|
+
import { AppContextKey } from './AppContext.mjs';
|
|
4
5
|
import Menu from './components/menu/Menu.mjs';
|
|
5
6
|
import SettingDrawer from './components/settings/SettingDrawer.mjs';
|
|
6
7
|
import { useAppStore, useKeepAliveStore } from '@ditari/store';
|
|
@@ -18,16 +19,19 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
18
19
|
watermark: { type: Object, required: false, default: () => ({
|
|
19
20
|
content: ""
|
|
20
21
|
}) },
|
|
21
|
-
isSettings: { type: Boolean, required: false, default:
|
|
22
|
+
isSettings: { type: Boolean, required: false, default: false },
|
|
23
|
+
renderMenuIcon: { type: Function, required: false, default: void 0 }
|
|
22
24
|
},
|
|
23
25
|
emits: ["onMenuClick"],
|
|
24
26
|
setup(__props, { emit: __emit }) {
|
|
25
27
|
const props = __props;
|
|
26
28
|
const emits = __emit;
|
|
27
29
|
const { layout, modeConfig, sideTokenStyle } = storeToRefs(useAppStore());
|
|
28
|
-
const route = useRoute();
|
|
29
|
-
useWatermark();
|
|
30
30
|
const { onMenuClick } = useMenu();
|
|
31
|
+
provide(AppContextKey, {
|
|
32
|
+
watermarkContent: computed(() => props.watermark || ""),
|
|
33
|
+
renderMenuIcon: props.renderMenuIcon
|
|
34
|
+
});
|
|
31
35
|
const {
|
|
32
36
|
layoutStyle,
|
|
33
37
|
siderStyle,
|
|
@@ -36,6 +40,7 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
36
40
|
} = useStyle();
|
|
37
41
|
useKeepAlive();
|
|
38
42
|
function useKeepAlive() {
|
|
43
|
+
const route = useRoute();
|
|
39
44
|
const { save } = useKeepAliveStore();
|
|
40
45
|
watch(
|
|
41
46
|
() => route.path,
|
|
@@ -47,17 +52,6 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
47
52
|
}
|
|
48
53
|
);
|
|
49
54
|
}
|
|
50
|
-
function useWatermark() {
|
|
51
|
-
const watermarkContent = ref("");
|
|
52
|
-
provide("watermarkContent", watermarkContent);
|
|
53
|
-
watch(
|
|
54
|
-
() => props.watermark,
|
|
55
|
-
(val) => {
|
|
56
|
-
watermarkContent.value = val.content || "";
|
|
57
|
-
},
|
|
58
|
-
{ deep: true, immediate: true }
|
|
59
|
-
);
|
|
60
|
-
}
|
|
61
55
|
function useStyle() {
|
|
62
56
|
const layoutStyle2 = css`
|
|
63
57
|
height: 100vh;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Layout.vue2.mjs","sources":["../../../../src/components/layout/Layout.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { computed, provide,
|
|
1
|
+
{"version":3,"file":"Layout.vue2.mjs","sources":["../../../../src/components/layout/Layout.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { computed, provide, VNode, watch } from \"vue\";\r\nimport { useRoute } from \"vue-router\";\r\nimport { storeToRefs } from \"pinia\";\r\n\r\nimport { AppContext, AppContextKey } from \"./AppContext\";\r\nimport DMenu from \"./components/menu/Menu\";\r\nimport SettingDrawer from \"./components/settings/SettingDrawer\";\r\nimport {\r\n useAppStore,\r\n useKeepAliveStore\r\n} from \"@ditari/store\";\r\nimport { css } from \"@emotion/css\";\r\n\r\nimport HeaderLayout from \"./components/layout/HeaderLayout.vue\";\r\nimport RouterContent from \"./components/layout/RouterContent.vue\";\r\n\r\nconst props = defineProps({\n watermark: { type: Object, required: false, default: () => ({\r\n content: \"\"\r\n }) },\n isSettings: { type: Boolean, required: false, default: false },\n renderMenuIcon: { type: Function, required: false, default: undefined }\n});\r\nconst emits = defineEmits([\"onMenuClick\"]);\r\n\r\nconst { layout, modeConfig, sideTokenStyle } =\r\n storeToRefs(useAppStore());\r\n\r\nconst { onMenuClick } = useMenu();\r\n\r\nprovide<AppContext>(AppContextKey, {\r\n watermarkContent: computed(() => props.watermark || \"\"),\r\n renderMenuIcon: props.renderMenuIcon\r\n});\r\n\r\nconst {\r\n layoutStyle,\r\n siderStyle,\r\n rightStyle,\r\n rightContentStyle\r\n} = useStyle();\r\nuseKeepAlive();\r\n\r\nfunction useKeepAlive() {\r\n const route = useRoute();\r\n // 保存需要被缓存的标签\r\n const { save } = useKeepAliveStore();\r\n\r\n watch(\r\n () => route.path,\r\n () => {\r\n save(route);\r\n },\r\n {\r\n immediate: true\r\n }\r\n );\r\n}\r\n\r\nfunction useStyle() {\r\n const layoutStyle = css`\r\n height: 100vh;\r\n `;\r\n\r\n const transitionStyle = css`\r\n transition: margin-left 0.4s\r\n cubic-bezier(0.22, 1.2, 0.36, 1);\r\n `;\r\n\r\n const left = computed(\r\n () =>\r\n `${layout.value.collapsed ? layout.value.collapsedWidth : layout.value.sideWidth}px`\r\n );\r\n\r\n const siderStyle = computed(\r\n () => css`\r\n position: fixed !important;\r\n top: 0;\r\n bottom: 0;\r\n left: 0;\r\n z-index: 1;\r\n width: ${layout.value.sideWidth}px;\r\n\r\n .app-side {\r\n height: 100%;\r\n display: flex;\r\n flex-direction: column;\r\n ${modeConfig.value.mode === \"light\"\r\n ? `background:${sideTokenStyle.value.bgColor};`\r\n : \"\"}\r\n }\r\n `\r\n );\r\n\r\n const rightStyle = computed(\r\n () => css`\r\n margin-left: ${left.value};\r\n ${transitionStyle}\r\n `\r\n );\r\n\r\n const rightContentStyle = computed(\r\n () => css`\r\n padding-top: ${layout.value.headerHeight}px;\r\n `\r\n );\r\n\r\n return {\r\n layoutStyle,\r\n siderStyle,\r\n rightStyle,\r\n rightContentStyle\r\n };\r\n}\r\n\r\nfunction useMenu() {\r\n const onMenuClick = (item: never) => {\r\n emits(\"onMenuClick\", item);\r\n };\r\n\r\n return {\r\n onMenuClick\r\n };\r\n}\r\n</script>\r\n\r\n<template>\r\n <a-layout :class=\"layoutStyle\">\r\n <a-layout-sider\r\n v-model:collapsed=\"layout.collapsed\"\r\n theme=\"light\"\r\n collapsible\r\n :trigger=\"null\"\r\n :class=\"siderStyle\"\r\n :width=\"layout.sideWidth\"\r\n >\r\n <div class=\"app-side\">\r\n <slot name=\"logo\"></slot>\r\n <d-menu @onMenuClick=\"onMenuClick\" />\r\n </div>\r\n </a-layout-sider>\r\n <a-layout :class=\"rightStyle\">\r\n <header-layout>\r\n <slot name=\"headerRight\"></slot>\r\n </header-layout>\r\n <a-layout-content :class=\"rightContentStyle\">\r\n <RouterContent />\r\n </a-layout-content>\r\n </a-layout>\r\n </a-layout>\r\n\r\n <SettingDrawer v-if=\"isSettings\" />\r\n <a-back-top></a-back-top>\r\n</template>\r\n\r\n<style scoped></style>\r\n"],"names":["layoutStyle","siderStyle","rightStyle","rightContentStyle","onMenuClick","_createVNode","_unref","_createElementVNode","_renderSlot","DMenu","HeaderLayout","RouterContent","_createBlock"],"mappings":"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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { defineComponent,
|
|
1
|
+
import { defineComponent, inject, computed, createVNode, ref } from 'vue';
|
|
2
2
|
import { useRoute, useRouter } from 'vue-router';
|
|
3
3
|
import { theme, Watermark, Flex, PageHeader } from 'ant-design-vue';
|
|
4
4
|
import { storeToRefs } from 'pinia';
|
|
5
5
|
import { useWindowScroll } from '@vueuse/core';
|
|
6
|
+
import { AppContextKey } from './AppContext.mjs';
|
|
6
7
|
import { LeftOutlined } from '@ant-design/icons-vue';
|
|
7
8
|
import { useAppStore, useNavTabStore } from '@ditari/store';
|
|
8
9
|
import { css } from '@emotion/css';
|
|
@@ -26,7 +27,11 @@ const show = /* @__PURE__ */ defineComponent({
|
|
|
26
27
|
const {
|
|
27
28
|
useToken
|
|
28
29
|
} = theme;
|
|
29
|
-
const
|
|
30
|
+
const appContext = inject(AppContextKey, null);
|
|
31
|
+
const watermarkContent = computed(() => {
|
|
32
|
+
var _a;
|
|
33
|
+
return (_a = appContext == null ? void 0 : appContext.watermarkContent) == null ? void 0 : _a.value.content;
|
|
34
|
+
});
|
|
30
35
|
const {
|
|
31
36
|
token
|
|
32
37
|
} = useToken();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Show.mjs","sources":["../../../../src/components/layout/Show.tsx"],"sourcesContent":["import {\r\n computed,\r\n ComputedRef,\r\n defineComponent,\r\n inject,\r\n ref\r\n} from \"vue\";\r\nimport { useRoute, useRouter } from \"vue-router\";\r\nimport {\r\n Flex,\r\n PageHeader,\r\n 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 { LeftOutlined } from \"@ant-design/icons-vue\";\r\nimport { useAppStore, useNavTabStore } from \"@ditari/store\";\r\nimport { css } from \"@emotion/css\";\r\nimport type { GlobalToken } from \"ant-design-vue/es/theme/interface\";\r\n\r\nconst getProps = () => {\r\n return {\r\n close: {\r\n type: Boolean,\r\n default: false\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 const
|
|
1
|
+
{"version":3,"file":"Show.mjs","sources":["../../../../src/components/layout/Show.tsx"],"sourcesContent":["import {\r\n computed,\r\n ComputedRef,\r\n defineComponent,\r\n inject,\r\n ref\r\n} from \"vue\";\r\nimport { useRoute, useRouter } from \"vue-router\";\r\nimport {\r\n Flex,\r\n PageHeader,\r\n 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 } from \"@emotion/css\";\r\nimport type { GlobalToken } from \"ant-design-vue/es/theme/interface\";\r\n\r\nconst getProps = () => {\r\n return {\r\n close: {\r\n type: Boolean,\r\n default: false\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 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 { 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 return () => (\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 <div class={contentStyle.value}>\r\n {slots.default?.()}\r\n </div>\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 );\r\n }\r\n});\r\n\r\nexport default show;\r\n"],"names":["getProps","close","type","Boolean","default","show","defineComponent","name","props","setup","slots","expose","useToken","theme","appContext","inject","AppContextKey","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","Watermark","Flex","PageHeader","backIcon","LeftOutlined","fontSize","extra","_a","footer","subTitle"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ThemeApp.vue2.mjs","sources":["../../../../../../src/components/layout/components/layout/ThemeApp.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { Ref, ref, watch } from \"vue\";\r\nimport { theme } from \"ant-design-vue\";\r\nimport { storeToRefs } from \"pinia\";\r\n\r\nimport { useAppStore } from \"@ditari/store\";\r\n\r\nconst props = defineProps({\n themeJson: { type: Object, required: false, default: () => ({}) }\n});\r\n\r\nconst { appTheme } = useTheme();\r\n\r\nfunction useTheme(): { appTheme: Ref<unknown> } {\r\n const { modeConfig, isCompact } =\r\n storeToRefs(useAppStore());\r\n const appTheme = ref<Record<string, unknown>>({});\r\n const { useToken } = theme;\r\n const { token } = useToken();\r\n\r\n watch(\r\n () => modeConfig.value.mode,\r\n () => {\r\n handleTheme();\r\n },\r\n { immediate: true }\r\n );\r\n\r\n watch(\r\n () => isCompact.value,\r\n () => {\r\n handleTheme();\r\n }\r\n );\r\n\r\n function handleTheme() {\r\n const isDarkMode =\r\n window.matchMedia &&\r\n window.matchMedia(\"(prefers-color-scheme: dark)\")\r\n .matches;\r\n switch (modeConfig.value.mode) {\r\n case \"light\":\r\n if (isCompact.value) {\r\n appTheme.value.algorithm = theme.compactAlgorithm;\r\n appTheme.value.token = {};\r\n } else {\r\n appTheme.value.algorithm = theme.defaultAlgorithm;\r\n appTheme.value.token = {};\r\n }\r\n break;\r\n case \"dark\":\r\n if (isCompact.value) {\r\n appTheme.value.token = props.themeJson;\r\n } else {\r\n appTheme.value.algorithm = theme.darkAlgorithm;\r\n appTheme.value.token = {};\r\n }\r\n break;\r\n case \"os\":\r\n if (isCompact.value && isDarkMode) {\r\n appTheme.value.token = props.themeJson;\r\n }\r\n break;\r\n }\r\n
|
|
1
|
+
{"version":3,"file":"ThemeApp.vue2.mjs","sources":["../../../../../../src/components/layout/components/layout/ThemeApp.vue"],"sourcesContent":["<script setup lang=\"ts\">\r\nimport { Ref, ref, watch } from \"vue\";\r\nimport { theme } from \"ant-design-vue\";\r\nimport { storeToRefs } from \"pinia\";\r\n\r\nimport { useAppStore } from \"@ditari/store\";\r\n\r\nconst props = defineProps({\n themeJson: { type: Object, required: false, default: () => ({}) }\n});\r\n\r\nconst { appTheme } = useTheme();\r\n\r\nfunction useTheme(): { appTheme: Ref<unknown> } {\r\n const { modeConfig, isCompact } =\r\n storeToRefs(useAppStore());\r\n const appTheme = ref<Record<string, unknown>>({});\r\n const { useToken } = theme;\r\n const { token } = useToken();\r\n\r\n watch(\r\n () => modeConfig.value.mode,\r\n () => {\r\n handleTheme();\r\n },\r\n { immediate: true }\r\n );\r\n\r\n watch(\r\n () => isCompact.value,\r\n () => {\r\n handleTheme();\r\n }\r\n );\r\n\r\n function handleTheme() {\r\n const isDarkMode =\r\n window.matchMedia &&\r\n window.matchMedia(\"(prefers-color-scheme: dark)\")\r\n .matches;\r\n switch (modeConfig.value.mode) {\r\n case \"light\":\r\n if (isCompact.value) {\r\n appTheme.value.algorithm = theme.compactAlgorithm;\r\n appTheme.value.token = {};\r\n } else {\r\n appTheme.value.algorithm = theme.defaultAlgorithm;\r\n appTheme.value.token = {};\r\n }\r\n break;\r\n case \"dark\":\r\n if (isCompact.value) {\r\n appTheme.value.token = props.themeJson;\r\n } else {\r\n appTheme.value.algorithm = theme.darkAlgorithm;\r\n appTheme.value.token = {};\r\n }\r\n break;\r\n case \"os\":\r\n if (isCompact.value && isDarkMode) {\r\n appTheme.value.token = props.themeJson;\r\n }\r\n break;\r\n }\r\n }\r\n\r\n return {\r\n appTheme\r\n };\r\n}\r\n</script>\r\n\r\n<template>\r\n <a-config-provider :theme=\"appTheme\">\r\n <slot></slot>\r\n </a-config-provider>\r\n</template>\r\n\r\n<style scoped></style>\r\n"],"names":["appTheme","_createBlock","_unref","_renderSlot"],"mappings":";;;;;;;;;;;;AAOA,IAAA,MAAM,KAAA,GAAQ,OAAA;AAId,IAAA,MAAM,EAAE,QAAA,EAAS,GAAI,QAAA,EAAS;AAE9B,IAAA,SAAS,QAAA,GAAuC;AAC9C,MAAA,MAAM,EAAE,UAAA,EAAY,SAAA,EAAU,GAC5B,WAAA,CAAY,aAAa,CAAA;AAC3B,MAAA,MAAMA,SAAAA,GAAW,GAAA,CAA6B,EAAE,CAAA;AAChD,MAAA,MAAM,EAAE,UAAS,GAAI,KAAA;AACrB,MAAA,MAAM,EAAE,KAAA,EAAM,GAAI,QAAA,EAAS;AAE3B,MAAA,KAAA;AAAA,QACE,MAAM,WAAW,KAAA,CAAM,IAAA;AAAA,QACvB,MAAM;AACJ,UAAA,WAAA,EAAY;AAAA,QACd,CAAA;AAAA,QACA,EAAE,WAAW,IAAA;AAAK,OACpB;AAEA,MAAA,KAAA;AAAA,QACE,MAAM,SAAA,CAAU,KAAA;AAAA,QAChB,MAAM;AACJ,UAAA,WAAA,EAAY;AAAA,QACd;AAAA,OACF;AAEA,MAAA,SAAS,WAAA,GAAc;AACrB,QAAA,MAAM,aACJ,MAAA,CAAO,UAAA,IACP,MAAA,CAAO,UAAA,CAAW,8BAA8B,CAAA,CAC7C,OAAA;AACL,QAAA,QAAQ,UAAA,CAAW,MAAM,IAAA;AAAM,UAC7B,KAAK,OAAA;AACH,YAAA,IAAI,UAAU,KAAA,EAAO;AACnB,cAAAA,SAAAA,CAAS,KAAA,CAAM,SAAA,GAAY,KAAA,CAAM,gBAAA;AACjC,cAAAA,SAAAA,CAAS,KAAA,CAAM,KAAA,GAAQ,EAAC;AAAA,YAC1B,CAAA,MAAO;AACL,cAAAA,SAAAA,CAAS,KAAA,CAAM,SAAA,GAAY,KAAA,CAAM,gBAAA;AACjC,cAAAA,SAAAA,CAAS,KAAA,CAAM,KAAA,GAAQ,EAAC;AAAA,YAC1B;AACA,YAAA;AAAA,UACF,KAAK,MAAA;AACH,YAAA,IAAI,UAAU,KAAA,EAAO;AACnB,cAAAA,SAAAA,CAAS,KAAA,CAAM,KAAA,GAAQ,KAAA,CAAM,SAAA;AAAA,YAC/B,CAAA,MAAO;AACL,cAAAA,SAAAA,CAAS,KAAA,CAAM,SAAA,GAAY,KAAA,CAAM,aAAA;AACjC,cAAAA,SAAAA,CAAS,KAAA,CAAM,KAAA,GAAQ,EAAC;AAAA,YAC1B;AACA,YAAA;AAAA,UACF,KAAK,IAAA;AACH,YAAA,IAAI,SAAA,CAAU,SAAS,UAAA,EAAY;AACjC,cAAAA,SAAAA,CAAS,KAAA,CAAM,KAAA,GAAQ,KAAA,CAAM,SAAA;AAAA,YAC/B;AACA,YAAA;AAAA;AACJ,MACF;AAEA,MAAA,OAAO;AAAA,QACL,QAAA,EAAAA;AAAA,OACF;AAAA,IACF;;;0BAIEC,WAAA,CAEoB,4BAAA,EAAA,EAFA,KAAA,EAAOC,KAAA,CAAA,QAAA,CAAA,EAAQ,EAAA;AAAA,yBACjC,MAAa;AAAA,UAAbC,UAAA,CAAa,IAAA,CAAA,MAAA,EAAA,SAAA;AAAA;;;;;;;;;;"}
|