@ditari/bsui 5.1.7 → 5.1.10
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/select/Select.vue2.cjs +5 -1
- package/dist/cjs/components/select/Select.vue2.cjs.map +1 -1
- package/dist/cjs/components/table-form/TableForm.cjs +65 -39
- package/dist/cjs/components/table-form/TableForm.cjs.map +1 -1
- package/dist/cjs/components/table-form/interface.cjs +0 -5
- package/dist/cjs/components/table-form/interface.cjs.map +1 -1
- package/dist/esm/components/select/Select.vue2.mjs +5 -1
- package/dist/esm/components/select/Select.vue2.mjs.map +1 -1
- package/dist/esm/components/table-form/TableForm.mjs +66 -40
- package/dist/esm/components/table-form/TableForm.mjs.map +1 -1
- package/dist/esm/components/table-form/interface.mjs +0 -5
- package/dist/esm/components/table-form/interface.mjs.map +1 -1
- package/dist/types/components/select/Select.vue.d.ts.map +1 -1
- package/dist/types/components/table-form/TableForm.d.ts +0 -11
- package/dist/types/components/table-form/TableForm.d.ts.map +1 -1
- package/dist/types/components/table-form/interface.d.ts +0 -5
- package/dist/types/components/table-form/interface.d.ts.map +1 -1
- package/package.json +2 -2
|
@@ -85,7 +85,11 @@ var _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
85
85
|
loadingStatus.value = true;
|
|
86
86
|
yield fetchDic(props.name);
|
|
87
87
|
dicData = [...getDicByKey(props.name)];
|
|
88
|
-
data2.value = dicData
|
|
88
|
+
data2.value = dicData.filter((item) => {
|
|
89
|
+
return props.include.some(
|
|
90
|
+
(i) => i === item.value
|
|
91
|
+
);
|
|
92
|
+
});
|
|
89
93
|
} catch (error) {
|
|
90
94
|
console.error("\u83B7\u53D6\u5B57\u5178\u6570\u636E\u5931\u8D25:", error);
|
|
91
95
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.vue2.cjs","sources":["../../../../src/components/select/Select.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport {\n inject,\n onActivated,\n onMounted,\n ref,\n watch\n} from \"vue\";\nimport { useRoute } from \"vue-router\";\n\nimport {\n useDicStore,\n useKeepAliveStore\n} from \"@ditari/store\";\n\ninterface DicItem {\n value: string | number;\n label: string;\n}\n\nconst props = defineProps({\n value: { required: true, default: undefined },\n name: { type: String, required: true, default: \"\" },\n disabled: { type: Boolean, required: false, default: false },\n placeholder: { type: String, required: false, default: \"请填写默认占位符啊!\" },\n include: { type: Array, required: false, default: () => [] }\n});\n\nconst emits = defineEmits([\"update:value\", \"change\", \"select\"]);\n\nconst { getDicByKey } = useDicStore();\nconst { get: keepNames } = useKeepAliveStore();\n\nconst { modelValue, data, onSelect, onChange } =\n useSelect();\n\nfunction useSelect() {\n const route = useRoute();\n const loadingStatus = ref(false);\n // 判断使用组件的页面是否被缓存\n const isKeepAlive = keepNames.some(\n (name: string) => name === route.name\n );\n // 注入 fetchDic,提供默认值\n const fetchDic = inject<\n (name: string) => Promise<unknown[]>\n >(\"fetchDic\", async (name: string) => {\n console.warn(\n `fetchDic 未注入,使用默认实现,name: ${name}`\n );\n return [];\n });\n\n // 字典数据\n let dicData: DicItem[] = [...getDicByKey(props.name)];\n const data = ref<DicItem[]>(dicData);\n\n // 取值\n const modelValue = ref<string | number | undefined>(\n props.value\n );\n\n onActivated(() => {\n // 缓存页面被激活的时候调用\n loadDicData();\n });\n\n onMounted(() => {\n if (!isKeepAlive) {\n // 未缓存页面 挂载的时候调用\n loadDicData();\n }\n });\n\n // 监听value值的变化\n watch(\n () => props.value,\n val => {\n modelValue.value = val;\n }\n );\n\n setTimeout(() => {\n if (!loadingStatus.value) {\n loadDicData();\n }\n }, 1000);\n\n // 请求字典数据的函数\n async function loadDicData() {\n try {\n loadingStatus.value = true;\n // 调用注入进来的fetchDic方法\n await fetchDic(props.name);\n dicData = [...getDicByKey(props.name)];\n data.value = dicData;\n } catch (error) {\n console.error(\"获取字典数据失败:\", error);\n }\n }\n\n // 监听用户搜索事件\n const onSearch = (keywords: string) => {\n sendWorkerSearch(keywords);\n };\n\n // 发送搜索到webworker\n function sendWorkerSearch(keywords: string) {\n keywords = keywords ?? \"\";\n data.value = dicData\n .filter((item: DicItem) => {\n return (\n item.value\n .toString()\n .toLowerCase()\n .indexOf(keywords.toLowerCase()) !== -1 ||\n item.label\n .toLowerCase()\n .includes(keywords.toLowerCase())\n );\n })\n .slice(0, 10);\n if (data.value.length === 0) {\n data.value = [...dicData].slice(0, 10);\n }\n }\n\n // 监听下拉选择事件\n const onSelect = (value: string | number) => {\n // 发射选择的数据\n emits(\"update:value\", value);\n // 处理下拉后返回数据的\n onSelectHandler();\n };\n\n // 监听数据改变\n const onChange = () => {\n emits(\"update:value\", modelValue.value);\n emits(\"change\", modelValue.value);\n };\n\n /**\n * 根据当前选中的value匹配对应的整条数据\n * 然后返回给父组件\n */\n function onSelectHandler() {\n const dicList = getDicByKey(props.name);\n const rs = dicList.find(\n (obj: DicItem) => obj.value === modelValue.value\n );\n emits(\"select\", rs);\n }\n\n watch(\n () => props.include,\n (val: Array<string | number>) => {\n if (val.length > 0) {\n // 只过滤出来include包含的数据\n data.value = dicData.filter((item: DicItem) => {\n return val.some(\n (i: string | number) => i === item.value\n );\n });\n } else {\n data.value = dicData;\n }\n },\n {\n immediate: true\n }\n );\n\n return {\n data,\n modelValue,\n onSearch,\n onSelect,\n onChange\n };\n}\n\n/**\n * 过滤筛选\n * @param inputValue\n * @param options\n */\nconst onFilterOption = (\n inputValue: string,\n options: DicItem\n) => {\n return (\n options.value\n .toString()\n .toLowerCase()\n .indexOf(inputValue.toLowerCase()) !== -1 ||\n options.label\n .toLowerCase()\n .includes(inputValue.toLowerCase())\n );\n};\n</script>\n\n<template>\n <a-select\n v-model:value=\"modelValue\"\n style=\"width: 100%\"\n allow-clear\n show-search\n :options=\"data\"\n :placeholder=\"placeholder\"\n :disabled=\"disabled\"\n :filter-option=\"onFilterOption\"\n @select=\"onSelect\"\n @change=\"onChange\"\n >\n </a-select>\n</template>\n\n<style scoped></style>\n"],"names":["useDicStore","useKeepAliveStore","useRoute","ref","inject","data","modelValue","onActivated","onMounted","watch","onSelect","onChange","_createBlock","_unref"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBA,IAAA,MAAM,KAAA,GAAQ,OAAA;AAQd,IAAA,MAAM,KAAA,GAAQ,MAAA;AAEd,IAAA,MAAM,EAAE,WAAA,EAAY,GAAIA,iBAAA,EAAY;AACpC,IAAA,MAAM,EAAE,GAAA,EAAK,SAAA,EAAU,GAAIC,uBAAA,EAAkB;AAE7C,IAAA,MAAM,EAAE,UAAA,EAAY,IAAA,EAAM,QAAA,EAAU,QAAA,KAClC,SAAA,EAAU;AAEZ,IAAA,SAAS,SAAA,GAAY;AACnB,MAAA,MAAM,QAAQC,kBAAA,EAAS;AACvB,MAAA,MAAM,aAAA,GAAgBC,QAAI,KAAK,CAAA;AAE/B,MAAA,MAAM,cAAc,SAAA,CAAU,IAAA;AAAA,QAC5B,CAAC,IAAA,KAAiB,IAAA,KAAS,KAAA,CAAM;AAAA,OACnC;AAEA,MAAA,MAAM,QAAA,GAAWC,UAAA,CAEf,UAAA,EAAY,CAAO,IAAA,KAAiB,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACpC,QAAA,OAAA,CAAQ,IAAA;AAAA,UACN,oFAA6B,IAAI,CAAA;AAAA,SACnC;AACA,QAAA,OAAO,EAAC;AAAA,MACV,CAAA,CAAC,CAAA;AAGD,MAAA,IAAI,UAAqB,CAAC,GAAG,WAAA,CAAY,KAAA,CAAM,IAAI,CAAC,CAAA;AACpD,MAAA,MAAMC,KAAAA,GAAOF,QAAe,OAAO,CAAA;AAGnC,MAAA,MAAMG,WAAAA,GAAaH,OAAA;AAAA,QACjB,KAAA,CAAM;AAAA,OACR;AAEA,MAAAI,eAAA,CAAY,MAAM;AAEhB,QAAA,WAAA,EAAY;AAAA,MACd,CAAC,CAAA;AAED,MAAAC,aAAA,CAAU,MAAM;AACd,QAAA,IAAI,CAAC,WAAA,EAAa;AAEhB,UAAA,WAAA,EAAY;AAAA,QACd;AAAA,MACF,CAAC,CAAA;AAGD,MAAAC,SAAA;AAAA,QACE,MAAM,KAAA,CAAM,KAAA;AAAA,QACZ,CAAA,GAAA,KAAO;AACL,UAAAH,YAAW,KAAA,GAAQ,GAAA;AAAA,QACrB;AAAA,OACF;AAEA,MAAA,UAAA,CAAW,MAAM;AACf,QAAA,IAAI,CAAC,cAAc,KAAA,EAAO;AACxB,UAAA,WAAA,EAAY;AAAA,QACd;AAAA,MACF,GAAG,GAAI,CAAA;AAGP,MAAA,SAAe,WAAA,GAAc;AAAA,QAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AAC3B,UAAA,IAAI;AACF,YAAA,aAAA,CAAc,KAAA,GAAQ,IAAA;AAEtB,YAAA,MAAM,QAAA,CAAS,MAAM,IAAI,CAAA;AACzB,YAAA,OAAA,GAAU,CAAC,GAAG,WAAA,CAAY,KAAA,CAAM,IAAI,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"Select.vue2.cjs","sources":["../../../../src/components/select/Select.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport {\n inject,\n onActivated,\n onMounted,\n ref,\n watch\n} from \"vue\";\nimport { useRoute } from \"vue-router\";\n\nimport {\n useDicStore,\n useKeepAliveStore\n} from \"@ditari/store\";\n\ninterface DicItem {\n value: string | number;\n label: string;\n}\n\nconst props = defineProps({\n value: { required: true, default: undefined },\n name: { type: String, required: true, default: \"\" },\n disabled: { type: Boolean, required: false, default: false },\n placeholder: { type: String, required: false, default: \"请填写默认占位符啊!\" },\n include: { type: Array, required: false, default: () => [] }\n});\n\nconst emits = defineEmits([\"update:value\", \"change\", \"select\"]);\n\nconst { getDicByKey } = useDicStore();\nconst { get: keepNames } = useKeepAliveStore();\n\nconst { modelValue, data, onSelect, onChange } =\n useSelect();\n\nfunction useSelect() {\n const route = useRoute();\n const loadingStatus = ref(false);\n // 判断使用组件的页面是否被缓存\n const isKeepAlive = keepNames.some(\n (name: string) => name === route.name\n );\n // 注入 fetchDic,提供默认值\n const fetchDic = inject<\n (name: string) => Promise<unknown[]>\n >(\"fetchDic\", async (name: string) => {\n console.warn(\n `fetchDic 未注入,使用默认实现,name: ${name}`\n );\n return [];\n });\n\n // 字典数据\n let dicData: DicItem[] = [...getDicByKey(props.name)];\n const data = ref<DicItem[]>(dicData);\n\n // 取值\n const modelValue = ref<string | number | undefined>(\n props.value\n );\n\n onActivated(() => {\n // 缓存页面被激活的时候调用\n loadDicData();\n });\n\n onMounted(() => {\n if (!isKeepAlive) {\n // 未缓存页面 挂载的时候调用\n loadDicData();\n }\n });\n\n // 监听value值的变化\n watch(\n () => props.value,\n val => {\n modelValue.value = val;\n }\n );\n\n setTimeout(() => {\n if (!loadingStatus.value) {\n loadDicData();\n }\n }, 1000);\n\n // 请求字典数据的函数\n async function loadDicData() {\n try {\n loadingStatus.value = true;\n // 调用注入进来的fetchDic方法\n await fetchDic(props.name);\n dicData = [...getDicByKey(props.name)];\n\n data.value = dicData.filter((item: DicItem) => {\n return props.include.some(\n (i: string | number) => i === item.value\n );\n });\n } catch (error) {\n console.error(\"获取字典数据失败:\", error);\n }\n }\n\n // 监听用户搜索事件\n const onSearch = (keywords: string) => {\n sendWorkerSearch(keywords);\n };\n\n // 发送搜索到webworker\n function sendWorkerSearch(keywords: string) {\n keywords = keywords ?? \"\";\n data.value = dicData\n .filter((item: DicItem) => {\n return (\n item.value\n .toString()\n .toLowerCase()\n .indexOf(keywords.toLowerCase()) !== -1 ||\n item.label\n .toLowerCase()\n .includes(keywords.toLowerCase())\n );\n })\n .slice(0, 10);\n if (data.value.length === 0) {\n data.value = [...dicData].slice(0, 10);\n }\n }\n\n // 监听下拉选择事件\n const onSelect = (value: string | number) => {\n // 发射选择的数据\n emits(\"update:value\", value);\n // 处理下拉后返回数据的\n onSelectHandler();\n };\n\n // 监听数据改变\n const onChange = () => {\n emits(\"update:value\", modelValue.value);\n emits(\"change\", modelValue.value);\n };\n\n /**\n * 根据当前选中的value匹配对应的整条数据\n * 然后返回给父组件\n */\n function onSelectHandler() {\n const dicList = getDicByKey(props.name);\n const rs = dicList.find(\n (obj: DicItem) => obj.value === modelValue.value\n );\n emits(\"select\", rs);\n }\n\n watch(\n () => props.include,\n (val: Array<string | number>) => {\n if (val.length > 0) {\n // 只过滤出来include包含的数据\n data.value = dicData.filter((item: DicItem) => {\n return val.some(\n (i: string | number) => i === item.value\n );\n });\n } else {\n data.value = dicData;\n }\n },\n {\n immediate: true\n }\n );\n\n return {\n data,\n modelValue,\n onSearch,\n onSelect,\n onChange\n };\n}\n\n/**\n * 过滤筛选\n * @param inputValue\n * @param options\n */\nconst onFilterOption = (\n inputValue: string,\n options: DicItem\n) => {\n return (\n options.value\n .toString()\n .toLowerCase()\n .indexOf(inputValue.toLowerCase()) !== -1 ||\n options.label\n .toLowerCase()\n .includes(inputValue.toLowerCase())\n );\n};\n</script>\n\n<template>\n <a-select\n v-model:value=\"modelValue\"\n style=\"width: 100%\"\n allow-clear\n show-search\n :options=\"data\"\n :placeholder=\"placeholder\"\n :disabled=\"disabled\"\n :filter-option=\"onFilterOption\"\n @select=\"onSelect\"\n @change=\"onChange\"\n >\n </a-select>\n</template>\n\n<style scoped></style>\n"],"names":["useDicStore","useKeepAliveStore","useRoute","ref","inject","data","modelValue","onActivated","onMounted","watch","onSelect","onChange","_createBlock","_unref"],"mappings":"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"}
|
|
@@ -10,28 +10,20 @@ var useDesign = require('../../hooks/useDesign.cjs');
|
|
|
10
10
|
var withInstall = require('../../utils/withInstall.cjs');
|
|
11
11
|
|
|
12
12
|
"use strict";
|
|
13
|
+
function _isSlot(s) {
|
|
14
|
+
return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !vue.isVNode(s);
|
|
15
|
+
}
|
|
13
16
|
const FormContextKey = Symbol("d-table-form-context");
|
|
14
|
-
const
|
|
15
|
-
|
|
16
|
-
if (
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
if (vnode.type !== vue.Comment && vnode.type !== vue.Text && vnode.children !== " ") {
|
|
20
|
-
count++;
|
|
21
|
-
}
|
|
22
|
-
} else if (Array.isArray(vnode)) {
|
|
23
|
-
count += getValidVNodesCount(vnode);
|
|
24
|
-
} else if (typeof vnode === "string" && vnode.trim() !== "") {
|
|
25
|
-
count++;
|
|
26
|
-
}
|
|
27
|
-
});
|
|
17
|
+
const getVNodeSpan = (vnode) => {
|
|
18
|
+
var _a;
|
|
19
|
+
if (vnode && vnode.props) {
|
|
20
|
+
const s = (_a = vnode.props.span) != null ? _a : vnode.props["span"];
|
|
21
|
+
if (s !== void 0 && s !== null) return Number(s);
|
|
28
22
|
}
|
|
29
|
-
return
|
|
23
|
+
return 24;
|
|
30
24
|
};
|
|
31
25
|
const containerBorderStyle = css.css`
|
|
32
|
-
/* 顶部边框 */
|
|
33
26
|
border-top: 1px solid #d9d9d9;
|
|
34
|
-
/* 左侧边框 */
|
|
35
27
|
border-left: 1px solid #d9d9d9;
|
|
36
28
|
`;
|
|
37
29
|
const _TableForm = /* @__PURE__ */ vue.defineComponent({
|
|
@@ -47,7 +39,7 @@ const _TableForm = /* @__PURE__ */ vue.defineComponent({
|
|
|
47
39
|
getPrefixCls
|
|
48
40
|
} = useDesign.useDesign("table-form");
|
|
49
41
|
const formRef = vue.ref();
|
|
50
|
-
const
|
|
42
|
+
const defaultSpan = vue.computed(() => 24);
|
|
51
43
|
const isReadonly = vue.computed(() => props.readonly);
|
|
52
44
|
const finalStylesConfig = vue.computed(() => {
|
|
53
45
|
const defaultCopy = JSON.parse(JSON.stringify(_interface.DEFAULT_STYLES_CONFIG));
|
|
@@ -56,47 +48,81 @@ const _TableForm = /* @__PURE__ */ vue.defineComponent({
|
|
|
56
48
|
const modelState = vue.computed(() => attrs.model);
|
|
57
49
|
vue.provide(FormContextKey, {
|
|
58
50
|
isFormParent: true,
|
|
59
|
-
span:
|
|
60
|
-
fieldErrors: {},
|
|
51
|
+
span: defaultSpan,
|
|
52
|
+
fieldErrors: vue.ref({}),
|
|
61
53
|
isReadonly,
|
|
62
54
|
stylesConfig: finalStylesConfig,
|
|
63
55
|
model: modelState
|
|
64
56
|
});
|
|
65
|
-
const
|
|
57
|
+
const flattenVNodes = (children) => {
|
|
58
|
+
let result = [];
|
|
59
|
+
const vnodes = Array.isArray(children) ? children : [children];
|
|
60
|
+
vnodes.forEach((v) => {
|
|
61
|
+
var _a;
|
|
62
|
+
if (Array.isArray(v)) {
|
|
63
|
+
result = result.concat(flattenVNodes(v));
|
|
64
|
+
} else if (vue.isVNode(v)) {
|
|
65
|
+
if (v.type === Symbol.for("v-fgt") || ((_a = v.type) == null ? void 0 : _a.toString()) === "Symbol(Fragment)") {
|
|
66
|
+
result = result.concat(flattenVNodes(v.children));
|
|
67
|
+
} else if (v.type !== vue.Comment && v.type !== vue.Text) {
|
|
68
|
+
result.push(v);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
return result;
|
|
73
|
+
};
|
|
74
|
+
const renderItems = () => {
|
|
66
75
|
const colCls = getPrefixCls("item-col");
|
|
67
76
|
const styles = style.useFormItemStyle(finalStylesConfig.value, token);
|
|
68
|
-
const
|
|
69
|
-
const
|
|
70
|
-
const
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
77
|
+
const rawSlots = slots.default ? slots.default() : [];
|
|
78
|
+
const vnodes = flattenVNodes(rawSlots);
|
|
79
|
+
const finalElements = [];
|
|
80
|
+
let currentLineSpan = 0;
|
|
81
|
+
vnodes.forEach((vnode, index) => {
|
|
82
|
+
const span = getVNodeSpan(vnode);
|
|
83
|
+
if (currentLineSpan > 0 && (currentLineSpan + span > 24 || span === 24)) {
|
|
84
|
+
const neededSpan = 24 - currentLineSpan;
|
|
85
|
+
if (neededSpan > 0) {
|
|
86
|
+
finalElements.push(vue.createVNode(antDesignVue.Col, {
|
|
87
|
+
"key": `filler-mid-${index}`,
|
|
88
|
+
"span": neededSpan,
|
|
89
|
+
"class": css.cx(colCls, styles.cellBorderStyle)
|
|
90
|
+
}, {
|
|
91
|
+
default: () => [vue.createVNode(antDesignVue.FormItem, null, null)]
|
|
92
|
+
}));
|
|
93
|
+
}
|
|
94
|
+
currentLineSpan = 0;
|
|
95
|
+
}
|
|
96
|
+
finalElements.push(vnode);
|
|
97
|
+
currentLineSpan += span;
|
|
98
|
+
if (currentLineSpan >= 24) {
|
|
99
|
+
currentLineSpan = 0;
|
|
100
|
+
}
|
|
101
|
+
});
|
|
102
|
+
if (currentLineSpan > 0) {
|
|
103
|
+
finalElements.push(vue.createVNode(antDesignVue.Col, {
|
|
104
|
+
"key": "filler-last",
|
|
105
|
+
"span": 24 - currentLineSpan,
|
|
79
106
|
"class": css.cx(colCls, styles.cellBorderStyle)
|
|
80
107
|
}, {
|
|
81
|
-
default: () => [vue.createVNode(antDesignVue.FormItem,
|
|
82
|
-
"label": " "
|
|
83
|
-
}, null)]
|
|
108
|
+
default: () => [vue.createVNode(antDesignVue.FormItem, null, null)]
|
|
84
109
|
}));
|
|
85
110
|
}
|
|
86
|
-
return
|
|
87
|
-
}
|
|
111
|
+
return finalElements;
|
|
112
|
+
};
|
|
88
113
|
expose({
|
|
89
114
|
form: formRef
|
|
90
115
|
});
|
|
91
116
|
return () => {
|
|
117
|
+
let _slot;
|
|
92
118
|
const rootCls = getPrefixCls();
|
|
93
119
|
return vue.createVNode(antDesignVue.Form, vue.mergeProps({
|
|
94
120
|
"class": css.cx(rootCls, containerBorderStyle)
|
|
95
121
|
}, attrs, {
|
|
96
122
|
"ref": formRef
|
|
97
123
|
}), {
|
|
98
|
-
default: () => [vue.createVNode(antDesignVue.Row, null, {
|
|
99
|
-
default: () => [
|
|
124
|
+
default: () => [vue.createVNode(antDesignVue.Row, null, _isSlot(_slot = renderItems()) ? _slot : {
|
|
125
|
+
default: () => [_slot]
|
|
100
126
|
})]
|
|
101
127
|
});
|
|
102
128
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableForm.cjs","sources":["../../../../src/components/table-form/TableForm.tsx"],"sourcesContent":["import {\r\n Comment,\r\n computed,\r\n ComputedRef,\r\n defineComponent,\r\n isVNode,\r\n provide,\r\n ref,\r\n Text\r\n} from \"vue\";\r\nimport {\r\n Col,\r\n Form,\r\n FormInstance,\r\n FormItem,\r\n Row\r\n} from \"ant-design-vue\";\r\n\r\nimport {\r\n DEFAULT_STYLES_CONFIG,\r\n StylesConfig,\r\n tableFormProps\r\n} from \"./interface\";\r\nimport { useFormItemStyle } from \"./style\";\r\nimport { css, cx } from \"@emotion/css\";\r\nimport { merge } from \"lodash-es\";\r\n\r\nimport {\r\n useAntdToken,\r\n useDesign\r\n} from \"../../hooks/useDesign\";\r\n\r\nimport { withInstall } from \"../../utils/withInstall\";\r\n\r\nexport const FormContextKey = Symbol(\r\n \"d-table-form-context\"\r\n);\r\n\r\n// ⭐️ Context 接口,包含错误状态映射\r\nexport interface TableFormContext {\r\n isFormParent: true;\r\n span: ComputedRef<number>;\r\n isReadonly: ComputedRef<boolean>;\r\n fieldErrors: ComputedRef<\r\n Record<string, string | undefined>\r\n >;\r\n stylesConfig: ComputedRef<StylesConfig>;\r\n model: ComputedRef<Record<string, unknown>>;\r\n}\r\n\r\n// 辅助函数:计算插槽中有效 VNode 的数量\r\nconst getValidVNodesCount = (vnodes: unknown): number => {\r\n let count = 0;\r\n if (Array.isArray(vnodes)) {\r\n vnodes.forEach(vnode => {\r\n if (isVNode(vnode)) {\r\n // 忽略注释、文本节点、或仅空白的节点\r\n if (\r\n vnode.type !== Comment &&\r\n vnode.type !== Text &&\r\n vnode.children !== \" \"\r\n ) {\r\n count++;\r\n }\r\n } else if (Array.isArray(vnode)) {\r\n // 处理 Fragment 或嵌套数组\r\n count += getValidVNodesCount(vnode);\r\n } else if (\r\n typeof vnode === \"string\" &&\r\n vnode.trim() !== \"\"\r\n ) {\r\n // 处理非空字符串(虽然不常见,但保险起见)\r\n count++;\r\n }\r\n });\r\n }\r\n return count;\r\n};\r\n\r\nconst containerBorderStyle = css`\r\n /* 顶部边框 */\r\n border-top: 1px solid #d9d9d9;\r\n /* 左侧边框 */\r\n border-left: 1px solid #d9d9d9;\r\n`;\r\n\r\nconst _TableForm = defineComponent({\r\n name: \"DTableForm\",\r\n props: tableFormProps,\r\n\r\n setup(props, { slots, attrs, expose }) {\r\n const token = useAntdToken();\r\n\r\n const { getPrefixCls } = useDesign(\"table-form\");\r\n // 表单对象\r\n const formRef = ref<FormInstance | null>();\r\n\r\n //动态计算一个col的span值是多少\r\n const calculatedSpan = computed(() =>\r\n Math.floor(24 / props.colCount)\r\n );\r\n\r\n // ⭐️ 新增:计算只读状态\r\n const isReadonly = computed(() => props.readonly);\r\n const finalStylesConfig = computed<StylesConfig>(() => {\r\n // 1. 创建默认配置的深拷贝\r\n const defaultCopy = JSON.parse(\r\n JSON.stringify(DEFAULT_STYLES_CONFIG)\r\n );\r\n // 2. 使用 Lodash merge (或 mergeWith) 合并用户传入的配置\r\n return merge(defaultCopy, props.stylesConfig);\r\n });\r\n const modelState = computed(() => attrs.model);\r\n\r\n // ⭐️ FIX 2: 提供 Context 时,传递 ComputedRef 本身,而不是它的 .value\r\n provide(FormContextKey, {\r\n isFormParent: true,\r\n span: calculatedSpan,\r\n fieldErrors: {},\r\n isReadonly: isReadonly,\r\n stylesConfig: finalStylesConfig,\r\n model: modelState\r\n });\r\n\r\n // ⭐️ 核心逻辑:计算并渲染占位符\r\n const fillerCols = computed(() => {\r\n const colCls = getPrefixCls(\"item-col\");\r\n const styles = useFormItemStyle(\r\n finalStylesConfig.value,\r\n token\r\n );\r\n\r\n const defaultSlot = slots.default\r\n ? slots.default()\r\n : [];\r\n const itemCounts = getValidVNodesCount(defaultSlot);\r\n const colCount = props.colCount;\r\n\r\n // 计算当前行已占用的位置 (余数)\r\n const remainder = itemCounts % colCount;\r\n const fillerCount =\r\n remainder === 0 ? 0 : colCount - remainder;\r\n\r\n const span = calculatedSpan.value;\r\n const fillerNodes = [];\r\n\r\n // 渲染所需数量的空 Col\r\n for (let i = 0; i < fillerCount; i++) {\r\n fillerNodes.push(\r\n <Col\r\n key={`filler-${i}`}\r\n span={span}\r\n class={cx(colCls, styles.cellBorderStyle)}\r\n >\r\n <FormItem label={\" \"}></FormItem>\r\n </Col>\r\n );\r\n }\r\n return fillerNodes;\r\n });\r\n\r\n expose({\r\n form: formRef\r\n });\r\n\r\n return () => {\r\n const rootCls = getPrefixCls();\r\n\r\n return (\r\n <Form\r\n class={cx(rootCls, containerBorderStyle)}\r\n {...attrs}\r\n ref={formRef}\r\n >\r\n <Row>\r\n {/* 渲染所有传入的 FormItem */}\r\n {slots.default ? slots.default() : null}\r\n {/* 渲染计算出的占位 Col */}\r\n {fillerCols.value}\r\n </Row>\r\n </Form>\r\n );\r\n };\r\n }\r\n});\r\n\r\nexport const TableForm = withInstall(_TableForm);\r\n"],"names":["FormContextKey","Symbol","getValidVNodesCount","vnodes","count","Array","isArray","forEach","vnode","isVNode","type","Comment","Text","children","trim","containerBorderStyle","css","_TableForm","defineComponent","name","props","tableFormProps","setup","slots","attrs","expose","token","useAntdToken","getPrefixCls","useDesign","formRef","ref","calculatedSpan","computed","Math","floor","colCount","isReadonly","readonly","finalStylesConfig","defaultCopy","JSON","parse","stringify","DEFAULT_STYLES_CONFIG","merge","stylesConfig","modelState","model","provide","isFormParent","span","fieldErrors","fillerCols","colCls","styles","useFormItemStyle","value","defaultSlot","default","itemCounts","remainder","fillerCount","fillerNodes","i","push","_createVNode","Col","cx","cellBorderStyle","FormItem","form","rootCls","Form","_mergeProps","Row","TableForm","withInstall"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TableForm.cjs","sources":["../../../../src/components/table-form/TableForm.tsx"],"sourcesContent":["import {\r\n Comment,\r\n computed,\r\n ComputedRef,\r\n defineComponent,\r\n isVNode,\r\n provide,\r\n ref,\r\n Text,\r\n VNode\r\n} from \"vue\";\r\nimport {\r\n Col,\r\n Form,\r\n FormInstance,\r\n FormItem,\r\n Row\r\n} from \"ant-design-vue\";\r\n\r\nimport {\r\n DEFAULT_STYLES_CONFIG,\r\n StylesConfig,\r\n tableFormProps\r\n} from \"./interface\";\r\nimport { useFormItemStyle } from \"./style\";\r\nimport { css, cx } from \"@emotion/css\";\r\nimport { merge } from \"lodash-es\";\r\n\r\nimport {\r\n useAntdToken,\r\n useDesign\r\n} from \"../../hooks/useDesign\";\r\n\r\nimport { withInstall } from \"../../utils/withInstall\";\r\n\r\nexport const FormContextKey = Symbol(\r\n \"d-table-form-context\"\r\n);\r\n\r\nexport interface TableFormContext {\r\n isFormParent: true;\r\n span: ComputedRef<number>;\r\n isReadonly: ComputedRef<boolean>;\r\n fieldErrors: ComputedRef<\r\n Record<string, string | undefined>\r\n >;\r\n stylesConfig: ComputedRef<StylesConfig>;\r\n model: ComputedRef<Record<string, unknown>>;\r\n}\r\n\r\nconst getVNodeSpan = (vnode: any): number => {\r\n if (vnode && vnode.props) {\r\n const s = vnode.props.span ?? vnode.props[\"span\"];\r\n if (s !== undefined && s !== null) return Number(s);\r\n }\r\n return 24; // 默认占满一行\r\n};\r\n\r\nconst containerBorderStyle = css`\r\n border-top: 1px solid #d9d9d9;\r\n border-left: 1px solid #d9d9d9;\r\n`;\r\n\r\nconst _TableForm = defineComponent({\r\n name: \"DTableForm\",\r\n props: tableFormProps,\r\n\r\n setup(props, { slots, attrs, expose }) {\r\n const token = useAntdToken();\r\n const { getPrefixCls } = useDesign(\"table-form\");\r\n const formRef = ref<FormInstance | null>();\r\n\r\n const defaultSpan = computed(() => 24);\r\n const isReadonly = computed(() => props.readonly);\r\n const finalStylesConfig = computed<StylesConfig>(() => {\r\n const defaultCopy = JSON.parse(\r\n JSON.stringify(DEFAULT_STYLES_CONFIG)\r\n );\r\n return merge(defaultCopy, props.stylesConfig);\r\n });\r\n const modelState = computed(\r\n () => attrs.model as Record<string, unknown>\r\n );\r\n\r\n provide(FormContextKey, {\r\n isFormParent: true,\r\n span: defaultSpan,\r\n fieldErrors: ref({}),\r\n isReadonly: isReadonly,\r\n stylesConfig: finalStylesConfig,\r\n model: modelState\r\n });\r\n\r\n const flattenVNodes = (children: any): VNode[] => {\r\n let result: VNode[] = [];\r\n const vnodes = Array.isArray(children)\r\n ? children\r\n : [children];\r\n vnodes.forEach(v => {\r\n if (Array.isArray(v)) {\r\n result = result.concat(flattenVNodes(v));\r\n } else if (isVNode(v)) {\r\n if (\r\n v.type === Symbol.for(\"v-fgt\") ||\r\n v.type?.toString() === \"Symbol(Fragment)\"\r\n ) {\r\n result = result.concat(\r\n flattenVNodes(v.children)\r\n );\r\n } else if (\r\n v.type !== Comment &&\r\n v.type !== Text\r\n ) {\r\n result.push(v);\r\n }\r\n }\r\n });\r\n return result;\r\n };\r\n\r\n /**\r\n * 核心逻辑:重新编排节点序列,在必要位置插入补位 Col\r\n */\r\n const renderItems = () => {\r\n const colCls = getPrefixCls(\"item-col\");\r\n const styles = useFormItemStyle(\r\n finalStylesConfig.value,\r\n token\r\n );\r\n const rawSlots = slots.default ? slots.default() : [];\r\n const vnodes = flattenVNodes(rawSlots);\r\n\r\n const finalElements: VNode[] = [];\r\n let currentLineSpan = 0;\r\n\r\n vnodes.forEach((vnode, index) => {\r\n const span = getVNodeSpan(vnode);\r\n\r\n // 如果当前行放不下这个节点,或者当前节点是 span 24 且之前行未满\r\n // 则需要先给上一行打个补丁\r\n if (\r\n currentLineSpan > 0 &&\r\n (currentLineSpan + span > 24 || span === 24)\r\n ) {\r\n const neededSpan = 24 - currentLineSpan;\r\n if (neededSpan > 0) {\r\n finalElements.push(\r\n <Col\r\n key={`filler-mid-${index}`}\r\n span={neededSpan}\r\n class={cx(colCls, styles.cellBorderStyle)}\r\n >\r\n <FormItem></FormItem>\r\n </Col>\r\n );\r\n }\r\n currentLineSpan = 0; // 开启新行\r\n }\r\n\r\n finalElements.push(vnode);\r\n\r\n // 累加计算当前行已占 span\r\n currentLineSpan += span;\r\n if (currentLineSpan >= 24) {\r\n currentLineSpan = 0;\r\n }\r\n });\r\n\r\n // 最后一行不满 24,补充最后一块\r\n if (currentLineSpan > 0) {\r\n finalElements.push(\r\n <Col\r\n key=\"filler-last\"\r\n span={24 - currentLineSpan}\r\n class={cx(colCls, styles.cellBorderStyle)}\r\n >\r\n <FormItem></FormItem>\r\n </Col>\r\n );\r\n }\r\n\r\n return finalElements;\r\n };\r\n\r\n expose({ form: formRef });\r\n\r\n return () => {\r\n const rootCls = getPrefixCls();\r\n return (\r\n <Form\r\n class={cx(rootCls, containerBorderStyle)}\r\n {...attrs}\r\n ref={formRef}\r\n >\r\n <Row>{renderItems()}</Row>\r\n </Form>\r\n );\r\n };\r\n }\r\n});\r\n\r\nexport const TableForm = withInstall(_TableForm);\r\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","FormContextKey","Symbol","getVNodeSpan","vnode","props","span","undefined","Number","containerBorderStyle","css","_TableForm","defineComponent","name","tableFormProps","setup","slots","attrs","expose","token","useAntdToken","getPrefixCls","useDesign","formRef","ref","defaultSpan","computed","isReadonly","readonly","finalStylesConfig","defaultCopy","JSON","parse","stringify","DEFAULT_STYLES_CONFIG","merge","stylesConfig","modelState","model","provide","isFormParent","fieldErrors","flattenVNodes","children","result","vnodes","Array","isArray","forEach","v","concat","isVNode","type","for","Comment","Text","push","renderItems","colCls","styles","useFormItemStyle","value","rawSlots","default","finalElements","currentLineSpan","index","neededSpan","_createVNode","Col","cx","cellBorderStyle","FormItem","form","_slot","rootCls","Form","_mergeProps","Row","TableForm","withInstall"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interface.cjs","sources":["../../../../src/components/table-form/interface.ts"],"sourcesContent":["import type { ExtractPropTypes, PropType } from \"vue\";\r\n\r\n// 接口:定义你的 Props 应该有哪些属性和类型\r\nexport interface DTableFormItemProps {\r\n name: string;\r\n label?: string;\r\n required?: boolean;\r\n rules?: unknown[]; // 简化,实际应定义详细校验规则类型\r\n colon?: boolean;\r\n extra?: string;\r\n}\r\n\r\nexport type Formatter = (value: unknown
|
|
1
|
+
{"version":3,"file":"interface.cjs","sources":["../../../../src/components/table-form/interface.ts"],"sourcesContent":["import type { ExtractPropTypes, PropType } from \"vue\";\r\n\r\n// 接口:定义你的 Props 应该有哪些属性和类型\r\nexport interface DTableFormItemProps {\r\n name: string;\r\n label?: string;\r\n required?: boolean;\r\n rules?: unknown[]; // 简化,实际应定义详细校验规则类型\r\n colon?: boolean;\r\n extra?: string;\r\n}\r\n\r\nexport type Formatter = (\r\n value: unknown,\r\n name: unknown\r\n) => unknown;\r\n\r\n// 运行时 Props 的定义 (常量)\r\nexport const tableFormItemProps = {\r\n // 字典名字\r\n dicName: {\r\n type: String,\r\n default: undefined\r\n },\r\n format: {\r\n type: Function as PropType<Formatter>,\r\n // 默认值\r\n default: (value: unknown, _name: unknown) => value\r\n }\r\n};\r\n\r\n// ⭐️ 导出默认值常量\r\nexport const DEFAULT_STYLES_CONFIG: StylesConfig = {\r\n rowHeight: 32,\r\n borderColor: \"#dfdfdf\",\r\n borderWidth: 1,\r\n labelBgColor: \"#EEEEEE\",\r\n focusBorderColor: \"#1677ff\"\r\n};\r\n\r\nexport interface StylesConfig {\r\n /**\r\n * 表格行高度\r\n */\r\n rowHeight?: number;\r\n // 边框颜色\r\n borderColor?: string;\r\n // 边框\r\n borderWidth?: number;\r\n // 标签颜色label\r\n labelBgColor?: string;\r\n //焦点边框颜色\r\n focusBorderColor?: string;\r\n}\r\n\r\nexport const tableFormProps = {\r\n readonly: {\r\n type: Boolean,\r\n default: false\r\n },\r\n stylesConfig: {\r\n type: Object as PropType<StylesConfig>,\r\n default: () => ({ ...DEFAULT_STYLES_CONFIG })\r\n }\r\n};\r\n\r\n// 导出 Prop 类型,供外部使用 (例如,在 TSX 中使用)\r\nexport type TableFormItemProps = Partial<\r\n ExtractPropTypes<typeof tableFormItemProps>\r\n>;\r\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;AAkBO,MAAM,kBAAA,GAAqB;AAAA;AAAA,EAEhC,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,MAAA;AAAA,IACN,OAAA,EAAS,KAAA;AAAA,GACX;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,QAAA;AAAA;AAAA,IAEN,OAAA,EAAS,CAAC,KAAA,EAAgB,KAAA,KAAmB;AAAA;AAEjD;AAGO,MAAM,qBAAA,GAAsC;AAAA,EACjD,SAAA,EAAW,EAAA;AAAA,EACX,WAAA,EAAa,SAAA;AAAA,EACb,WAAA,EAAa,CAAA;AAAA,EACb,YAAA,EAAc,SAAA;AAAA,EACd,gBAAA,EAAkB;AACpB;AAiBO,MAAM,cAAA,GAAiB;AAAA,EAC5B,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,OAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAAA,EACA,YAAA,EAAc;AAAA,IACZ,IAAA,EAAM,MAAA;AAAA,IACN,OAAA,EAAS,MAAO,cAAA,CAAA,EAAA,EAAK,qBAAA;AAAA;AAEzB;;;;;;"}
|
|
@@ -81,7 +81,11 @@ var _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
81
81
|
loadingStatus.value = true;
|
|
82
82
|
yield fetchDic(props.name);
|
|
83
83
|
dicData = [...getDicByKey(props.name)];
|
|
84
|
-
data2.value = dicData
|
|
84
|
+
data2.value = dicData.filter((item) => {
|
|
85
|
+
return props.include.some(
|
|
86
|
+
(i) => i === item.value
|
|
87
|
+
);
|
|
88
|
+
});
|
|
85
89
|
} catch (error) {
|
|
86
90
|
console.error("\u83B7\u53D6\u5B57\u5178\u6570\u636E\u5931\u8D25:", error);
|
|
87
91
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.vue2.mjs","sources":["../../../../src/components/select/Select.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport {\n inject,\n onActivated,\n onMounted,\n ref,\n watch\n} from \"vue\";\nimport { useRoute } from \"vue-router\";\n\nimport {\n useDicStore,\n useKeepAliveStore\n} from \"@ditari/store\";\n\ninterface DicItem {\n value: string | number;\n label: string;\n}\n\nconst props = defineProps({\n value: { required: true, default: undefined },\n name: { type: String, required: true, default: \"\" },\n disabled: { type: Boolean, required: false, default: false },\n placeholder: { type: String, required: false, default: \"请填写默认占位符啊!\" },\n include: { type: Array, required: false, default: () => [] }\n});\n\nconst emits = defineEmits([\"update:value\", \"change\", \"select\"]);\n\nconst { getDicByKey } = useDicStore();\nconst { get: keepNames } = useKeepAliveStore();\n\nconst { modelValue, data, onSelect, onChange } =\n useSelect();\n\nfunction useSelect() {\n const route = useRoute();\n const loadingStatus = ref(false);\n // 判断使用组件的页面是否被缓存\n const isKeepAlive = keepNames.some(\n (name: string) => name === route.name\n );\n // 注入 fetchDic,提供默认值\n const fetchDic = inject<\n (name: string) => Promise<unknown[]>\n >(\"fetchDic\", async (name: string) => {\n console.warn(\n `fetchDic 未注入,使用默认实现,name: ${name}`\n );\n return [];\n });\n\n // 字典数据\n let dicData: DicItem[] = [...getDicByKey(props.name)];\n const data = ref<DicItem[]>(dicData);\n\n // 取值\n const modelValue = ref<string | number | undefined>(\n props.value\n );\n\n onActivated(() => {\n // 缓存页面被激活的时候调用\n loadDicData();\n });\n\n onMounted(() => {\n if (!isKeepAlive) {\n // 未缓存页面 挂载的时候调用\n loadDicData();\n }\n });\n\n // 监听value值的变化\n watch(\n () => props.value,\n val => {\n modelValue.value = val;\n }\n );\n\n setTimeout(() => {\n if (!loadingStatus.value) {\n loadDicData();\n }\n }, 1000);\n\n // 请求字典数据的函数\n async function loadDicData() {\n try {\n loadingStatus.value = true;\n // 调用注入进来的fetchDic方法\n await fetchDic(props.name);\n dicData = [...getDicByKey(props.name)];\n data.value = dicData;\n } catch (error) {\n console.error(\"获取字典数据失败:\", error);\n }\n }\n\n // 监听用户搜索事件\n const onSearch = (keywords: string) => {\n sendWorkerSearch(keywords);\n };\n\n // 发送搜索到webworker\n function sendWorkerSearch(keywords: string) {\n keywords = keywords ?? \"\";\n data.value = dicData\n .filter((item: DicItem) => {\n return (\n item.value\n .toString()\n .toLowerCase()\n .indexOf(keywords.toLowerCase()) !== -1 ||\n item.label\n .toLowerCase()\n .includes(keywords.toLowerCase())\n );\n })\n .slice(0, 10);\n if (data.value.length === 0) {\n data.value = [...dicData].slice(0, 10);\n }\n }\n\n // 监听下拉选择事件\n const onSelect = (value: string | number) => {\n // 发射选择的数据\n emits(\"update:value\", value);\n // 处理下拉后返回数据的\n onSelectHandler();\n };\n\n // 监听数据改变\n const onChange = () => {\n emits(\"update:value\", modelValue.value);\n emits(\"change\", modelValue.value);\n };\n\n /**\n * 根据当前选中的value匹配对应的整条数据\n * 然后返回给父组件\n */\n function onSelectHandler() {\n const dicList = getDicByKey(props.name);\n const rs = dicList.find(\n (obj: DicItem) => obj.value === modelValue.value\n );\n emits(\"select\", rs);\n }\n\n watch(\n () => props.include,\n (val: Array<string | number>) => {\n if (val.length > 0) {\n // 只过滤出来include包含的数据\n data.value = dicData.filter((item: DicItem) => {\n return val.some(\n (i: string | number) => i === item.value\n );\n });\n } else {\n data.value = dicData;\n }\n },\n {\n immediate: true\n }\n );\n\n return {\n data,\n modelValue,\n onSearch,\n onSelect,\n onChange\n };\n}\n\n/**\n * 过滤筛选\n * @param inputValue\n * @param options\n */\nconst onFilterOption = (\n inputValue: string,\n options: DicItem\n) => {\n return (\n options.value\n .toString()\n .toLowerCase()\n .indexOf(inputValue.toLowerCase()) !== -1 ||\n options.label\n .toLowerCase()\n .includes(inputValue.toLowerCase())\n );\n};\n</script>\n\n<template>\n <a-select\n v-model:value=\"modelValue\"\n style=\"width: 100%\"\n allow-clear\n show-search\n :options=\"data\"\n :placeholder=\"placeholder\"\n :disabled=\"disabled\"\n :filter-option=\"onFilterOption\"\n @select=\"onSelect\"\n @change=\"onChange\"\n >\n </a-select>\n</template>\n\n<style scoped></style>\n"],"names":["data","modelValue","onSelect","onChange","_createBlock","_unref"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoBA,IAAA,MAAM,KAAA,GAAQ,OAAA;AAQd,IAAA,MAAM,KAAA,GAAQ,MAAA;AAEd,IAAA,MAAM,EAAE,WAAA,EAAY,GAAI,WAAA,EAAY;AACpC,IAAA,MAAM,EAAE,GAAA,EAAK,SAAA,EAAU,GAAI,iBAAA,EAAkB;AAE7C,IAAA,MAAM,EAAE,UAAA,EAAY,IAAA,EAAM,QAAA,EAAU,QAAA,KAClC,SAAA,EAAU;AAEZ,IAAA,SAAS,SAAA,GAAY;AACnB,MAAA,MAAM,QAAQ,QAAA,EAAS;AACvB,MAAA,MAAM,aAAA,GAAgB,IAAI,KAAK,CAAA;AAE/B,MAAA,MAAM,cAAc,SAAA,CAAU,IAAA;AAAA,QAC5B,CAAC,IAAA,KAAiB,IAAA,KAAS,KAAA,CAAM;AAAA,OACnC;AAEA,MAAA,MAAM,QAAA,GAAW,MAAA,CAEf,UAAA,EAAY,CAAO,IAAA,KAAiB,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AACpC,QAAA,OAAA,CAAQ,IAAA;AAAA,UACN,oFAA6B,IAAI,CAAA;AAAA,SACnC;AACA,QAAA,OAAO,EAAC;AAAA,MACV,CAAA,CAAC,CAAA;AAGD,MAAA,IAAI,UAAqB,CAAC,GAAG,WAAA,CAAY,KAAA,CAAM,IAAI,CAAC,CAAA;AACpD,MAAA,MAAMA,KAAAA,GAAO,IAAe,OAAO,CAAA;AAGnC,MAAA,MAAMC,WAAAA,GAAa,GAAA;AAAA,QACjB,KAAA,CAAM;AAAA,OACR;AAEA,MAAA,WAAA,CAAY,MAAM;AAEhB,QAAA,WAAA,EAAY;AAAA,MACd,CAAC,CAAA;AAED,MAAA,SAAA,CAAU,MAAM;AACd,QAAA,IAAI,CAAC,WAAA,EAAa;AAEhB,UAAA,WAAA,EAAY;AAAA,QACd;AAAA,MACF,CAAC,CAAA;AAGD,MAAA,KAAA;AAAA,QACE,MAAM,KAAA,CAAM,KAAA;AAAA,QACZ,CAAA,GAAA,KAAO;AACL,UAAAA,YAAW,KAAA,GAAQ,GAAA;AAAA,QACrB;AAAA,OACF;AAEA,MAAA,UAAA,CAAW,MAAM;AACf,QAAA,IAAI,CAAC,cAAc,KAAA,EAAO;AACxB,UAAA,WAAA,EAAY;AAAA,QACd;AAAA,MACF,GAAG,GAAI,CAAA;AAGP,MAAA,SAAe,WAAA,GAAc;AAAA,QAAA,OAAA,OAAA,CAAA,IAAA,EAAA,IAAA,EAAA,aAAA;AAC3B,UAAA,IAAI;AACF,YAAA,aAAA,CAAc,KAAA,GAAQ,IAAA;AAEtB,YAAA,MAAM,QAAA,CAAS,MAAM,IAAI,CAAA;AACzB,YAAA,OAAA,GAAU,CAAC,GAAG,WAAA,CAAY,KAAA,CAAM,IAAI,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"Select.vue2.mjs","sources":["../../../../src/components/select/Select.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport {\n inject,\n onActivated,\n onMounted,\n ref,\n watch\n} from \"vue\";\nimport { useRoute } from \"vue-router\";\n\nimport {\n useDicStore,\n useKeepAliveStore\n} from \"@ditari/store\";\n\ninterface DicItem {\n value: string | number;\n label: string;\n}\n\nconst props = defineProps({\n value: { required: true, default: undefined },\n name: { type: String, required: true, default: \"\" },\n disabled: { type: Boolean, required: false, default: false },\n placeholder: { type: String, required: false, default: \"请填写默认占位符啊!\" },\n include: { type: Array, required: false, default: () => [] }\n});\n\nconst emits = defineEmits([\"update:value\", \"change\", \"select\"]);\n\nconst { getDicByKey } = useDicStore();\nconst { get: keepNames } = useKeepAliveStore();\n\nconst { modelValue, data, onSelect, onChange } =\n useSelect();\n\nfunction useSelect() {\n const route = useRoute();\n const loadingStatus = ref(false);\n // 判断使用组件的页面是否被缓存\n const isKeepAlive = keepNames.some(\n (name: string) => name === route.name\n );\n // 注入 fetchDic,提供默认值\n const fetchDic = inject<\n (name: string) => Promise<unknown[]>\n >(\"fetchDic\", async (name: string) => {\n console.warn(\n `fetchDic 未注入,使用默认实现,name: ${name}`\n );\n return [];\n });\n\n // 字典数据\n let dicData: DicItem[] = [...getDicByKey(props.name)];\n const data = ref<DicItem[]>(dicData);\n\n // 取值\n const modelValue = ref<string | number | undefined>(\n props.value\n );\n\n onActivated(() => {\n // 缓存页面被激活的时候调用\n loadDicData();\n });\n\n onMounted(() => {\n if (!isKeepAlive) {\n // 未缓存页面 挂载的时候调用\n loadDicData();\n }\n });\n\n // 监听value值的变化\n watch(\n () => props.value,\n val => {\n modelValue.value = val;\n }\n );\n\n setTimeout(() => {\n if (!loadingStatus.value) {\n loadDicData();\n }\n }, 1000);\n\n // 请求字典数据的函数\n async function loadDicData() {\n try {\n loadingStatus.value = true;\n // 调用注入进来的fetchDic方法\n await fetchDic(props.name);\n dicData = [...getDicByKey(props.name)];\n\n data.value = dicData.filter((item: DicItem) => {\n return props.include.some(\n (i: string | number) => i === item.value\n );\n });\n } catch (error) {\n console.error(\"获取字典数据失败:\", error);\n }\n }\n\n // 监听用户搜索事件\n const onSearch = (keywords: string) => {\n sendWorkerSearch(keywords);\n };\n\n // 发送搜索到webworker\n function sendWorkerSearch(keywords: string) {\n keywords = keywords ?? \"\";\n data.value = dicData\n .filter((item: DicItem) => {\n return (\n item.value\n .toString()\n .toLowerCase()\n .indexOf(keywords.toLowerCase()) !== -1 ||\n item.label\n .toLowerCase()\n .includes(keywords.toLowerCase())\n );\n })\n .slice(0, 10);\n if (data.value.length === 0) {\n data.value = [...dicData].slice(0, 10);\n }\n }\n\n // 监听下拉选择事件\n const onSelect = (value: string | number) => {\n // 发射选择的数据\n emits(\"update:value\", value);\n // 处理下拉后返回数据的\n onSelectHandler();\n };\n\n // 监听数据改变\n const onChange = () => {\n emits(\"update:value\", modelValue.value);\n emits(\"change\", modelValue.value);\n };\n\n /**\n * 根据当前选中的value匹配对应的整条数据\n * 然后返回给父组件\n */\n function onSelectHandler() {\n const dicList = getDicByKey(props.name);\n const rs = dicList.find(\n (obj: DicItem) => obj.value === modelValue.value\n );\n emits(\"select\", rs);\n }\n\n watch(\n () => props.include,\n (val: Array<string | number>) => {\n if (val.length > 0) {\n // 只过滤出来include包含的数据\n data.value = dicData.filter((item: DicItem) => {\n return val.some(\n (i: string | number) => i === item.value\n );\n });\n } else {\n data.value = dicData;\n }\n },\n {\n immediate: true\n }\n );\n\n return {\n data,\n modelValue,\n onSearch,\n onSelect,\n onChange\n };\n}\n\n/**\n * 过滤筛选\n * @param inputValue\n * @param options\n */\nconst onFilterOption = (\n inputValue: string,\n options: DicItem\n) => {\n return (\n options.value\n .toString()\n .toLowerCase()\n .indexOf(inputValue.toLowerCase()) !== -1 ||\n options.label\n .toLowerCase()\n .includes(inputValue.toLowerCase())\n );\n};\n</script>\n\n<template>\n <a-select\n v-model:value=\"modelValue\"\n style=\"width: 100%\"\n allow-clear\n show-search\n :options=\"data\"\n :placeholder=\"placeholder\"\n :disabled=\"disabled\"\n :filter-option=\"onFilterOption\"\n @select=\"onSelect\"\n @change=\"onChange\"\n >\n </a-select>\n</template>\n\n<style scoped></style>\n"],"names":["data","modelValue","onSelect","onChange","_createBlock","_unref"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { isVNode,
|
|
1
|
+
import { isVNode, defineComponent, ref, computed, provide, Comment, Text, createVNode, mergeProps } from 'vue';
|
|
2
2
|
import { Col, FormItem, Form, Row } from 'ant-design-vue';
|
|
3
3
|
import { DEFAULT_STYLES_CONFIG, tableFormProps } from './interface.mjs';
|
|
4
4
|
import { useFormItemStyle } from './style.mjs';
|
|
@@ -8,28 +8,20 @@ import { useAntdToken, useDesign } from '../../hooks/useDesign.mjs';
|
|
|
8
8
|
import { withInstall } from '../../utils/withInstall.mjs';
|
|
9
9
|
|
|
10
10
|
"use strict";
|
|
11
|
+
function _isSlot(s) {
|
|
12
|
+
return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !isVNode(s);
|
|
13
|
+
}
|
|
11
14
|
const FormContextKey = Symbol("d-table-form-context");
|
|
12
|
-
const
|
|
13
|
-
|
|
14
|
-
if (
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
if (vnode.type !== Comment && vnode.type !== Text && vnode.children !== " ") {
|
|
18
|
-
count++;
|
|
19
|
-
}
|
|
20
|
-
} else if (Array.isArray(vnode)) {
|
|
21
|
-
count += getValidVNodesCount(vnode);
|
|
22
|
-
} else if (typeof vnode === "string" && vnode.trim() !== "") {
|
|
23
|
-
count++;
|
|
24
|
-
}
|
|
25
|
-
});
|
|
15
|
+
const getVNodeSpan = (vnode) => {
|
|
16
|
+
var _a;
|
|
17
|
+
if (vnode && vnode.props) {
|
|
18
|
+
const s = (_a = vnode.props.span) != null ? _a : vnode.props["span"];
|
|
19
|
+
if (s !== void 0 && s !== null) return Number(s);
|
|
26
20
|
}
|
|
27
|
-
return
|
|
21
|
+
return 24;
|
|
28
22
|
};
|
|
29
23
|
const containerBorderStyle = css`
|
|
30
|
-
/* 顶部边框 */
|
|
31
24
|
border-top: 1px solid #d9d9d9;
|
|
32
|
-
/* 左侧边框 */
|
|
33
25
|
border-left: 1px solid #d9d9d9;
|
|
34
26
|
`;
|
|
35
27
|
const _TableForm = /* @__PURE__ */ defineComponent({
|
|
@@ -45,7 +37,7 @@ const _TableForm = /* @__PURE__ */ defineComponent({
|
|
|
45
37
|
getPrefixCls
|
|
46
38
|
} = useDesign("table-form");
|
|
47
39
|
const formRef = ref();
|
|
48
|
-
const
|
|
40
|
+
const defaultSpan = computed(() => 24);
|
|
49
41
|
const isReadonly = computed(() => props.readonly);
|
|
50
42
|
const finalStylesConfig = computed(() => {
|
|
51
43
|
const defaultCopy = JSON.parse(JSON.stringify(DEFAULT_STYLES_CONFIG));
|
|
@@ -54,47 +46,81 @@ const _TableForm = /* @__PURE__ */ defineComponent({
|
|
|
54
46
|
const modelState = computed(() => attrs.model);
|
|
55
47
|
provide(FormContextKey, {
|
|
56
48
|
isFormParent: true,
|
|
57
|
-
span:
|
|
58
|
-
fieldErrors: {},
|
|
49
|
+
span: defaultSpan,
|
|
50
|
+
fieldErrors: ref({}),
|
|
59
51
|
isReadonly,
|
|
60
52
|
stylesConfig: finalStylesConfig,
|
|
61
53
|
model: modelState
|
|
62
54
|
});
|
|
63
|
-
const
|
|
55
|
+
const flattenVNodes = (children) => {
|
|
56
|
+
let result = [];
|
|
57
|
+
const vnodes = Array.isArray(children) ? children : [children];
|
|
58
|
+
vnodes.forEach((v) => {
|
|
59
|
+
var _a;
|
|
60
|
+
if (Array.isArray(v)) {
|
|
61
|
+
result = result.concat(flattenVNodes(v));
|
|
62
|
+
} else if (isVNode(v)) {
|
|
63
|
+
if (v.type === Symbol.for("v-fgt") || ((_a = v.type) == null ? void 0 : _a.toString()) === "Symbol(Fragment)") {
|
|
64
|
+
result = result.concat(flattenVNodes(v.children));
|
|
65
|
+
} else if (v.type !== Comment && v.type !== Text) {
|
|
66
|
+
result.push(v);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
return result;
|
|
71
|
+
};
|
|
72
|
+
const renderItems = () => {
|
|
64
73
|
const colCls = getPrefixCls("item-col");
|
|
65
74
|
const styles = useFormItemStyle(finalStylesConfig.value, token);
|
|
66
|
-
const
|
|
67
|
-
const
|
|
68
|
-
const
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
75
|
+
const rawSlots = slots.default ? slots.default() : [];
|
|
76
|
+
const vnodes = flattenVNodes(rawSlots);
|
|
77
|
+
const finalElements = [];
|
|
78
|
+
let currentLineSpan = 0;
|
|
79
|
+
vnodes.forEach((vnode, index) => {
|
|
80
|
+
const span = getVNodeSpan(vnode);
|
|
81
|
+
if (currentLineSpan > 0 && (currentLineSpan + span > 24 || span === 24)) {
|
|
82
|
+
const neededSpan = 24 - currentLineSpan;
|
|
83
|
+
if (neededSpan > 0) {
|
|
84
|
+
finalElements.push(createVNode(Col, {
|
|
85
|
+
"key": `filler-mid-${index}`,
|
|
86
|
+
"span": neededSpan,
|
|
87
|
+
"class": cx(colCls, styles.cellBorderStyle)
|
|
88
|
+
}, {
|
|
89
|
+
default: () => [createVNode(FormItem, null, null)]
|
|
90
|
+
}));
|
|
91
|
+
}
|
|
92
|
+
currentLineSpan = 0;
|
|
93
|
+
}
|
|
94
|
+
finalElements.push(vnode);
|
|
95
|
+
currentLineSpan += span;
|
|
96
|
+
if (currentLineSpan >= 24) {
|
|
97
|
+
currentLineSpan = 0;
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
if (currentLineSpan > 0) {
|
|
101
|
+
finalElements.push(createVNode(Col, {
|
|
102
|
+
"key": "filler-last",
|
|
103
|
+
"span": 24 - currentLineSpan,
|
|
77
104
|
"class": cx(colCls, styles.cellBorderStyle)
|
|
78
105
|
}, {
|
|
79
|
-
default: () => [createVNode(FormItem,
|
|
80
|
-
"label": " "
|
|
81
|
-
}, null)]
|
|
106
|
+
default: () => [createVNode(FormItem, null, null)]
|
|
82
107
|
}));
|
|
83
108
|
}
|
|
84
|
-
return
|
|
85
|
-
}
|
|
109
|
+
return finalElements;
|
|
110
|
+
};
|
|
86
111
|
expose({
|
|
87
112
|
form: formRef
|
|
88
113
|
});
|
|
89
114
|
return () => {
|
|
115
|
+
let _slot;
|
|
90
116
|
const rootCls = getPrefixCls();
|
|
91
117
|
return createVNode(Form, mergeProps({
|
|
92
118
|
"class": cx(rootCls, containerBorderStyle)
|
|
93
119
|
}, attrs, {
|
|
94
120
|
"ref": formRef
|
|
95
121
|
}), {
|
|
96
|
-
default: () => [createVNode(Row, null, {
|
|
97
|
-
default: () => [
|
|
122
|
+
default: () => [createVNode(Row, null, _isSlot(_slot = renderItems()) ? _slot : {
|
|
123
|
+
default: () => [_slot]
|
|
98
124
|
})]
|
|
99
125
|
});
|
|
100
126
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableForm.mjs","sources":["../../../../src/components/table-form/TableForm.tsx"],"sourcesContent":["import {\r\n Comment,\r\n computed,\r\n ComputedRef,\r\n defineComponent,\r\n isVNode,\r\n provide,\r\n ref,\r\n Text\r\n} from \"vue\";\r\nimport {\r\n Col,\r\n Form,\r\n FormInstance,\r\n FormItem,\r\n Row\r\n} from \"ant-design-vue\";\r\n\r\nimport {\r\n DEFAULT_STYLES_CONFIG,\r\n StylesConfig,\r\n tableFormProps\r\n} from \"./interface\";\r\nimport { useFormItemStyle } from \"./style\";\r\nimport { css, cx } from \"@emotion/css\";\r\nimport { merge } from \"lodash-es\";\r\n\r\nimport {\r\n useAntdToken,\r\n useDesign\r\n} from \"../../hooks/useDesign\";\r\n\r\nimport { withInstall } from \"../../utils/withInstall\";\r\n\r\nexport const FormContextKey = Symbol(\r\n \"d-table-form-context\"\r\n);\r\n\r\n// ⭐️ Context 接口,包含错误状态映射\r\nexport interface TableFormContext {\r\n isFormParent: true;\r\n span: ComputedRef<number>;\r\n isReadonly: ComputedRef<boolean>;\r\n fieldErrors: ComputedRef<\r\n Record<string, string | undefined>\r\n >;\r\n stylesConfig: ComputedRef<StylesConfig>;\r\n model: ComputedRef<Record<string, unknown>>;\r\n}\r\n\r\n// 辅助函数:计算插槽中有效 VNode 的数量\r\nconst getValidVNodesCount = (vnodes: unknown): number => {\r\n let count = 0;\r\n if (Array.isArray(vnodes)) {\r\n vnodes.forEach(vnode => {\r\n if (isVNode(vnode)) {\r\n // 忽略注释、文本节点、或仅空白的节点\r\n if (\r\n vnode.type !== Comment &&\r\n vnode.type !== Text &&\r\n vnode.children !== \" \"\r\n ) {\r\n count++;\r\n }\r\n } else if (Array.isArray(vnode)) {\r\n // 处理 Fragment 或嵌套数组\r\n count += getValidVNodesCount(vnode);\r\n } else if (\r\n typeof vnode === \"string\" &&\r\n vnode.trim() !== \"\"\r\n ) {\r\n // 处理非空字符串(虽然不常见,但保险起见)\r\n count++;\r\n }\r\n });\r\n }\r\n return count;\r\n};\r\n\r\nconst containerBorderStyle = css`\r\n /* 顶部边框 */\r\n border-top: 1px solid #d9d9d9;\r\n /* 左侧边框 */\r\n border-left: 1px solid #d9d9d9;\r\n`;\r\n\r\nconst _TableForm = defineComponent({\r\n name: \"DTableForm\",\r\n props: tableFormProps,\r\n\r\n setup(props, { slots, attrs, expose }) {\r\n const token = useAntdToken();\r\n\r\n const { getPrefixCls } = useDesign(\"table-form\");\r\n // 表单对象\r\n const formRef = ref<FormInstance | null>();\r\n\r\n //动态计算一个col的span值是多少\r\n const calculatedSpan = computed(() =>\r\n Math.floor(24 / props.colCount)\r\n );\r\n\r\n // ⭐️ 新增:计算只读状态\r\n const isReadonly = computed(() => props.readonly);\r\n const finalStylesConfig = computed<StylesConfig>(() => {\r\n // 1. 创建默认配置的深拷贝\r\n const defaultCopy = JSON.parse(\r\n JSON.stringify(DEFAULT_STYLES_CONFIG)\r\n );\r\n // 2. 使用 Lodash merge (或 mergeWith) 合并用户传入的配置\r\n return merge(defaultCopy, props.stylesConfig);\r\n });\r\n const modelState = computed(() => attrs.model);\r\n\r\n // ⭐️ FIX 2: 提供 Context 时,传递 ComputedRef 本身,而不是它的 .value\r\n provide(FormContextKey, {\r\n isFormParent: true,\r\n span: calculatedSpan,\r\n fieldErrors: {},\r\n isReadonly: isReadonly,\r\n stylesConfig: finalStylesConfig,\r\n model: modelState\r\n });\r\n\r\n // ⭐️ 核心逻辑:计算并渲染占位符\r\n const fillerCols = computed(() => {\r\n const colCls = getPrefixCls(\"item-col\");\r\n const styles = useFormItemStyle(\r\n finalStylesConfig.value,\r\n token\r\n );\r\n\r\n const defaultSlot = slots.default\r\n ? slots.default()\r\n : [];\r\n const itemCounts = getValidVNodesCount(defaultSlot);\r\n const colCount = props.colCount;\r\n\r\n // 计算当前行已占用的位置 (余数)\r\n const remainder = itemCounts % colCount;\r\n const fillerCount =\r\n remainder === 0 ? 0 : colCount - remainder;\r\n\r\n const span = calculatedSpan.value;\r\n const fillerNodes = [];\r\n\r\n // 渲染所需数量的空 Col\r\n for (let i = 0; i < fillerCount; i++) {\r\n fillerNodes.push(\r\n <Col\r\n key={`filler-${i}`}\r\n span={span}\r\n class={cx(colCls, styles.cellBorderStyle)}\r\n >\r\n <FormItem label={\" \"}></FormItem>\r\n </Col>\r\n );\r\n }\r\n return fillerNodes;\r\n });\r\n\r\n expose({\r\n form: formRef\r\n });\r\n\r\n return () => {\r\n const rootCls = getPrefixCls();\r\n\r\n return (\r\n <Form\r\n class={cx(rootCls, containerBorderStyle)}\r\n {...attrs}\r\n ref={formRef}\r\n >\r\n <Row>\r\n {/* 渲染所有传入的 FormItem */}\r\n {slots.default ? slots.default() : null}\r\n {/* 渲染计算出的占位 Col */}\r\n {fillerCols.value}\r\n </Row>\r\n </Form>\r\n );\r\n };\r\n }\r\n});\r\n\r\nexport const TableForm = withInstall(_TableForm);\r\n"],"names":["FormContextKey","Symbol","getValidVNodesCount","vnodes","count","Array","isArray","forEach","vnode","isVNode","type","Comment","Text","children","trim","containerBorderStyle","css","_TableForm","defineComponent","name","props","tableFormProps","setup","slots","attrs","expose","token","useAntdToken","getPrefixCls","useDesign","formRef","ref","calculatedSpan","computed","Math","floor","colCount","isReadonly","readonly","finalStylesConfig","defaultCopy","JSON","parse","stringify","DEFAULT_STYLES_CONFIG","merge","stylesConfig","modelState","model","provide","isFormParent","span","fieldErrors","fillerCols","colCls","styles","useFormItemStyle","value","defaultSlot","default","itemCounts","remainder","fillerCount","fillerNodes","i","push","_createVNode","Col","cx","cellBorderStyle","FormItem","form","rootCls","Form","_mergeProps","Row","TableForm","withInstall"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TableForm.mjs","sources":["../../../../src/components/table-form/TableForm.tsx"],"sourcesContent":["import {\r\n Comment,\r\n computed,\r\n ComputedRef,\r\n defineComponent,\r\n isVNode,\r\n provide,\r\n ref,\r\n Text,\r\n VNode\r\n} from \"vue\";\r\nimport {\r\n Col,\r\n Form,\r\n FormInstance,\r\n FormItem,\r\n Row\r\n} from \"ant-design-vue\";\r\n\r\nimport {\r\n DEFAULT_STYLES_CONFIG,\r\n StylesConfig,\r\n tableFormProps\r\n} from \"./interface\";\r\nimport { useFormItemStyle } from \"./style\";\r\nimport { css, cx } from \"@emotion/css\";\r\nimport { merge } from \"lodash-es\";\r\n\r\nimport {\r\n useAntdToken,\r\n useDesign\r\n} from \"../../hooks/useDesign\";\r\n\r\nimport { withInstall } from \"../../utils/withInstall\";\r\n\r\nexport const FormContextKey = Symbol(\r\n \"d-table-form-context\"\r\n);\r\n\r\nexport interface TableFormContext {\r\n isFormParent: true;\r\n span: ComputedRef<number>;\r\n isReadonly: ComputedRef<boolean>;\r\n fieldErrors: ComputedRef<\r\n Record<string, string | undefined>\r\n >;\r\n stylesConfig: ComputedRef<StylesConfig>;\r\n model: ComputedRef<Record<string, unknown>>;\r\n}\r\n\r\nconst getVNodeSpan = (vnode: any): number => {\r\n if (vnode && vnode.props) {\r\n const s = vnode.props.span ?? vnode.props[\"span\"];\r\n if (s !== undefined && s !== null) return Number(s);\r\n }\r\n return 24; // 默认占满一行\r\n};\r\n\r\nconst containerBorderStyle = css`\r\n border-top: 1px solid #d9d9d9;\r\n border-left: 1px solid #d9d9d9;\r\n`;\r\n\r\nconst _TableForm = defineComponent({\r\n name: \"DTableForm\",\r\n props: tableFormProps,\r\n\r\n setup(props, { slots, attrs, expose }) {\r\n const token = useAntdToken();\r\n const { getPrefixCls } = useDesign(\"table-form\");\r\n const formRef = ref<FormInstance | null>();\r\n\r\n const defaultSpan = computed(() => 24);\r\n const isReadonly = computed(() => props.readonly);\r\n const finalStylesConfig = computed<StylesConfig>(() => {\r\n const defaultCopy = JSON.parse(\r\n JSON.stringify(DEFAULT_STYLES_CONFIG)\r\n );\r\n return merge(defaultCopy, props.stylesConfig);\r\n });\r\n const modelState = computed(\r\n () => attrs.model as Record<string, unknown>\r\n );\r\n\r\n provide(FormContextKey, {\r\n isFormParent: true,\r\n span: defaultSpan,\r\n fieldErrors: ref({}),\r\n isReadonly: isReadonly,\r\n stylesConfig: finalStylesConfig,\r\n model: modelState\r\n });\r\n\r\n const flattenVNodes = (children: any): VNode[] => {\r\n let result: VNode[] = [];\r\n const vnodes = Array.isArray(children)\r\n ? children\r\n : [children];\r\n vnodes.forEach(v => {\r\n if (Array.isArray(v)) {\r\n result = result.concat(flattenVNodes(v));\r\n } else if (isVNode(v)) {\r\n if (\r\n v.type === Symbol.for(\"v-fgt\") ||\r\n v.type?.toString() === \"Symbol(Fragment)\"\r\n ) {\r\n result = result.concat(\r\n flattenVNodes(v.children)\r\n );\r\n } else if (\r\n v.type !== Comment &&\r\n v.type !== Text\r\n ) {\r\n result.push(v);\r\n }\r\n }\r\n });\r\n return result;\r\n };\r\n\r\n /**\r\n * 核心逻辑:重新编排节点序列,在必要位置插入补位 Col\r\n */\r\n const renderItems = () => {\r\n const colCls = getPrefixCls(\"item-col\");\r\n const styles = useFormItemStyle(\r\n finalStylesConfig.value,\r\n token\r\n );\r\n const rawSlots = slots.default ? slots.default() : [];\r\n const vnodes = flattenVNodes(rawSlots);\r\n\r\n const finalElements: VNode[] = [];\r\n let currentLineSpan = 0;\r\n\r\n vnodes.forEach((vnode, index) => {\r\n const span = getVNodeSpan(vnode);\r\n\r\n // 如果当前行放不下这个节点,或者当前节点是 span 24 且之前行未满\r\n // 则需要先给上一行打个补丁\r\n if (\r\n currentLineSpan > 0 &&\r\n (currentLineSpan + span > 24 || span === 24)\r\n ) {\r\n const neededSpan = 24 - currentLineSpan;\r\n if (neededSpan > 0) {\r\n finalElements.push(\r\n <Col\r\n key={`filler-mid-${index}`}\r\n span={neededSpan}\r\n class={cx(colCls, styles.cellBorderStyle)}\r\n >\r\n <FormItem></FormItem>\r\n </Col>\r\n );\r\n }\r\n currentLineSpan = 0; // 开启新行\r\n }\r\n\r\n finalElements.push(vnode);\r\n\r\n // 累加计算当前行已占 span\r\n currentLineSpan += span;\r\n if (currentLineSpan >= 24) {\r\n currentLineSpan = 0;\r\n }\r\n });\r\n\r\n // 最后一行不满 24,补充最后一块\r\n if (currentLineSpan > 0) {\r\n finalElements.push(\r\n <Col\r\n key=\"filler-last\"\r\n span={24 - currentLineSpan}\r\n class={cx(colCls, styles.cellBorderStyle)}\r\n >\r\n <FormItem></FormItem>\r\n </Col>\r\n );\r\n }\r\n\r\n return finalElements;\r\n };\r\n\r\n expose({ form: formRef });\r\n\r\n return () => {\r\n const rootCls = getPrefixCls();\r\n return (\r\n <Form\r\n class={cx(rootCls, containerBorderStyle)}\r\n {...attrs}\r\n ref={formRef}\r\n >\r\n <Row>{renderItems()}</Row>\r\n </Form>\r\n );\r\n };\r\n }\r\n});\r\n\r\nexport const TableForm = withInstall(_TableForm);\r\n"],"names":["_isSlot","s","Object","prototype","toString","call","_isVNode","FormContextKey","Symbol","getVNodeSpan","vnode","props","span","undefined","Number","containerBorderStyle","css","_TableForm","defineComponent","name","tableFormProps","setup","slots","attrs","expose","token","useAntdToken","getPrefixCls","useDesign","formRef","ref","defaultSpan","computed","isReadonly","readonly","finalStylesConfig","defaultCopy","JSON","parse","stringify","DEFAULT_STYLES_CONFIG","merge","stylesConfig","modelState","model","provide","isFormParent","fieldErrors","flattenVNodes","children","result","vnodes","Array","isArray","forEach","v","concat","isVNode","type","for","Comment","Text","push","renderItems","colCls","styles","useFormItemStyle","value","rawSlots","default","finalElements","currentLineSpan","index","neededSpan","_createVNode","Col","cx","cellBorderStyle","FormItem","form","_slot","rootCls","Form","_mergeProps","Row","TableForm","withInstall"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interface.mjs","sources":["../../../../src/components/table-form/interface.ts"],"sourcesContent":["import type { ExtractPropTypes, PropType } from \"vue\";\r\n\r\n// 接口:定义你的 Props 应该有哪些属性和类型\r\nexport interface DTableFormItemProps {\r\n name: string;\r\n label?: string;\r\n required?: boolean;\r\n rules?: unknown[]; // 简化,实际应定义详细校验规则类型\r\n colon?: boolean;\r\n extra?: string;\r\n}\r\n\r\nexport type Formatter = (value: unknown
|
|
1
|
+
{"version":3,"file":"interface.mjs","sources":["../../../../src/components/table-form/interface.ts"],"sourcesContent":["import type { ExtractPropTypes, PropType } from \"vue\";\r\n\r\n// 接口:定义你的 Props 应该有哪些属性和类型\r\nexport interface DTableFormItemProps {\r\n name: string;\r\n label?: string;\r\n required?: boolean;\r\n rules?: unknown[]; // 简化,实际应定义详细校验规则类型\r\n colon?: boolean;\r\n extra?: string;\r\n}\r\n\r\nexport type Formatter = (\r\n value: unknown,\r\n name: unknown\r\n) => unknown;\r\n\r\n// 运行时 Props 的定义 (常量)\r\nexport const tableFormItemProps = {\r\n // 字典名字\r\n dicName: {\r\n type: String,\r\n default: undefined\r\n },\r\n format: {\r\n type: Function as PropType<Formatter>,\r\n // 默认值\r\n default: (value: unknown, _name: unknown) => value\r\n }\r\n};\r\n\r\n// ⭐️ 导出默认值常量\r\nexport const DEFAULT_STYLES_CONFIG: StylesConfig = {\r\n rowHeight: 32,\r\n borderColor: \"#dfdfdf\",\r\n borderWidth: 1,\r\n labelBgColor: \"#EEEEEE\",\r\n focusBorderColor: \"#1677ff\"\r\n};\r\n\r\nexport interface StylesConfig {\r\n /**\r\n * 表格行高度\r\n */\r\n rowHeight?: number;\r\n // 边框颜色\r\n borderColor?: string;\r\n // 边框\r\n borderWidth?: number;\r\n // 标签颜色label\r\n labelBgColor?: string;\r\n //焦点边框颜色\r\n focusBorderColor?: string;\r\n}\r\n\r\nexport const tableFormProps = {\r\n readonly: {\r\n type: Boolean,\r\n default: false\r\n },\r\n stylesConfig: {\r\n type: Object as PropType<StylesConfig>,\r\n default: () => ({ ...DEFAULT_STYLES_CONFIG })\r\n }\r\n};\r\n\r\n// 导出 Prop 类型,供外部使用 (例如,在 TSX 中使用)\r\nexport type TableFormItemProps = Partial<\r\n ExtractPropTypes<typeof tableFormItemProps>\r\n>;\r\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAkBO,MAAM,kBAAA,GAAqB;AAAA;AAAA,EAEhC,OAAA,EAAS;AAAA,IACP,IAAA,EAAM,MAAA;AAAA,IACN,OAAA,EAAS,KAAA;AAAA,GACX;AAAA,EACA,MAAA,EAAQ;AAAA,IACN,IAAA,EAAM,QAAA;AAAA;AAAA,IAEN,OAAA,EAAS,CAAC,KAAA,EAAgB,KAAA,KAAmB;AAAA;AAEjD;AAGO,MAAM,qBAAA,GAAsC;AAAA,EACjD,SAAA,EAAW,EAAA;AAAA,EACX,WAAA,EAAa,SAAA;AAAA,EACb,WAAA,EAAa,CAAA;AAAA,EACb,YAAA,EAAc,SAAA;AAAA,EACd,gBAAA,EAAkB;AACpB;AAiBO,MAAM,cAAA,GAAiB;AAAA,EAC5B,QAAA,EAAU;AAAA,IACR,IAAA,EAAM,OAAA;AAAA,IACN,OAAA,EAAS;AAAA,GACX;AAAA,EACA,YAAA,EAAc;AAAA,IACZ,IAAA,EAAM,MAAA;AAAA,IACN,OAAA,EAAS,MAAO,cAAA,CAAA,EAAA,EAAK,qBAAA;AAAA;AAEzB;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Select.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/select/Select.vue.ts"],"names":[],"mappings":"AAeA,UAAU,OAAO;IACf,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;CACf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAFQ,MAAM,GAAG,MAAM;eACf,MAAM;;eADN,MAAM,GAAG,MAAM;eACf,MAAM;;
|
|
1
|
+
{"version":3,"file":"Select.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/select/Select.vue.ts"],"names":[],"mappings":"AAeA,UAAU,OAAO;IACf,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;CACf;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;eAFQ,MAAM,GAAG,MAAM;eACf,MAAM;;eADN,MAAM,GAAG,MAAM;eACf,MAAM;;sBA2HY,MAAM,GAAG,MAAM;;;;mBA5HjC,MAAM,GAAG,MAAM;mBACf,MAAM;;mBADN,MAAM,GAAG,MAAM;mBACf,MAAM;;;6BAiGe,MAAM;0BA0BT,MAAM,GAAG,MAAM;;;iCA2D5B,MAAM,WACT,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAnLlB,wBAqME"}
|
|
@@ -10,11 +10,6 @@ export interface TableFormContext {
|
|
|
10
10
|
model: ComputedRef<Record<string, unknown>>;
|
|
11
11
|
}
|
|
12
12
|
export declare const TableForm: import("../../utils/withInstall").SFCWithInstall<import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
13
|
-
colCount: {
|
|
14
|
-
type: NumberConstructor;
|
|
15
|
-
default: number;
|
|
16
|
-
required: true;
|
|
17
|
-
};
|
|
18
13
|
readonly: {
|
|
19
14
|
type: BooleanConstructor;
|
|
20
15
|
default: boolean;
|
|
@@ -30,11 +25,6 @@ export declare const TableForm: import("../../utils/withInstall").SFCWithInstall
|
|
|
30
25
|
};
|
|
31
26
|
};
|
|
32
27
|
}>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
33
|
-
colCount: {
|
|
34
|
-
type: NumberConstructor;
|
|
35
|
-
default: number;
|
|
36
|
-
required: true;
|
|
37
|
-
};
|
|
38
28
|
readonly: {
|
|
39
29
|
type: BooleanConstructor;
|
|
40
30
|
default: boolean;
|
|
@@ -50,7 +40,6 @@ export declare const TableForm: import("../../utils/withInstall").SFCWithInstall
|
|
|
50
40
|
};
|
|
51
41
|
};
|
|
52
42
|
}>> & Readonly<{}>, {
|
|
53
|
-
colCount: number;
|
|
54
43
|
readonly: boolean;
|
|
55
44
|
stylesConfig: StylesConfig;
|
|
56
45
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TableForm.d.ts","sourceRoot":"","sources":["../../../../src/components/table-form/TableForm.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,WAAW,
|
|
1
|
+
{"version":3,"file":"TableForm.d.ts","sourceRoot":"","sources":["../../../../src/components/table-form/TableForm.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,WAAW,EAOZ,MAAM,KAAK,CAAC;AASb,OAAO,EAEL,YAAY,EAEb,MAAM,aAAa,CAAC;AAYrB,eAAO,MAAM,cAAc,eAE1B,CAAC;AAEF,MAAM,WAAW,gBAAgB;IAC/B,YAAY,EAAE,IAAI,CAAC;IACnB,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC1B,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IACjC,WAAW,EAAE,WAAW,CACtB,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CACnC,CAAC;IACF,YAAY,EAAE,WAAW,CAAC,YAAY,CAAC,CAAC;IACxC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAC7C;AAyJD,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6EAA0B,CAAC"}
|
|
@@ -30,11 +30,6 @@ export interface StylesConfig {
|
|
|
30
30
|
focusBorderColor?: string;
|
|
31
31
|
}
|
|
32
32
|
export declare const tableFormProps: {
|
|
33
|
-
colCount: {
|
|
34
|
-
type: NumberConstructor;
|
|
35
|
-
default: number;
|
|
36
|
-
required: true;
|
|
37
|
-
};
|
|
38
33
|
readonly: {
|
|
39
34
|
type: BooleanConstructor;
|
|
40
35
|
default: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../../src/components/table-form/interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAGtD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,SAAS,GAAG,
|
|
1
|
+
{"version":3,"file":"interface.d.ts","sourceRoot":"","sources":["../../../../src/components/table-form/interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,KAAK,CAAC;AAGtD,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,SAAS,GAAG,CACtB,KAAK,EAAE,OAAO,EACd,IAAI,EAAE,OAAO,KACV,OAAO,CAAC;AAGb,eAAO,MAAM,kBAAkB;;;;;;cAOT,QAAQ,CAAC,SAAS,CAAC;yBAEpB,OAAO,SAAS,OAAO;;CAE3C,CAAC;AAGF,eAAO,MAAM,qBAAqB,EAAE,YAMnC,CAAC;AAEF,MAAM,WAAW,YAAY;IAC3B;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,eAAO,MAAM,cAAc;;;;;;cAMP,QAAQ,CAAC,YAAY,CAAC;;YApBxC;;eAEG;wBACS,MAAM;0BAEJ,MAAM;0BAEN,MAAM;2BAEL,MAAM;+BAEF,MAAM;;;CAY1B,CAAC;AAGF,MAAM,MAAM,kBAAkB,GAAG,OAAO,CACtC,gBAAgB,CAAC,OAAO,kBAAkB,CAAC,CAC5C,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ditari/bsui",
|
|
3
|
-
"version": "5.1.
|
|
3
|
+
"version": "5.1.10",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"./theme/*": "./dist/style/*"
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@ditari/store": "^5.1.
|
|
32
|
+
"@ditari/store": "^5.1.4",
|
|
33
33
|
"@ditari/core": "^5.1.3"
|
|
34
34
|
}
|
|
35
35
|
}
|